虛數單位
在數學、物理及工程學裏,虛數單位是指二次方程的解。虽然沒有這樣的实数可以滿足這個二次方程,但可以通過虛數單位将實數系統延伸至复数系統。延伸的主要動機為有很多實係數多項式方程式無實數解。例如剛才提到的方程式就無實數解。可是倘若我們允許解答為虛數,那麼這方程式以及所有的多項式方程式都有解。虛數單位標記為,在电机工程和相关领域中则标记为,这是为了避免与电流(记为或)混淆。
高斯整數導航 | ||||||
---|---|---|---|---|---|---|
↑ | ||||||
2i | ||||||
−1+i | i | 1+i | ||||
← | −2 | −1 | 0 | 1 | 2 | → |
−1−i | −i | 1−i | ||||
−2i | ||||||
↓ |
的数 |
基本 |
|
延伸 |
其他 |
定義
虛數單位定義為二次方程式的兩個根中的一個。這方程式又可等價表達為:
- 。
由於實數的平方絕不可能是負數,我們假設有這麼一個數目解答,給它設定一個符號。很重要的一點是,是一個良定義的數學構造。
另外,虛數單位同樣可以表示為:
然而往往被誤認為是錯的,他們的證明的方法是:
- 因為,但是-1不等於1。
- 但請注意:成立的條件有,不能為負數。
實數運算可以延伸至虛數與複數。當計算一個表達式時,我們只需要假設是一個未知數,然後依照的定義,替代任何的出現為-1。的更高整數冪數也可以替代為,,或,根據下述方程式:
- ,
- ,
- 。
一般地,有以下的公式:
其中表示被4除的余数。
i和-i
方程有两个不同的解,它们都是有效的,且互为共轭虚数及倒數。更加确切地,一旦固定了方程的一个解,那么(不等于)也是一个解,由于这个方程是的唯一的定义,因此这个定义表面上有歧义。然而,只要把其中一个解选定,并固定为,那么实际上是没有歧义的。这是因为,虽然和在数量上不是相等的(它们是一对共轭虚数),但是和之间没有质量上的区别(-1和+1就不是这样的)。在任何的等式中同時將所有i替換為-i,該等式仍成立。
正当的使用
虚数单位有时记为。但是,使用这种记法时需要非常谨慎,这是因为有些在实数范围内成立的公式在复数范围内并不成立。例如,公式仅对于非负的实数和才成立。
假若這個關係在虚数仍成立,則會出現以下情況:
- (不正确)
- (不正确)
- (不正确)
i的运算
许多实数的运算都可以推广到,例如平方根、冪、对数和三角函数。以下运算除第一项外,均为与有关的多值函数,在实际应用时必须指明函数的定义选择在黎曼面的哪一支。下面列出的仅仅是最常采用的黎曼面分支的计算结果。
- 的平方根为:
- 这是因为:
- 使用算术平方根符号表示:
- 其解法為先假設兩實數及,使得,求解[1]
- 一个数的次幂为:
- 一个数的次方根为:
- 利用歐拉公式
- ,
- 代入不同的值,可計算出無限多的解。当最小的解是0.20787957635076...[2]
- 以为底的对数为:
- 1.5430806348152...
- 1.1752011936438...
在程式語言
- 大部分的程式語言都不提供虛數單位,且平方根函數(大多為sqrt()或Math.Sqrt())的引數不可以是負數,因此,必須自行建立類別後方可使用。
- 但Lisp的许多实现与方言,如Common Lisp,内建虚数和複數的支持。不少动态语言受其影响,也在语言本身或标准库中支持虚数和複數,如Python、Ruby。
- 一些传统编程语言,如C语言,也从C99开始支持虚数和複數。
- 在Matlab,虛數單位的表示方法為i或j,但i和j在for迴圈可以有其他用途。
- 在Mathematica,虛數單位的表示方法為I、𝕚或𝕛。
- 在Maple,必須啟用虛數功能,並選擇用i還是j表示虛數單位。
- Go語言於第 1.0 版就内建虚数和複數的支持,變數類型為
complex64
和complex128
[3]。
註解
- University of Toronto Mathematics Network: What is the square root of i? (页面存档备份,存于) URL retrieved March 26, 2007.
- "The Penguin Dictionary of Curious and Interesting Numbers" by David Wells, Page 26.
- Rob Pike. . The Go Blog. 2014-08-25 [2022-05-27]. (原始内容存档于2022-06-28).
参考文献
- Paul J. Nahin, An Imaginary Tale, The Story of √-1, Princeton University Press, 1998