0
この関数は0からinfまで正の値をとります。なぜなら、1000より大きい値は0になり、それは合理的ではありません。なぜintegrate.quad(λx:x * exp(-x ** 2/2)/ sqrt(2 * pi)、0.0、100000)は0を返すのですか?
import scipy.integrate as integrate
from math import *
integrate.quad(lambda x: x*exp(-x**2/2)/sqrt(2*pi), 0.0, 1000)
Out[52]:
(0.3989422804014328, 1.6471510195390376e-11)
integrate.quad(lambda x: x*exp(-x**2/2)/sqrt(2*pi), 0.0, 100000)
Out[54]:
(0.0, 0.0)
これを修正する方法はありますか? – Pythoner
一般的に、任意の関数のためにそれを修正しますか?私は方法を知らない。 'quad'(あるいは任意の数値積分アルゴリズム)を効果的に使うための関数の動作について少し知っておく必要があります。この特定の関数に対して修正したいのであれば、単に 'quad'を使うのではなく、積分の解析式を使うことができます。 –