我有一个四阶多项式方程,我需要找到所有的根。 简单的例子:SymPy无法求解四阶多项式方程
from sympy import (Symbol,solve,I)
a=4+5*I; b=3+7*I; c=12-56*I; d=33+56*I; e=345-67*I; x=Symbol('x')
eq=a*x**4 + b*x**3 + c*x**2 + d*x +e
solve(eq,x)
如果A,B,C,d,e为纯实,然后 它工作得很好。 但在我的情况下,他们都是复杂的数字。然后,我没有得到拨打:
PolynomialError: 'cannot return general quartic solution'
我找到一种类似的问题,并实现修复: Description of the issue。 Fix of the issue
但它并没有真正的帮助。有某种奇怪的问题,因为现在的呼叫(如在修复更改):
PolynomialError: Cannot determine if `-((12 - 56*I)/(4 + 5*I) - 3*(3 + 7*I)**2/(8*(4 + 5*I)**2))**2/12 + (3 + 7*I)*((33 + 56*I)/(4*(4 + 5*I)) + (3 + 7*I)*(3*(3 + 7*I)**2/(256*(4 + 5*I)**2) - (12 - 56*I)/(16*(4 + 5*I)))/(4 + 5*I))/(4 + 5*I) - (345 - 67*I)/(4 + 5*I)` is nonzero.
但是,以确定是否上面的表达式是非零的是最简单的事,所以不知道问题出在哪里可能。
后,我更新0.7.6(使用Python 3.4)有不同的错误按摩sympy :__nonzero__中的第103行:raise TypeError(“无法确定\ n%s的真实值”%self) – K4stan 2015-02-06 19:17:05
看起来像这是一个bug,已在git版本的SymPy中修复。 – asmeurer 2015-02-06 21:40:15
我使用python的anaconda分布。是否有可能更新到这个git版本,或者我必须重写一些脚本? – K4stan 2015-02-07 12:19:37