在同情中获得复杂表达式的系数

问题描述 投票:3回答:1

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

python sympy complex-numbers
1个回答
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
© www.soinside.com 2019 - 2024. All rights reserved.