虚单位

在數學、物理及工程學裏，**虛數單位**是指二次方程式 $x^{2}+1=0$ 的解。雖然沒有這樣的實數可以滿足這個二次方程式，但可以通過虛數單位將實數系統 $\mathbb {R} $ 延伸至複數系統 $\mathbb {C} $ 。延伸的主要動機為有很多實係數多項式方程式式無實數解。例如剛才提到的方程式式 $x^{2}+1=0$ 就無實數解。可是倘若我們允許解答為虛數，那麼這方程式式以及所有的多項式方程式式都有解。虛數單位標記為 $i$ ，在電機工程和相關領域中則標記為 $j$ ，這是為了避免與電流（記為 $i(t)$ 或 $i$ ）混淆。

## 定義

虛數單位 $i$ 定義為二次方程式式 $x^{2}+1=0$ 的兩個根中的一個。這方程式式又可等價表達為：

　
: ${{x}^{2}}=-1$ 。

由於實數的平方絕不可能是負數，我們假設有這麼一個數目解答，給它設定一個符號 $i$ 。很重要的一點是， $i$ 是一個良定義的數學構造。

另外，虛數單位同樣可以表示為：

　
: $i={\sqrt {-{1}}}$

然而 $i={\sqrt {-{1}}}$ 往往被誤認為是錯的，他們的證明的方法是：

　
: 因為 $-1=i\cdot i=\left({\sqrt {-1}}\right)\times \left({\sqrt {-1}}\right)={\sqrt {\left(-1\right)\times \left(-1\right)}}={\sqrt {1}}=1$ ，但是 - 1 不等於 1。

　
: 但請注意： ${\sqrt {a\cdot b}}={\sqrt {a}}\cdot {\sqrt {b}}$ 成立的條件有 $a$ , $b$ 不能為負數。

實數運算可以延伸至虛數與複數。當計算一個表達式時，我們只需要假設 $i$ 是一個未知數，然後依照 $i$ 的定義，替代任何 $i^{2}$ 的出現為 - 1。 $i$ 的更高整數冪數也可以替代為 $-i$ ， $1$ ，或 $i$ ，根據下述方程式式：

　
: $i^{3}=i^{2}i=(-1)i=-i$ ，

　
: $i^{4}=i^{3}i=(-i)i=-(i^{2})=-(-1)=1$ ，

　
: $i^{5}=i^{4}i=(1)i=i$ 。

一般地，有以下的公式：

　
: $i^{4n}=1$

　
: $i^{4n+1}=i$

　
: $i^{4n+2}=-1$

　
: $i^{4n+3}=-i$

　
: $i^{n}=i^{n{\bmod {4}}}$

其中 ${\bmod {4}}$ 表示被 4 除的餘數。

## _i_ 和-_i_

方程式 $x^{2}=-1$ 有兩個不同的解，它們都是有效的，且互為共軛虛數及倒數。更加確切地，一旦固定了方程式的一個解 $i$ ，那麼 $-i$ （不等於 $i$ ）也是一個解，由於這個方程式是 $i$ 的唯一的定義，因此這個定義表面上有歧義。然而，只要把其中一個解選定，並固定為 $i$ ，那麼實際上是沒有歧義的。這是因為，雖然 $-i$ 和 $i$ 在數量上不是相等的（它們是一對共軛虛數），但是 $i$ 和 $-i$ 之間沒有質量上的區別（-1 和 + 1 就不是這樣的）。在任何的等式中同時將所有 i 替換為 - i，該等式仍成立。

　
: $-i^{2}=1$

　
: $-i=i^{-1}={\frac {1}{i}}$

## 正當的使用

虛數單位有時記為 ${\sqrt {-1}}$ 。但是，使用這種記法時需要非常謹慎，這是因為有些在實數範圍內成立的公式在複數範圍內並不成立。例如，公式 ${\sqrt {a}}\cdot {\sqrt {b}}={\sqrt {a\cdot b}}$ 僅對於非負的實數 $a$ 和 $b$ 才成立。

假若這個關係在虛數仍成立，則會出現以下情況：

　
: $-1=i\cdot i={\sqrt {-1}}\cdot {\sqrt {-1}}={\sqrt {(-1)\cdot (-1)}}={\sqrt {1}}=1$ （不正確）

　
: $-1=i\cdot i=\pm {\sqrt {-1}}\cdot \pm {\sqrt {-1}}=\pm {\sqrt {(-1)\cdot (-1)}}=\pm {\sqrt {1}}=\pm 1$ （不正確）

　
: ${\frac {1}{i}}={\frac {\sqrt {1}}{\sqrt {-1}}}={\sqrt {\frac {1}{-1}}}={\sqrt {-1}}=i$ （不正確）

## _i_ 的運算

許多實數的運算都可以推廣到 $i$ ，例如平方根、冪、對數和三角函數。以下運算除第一項外，均為與 $i$ 有關的多值函數，在實際應用時必須指明函數的定義選擇在黎曼面的哪一支。下面列出的僅僅是最常採用的黎曼面分支的計算結果。

 * $i$ 的平方根為：

　
: $\pm \left({\frac {\sqrt {2}}{2}}+{\frac {\sqrt {2}}{2}}i\right)=\pm {\frac {\sqrt {2}}{2}}(1+i)$

　
: 這是因為：

　
: ${\begin{aligned}\left[\pm {\frac {\sqrt {2}}{2}}(1+i)\right]^{2}&=\left(\pm {\frac {\sqrt {2}}{2}}\right)^{2}(1+i)^{2}\ \\&={\frac {1}{2}}(1+2i+i^{2})\\&={\frac {1}{2}}(1+2i-1)\\&=i\end{aligned}}$

　
: 使用主平方根符號表示：

　
: ${\sqrt {i}}={\frac {\sqrt {2}}{2}}(1+i)$

　
: 其解法為先假設兩實數 $x$ 及 $y$ ，使得 $(x+iy)^{2}=i$ ，求解 $x,y$ * 一個數的 $ni$ 次冪為：

　
: $x^{ni}=\cos \ln x^{n}+i\sin \ln x^{n}$

　
: 一個數的 $ni$ 次方根為：

　
: ${\sqrt[{ni}]{x}}=\cos \ln {\sqrt[{n}]{x}}-i\sin \ln {\sqrt[{n}]{x}}$

　
: 利用歐拉公式

　
: $i^{i}=\left[e^{i({\frac {\pi }{2}}+2k\pi )}\right]^{i}=e^{i^{2}({\frac {\pi }{2}}+2k\pi )}=e^{-({\frac {\pi }{2}}+2k\pi )}$ ， $k\in \mathbb {Z} $

　
: 代入不同的 $k$ 值，可計算出無限多的解。當 $k=0$ 最小的解是 $e^{-{\frac {\pi }{2}}}\approx $ 0.20787957635076...

* 以 $i$ 為底的對數為：

　
: $\log _{i}x={{2\ln x} \over i\pi }$

 * $i$ 的餘弦是一個實數：

　
: $\cos i=\cosh 1={{e+{\frac {1}{e}}} \over 2}={{e^{2}+1} \over 2e}\approx $ 1.5430806348152...

 * $i$ 的正弦是純虛數：

　
: $\sin i=i\sinh 1={{e-{\frac {1}{e}}} \over 2}i={{e^{2}-1} \over 2e}i\approx $ 1.1752011936438... $i$

## 在程式語言

* 大部分的程式語言都不提供**虛數單位**，且平方根函數 (大多為 **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`。

## 註解

## 參見

* 代數基本定理
* 虛數
* 複數平面
* 單位根
* i

## 參考文獻

* Paul J. Nahin, An Imaginary Tale, The Story of √-1, Princeton University Press, 1998

## 外部連結

* 歐拉對多項式的複數根的研究
* i 作為 - 1 的平方根（英文視頻）
* $i^{7321}$ 的計算方法舉例（英文視頻）