尝试了许多方法后,我认为在 SO 上寻求帮助是个好主意。我的问题很简单:如何使用 Sympy 解决以下方程?
我想要解出 lambda_0 的值,并且 q 是一个大小为 J 的数组,其中包含介于 0 和 1 之间的元素,这些元素相加等于 1(离散概率分布)。我尝试了以下方法:
from sympy.solvers import solve
from sympy import symbols, summation
p = [0.2, 0.3, 0.3, 0.1, 0.1]
l = symbols('l')
j = symbols('j')
eq= summation(j*q[j]/(l-j), (j, 0, 4))
s= solve(eq, l)
但是使用
j
作为下标会导致错误,因为在这里j
是一个Symbol
对象而不是一个整数。如果我不将j
作为符号进行处理,我就无法评估eq
表达式。有人知道如何解决吗?编辑:在上述代码中,
p = 1-q
,因此应该将q[j]
替换为(1-p[j])
。