我需要一些帮助解决这个问题 . 近似积分的中点规则可表示为:
h * summation of f(a -(0.5 * h) + i*h)
其中h =(b - a)/ 2
写一个函数midpointint(f,a,b,n)来使用numpy sum函数计算中点规则 .
确保您的范围从1到n(包括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))
我的代码没有打印出正确的输出 .
1 回答
发布代码的问题是我们需要累积到输出:
value += ..
在开始时将其初始化为零 .您可以使用迭代器的范围数组进行矢量化,如下所示 -
样品运行 -