python辛普森积分_辛普森在Python中的规则

对于数值方法类,我需要编写一个程序来评估Simpson复合规则的定积分.我已经走到这一步了(见下文),但我的回答并不正确.我用f(x)= x测试程序,积分在0到1之间,结果应为0.5.我得到0.78746 …等

我知道Scipy有一个Simpson规则,但我真的需要自己编写.

我怀疑这两个循环有问题.之前我试过“for i in range(1,n,2)”和“for i in range(2,n-1,2)”,这给了我0.41668333的结果……等等.

我也试过“x = h”,我尝试了“x = i * h”.第一个给了我0.3954,第二个选项给了我7.9218.

# Write a program to evaluate a definite integral using Simpson's rule with

# n subdivisions

from math import *

from pylab import *

def simpson(f, a, b, n):

h=(b-a)/n

k=0.0

x=a

for i in range(1,n/2):

x += 2*h

k += 4*f(x)

for i in range(2,(n/2)-1):

x += 2*h

k += 2*f(x)

return (h/3)*(f(a)+f(b)+k)

def function(x): return x

print simpson(function, 0.0, 1.0, 100)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值