Python中的复数

复数一般表示为a+bi(a、b为有理数),在python中i被挪着它用,虚数单位是不区分大小写的J。


(笔记模板由python脚本于2023年12月19日 18:58:39创建,本篇笔记适合认识复数的coder翻阅)


【学习的细节是欢悦的历程】


  自学并不是什么神秘的东西,一个人一辈子自学的时间总是比在学校学习的时间长,没有老师的时候总是比有老师的时候多。
            —— 华罗庚


等风来,不如追风去……


复数a+bi(a、b为有理数)
Python中的复数
(在python中虚数单位是大或小写的J)


本文质量分:

97

本文地址: https://blog.csdn.net/m0_57158496/article/details/135091741

CSDN质量分查询入口:http://www.csdn.net/qc


目 录

  • ◆ Python中的复数
    • 1、缘起
    • 2、复数在python中的样子
      • 2.1 用虚数单位j书写
      • 2.2 complex函数构造
      • 2.3 复数对象的方法
    • 3、复数的简单运算
      • 3.1 加减乘除运算
      • 3.2 复数的 == 运算
    • 4、Python中的cmath模块
    • 5、参阅文章



◆ Python中的复数


1、缘起



  这个问题,激起了我对复数的兴趣,更想了解她在Python中的种种。🤪

  我搜索学习了复数的相关数学知识点,拜读过csdn大佬关于复数在python的文章,摘珠成串,以识备查,凝结此文。


复数定义

  • 一般地

复数可以分为两类数:实数、虚数

实数、虚数都是复数;不存在既是实数,又是虚数的复数;任何一个复数,不属于实数就属于虚数,二者必居其一。

我们把形如 z = a +bi (a、b均为实数)的数称为复数。

其中,a 称为实部,b 称为虚部,i 称为虚数单位,满足 i2 = −1。

当 z 的虚部 b=0 时,则 z 为实数;

当 z 的虚部 b≠0 时,实部 a=0 时,常称 z 为纯虚数。



  • Python中

1、虚数不能单独存在,它们总是和一个值为 0.0 的实数部分一起构成一个复数;
2、复数由实数部分和虚数部分构成;
3、表示复数的语法:real + (image)j;
4、实数部分和虚数部分都是浮点数;
5、虚数部分必须有后缀j或J。

  复数(Complex)是Python的内置类型,直接书写即可。换句话说,Python 语言本身就支持复数,而不依赖于标准库或者第三方库。

  复数由实部(real)和虚部(imag)构成,在Python中,复数的虚部以j或者J作为后缀,具体格式为:a + bj,a表示实部,b表示虚部。


  Python中虚部的单位是j而不是i,且反常地不分大小,大小写字母同质。



回页目录


2、复数在python中的样子


  复数在python中是 (a+bj) 或者 (a+bJ) 的形式,把虚数单位常用的字母i换成了j,且无一例外地不区分大小写字母,大小写效果、作用等同。要知道,python中一般都是“大小写字母敏感”的,大小写字母视为不同的对象。


2.1 用虚数单位j书写

  • 命令行试炼
    在这里插入图片描述
      如图所见,大小写字母j构造复数是一样的。

>>>
>>>
>>> z = 4+5j
>>> z2 = 8-4J
>>> z, z2
((4+5j), (8-4j))
>>> type(z), type(z2)
(<class 'complex'>, <class 'complex'>)
>>>


2.2 complex函数构造

  • 命令行试炼
    在这里插入图片描述
      如截屏图片,用python内建函数complex,也是可以在python中轻松构建复数对象的。

>>>
>>> z3 = complex(6, 9)
>>> z4 = complex(8, -2)
>>> z3,  z4
((6+9j), (8-2j))
>>> type(z3), type(z4)
(<class 'complex'>, <class 'complex'>)
>>>
>>>


2.3 复数对象的方法

  • 命令行试炼
    在这里插入图片描述
      如图,复数对象的real属性可以获取复数的实部,imag属性可以得到复数对象的虚部。这两个属性可以方便地支持我们在python中对复数对象进行想要的操作。

>>>
>>> z.real
4.0
>>> z.imag
5.0
>>> z
(4+5j)
>>> z3
(6+9j)
>>> z3.imag
9.0
>>> z3.real
6.0



回页目录


3、复数的简单运算


  一般地,两个复数只能说相等或不相等,而不能比较大小。如果两个复数都是实数,就可以比较大小,也只有当两个复数全是实数时才能比较大小。

  Python中的复数是由实部和虚部构成的数学对象。在Python中,可以使用后缀j或J来表示虚部,例如 1+2j 。复数在Python中支持常见的算术运算,如加法、减法、乘法和除法。

  首先是复数相等的定义:如果两个复数实部和虚部分别相等,我们就说这两个复数相等。

  数集的结构和数系的扩充:人们通常在数集上建立两种结构:运算结构与序结构。比较大小就是研究序结构。


3.1 加减乘除运算


  Python中的复数+、-、×、÷运算:+、-相对简单,就是分别对实部和虚部进行+、-运算,然后组合结果;×是相当于多项式相乘,合并实部和虚部、÷是分母实化,用×来运算。



运算法则

加减法法则
复数的加减法法则:设z1=a+bi,z2=c+di是任意两个复数。两者和的实部是原来两个复数实部的和,它的虚部是原来两个虚部的和。两个复数的和依然是复数。
在这里插入图片描述
乘法法则
复数的乘法法则:把两个复数相乘,类似两个多项式相乘,结果中i2=-1,把实部与虚部分别合并。两个复数的积仍然是一个复数。
在这里插入图片描述
除法法则
运算方法:将分子和分母同时乘以分母的共轭复数,再用乘法法则运算。
在这里插入图片描述

【详见复数百科词条】


  • 代码运行效果截屏图片
    在这里插入图片描述

    复数不可以比较复数大小,除非虚部为零(即只有实部的复数)
    在这里插入图片描述

Python代码


a = 4.6 + 5.2j
b = 6.9 - 2.2J

print(f"\n有复数 a = {a},b = {b}\n\n type(a) = {type(a)}\n type(b) = {type(b)}\n\n a + b = {a + b}\n a - b = {a - b}\n a × b = {a * b}\n a / b = {a / b}")
#a > b # 不可以比较复数大小,除非虚部为零(即只有实部的复数)。


  • 复数相乘试炼

    样例①:
    在这里插入图片描述
    样例②:
    在这里插入图片描述

试炼代码

#!/sur/bin/nve python
# coding: utf-8
z = 4-3j
z2 = complex(9, 7)
a, b = z.real, z.imag
c, d = z2.real, z2.imag

s = '''
两复数相乘(多项式相乘):

∵  (a + bj)(c + dj)
  = ac + bcj + adj + bdj^2
'''
newReal = a*c + b*d*(-1)
newImag = b*c + a*d
print(f"\n有俩复数:{z}, {z2}\n\n{s}\n∴ {z}×{z2} 的结果:\n  实部 {a}×{c} + {b}×{d}×(-1) = {newReal}\n  虚部 {b}×{c} + {a}×{d} = {newImag}\n\n所以 {z}×{z2}j = {newReal}{newImag if newImag < 0 else f'+{newImag}'}j\n\n∵ Python计算:\n {z}×{z2} = {z*z2}\n\n∴ {f'{newReal}+{newImag}j'} == {z}{z2} is {eval(f'{newReal}+{newImag}j') == z*z2}")



回页目录


3.2 复数的 == 运算


  Python中的复数 == 运算。
  • 代码运行效果截屏图片
    在这里插入图片描述

Python代码


a = 6.6 + 0.2j
b = 9.9 - 9.2J

print(f"\n有复数 a = {a},b = {b}\n\na == b is {a == b}\n\n(7-6)+3j == (7-6)+3j is {(7-6)+3j == (7-6)+3j}")



回页目录



4、Python中的cmath模块


  Python中有专门为复数准备了复杂数学运算的模块,可以进行开平方、对数、三角函数等相对复杂的复数数学运算。


  • 命令行简单试用cmath模块效果
    在这里插入图片描述



回页目录


5、参阅文章




回页首


上一篇:  身份证编码校验(一道校验居民身份证编码校验码的小题,触发了我对我国第二代身份证整串编码的探究:校验成功,解读编码信息)
下一篇: 



我的HOT博:

  本次共计收集289篇博文笔记信息,总阅读量44.72w。数据采集于2023年12月11日 23:07:13,用时5分11.8秒。阅读量不小于4.0k的有17篇。

    评论 3
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包

    打赏作者

    梦幻精灵_cq

    你的鼓励将是我创作的最大动力

    ¥1 ¥2 ¥4 ¥6 ¥10 ¥20
    扫码支付:¥1
    获取中
    扫码支付

    您的余额不足,请更换扫码支付或充值

    打赏作者

    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值