我正在编写一个涉及解决这个等式的代码
X = solve(Theta_Mod_Eqn*Ramp_Equation/(x+PT) - C, x)
我正在使用sympy库,现在这个等式有7个根,很少是复杂的,很少是真实的。我无法隔离它们,因为isinstance(i,complex)
总是返回true
for i in X:
if not isinstance(i,complex):
if (i>-0.01 and i<maxSheaveDisp):
A = i;
一例 i = -0.000581431210287302 - 0.2540334478167 * I
In:i == complex
Out[39]: False
如何确定变量是否复杂?
答案 0 :(得分:2)
实数集是复数集的子集。所以,每个实数都是一个复数。例如,3是复数。
要问的正确问题是如何确定根是否真实。为此,如果我是SymPy符号,您可以使用i.is_real
:
for i in X:
if i.is_real:
if (i>-0.01 and i<maxSheaveDisp):
A = i
还可以比较im(i) to 0
:im(i) == 0
。这也适用于Python浮点数。