尝试使用 quad 集成功能时遇到问题。本质上,我有两个版本的代码,我在不同的地方定义了 t(a)。这两个代码对我来说看起来一样,但我得到的结果略有不同。
我猜这是由于使用 quad 方法相关的错误,但不太确定。将不胜感激任何帮助!
import numpy as np
from scipy.integrate import quad
s = 0.05
# Version 1
def POi1(w):
def t(a):
return (1/(0.27*a**(-1)+(1-0.27)*a**(-3*w-1))**(1/2))
return (np.exp(-((1+w)**2)/(2*s**2))*(1/(quad(t, 0, 1)[0]+((2/3)*(1/(np.abs(1+w)*1*(1-0.27)**2))))))
PO1 = quad(POi1, -np.inf, -1)[0]
print(PO1)
#Version 2
def t(a):
return (1/(0.27*a**(-1)+(1-0.27)*a**(-3*w-1))**(1/2))
def POi1(w):
return (np.exp(-((1+w)**2)/(2*s**2))*(1/(quad(t, 0, 1)[0]+((2/3)*(1/(np.abs(1+w)*1*(1-0.27)**2))))))
PO1 = quad(POi1, -np.inf, -1)[0]
print(PO1)