gpt4 book ai didi

python - 向量化中点规则以进行积分

转载 作者:行者123 更新时间:2023-12-01 02:29:39 26 4
gpt4 key购买 nike

我需要一些帮助来解决这个问题。近似积分的中点法则可表示为:

                         h * summation of f(a -(0.5 * h) + i*h)

其中 h = (b - a)/2

编写一个函数 midpointint(f,a,b,n) 以使用 numpy sum 函数计算中点规则。

确保您的范围是从 1 到 n(含)。您可以使用范围并将其转换为数组。

对于中点(np.sin,0,np.pi,10),函数应返回 2.0082

这是我到目前为止所拥有的

import numpy as np

def midpointint(f,a,b,n):
h = (b - a) / (float(n))
for i in np.array(range(1,n+1)):
value = h * np.sum((f(a - (0.5*h) + (i*h))))
return value

print(midpointint(np.sin,0,np.pi,10))

我的代码没有打印出正确的输出。

最佳答案

发布的代码的问题是我们需要在开始时将其初始化为零后累积到输出中:value += ..

您可以使用迭代器的范围数组进行矢量化,如下所示 -

I = np.arange(1,n+1)
out = (h*np.sin(a - (0.5*h) + (I*h))).sum()

示例运行 -

In [78]: I = np.arange(1,n+1)

In [79]: (h*np.sin(a - (0.5*h) + (I*h))).sum()
Out[79]: 2.0082484079079745

关于python - 向量化中点规则以进行积分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46984540/

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