sympy 中的复数

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

我正在将 lcapy 与 sympy 一起使用,并尝试处理电路中的复数。

我有以下同情表达:

import sympy
from lcapy import j

expr = sympy.parse_expr('L*w_0*(C*R*w_0 - I)')
expr

输出:

L⋅w₀⋅(C⋅R⋅w₀ - ⅉ)
上面的

expr
是一个复数表达式,其中
是虚数。我可以使用 sympy 并从
expr
中删除括号,以便以更规范的复数形式查看它吗?

w₀^2⋅R⋅L⋅C - ⅉ⋅w₀⋅L
sympy 支持处理复数吗?我想得到 

expr

 的参数应该是:

arctan(L⋅w₀ / w₀^2⋅R⋅L⋅C)
    
sympy lcapy
1个回答
2
投票
我可以(在

isympy

会议中):

In [13]: expr Out[13]: L⋅w₀⋅(C⋅R⋅w₀ - ⅈ) In [14]: expr.expand() Out[14]: 2 C⋅L⋅R⋅w₀ - ⅈ⋅L⋅w₀
编辑

尝试

atan2(im(expr), re(expr))

https://docs.sympy.org/latest/modules/functions/elementary.html

细化变量:

In [53]: C,L,R,w_0=symbols('C L R w_0',real=True, positive=True) In [54]: expr=L*w_0*(C*R*w_0-I) In [55]: expr Out[55]: L⋅w₀⋅(C⋅R⋅w₀ - ⅈ) In [56]: expr.expand() Out[56]: 2 C⋅L⋅R⋅w₀ - ⅈ⋅L⋅w₀ In [57]: im(_),re(_) Out[57]: ⎛ 2⎞ ⎝-L⋅w₀, C⋅L⋅R⋅w₀ ⎠
现在 

atan2

 已简化:

In [59]: atan2(*_) Out[59]: ⎛ 1 ⎞ -atan⎜──────⎟ ⎝C⋅R⋅w₀⎠
并且 

arg

 也做同样的事情:

In [60]: arg(_56) Out[60]: arg(C⋅R⋅w₀ - ⅈ) In [62]: arg(expr) Out[62]: arg(C⋅R⋅w₀ - ⅈ) In [77]: arg(expr)._eval_rewrite_as_atan2(expr) Out[77]: ⎛ 1 ⎞ -atan⎜──────⎟ ⎝C⋅R⋅w₀⎠
    
© www.soinside.com 2019 - 2024. All rights reserved.