没想到求定积分被python用这么形象的代码表达出来了!
实际上,求的定积分就是求上图中的红色图形的面积。
将其看做是多个小长方形竖直排起来的,将每块小长方形的面积求出来汇总就是图形的面积了。
为了使数值更精确,使用极限的思想,将x轴(小长方形的宽)分割的无穷细。
数形结合大法好:
# 求定积分方法:
# f:被积函数
# a,b:区间范围
def integrate(f, a, b):
# 将区间分割成无穷多个小长方形的宽
dx = (b - a) / 100000
s = 0
# 将每块小正方形面积累加
for i in range(100000):
s += f(a + dx * i) * dx
return s
# 函数x^2
def func1(x):
return x ** 2
r = integrate(func1, 0, 2)
print(r) # 2.6666266667999796
想要精度就得调分割的粒度,太大了就卡死啦。
应该有更好的方法吧。。。
用到的工具: