擅长:python、mysql、java
<p>我不知道你希望你的代码符合w.r.t.布尔法则。为什么要对函数的样本求和(即<code>np.sum(fN[2:-3:4])</code>)?我认为你的<code>N</code>参数也没有很好的定义,我不确定它应该代表什么。也许你在用另一条我不熟悉的规则:我让你决定。你知道吗</p>
<p>不管怎样,这里有一个布勒规则的实现,正如维基百科所定义的。变量映射到您链接的Wikipedia版本:</p>
<pre><code>def integ_boole(func, left, right):
h = (right - left) / 4
x1 = left
x2 = left + h
x3 = left + 2*h
x4 = left + 3*h
x5 = right # or left + 4h
result = (2*h / 45) * (7*func(x1) + 32*func(x2) + 12*func(x3) + 32*func(x4) + 7*func(x5))
return result
</code></pre>
<p>然后,测试:</p>
<pre><code>import numpy as np
print(integ_boole(np.sin, 0, np.pi))
</code></pre>
<p>输出<code>1.9985707318238357</code>,非常接近<code>2</code>的正确答案。你知道吗</p>
<p>嗯。你知道吗</p>