复数计算

复数域是在实数域基础上扩展的数据,a+bj其中a,b是实数,j是虚数单位就是-1的算术平方根。 编程如何表示复数呢?这里我们需要引入复数的数学包,主要用于计算复数的。工具包我们会在以后详细 讲述,暂时读者朋友只需要会调用就可以。

我们先来看复数的简单计算

>>> 2+3j # 表示一个复数
(2+3j)
>>> 1j ** 2
(-1+0j)
>>> 1j ** 3
(-0-1j)
>>> 1j ** 4
(1+0j)
>>> 1j ** 5
1j
>>> (2 - 3j) * (1j + 2)
(7-4j)
>>> j # 单独j 会当成没有定义的变量
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'j' is not defined
>>> 1j # 数字与j连接起来
1j
>>> 1j ** 2 # j的平方
(-1+0j)

我们也可以自定义虚数单位i。这里需要引入计算复数的数学包cmath

>>> import cmath
>>> i = cmath.sqrt(-1)
>>> i
1j
>>> 2 + 3*i
(2+3j)
>>> i**2
(-1+0j)
>>> i**3
(-0-1j)
>>> i**4
(1+0j)
>>> (1 + 2*i) ** 4
(-7-24j)
>>> (1 + 2*i) ** (1 - i)
(6.458655497394437+2.015103874855683j)

思考题

本节内容我们讲完了复数的基本计算,之前我们编程计算了一元二次方程的实数解,现在我们已经学过的 复数的计算,那么在复数域内如何计算一元二次方程呢?