Python程序设计——复数运算(包括极坐标转换)

笔者本身是电气工程及其自动化专业出身,在平时的工作学习过程中,经常需要进行复数的运算以及矩阵相关的运算,但是奈何我实在是用不习惯matlab,一方面,matlab软件动辄十几个G这么大;另一方面,并且在嵌入式系统或者树莓派之类的系统上,更是不可能安装matlab这样的软件,因此,笔者便着手于Python语言的科学计算能力的探索。

复数运算

在数学上,形如a + bi 或者在工程上形如 a + bj的数叫做复数,a称为实部,b称为虚部。
在python语言中,遵循工程上的定义形式,直接在python文本中输入

x = 1 + 1j

不需要额外引入任何库文件,直接这样输入就实现了复数变量的定义

print(type(x))
print(x)

通过print方法我们输出变量x的数据类型和x变量的值

<class 'complex'>
(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__()
print(y)

这样我们就得到了模值

1.4142135623730951

将复数进行标准形式与极坐标模式的互换

目前在python内置的complex类型中,没有办法直接通过调用方法进行互换,因此我们需要引入cmath标准库。

from cmath import *

引入完cmath标准库之后,就可以调用rect()方法和polar()方法,前者是将一个极坐标形式的复数转换为标准形式的复数;后者是将一个标准形式的复数转换为极坐标形式的复数

x = 1 + 1j
a = polar(x)
print(a)

上面的代码可以将变量x转换为极坐标形式的复数,其输出结果如下所示:

(1.4142135623730951, 0.7853981633974483)

返回值是一个元组类型,第一项是模值,第二项是相角,相角采用的是弧度制,这一点需要特别注意!

接下来我们尝试将极坐标形式的复数转换为标准形式的复数,因此我们需要调用rect()方法,这个方法需要接收两个参数,第一个参数是幅值,第二个参数是相角,这里面的相角也是弧度制,例如下面的代码将上面例子中的极坐标形式的变量a转换为标准形式的复数

x = 1 + 1j
a = polar(x)  # 转换为极坐标形式
b = rect(a[0], a[1])  # 转换为标准形式
print(b)  # 输出变量b的值
print(type(b))  # 输出变量b的类型

输出结果如下所示:

(1.0000000000000002+1.0000000000000002j)
<class 'complex'>

可以看到输出结果符合预期,至于并不绝对等于原来x变量的原因还是因为计算机对浮点数的精度影响,实际使用过程中忽略就可以了。
通过输出变量b的类型,我们发现变成了python内置的complex类型,因此可以继续参与后续的数学运算了!

本教程持续更新!欢迎点赞关注!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342

推荐阅读更多精彩内容