继上一篇文章之后,我想执行以下操作以使用 sympy.stats 对逆伽马分布进行加权混合:
%matplotlib inline
from matplotlib import pyplot as plt
from sympy.stats import GammaInverse, density
import numpy as np
f1 = 0.7; f2 = 1-f1
G1 = GammaInverse("G1", 5, 120/(5.5*2.5E-7))
G2 = GammaInverse("G2", 4, 120/(5.5*1.5E-7))
G3 = f1*G1 + f2*G2
D1 = density(G1);
D2 = density(G2);
D3 = density(G3);
v1 = [D1(i).evalf() for i in u]
v2 = [D2(i).evalf() for i in u]
v3 = [D3(i).evalf() for i in u]
不幸的是,这个错误在D3 = density(G3)
,错误结束于
PolynomialDivisionFailed: couldn't reduce degree in a polynomial
division algorithm when dividing [231761.370742578/(0.0011381138741823*G2**2 -
0.007587425827882*G2*_z + 0.0126457097131367*_z**2), 0.0]
by [263.770831541635/263.770831541635, 0.0].
This can happen when it's not possible to detect zero in the coefficient domain.
The domain of computation is RR(G2,_t0,_z). Zero detection is guaranteed in this
coefficient domain. This may indicate a bug in SymPy or the domain is user defined
and doesn't implement zero detection properly.
有办法解决这个问题吗?
塔。