python数值积分_python与计算物理:实现数值积分的Simpson方法
1.[代碼]python與計算物理:實現數值積分的Simpson方法。
#!/usr/bin/env python
#coding=utf-8
'''
Created on 2012年10月27日
@author: yanghl
simpson 法計算積分,數值積分,效果非常理想
'''
from math import *
def func(x):
"""
定義被積分函數
"""
return x*sin(x)
def Get_N(a,b,width):
# width為步長
N=int((b-a)/width + 1)
if N%2 == 0:
N=N+1
return N
def GenerateData(a,b,n,width):
datas = []
r=a
for i in range(0,n):
datas.append(func(r))
r = r+width
return datas
def simpson_integral(datas,width,n):
sum = datas[0]+datas[n-1]
for i in range(2,n):
if i%2== 0:
sum = sum +4*datas[i-1]
else:
sum = sum +2*datas[i-1]
return sum*width/3.0
if __name__ == "__main__":
a=1.0 #積分上限
b=3.0 #積分下限
width=0.0625 #步長
N=Get_N(a,b,width)
datas = GenerateData(a,b,N,width)
print simpson_integral(datas,width,N)
#調用scipy.integrate 包進行計算
import scipy.integrate as integrate
print integrate.quad(func, a, b)[0]
總結
以上是生活随笔為你收集整理的python数值积分_python与计算物理:实现数值积分的Simpson方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: js byte数组_这么骚的 js 代码
- 下一篇: python r语言培训_r语言和pyt