利用python对积分与求和的关系的简单测试

一般积分的表达式和相应的求和的近似公式
I ( x ) = ∫ a b f ( x ) d x ≈ ∑ i = 1 N f ( x i ) ⋅ Δ x I(x)=\int^b_a f(x)dx \approx \sum^{N}_{i=1}f(x_i)\cdot \Delta x I(x)=abf(x)dxi=1Nf(xi)Δx
接下来写一个简单的python脚本实现我们的结论的验证,相应代码如下:

import numpy as np
import matplotlib.pylab as plt
from scipy import integrate

def func(x):
	return x**2+np.exp(x)
xmin = 0
xmax = 2
result_i = integrate.quad(func,xmin,xmax)
value_list = range(10,2000,100)
x = np.linspace(xmin,xmax,100)
sum_p,int_p = [],[]
for n in value_list:
	delta = (xmax-xmin)/n
	result_s = 0
	for i in range(n):
		result_s = result_s+func(xmin+i*delta)*delta
	sum_p.append(result_s)
	int_p.append(result_i[0])
fig,axs = plt.subplots(nrows=1,ncols=2)

ax = axs[0]
ax.plot(x,func(x),color='green',linewidth=2)
ax.set(title='Initial function')
ax = axs[1]
ax.plot(value_list,sum_p,color='red',marker='o')
ax.plot(value_list,int_p,color='blue',linewidth=2,linestyle='--')
ax.set(title='Integrate and Sum result',xlabel='Delta numbers')
plt.show()

最后的结果如图所示:
在这里插入图片描述
可以发现随着间隔取得越大,求和越来越接近积分的结果!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值