擅长:python、mysql、java
<p>我认为0.002西格玛的高斯函数对于求积来说太过尖峰了:Scipy忽略了这个非常小的峰值,到处都是零。您有两种解决方案:</p>
<ul>
<li><p>σ</supi>函数</li>
<li><p>把积分分成许多部分。下面是一个计算从-无穷到-4*sigma,然后从-4*sigma到4*sigma,再从4*sigma到无穷大的积分:</p></li>
</ul>
<pre><code>def integral(self, a, b, c, d):
integration =0
nsigmas=4
for intervalx in [(a,-nsigmas*sigmax),(-nsigmas*sigmax,nsigmas*sigmax),(nsigmas*sigmax,b)]:
for intervaly in [(c,-nsigmas*sigmay),(-nsigmas*sigmay,nsigmas*sigmay),(nsigmas*sigmay,d)]:
integration+= sci.dblquad(self.value, intervalx[0], intervalx[1], lambda x: intervaly[0], lambda x: intervaly[1],
epsrel = 1e-9, epsabs = 0)[0]
# sci.quad_explain()
return integration
</code></pre>
<p>我得到这个输出:</p>
^{pr2}$