Симпи: Уравнение равно нулю => Как убрать знаменатель и получить факторы? - PullRequest
0 голосов
/ 23 декабря 2018

После некоторых вычислений комплексного числа z_re и его сопряженного z (bar) _re я получаю следующие уравнения:

equations

Я упрощаю и расширяю и получаю второе илитреть из трех уравнений с картинки.Это похоже почти на то, чего я хочу достичь.

Моя цель - уравнение вида: A*z_re*z(bar)_re + B*z_re + C*z(bar)_re + D = 0.

Как мне избавиться от знаменателя второго уравнения (уравненияравен нулю) и извлечь коэффициенты A, B, C и D из уравнения?Для приведенного выше примера результат должен быть: A = 3, B = -1, C = -1 и D = 0

1 Ответ

0 голосов
/ 26 декабря 2018

Вот код, который будет делать то, что вы просите.По сути, я просто выразил ваше уравнение, вычислил его так, чтобы оно было в форме <some_fraction> = 0, и получил числитель той дроби, который вам нужен.

from sympy import *
z_re = Symbol('z_re',Complex=True)
z_re_c = conjugate(z_re)

e1 = Mul(z_re,Pow(Add(z_re,Integer(-1)),Integer(-1)))
e2 = Mul(z_re,z_re_c,Pow(Add(z_re,Integer(-1)),Integer(-1)),Pow(Add(z_re_c,Integer(-1)),Integer(-1)))
e3 = Mul(z_re_c,Pow(Add(z_re_c,Integer(-1)),Integer(-1)))
e4 = Add(e1,e2,e3)

e5 =e4.factor()
e6 = fraction(e5)[0] # just the numerator
...