Получение коэффициентов комплексных выражений в симп - PullRequest
3 голосов
/ 31 марта 2019

У меня есть относительно простое сложное выражение sympy, из которого можно легко прочитать коэффициенты из переменных.Однако, кажется, что функция coeff работает неправильно

import sympy as sp

a,b =  sp.symbols("a, b")

expr = 2640.0*a  - 4.5*(1 + 1j)*(264.0*a + 264.0*b) - 4.5*(+1 - 1j)*(264.0*a  + 264.0*b)

print(expr.coeff(a))

> 2640.00000000000

print(sp.simplify(expr))

> 264.0*a - 2376.0*b

Я ожидаю, что результат expr.coeff (a) вернет 264.0, но это явно не так?Любая помощь приветствуется.

1 Ответ

0 голосов
/ 31 марта 2019

Ваше первое выражение имеет 2640.0 в качестве коэффициента a.Как видите, коэффициент становится равным нулю только после его упрощения.Действительно, если вы напечатаете коэффициент после упрощения выражения, вы получите 264.0

import sympy as sp

a,b =  sp.symbols("a, b")

expr = 2640.0*a  - 4.5*(1 + 1j)*(264.0*a + 264.0*b) - 4.5*(+1 - 1j)*(264.0*a  + 264.0*b)

print(expr.coeff(a))
# 2640.00000000000

print(sp.simplify(expr))
# 264.0*a - 2376.0*b

print(sp.simplify(expr).coeff(a)) # <--- Simplified expression
# 264.000000000000
...