Python: 复数的数学运算
写的最新的网络认证方案代码遇到了一个难题,唯一的解决办法就是使用复数空间,需要使用复数来执行一些计算操作。
复数可以用使用函数complex(real, imag) 或者是带有后缀j 的浮点数来指定。
比如:
>>> a = complex(2, 4)
>>> b = 3 - 5j
>>> a
(2+4j)
>>> b
(3-5j)
对应的实部、虚部和共轭复数可以很容易的获取。就像下面这样:
>>> a.real
2.0
>>> a.imag
4.0
>>> a.conjugate()
(2-4j)
另外,所有常见的数学运算都可以工作:
>>> a + b
(5-1j)
>>> a * b
(26+2j)
>>> a / b
(-0.4117647058823529+0.6470588235294118j)
>>> abs(a)
4.47213595499958
如果要执行其他的复数函数比如正弦、余弦或平方根,使用cmath 模块:
>>> import cmath
>>> cmath.sin(a)
(24.83130584894638-11.356612711218174j)
>>> cmath.cos(a)
(-11.36423470640106-24.814651485634187j)
>>> cmath.exp(a)
(-4.829809383269385-5.5920560936409816j)
Python 中大部分与数学相关的模块都能处理复数。比如如果你使用numpy ,可以很容易的构造一个复数数组并在这个数组上执行各种操作:
>>> import numpy as np
>>> a = np.array([2+3j, 4+5j, 6-7j, 8+9j])
>>> a
array([ 2.+3.j, 4.+5.j, 6.-7.j, 8.+9.j])
>>> a + 2
array([ 4.+3.j, 6.+5.j, 8.-7.j, 10.+9.j])
>>> np.sin(a)
array([ 9.15449915 -4.16890696j, -56.16227422 -48.50245524j,
-153.20827755-526.47684926j, 4008.42651446-589.49948373j])
Python 的标准数学函数确实情况下并不能产生复数值,因此你的代码中不可能会
出现复数返回值。比如:
>>> import math
>>> math.sqrt(-1)
Traceback (most recent call last):File "<stdin>", line 1, in <module> ValueError: math domain error
如果你想生成一个复数返回结果,你必须显示的使用cmath 模块,或者在某个支
持复数的库中声明复数类型的使用。比如:
>>> import cmath
>>> cmath.sqrt(-1)
1j
Python: 复数的数学运算的更多相关文章
- python 数字系列-复数的数学运算
		复数的数学运算 问题 你写的最新的网络认证方案代码遇到了一个难题,并且你唯一的解决办法就是使用复数空间. 再或者是你仅仅需要使用复数来执行一些计算操作. 解决方案 复数可以用使用函数 complex( ... 
- python 复数的数学四则运算
		print(+3j)+(-7j)) print(+3j)-(-7j)) print(+3j)*(-7j)) print(+3j)/(-7j)) 
- Python之复数、分数、大型数组数学运算(complex、cmath、numpy、fractions)
		一.复数的数学运算 复数可以用使用函数 complex(real, imag) 或者是带有后缀j的浮点数来指定 a=complex(2,4) print(a) # (2+4j) b=2-5j # 获取 ... 
- 吾八哥学Python(五):Python基本数学运算
		今天我们学习Python里的基本数学运算方法,还是通过例子来练习吧! 加减乘除求余 #加法 print(12+34) #减法 print(30-10.0) #乘法 print(3*5) #除法 pri ... 
- Python 3标准库 第五章 数学运算
		第五章数学运算-----------------------上下文解释:编程时,我们一般也是先给程序定义一些前提(环境变量.描述环境变化的全局变量等),这些“前提”就是上文,然后再编写各功能模块的代码 ... 
- Python 集合的各种操作   数学运算   关系操作  增删改查  生成式
		# 集合是无序的 是可变的 不能重复 允许数学运算 分散存储 # 创建# collegel = {'哲学','经济学','法学','教育学'}## # {'教育学', '经济学', '法学', '哲学 ... 
- Tensorflow数学运算
		一.Tensor 之间的运算规则 1) 相同大小 Tensor 之间的任何算术运算都会将运算应用到元素级 2) 不同大小 Tensor(要求dimension 0 必须相同) 之间的运算叫做广播(br ... 
- 6.Python3标准库--数学运算
		''' 作为一种通用的变成语言,Python经常用来解决数学问题.它包含一些用于管理整数和浮点数的内置类型,这很适合完成一般应用中可能出现的基本数学运算. 而标准库中包含一些用于满足更高级需求的模块. ... 
- Django 过滤器 、日期格式化、数学运算
		Django 的模板中的数学运算前言 django模板只提供了加法的filter,没有提供专门的乘法和除法运算:django提供了widthratio的tag用来计算比率,可以变相用于乘法和除法的计算 ... 
随机推荐
- [转载]SQL truncate 、delete与drop区别
			相同点: 1.truncate和不带where子句的delete.以及drop都会删除表内的数据. 2.drop.truncate都是DDL语句(数据定义语言),执行后会自动提交. 不同点: 1. t ... 
- ThreadUtil 多线程处理List,回调处理具体的任务
			每次想多线程处理一个大的结果集的时候 都需要写一大堆代码,自己写了个工具类 方便使用 package com.guige.fss.common.util; import com.guige.fss.c ... 
- php执行外部命令
			php执行外部命令的不少,例如:exec.shell_exec.system.popen等.我特意的讲一下popen,它跟其他函数不太一样,其他函数执行一个命令后,会等待其返回后,再向下执行,而pop ... 
- UITableView取消选中颜色、常用操作
			UITableView取消选中颜色.常用操作 使用空白view取代cell - (UITableViewCell *)tableView:(UITableView *)tableView cell ... 
- win10下安装Oracle 11g 32位客户端遇到INS-13001环境不满足最低要求
			在以管理员身份运行setup.exe之后,出现了:[INS-13001]环境不满足最低要求,通过网上搜索之后找到了解决途径 首先,打开你的解压后的database文件夹,找到stage,然后cvu,找 ... 
- KVC与Runtime结合使用(案例)及其底层原理
			一.KVC 的用法和实践 用法 KVC(Key-value coding)键值编码,顾名思义.额,简单来说,是可以通过对象属性名称(Key)直接给属性值(value)编码(coding)“编码”可以理 ... 
- Linux学习之批量修改文件名
			1. 通过专业的改名命令rename实现 [root@oldboy oldboy]# ll total -rw-r--r-- root root Nov : stu_102999_1_finished ... 
- 配置linux DNS
			DNS服务器地址配置 在Linux下面,有一个默认的DNS服务器地址配置文件的设置,存放在 /etc/resolv.conf 设置方法很简单,通过编辑 vi /etc/resolv.conf 设置首选 ... 
- 【BZOJ1045】[HAOI2008] 糖果传递 贪心
			[BZOJ1045][HAOI2008] 糖果传递 Description 有n个小朋友坐成一圈,每人有ai个糖果.每人只能给左右两人传递糖果.每人每次传递一个糖果代价为1. Input 第一行一个正 ... 
- PHP新版本变化
			世界变化真快,突然听闻 PHP 都到 7.3 版本了,7.2 还没仔细了解过呢.看到我司面试时会问到php新版本有什么特性,美名其曰考察其学习新技术的能力,我有点汗颜,自己都没有主动去了解过,实在不应 ... 
