笔者本身是电气工程及其自动化专业出身,在平时的工作学习过程中,经常需要进行复数的运算以及矩阵相关的运算,但是奈何我实在是用不习惯matlab,一方面,matlab软件动辄十几个G这么大;另一方面,并且在嵌入式系统或者树莓派之类的系统上,更是不可能安装matlab这样的软件,因此,笔者便着手于Python语言的科学计算能力的探索。
复数运算
在数学上,形如a + bi 或者在工程上形如 a + bj的数叫做复数,a称为实部,b称为虚部。
在python语言中,遵循工程上的定义形式,直接在python文本中输入
x = 1 + 1j
不需要额外引入任何库文件,直接这样输入就实现了复数变量的定义
print(type(x))
print(x)
通过print方法我们输出变量x的数据类型和x变量的值
(1+1j)
输出结果如上图所示,不难发现,变量x属于python中的复数类型。特别值得注意的是
1、虚数不能单独存在,它们总是和一个值为 0.0 的实数部分一起构成一个复数
2、复数由实数部分和虚数部分构成
3、表示虚数的语法:re+im j
4、实数部分和虚数部分都是浮点数
5、虚数部分必须有后缀j或J
这样我们就可以把复数当作普通的数值进行运算了。
但是很多时候,我们可能需要求得某个复数的共轭复数或者模值甚至是转换为极坐标形式。
求共轭复数
对于python内置的complex类来说,可以通过调用conjugate()方法求得某个复数的共轭复数
x = 1 + 1j
y = x.conjugate()
print(y)
这样我们就可以得到
(1-1j)
符合我们的预期
求复数模值
通过调用python内置的complex类里面的__abs__()方法,可以得到某个复数的模值
x = 1 + 1j
y = x.__abs__()