• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

python与计算物理:实现数值积分的Simpson方法

python 水墨上仙 2421次浏览

python与计算物理:实现数值积分的Simpson方法

#coding = utf-8
#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)


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明python与计算物理:实现数值积分的Simpson方法
喜欢 (0)
加载中……