我有一个四阶多项式方程,我需要找到所有的根。 简单示例:
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.
但是判断上面的表达式是否非零是最简单的事情,所以不知道问题出在哪里。
最佳答案
升级到支持任意四次解的最新版本的 SymPy。
关于python - SymPy 无法求解四阶多项式方程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28366635/