【发布时间】:2013-02-19 01:56:38
【问题描述】:
我正在使用 sympy 求解多项式:
x = Symbol('x')
y = solve(int(row["scaleA"])*x**3 + int(row["scaleB"])*x**2 + int(row["scaleC"])*x + int(row["scaleD"]), x)
y 是可能解决方案的列表。但是,我需要忽略想象中的,只使用真正的解决方案。另外,我希望将解决方案作为值而不是表达式。现在它看起来像:
[-2/3 - 55**(1/3)*(-1/2 - sqrt(3)*I/2)/3, -2/3 - 55**(1/3)*(-1/2 + sqrt(3)*I/2)/3, -55**(1/3)/3 - 2/3]
我需要最后一个表达式的值 (-2.22756)。 sympy 中是否有函数可以简化这一点?
【问题讨论】:
-
如果您只对根的浮点/双精度近似感兴趣,SymPy 很可能不是正确的库。如果您使用 numpy/scipy,您可能会获得更好的性能和更简单的代码。如果你选择 sympy 而不是 numpy/scipy 因为它更小,你可以使用 mpmath 变得更小,它在 sympy 中用于数字(任意精度不受机器限制)