获取 sympy 中复数表达式的系数

sha*_*252 6 python sympy complex-numbers

我有一个相对简单的复杂 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
Run Code Online (Sandbox Code Playgroud)

我希望 expr.coeff(a) 的输出返回 264.0 但显然不是?任何帮助表示赞赏。

She*_*ore 0

您的第一个表达式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
Run Code Online (Sandbox Code Playgroud)