用abs()内的虚数求解SymPy方程

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

我正在尝试用 SymPy 求解方程,其中绝对值函数内部有一个复数变量。

s=smp.symbols('s')
K=10
OLTF_sympy=4/(s**2+2*s)

omega_c=smp.symbols('omega_c')
Eq2=smp.Eq(float(K)*abs(OLTF_sympy.subs(s,1j*omega_c))-10*smp.log(alpha),0)
display(Eq2)
sol2=smp.solve(Eq2,omega_c)
omega_c=abs(sol2[0])
display(omega_c)

我收到此错误: NotImplementedError:当参数不是实数或虚数时,求解 Abs(1.0omega_c**2 - 2.0I*omega_c)。

如何使用 SymPy 求解这个方程?

python sympy
1个回答
0
投票

您需要为符号分配假设:

from sympy import *
s=symbols('s')
K=10
OLTF_sympy=4/(s**2+2*s)

alpha = symbols("alpha")
omega_c = symbols('omega_c', real=True)
Eq2 = Eq(K * abs(OLTF_sympy.subs(s,I*omega_c))-10*log(alpha),0)
display(Eq2)
sol2 = solve(Eq2, omega_c)
omega_c = abs(sol2[0])
display(omega_c)
© www.soinside.com 2019 - 2024. All rights reserved.