Я пытаюсь символически решить многочлен с комплексными числами и их сопряженными с SymPy. Я думаю, что проделал долгий путь, но solve
не дает мне никаких решений, хотя полином разрешим.
from sympy import *
# set up symbols
a, b = symbols("a b", real=True)
t = a+I*b
T = functions.conjugate(t)
# set up polynomial
a1=0.005+I*0.0009
a2=0.9+I*-0.9
a3=0.4+I*0.5
a4=8+I*-80
a5=284+I*-1.5
a6=27100+I*-11500
poly=t**2 * T * a1 + t * T * a2 + t**2 * a3 + T * a4 + t * a5 + a6
# Trying to solve symbolically...
solve([re(poly), im(poly)], a, b)
# Output: []
# Solving numerically works, but only finds one solution...
nsolve((re(poly), im(poly)), (a, b), (0, 0))
# Output: matrix(
# [['-137.962596090596'],
# ['52.6296963395752']])
# verify with two solutions obtained in Maxima
poly.subs({a:-137.9625935162095, b:52.6296992481203}).n()
# Output: 0.000540354631040322 + 0.00054727003909351*I
poly.subs({a:-332.6474382554614+I*-185.9848818313149, b:258.0065640091016+I*-272.3344263478699}).n()
# Output: -6.55448222470652e-12 - 1.41238056784605e-12*I
Любые идеи?
a_0 z^0 + a_1 z^1 + ...
. У вас есть такие термины, какa_1 z^2 z*
, т.е. членa1
умножается на его комплекс conj. Если бы у вас был полиномиальный mpmath от sympy, он должен работать отлично docs.sympy.org /dev/modules/mpmath/calculus/polynomials.html - person Hooked   schedule 05.04.2013a
иb
как реальные, поэтомуsolve()
дал бы вам только те значенияa
иb
, которые реальны. - person asmeurer   schedule 05.04.2013