我有一个相对简单的复杂的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,但显然不是吗?任何帮助表示赞赏。
你的第一个表达式有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