Python: 用python做数值积分

标签:
杂谈 |
分类: Python |
用python做定积分、离散点的数值积分
http://docs.scipy.org/doc/scipy/reference/tutorial/integrate.html
http://docs.scipy.org/doc/scipy/reference/integrate.html
http://hyry.dip.jp:8000/pydoc/scipy_intro.html
例如,
x=np.arange(1,101)/100.0
y=x**2
z=np.arange(100**2).reshape(100,100)*0.0
for I in xrange(100):
z[i] = (i+1)*np.arange(1,101)/100.0**2
一重积分
http://s16/middle/4df4d744tbfb9dca696df&690用python做数值积分" TITLE="Python:
1、np.trapz(y,x) 结果为0.33334950000000008
2、np.trapz(x**2,x)的结果为0.33334950000000008
3、integrate.simps(y,x)的结果为0.33333316666666668
4、integrate.simps(x**2,x)的结果为0.33333316666666668
二重积分
http://s5/middle/4df4d744t7992966c9254&690用python做数值积分" TITLE="Python:
1、zx=np.arange(100)*0.0
for i in xrange(100):
zx[i]=(i+1)/100.0*integrate.simps(x,x)
integrate.simps(zx,x)的结果为0.24995000249999996
2、integrate.simps(x*integrate.simps(x,x), x) 的结果为 0.24995000249999996
3、integrate.simps(integrate.simps(z,x),x) 的结果为0.24995000249999999
4、np.trapz(np.trapz(z,x),x) 的结果为 0.24995000249999999
一重定积分
integrate.quad(lambda x:x**2, 0, 1)
结果为 (0.33333333333333331, 3.7007434154171879e-15)
二重定积分
1、integrate.dblquad(lambda x,y: x*y, 0, 1, lambda y:0, lambda y:1)
结果为 (0.25, 2.7755575615628914e-15)
2、integrate.quad(lambda x:(integrate.quad(lambda y:x*y, 0,1)[0]), 0, 1)
结果为 (0.25, 2.7755575615628914e-15)