gpt4 book ai didi

python - 用于积分逼近的自定义函数的未知错误

转载 作者:太空宇宙 更新时间:2023-11-04 00:07:41 24 4
gpt4 key购买 nike

我已将以下函数定义为使用 bool 规则逼近积分的方法:

def integrate_boole(f,l,r,N):
h=((r-l)/N)
xN = np.linspace(l,r,N+1)
fN = f(xN)
return ((2*h)/45)*(7*fN[0]+32*(np.sum(fN[1:-2:2]))+12*(np.sum(fN[2:-3:4]))+14*(np.sum(fN[4:-5]))+7*fN[-1])

我使用该函数获取 0 和 pi(其中 N=8)之间 sin(x)dx 的积​​分值,并将其分配给变量 sine_int.

给出的答案是1.3938101893248442

在手工计算出原始方程式(参见 here)后,我意识到这个答案非常不准确。

fN 的总和给出了不正确的值,但我不确定原因。例如,np.sum(fN[4:-5]) 将变为 0。

是否有更好的方法来对所涉及的总和进行编码,或者我的参数是否存在错误导致计算不准确?

提前致谢。

编辑

我应该更清楚地说明这应该是规则的复合版本,即近似 N 点,其中 N 可被 4 整除。因此典型的 5 个点和 4 个间隔不会在这里削减它, 很遗憾。我会把我正在使用的方程式复制到这里,但我没有它的图像,而且 LaTex 也不是一个选项。从我在 return 之后的代码中应该/可能会清楚。

最佳答案

从快速检查来看,乘以 f(x_4) 的项应该是 32,而不是 14:

def integrate_boole(f,l,r,N):
h=((r-l)/N)
xN = np.linspace(l,r,N+1)
fN = f(xN)
return ((2*h)/45)*(7*fN[0]+32*(np.sum(fN[1:-2:2]))+
12*(np.sum(fN[2:-3:4]))+32*(np.sum(fN[4:-5]))+7*fN[-1])

关于python - 用于积分逼近的自定义函数的未知错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53523408/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com