python中如何实现带复数的变量计算

img


关于这个式子如何中,的e参数和复数应该怎么表示。麻烦能帮我一下。急

建议使用sympu库的符号计算:

from sympy import exp
from sympy import symbols, exp, sqrt
I1, I2, I3, KT = symbols("I1 I2 I3 KT")
j = 1j # 构造复数
φ1, φ2, φ3 = symbols('φ1 φ2 φ3')  # 构造各参数
I = (I1*exp(-j*φ1)+I2*exp(-j*(-120**02))+I3*exp(-j*(120**03)))/(sqrt(3)*KT)
I

在notebook中测试通过:

img

可以根据原始公式稍作调整, 应该就符合你的需求啦


import math

print(math.e)
a = 6 + 0.6j #定义复数
print(a.real)  #a的实部
print(a.imag)  #a的虚部

Python自带复数类型complex,比如,构造2+3j的复数对象,下面两种方法都可以:

>>> a = 2 + 3j
>>> b = complex(2, 3)
>>> type(a), type(b)
(<class 'complex'>, <class 'complex'>)
>>> a == b
True

不过,要是做复数计算,math模块就不好用了(marh.exp不支持复数),建议使用numpy模块。题主的问题,应该是根据kt, i1,i2,i3,phi1,phi2,phi3等参数计算电流i,图中的120后面的上标圆圈应该是角度(°)吧?写成函数如下:

>>> import numpy as np
>>> def get_i(kt, i1, i2, i3, p1, p2, p3):
    return (i1*np.exp(-1j*p1) + i2*np.exp(-1j*(-120+p2)) + i3*np.exp(-1j*(120+p3))) / (kt*np.power(3, 1/2))