
"""
积分演绎
在二次函数x*x/200的x区间为[0,240]曲线和x轴之间的面积是多少?
这可以通过scipy的quad命令求出,这里我们逐步逼近来求,也就是演示积分的一个原理。
求积分用下面的代码:
from scipy.integrate import quad
area = quad(lambda x:x*x/200,0,240)
"""
import numpy as np
from sprites import *
c = Turtle()
c.pendown()
c.fd(300)
c.stamp()
c.bk(600)
c.fd(300)
c.left(90)
c.fd(300)
c.stamp()
c.bk(600)
c.home()
c.penup()
# y = x*x / 200 # 二次函数
f = lambda x: x*x/200
for x in range(240):
c.goto(x,f(x))
c.dot(2)
m = Sprite('blank')
t = Sprite('blank',pos=(-200,200))
step = 40
while step>0.01:
m.clear()
a = np.arange(0,240,step)
area =0
s = 0
for x in a:
y = f(x)
m.goto(x,0)
m.pendown()
m.goto(x,y)
m.goto(x+step,y)
m.goto(x+step,0)
m.goto(x,0)
m.penup()
s = step * y
area += s
t.clear()
ds = '和面积:23040相差:' + str(23040-area)
t.write(ds,font=('黑体',32,'normal'))
t.wait(1)
step = step/2
c.ht()
screen.mainloop()