高斯积分在使用quad函数进行计算时出现突然下降

3

我正在尝试从负无穷积分 u -> exp(-u²/2) 到 x。当我绘制该函数时,它在21左右突然下降,并且在36左右降至0,而它应该大致保持在2.5左右。你如何解释这个现象?

import numpy as np
from scipy.integrate import quad
import matplotlib.pyplot as plt

def intExp(x):
    return quad(lambda u: np.math.exp(-u*u/2),-np.Inf, x, full_output=0)

def plot(a,b, u, v,s):
    plt.close()
    t = np.arange(a,b,s)
    plt.plot(t , map(intExp,t))
    plt.axis([a, b, u, v])
    plt.show()

plot(-10, 50, -1, 3, 1)

感谢您的帮助!
1个回答

3
与步长有关。将epsabs从默认值更改为1e-9可行:
import numpy as np
from scipy.integrate import quad
import matplotlib.pyplot as plt

def intExp(x):
    return quad(lambda u: np.math.exp(-u*u/2),-np.Inf, x, full_output=0,epsabs=1e-9)

def plot(a,b, u, v,s):
    plt.close()
    t = np.arange(a,b,s)
    plt.plot(t , map(intExp,t))
    plt.axis([a, b, u, v])
    plt.show()


plot(-10, 50, -1, 3, 1)

非常感谢您的帮助! - hokkaidi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接