python:cmath --- 关于复数的数学函数

  • 到极坐标和从极坐标的转换
  • 幂函数与对数函数
  • 三角函数
  • 双曲函数
  • 分类函数
  • 常量

这一模块提供了一些关于复数的数学函数。 该模块的函数的参数为整数、浮点数或复数。 这些函数的参数也可为一个拥有 complex() 或 float() 方法的 Python 对象,这些方法分别用于将对象转换为复数和浮点数,这些函数作用于转换后的结果。
对于涉及分支切割的函数,我们有一个问题,即如何在切割本身上定义这些函数。根据Kahan的“复杂基本函数的分支切割”论文,以及C99和后来的C标准的附录G,我们使用零符号来区分分支切割的一侧和另一侧:对于沿着实轴(一部分)的分支切割,我们看虚部的符号,而对于沿着虚轴的分支切割我们看实部的符号。

例如,cmath.sqrt()函数有一个沿负实轴的分支。复数(-2.0,-0.0)的自变量被视为位于分支切割下方,因此在负假想轴上给出结果:

cmath.sqrt(complex(-2.0, -0.0))
-1.4142135623730951j

但复杂(-2.0,0.0)的参数被视为位于分支切割上方:

>>>
cmath.sqrt(complex(-2.0, 0.0))
1.4142135623730951j

到极坐标和从极坐标的转换

使用 矩形坐标 或 笛卡尔坐标 在内部存储 Python 复数 z。 这完全取决于它的 实部 z.real 和 虚部 z.imag。 换句话说:

z == z.real + z.imag*1j
极坐标 提供了另一种复数的表示方法。在极坐标中,一个复数 z 由模量 r 和相位角 phi 来定义。模量 r 是从 z 到坐标原点的距离,而相位角 phi 是以弧度为单位的,逆时针的,从正X轴到连接原点和 z 的线段间夹角的角度。

下面的函数可用于原生直角坐标与极坐标的相互转换。

cmath.phase(x)

以浮点形式返回x的相位(也称为x的参数)。phase(x)相当于math.atan2(x.imag,x.real)。结果位于[-π,π]范围内,此操作的分支切割沿负实轴。结果的符号与x.imag的符号相同,即使x.imag为零:

phase(complex(-1.0, 0.0))
3.141592653589793
phase(complex(-1.0, -0.0))
-3.141592653589793

备注 一个复数 x 的模数(绝对值)可以通过内置函数 abs() 计算。没有单独的 cmath 模块函数用于这个操作。
cmath.polar(x)
在极坐标中返回 x 的表达方式。返回一个数对 (r, phi),r 是 x 的模数,phi 是 x 的相位角。 polar(x) 相当于 (abs(x), phase(x))。

cmath.rect(r, phi)
通过极坐标的 r 和 phi 返回复数 x。相当于 r * (math.cos(phi) + math.sin(phi)*1j)。

幂函数与对数函数

cmath.exp(x)
返回 e 的 x 次方,e 是自然对数的底数。

cmath.log(x[, base])¶
返回x对给定基数的对数。如果未指定基数,则返回x的自然对数。有一个分支截断,从0沿着负实轴到-∞。
cmath.log10(x)
返回底数为 10 的 x 的对数。它具有与 log() 相同的支割线。

cmath.sqrt(x)
返回 x 的平方根。 它具有与 log() 相同的支割线。

三角函数

cmath.acos(x)
返回x的反余弦。有两个分支切割:一个沿实轴从1向右延伸到∞。另一个沿实轴从-1向左延伸到-∞。
cmath. asin ( x )
返回x的反正弦。它与 acos() 有相同的支割线。
cmath. atan ( x )
返回x的反正切。有两个分支切割:一个从假想轴的1jalong延伸到∞j。另一个沿假想轴从-1j延伸到-∞j。

cmath. cos ( x )
返回x的余弦。

cmath. sin ( x )
返回x的正弦。

cmath. tan ( x )
返回x的正切。

双曲函数

cmath. acosh ( x )

返回x的反双曲余弦。有一个分支切割,沿着实轴从1向左延伸到-∞。
cmath. asinh ( x )

返回x的反双曲正弦。有两个分支切割:一个从假想轴的1jalong延伸到∞j。另一个从虚轴-1jalong延伸到-∞j。
cmath. atanh ( x )
返回x的反双曲正切。有两个分支切割:一个沿实轴从1延伸到∞。另一个从实轴的-1延伸到-∞。

cmath. cosh ( x )
返回x的双曲余弦值。

cmath. sinh ( x )
返回x的双曲正弦值。

cmath. tanh ( x )
返回x的双曲正切值。

分类函数

cmath. isfinite ( x )
如果x的实部和虚部都是有限的,则返回True,否则返回False。

3.2 新版功能.

cmath. isinf ( x )
如果x的实部或者虚部是无穷大的,则返回True,否则返回False。

cmath. isnan ( x )
如果x的实部或者虚部是NaN,则返回True,否则返回False。

cmath. isclose ( a , b , * , rel_tol = 1e-09 , abs_tol = 0.0 )
若a和b的值比较接近则返回True,否则返回False。

根据给定的绝对和相对容差确定两个值是否被认为是接近的。

rel_tol是相对容差—— 它是a和b之间允许的最大差值,相对于a或b的较大绝对值。例如,要设置5%的容差,请传递rel_tol=0.05。默认容差为1e-09,确保两个值在大约9位十进制数字内相同。rel_tol必须大于零。

abs_tol是最小绝对容差—— 对于接近零的比较很有用。abs_tol必须至少为零。

如果没有错误发生,结果将是:。abs(a-b) <= max(rel_tol * max(abs(a), abs(b)), abs_tol)

IEEE 754特殊值NaN,inf和 -inf 将根据IEEE规则处理。具体来说,NaN不被认为接近任何其他值,包括NaN。inf和 -inf 只被认为接近自己。

3.5 新版功能.

参见 PEP 485 —— 用于测试近似相等的函数

常量

cmath. pi
数学常数π,作为一个浮点数。

cmath. e
数学常数e,作为一个浮点数。

cmath. tau
数学常数τ,作为一个浮点数。

3.6 新版功能.

cmath. inf
浮点正无穷大。相当于float(‘inf’)。

3.6 新版功能.

cmath. infj
具有零实部和正无穷虚部的复数。相当于。complex(0.0, float(‘inf’))

3.6 新版功能.

cmath. nan
浮点“非数字”(NaN)值。相当于float(‘nan’)。

3.6 新版功能.

cmath. nanj
具有零实部和NaN 虚部的复数。相当于。complex(0.0, float(‘nan’))

3.6 新版功能.

请注意,函数的选择与模块 math 中的函数选择相似,但不完全相同。拥有两个模块的原因是因为有些用户对复数不感兴趣,甚至根本不知道它们是什么。它们宁愿 math.sqrt(-1) 引发异常,也不想返回一个复数。另请注意,被 cmath 定义的函数始终会返回一个复数,尽管答案可以表示为一个实数(在这种情况下,复数的虚数部分为零)。

python:cmath --- 关于复数的数学函数相关推荐

  1. python数学公式代码导入_NumPy 数学函数及代数运算的实现代码

    一.实验介绍 1.1 实验内容 如果你使用 Python 语言进行科学计算,那么一定会接触到NumPy.NumPy 是支持 Python 语言的数值计算扩充库,其拥有强大的多维数组处理与矩阵运算能力. ...

  2. 2、Python基础--除法、常用数学函数

    整数与整数相除: >>> 2/5 0 >>> 2.0/5 0.4 >>> 2/5.0 0.4 >>> 2.0/5.0 0.4 & ...

  3. 运算除法的计算机函数,2、Python基础--除法、常用数学函数(示例代码)

    整数与整数相除: >>> 2/5 0 >>> 2.0/5 0.4 >>> 2/5.0 0.4 >>> 2.0/5.0 0.4 & ...

  4. 用python写一个除法的函数_2、Python基础--除法、常用数学函数

    整数与整数相除: >>> 2/5 0 >>> 2.0/5 0.4 >>> 2/5.0 0.4 >>> 2.0/5.0 0.4 & ...

  5. Python——几个常用的数学函数

    1. min()函数:取出给定参数的最小值 说明:获取指定数值或者指定序列中最小值. print(min(1, 5)) print(min(1, 2, 3, 4, 5, 6)) print(min([ ...

  6. Python: 复数的数学运算

    写的最新的网络认证方案代码遇到了一个难题,唯一的解决办法就是使用复数空间,需要使用复数来执行一些计算操作. 复数可以用使用函数complex(real, imag) 或者是带有后缀j 的浮点数来指定. ...

  7. python支持复数以及相关的运算吗_Python: 复数的数学运算

    写的最新的网络认证方案代码遇到了一个难题,唯一的解决办法就是使用复数空间,需要使用复数来执行一些计算操作. 复数可以用使用函数complex(real, imag) 或者是带有后缀j 的浮点数来指定. ...

  8. 《Python Cookbook 3rd》笔记(3.6):复数的数学运算

    复数的数学运算 问题 你写的最新的网络认证方案代码遇到了一个难题,并且你唯一的解决办法就是使用复数空间.再或者是你仅仅需要使用复数来执行一些计算操作. 解法 复数可以用使用函数 complex(rea ...

  9. cmath模块——复数域数学函数模块

    cmath--复数域数学函数模块 转自:https://blog.csdn.net/zhtysw/article/category/7511293 该模块属于内置模块,随时可以调用.它提供了数学函数在 ...

最新文章

  1. vue实现一个星级打分效果_五分钟用vue实现一个五星打分效果
  2. python学生管理系统-python实现学生管理系统
  3. echarts与TmodJS的冲突 -- 模块化加载器之间的冲突
  4. java.util.date转化成java.sql.date
  5. 一些重要的算法The Most Important Algorithms
  6. 【推荐】如何删除windows服务
  7. 产品认知:如何选择产品经理的产品方向?
  8. 了解css中伪元素 before和after的用法
  9. python监控某个程序_9-30 python监控windows某个进程的变化(修正版)
  10. 使用自定义端口连接SQL Server 的方法
  11. db2 springboot 整合_Spring boot Mybatis 整合(完整版)
  12. 拆分器控件Splitcontainer
  13. java poi word 表格 重复_java使用poi操作word, 支持动态的行(一个占位符插入多条)和表格中动态行, 支持图片...
  14. 官宣!AutoSec第六届中国汽车网络安全周火热来袭,10大特色首度曝光!1000+精准专业观众、60+OEM竞相参与
  15. CSDN-怎么设置被粉丝关注之后的自动回复
  16. 又拍网架构中的数据库分库设计
  17. 2021最新Java面试笔试,Java篇
  18. elasticsearch ik分词--实现专有名词分词 同义词解析
  19. 了解互联网一些基本知识
  20. GPS卫星的信号结构

热门文章

  1. 图像处理基本方法-c语言调用opencv实现人脸检测功能
  2. 学习c++和DirectX的几点心得
  3. 又一起运营商机房大楼失火,注意机房安全啊
  4. 智慧用电安全管理系统
  5. pyqt5 使用label显示摄像头
  6. 算法第二弹-线性规划之投资的收益和风险分析及代码实现(二)
  7. 实训九:三层交换机VLAN划分及VLAN间通信
  8. latex文本高亮与文本颜色(更新ing)
  9. 我的世界服务器怎么修改僵尸的血量,我的世界如何修改生物血量 | 手游网游页游攻略大全...
  10. Java坦克大战 (五) 之产生敌方坦克和爆炸效果