虛數單位
在數學、物理及工程學裏,虛數單位是指二次方程的解。雖然沒有這樣的實數可以滿足這個二次方程,但可以通過虛數單位將實數系統延伸至複數系統。延伸的主要動機為有很多實系數多項式方程式無實數解。例如剛才提到的方程式就無實數解。可是倘若我們允許解答為虛數,那麼這方程式以及所有的多項式方程式都有解。虛數單位標記為,在電機工程和相關領域中則標記為,這是為了避免與電流(記為或)混淆。
高斯整數導航 | ||||||
---|---|---|---|---|---|---|
↑ | ||||||
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]。
註解
參見
參考文獻
- Paul J. Nahin, An Imaginary Tale, The Story of √-1, Princeton University Press, 1998