求解复杂三角方程中的 x

Solving for x in a complex trigonometric equation

我需要编写一个脚本来求解复数三角方程中的变量,我该如何求解?

到目前为止,我尝试使用 sympy 的 Eq 函数输入我需要从中分离出 x 的方程,然后使用 solve/solveset 函数,但这不起作用。我已经通过代数手工隔离了,但我想知道是否有可能计算它的值而不必输入变量的隔离方程。

import cmath
from sympy import *

x = symbols('x')
Zl = complex(20, -10)
Z0 = 75

pl = abs((Zl - Z0)/(Zl + Z0))
SWR = (1 + pl)/(1 - pl)

eq = Eq(SWR, (Zl + 1j*(Z0*SWR*cmath.tan(2*cmath.pi*x)))/(Z0 + 1j*(Zl*SWR*cmath.tan(2*cmath.pi*x))))
m = solve(eq)
print(m)

我希望输出是 (-0.22734187163019368+7.138384643986063e-18j),这是我通过手工求解得到的结果。 (m = cmath.atan(1j*(Z0*SWR-Zl)/(Zl*SWR - Z0))/(2*cmath.pi))

我收到以下错误:

Traceback (most recent call last):
  File "C:/Users/juank/PycharmProjects/TXScripts/solveM_givenSWR.py", line 16, in <module>
    eq = Eq(SWR, (Zl + 1j*(Z0*SWR*cmath.tan(2*cmath.pi*x)))/(Z0 + 1j*(Zl*SWR*cmath.tan(2*cmath.pi*x))))
  File "C:\Users\juank\PycharmProjects\TXScripts\venv\lib\site-packages\sympy\core\expr.py", line 285, in __complex__
    return complex(float(re), float(im))
  File "C:\Users\juank\PycharmProjects\TXScripts\venv\lib\site-packages\sympy\core\expr.py", line 280, in __float__
    raise TypeError("can't convert expression to float")
TypeError: can't convert expression to float

尽量不要将 cmathsympy 一起使用。将所有 cmath 函数替换为它们的 sympy 等效函数。 sympy 有自己的三角函数。 cmath 版本需要浮动。

我更喜欢显式导入,这样我就知道我正在使用哪个库,例如:

from sympy import tan as sy_tan, symbols, complexas 可选)

常用命名函数的命名空间问题总是会产生问题。