问题描述
嗨,谁能帮我修复这个代码,提前致谢
from scipy.integrate import quad
import math
import numpy as np
from scipy import stats
lognorm_mu = 17.79
lognorm_sigma = 0.81
def integrand(x):
return stats.lognorm.pdf(x,s= lognorm_sigma,scale=math.exp(lognorm_mu)) * x
我期待的结果是:
print(math.exp(lognorm_mu + lognorm_sigma ** 2 / 2)) ==> 73887187.89137973
但是我得到了这个输出:
print(quad(integrand2,-np.inf,np.inf)[0]) =-> 8.373817736767941e-43
我如何编辑我的被积函数以进行积分(xf(x)dx,-inf,+inf)?如果我要做积分(x^2f(x)dx,-inf,+inf) 呢?
解决方法
您可能正在寻找 .expect
方法:norm.expect(lambda x : x**2)
等