我有一个模式,X的最大值和最小值(Xmin
和Xmax
)以及置信度百分比(percentage
)。
我想使用以下函数来查找理论日志正态分布的μ
和σ
:
累积分布函数:
和模式
我决定将它解决为一组方程式。在示例中,我使用mode
,percentage
,Xmin
和Xmax
from sympy import *
def CalcScaleParamSET (mode, percentage, Xmin, Xmax):
s = Symbol('s', Real=True)
mu = Symbol('mu', Real =True)
eqn1 = (1/2+1/2*erf((log(Xmax)-mu)/sqrt(2)*s)-1/2-1/2*erf((log(Xmin)-mu)/sqrt(2)*s)) -percentage
eqn2 = (exp(mu-s**2)) - mode
eqns = [eqn1, eqn2]
ans = linsolve(eqns, s, mu)
print(ans)
CalcScaleParamSET(2, 0.95, 1, 4)
这会返回EmptySet()
,这意味着sympy无法找到等式的解。我无法弄清楚我做错了什么,是数学问题还是代码问题?我写了一个matlab脚本来执行相同的任务,它能够得到μ
和σ
的单个数值。