我试图使用Sympy 0.7.4.1来评估正常随机变量函数的期望
a, mu = symbols('x mu', real=True)
sigma = symbols('sigma', positive=True)
X = Normal("X", mu, sigma)
expr1 = (sigma**2 - (X-mu)**2)
print E(expr1)
由于我从自身中减去差异,因此预期为0。现在我将expr
乘以常量1/a
expr2 = (sigma**2 - (X-mu)**2)/a
print E(expr2)
同样,这给出了预期的0。
但是,如果我将expr
乘以因子1/(a-1)
,
expr3 = (sigma**2 - (X-mu)**2)/(a-1)
print E(expr3)
Sympy返回未评估的积分而不是0.
Integral(sqrt(2)*(sigma**2 - (X - mu)**2)*exp(-(X -
mu)**2/(2*sigma**2))/(2*sqrt(pi)*sigma*(x - 1)), (X, -oo, oo))
由于a
是一个任意常数,为什么expr2
和expr3
的期望不同?
签入Mathematica,相当于
Expectation[(\[Sigma]^2 - (\[Mu] - X)^2)/(a - 1),
X \[Distributed] NormalDistribution[\[Mu], \[Sigma]]]
按预期给出0。