У меня есть полиномиальное уравнение 4-го порядка, и мне нужно найти все корни. Простого пример:SymPy не может решить уравнение многочлена 4-го порядка
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)
Если, б, в, д, е чисто вещественный, то это работает просто отлично. Но в моем случае все они являются комплексными числами. Тогда я действительно получил следующее:
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 0.7.6 (с помощью питона 3.4) есть разные массаж ошибка : строка 103 в __nonzero__: raise TypeError («не может определить значение истинности \ n% s»% self) – K4stan
Похоже, что это ошибка, которая была исправлена в git-версии SymPy. – asmeurer
Я использую anaconda распространение python. Можно ли как-то обновить эту версию git, или мне нужно переписать некоторые скрипты? – K4stan