Ich habe eine Polynomgleichung der 4. Ordnung und muss alle Wurzeln finden. Einfaches Beispiel:SymPy kann die Polynomgleichung der 4. Ordnung nicht lösen
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)
Wenn a, b, c, d, e sind reine real, dann es gut funktionieren. Aber in meinem Fall sind alle von ihnen komplexe Zahlen. Dann habe ich rufen erhalten:
PolynomialError: 'cannot return general quartic solution'
Ich Art von ähnlichem Problem finden und implementieren, die fix: Description of the issue. Fix of the issue
aber es hilft nicht wirklich. Es gibt eine Art seltsamen Problem, wie es jetzt den Anruf (wie in dem Update geändert):
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.
Aber um zu bestimmen, ob die Expression über ungleich Null ist, ist die einfachste Sache, also nicht wissen, wo das Problem könnte sein.
Nachdem ich aktualisiere 0.7.6 (mit Python 3.4) sympy gibt es verschiedene Fehler Massage : Zeile 103 in __nonzero__: raise TypeError ("kann Wahrheitswert von \ n% s"% self nicht bestimmen) – K4stan
Sieht aus wie dies ein Fehler ist, der in der Git-Version von SymPy behoben wurde. – asmeurer
Ich benutze Anaconda Verteilung von Python. Kann ich irgendwie auf diese Git-Version updaten, oder muss ich einige Skripte neu schreiben? – K4stan