# 複數 ## 何謂複數 在國中數學理,我們學過平方與根號,$4$ 的根號是 $2$,因為 $2^2=4$,那時的課本或許會這樣寫,說負數像 $-1, -2$ 這類是沒有根號,但實際上是有的,這我們稱作「複數」(complex number),數學記做 $\mathbb{C}$。 <div style="text-align: center;"> <img src="https://upload.wikimedia.org/wikipedia/commons/c/cb/Number-systems_%28NZQRC%29.svg" alt="vector" width="100%"/> <br> <br> </div> 在複數的概念中,有一個東西稱作為「虛數」。虛數的定義為 $-1$ 的根號,$\sqrt{-1}$,數學記做 $i$,也就是說 $i^2=-1$,從這裡可以很明顯地得到: \begin{align} \sqrt{-4}=2\sqrt{-1}=2i \end{align} > 在數學的發展史中,包括大神歐拉都犯過這樣的錯誤,以為 $i^2=\sqrt{-1}\sqrt{-1}=\sqrt{(-1)(-1)}=1$,記住不是這樣喔 從此所有負數的根號都有了定義。 ## 複數的起源 初學複數,你可能覺得這是人類硬編出來的數字,在現實中根本找不到。沒關係,這很正常,在數學的發展史上也是這樣演進,從人類第一次提出複數這概念,到人類發現它真的有用,這中間掙扎了近 200 年,因此你現在初學就覺得困惑是非常正常。 而這一切始於解方程式,相信大家在國中學一元二次方程式都看過這公式: \begin{align} x=\frac{-b\pm \sqrt{b^2-4ac}}{2a} \end{align} 然後當時的教材都會告訴你當 $b^2-4ac<0$ 時此方程式無解。 > 這邊沒有要怪國中老師或是國中標準教材,畢竟要一個普通國中生剛學會一元二次方程式,接著馬上接觸虛數,大概全班只有兩個天賦異稟的人聽得懂,別忘了,這世界上很多如我的普通人 然而這問題困惑以前的貴族數學家,他們並沒有因為「無解」就打住,他們覺得這背後一定藏有甚麼大奧妙,不過當時數學家想了一輩子也沒想出來,為了解決這困惑,1637 年的笛卡爾被迫提出「虛數」一詞,因為這在笛卡爾 $xy$ 座標上找不到,但他本人其實十分排斥虛數,跟現在的你一樣。 但命運就是這麼奇妙,即便數學家每個都很排斥虛數,但在邁向數學偉大的路上,人類進入了不得不直面他的處境。西元 1545 年義大利數學家 Girolamo Cardano 提出三次方程式 $x^3=bx+c$ 的解: \begin{align} x= ^3\sqrt{\frac{c}{2}+\sqrt{\frac{c^2}{4}-\frac{b^3}{27}}}+^3\sqrt{\frac{c}{2}-\sqrt{\frac{c^2}{4}-\frac{b^3}{27}}} \end{align} 如果根號中的 $\frac{c^2}{4}-\frac{b^3}{27}<0$ 理應是無解,但如果是以下這方程式﹔ \begin{align} x^3&=15x+4\\ x&=^3\sqrt{2+11\sqrt{-1}}+^3\sqrt{2-11\sqrt{-1}} \end{align} 看似這無解,但神奇的是,另一個數學家 Rafael Bombelli 後來算出來 $x$ 是個實數 $x=4$,所以這方程式其實有解!一個在你國中被認為是無解的方程式其實是有解的,而且是實數解。 > 其實當時 Cardano 有考慮到虛數,但他是這樣形容虛數﹔"mental torture" 這就是人類後來為何終究要認真看待虛數的原因,不過也要等到 18 世紀 Euler 問世才將複數的潛力發揮出來。 > 筆者也畢竟不是數學系,這段歷史故事僅做為教學用讓你逐漸適應 $i$ 的出現, 實際歷史會比這再更複雜,也不會是單單這原因才讓數學家紛紛重視虛數並讓理論更完善 ## 複數的運算規則 當虛數與實數結合,就是複數,記做 $a+bi$,比方說 $z=3+4i$,其中 $a$ 稱作 $z$ 的實部(real part),$b$ 則為 $z$ 的虛部(imaginary part)。照這樣的定義來說平常你熟知的實數也都屬於複數,只是虛部為 $0$,像是 $3=3+0i$。 ### 複數的加減法 複數的加減其實很簡單,就是實部只跟實部做運算,虛部與虛部做運算,即: \begin{align} (a+bi)+(c+di)=(a+c)+(b+d)i \\ (a+bi)-(c+di)=(a-c)+(b-d)i \end{align} 比方說 $3+4i$ 與 $2+1i$ 做相加(相減): \begin{align} (3+4i)+(2+1i)&= 5+5i\\ (3+4i)-(2+1i)&=1-3i \end{align} ### 複數的乘法 乘法的話就要一個一個去乘: \begin{align} (a+bi)\times(c+di)&=ac+adi+bci+bdii\\ &=ac+adi+bci+bd(-1)\\ &=(ac-bd)+(ad+bc)i \end{align} 以剛剛兩個複數為例: \begin{align} (3+4i)\times(2+1i)&= 6+3i+8i+4ii\\ &=6+11i-4\\ &=2+11i \end{align} ### 共軛(conjugation) 一個複數 $z=a+bi$ 的共軛(conjugation)為 $\overline{z}=a-bi$,有時也記做 $*$,即 $z^*$,舉例: \begin{align} (3+4i)^*=\overline{(3+4i)}=3-4i \end{align} 透過 conjugation,我們可以計算非零複數的倒數: \begin{align} z^{-1}&=\frac{1}{z}=\frac{\overline{z}}{z\overline{z}}=\frac{a-bi}{a^2+b^2}\\ &=\frac{a}{a^2+b^2}-\frac{b}{a^2+b^2}i \end{align} 暫且回到前面的章節,如果對一個矩陣 $M$ 做轉置後,接著對裡面的元素做 conjugation,這操作記做 $\dagger$(dagger),$M^\dagger=(M^T)^*$,比方說: \begin{align} \begin{bmatrix} 3 & 4i \end{bmatrix}^\dagger = \begin{bmatrix} 3 \\ -4i \end{bmatrix} \end{align} 好,我們回來,一個複數 $z$ 的絕對值為 $|z|=\sqrt{z\overline{z}}=\sqrt{a^2+b^2}$, \begin{align} (a+bi)\overline{(a+bi)}&=(a+bi)(a-bi)\\ &=a^2+abi-abi-b^2ii\\ &=a^2+b^2 \end{align} 如果 $|z|=1$,我們稱之為 unit。 ### Units 如果一個實數的絕對值為 $1$,那這實數只有兩種可能,要嘛 $+1$ 要嗎 $-1$,但複數不同,它會有無限種可能,不只 $1,-1,i,-1$,還有 $\frac{\sqrt 2}{2}+\frac{\sqrt 2}{2}i$ 等等。而你在三角函數裡一定學過: \begin{align} \sin^2(x)+\cos^2(x)=1 \end{align} 因此我們可以把 units 的複數寫作: \begin{align} z=\cos(x)+i\sin(x) \end{align} 即: \begin{align} |z|=1=\sqrt{\cos^2(x)+\sin^2(x)} \end{align} ## 自然常數 在我們繼續深入複數的內容前,容我先簡介其他但很重要的概念:自然常數 $e$,又稱作 Euler's number,它是一個常數: \begin{align} e=2.718281828\cdots \end{align} > 之所以不是叫 Euler's constant 是因為那是另一個東西,差不多是 0.57721 要介紹它的來歷以及它的特別之處,需要很長篇的文章作解釋,讀者就先把它當作類似 $\pi$ 的東西,就是一個常數,因為要真正理解它的奧妙得要會點微積分,然後這常數很神奇,你未來讀大學後,不管是物理、生物、流行病學、化工、工程、數學、化學與經濟,都會一直看到它本人,形影不離,有興趣的讀者可以參考文末提供的延伸閱讀。 ## 複數平面 你以前一定碰過卡迪爾 $xy$ 座標來標示物體的位置,那複數同樣也可以用類似的平面做標記,稱作複數平面,橫軸為實部,縱軸為虛部 <div style="text-align: center;"> <img src="https://hackmd.io/_uploads/BJFdb1BXbe.svg" alt="complex plane" width="70%"/> <br>複數平面</p> <br> </div> 注意,任兩個複數之間是無法比誰比較大誰比較小,所以一個複數在平面上比較遠的地方不代表它比較大。當我們對一個複數做共軛時,就像是讓它對橫軸做鏡像,如下圖所示: <div style="text-align: center;"> <img src="https://hackmd.io/_uploads/Syi3fkSX-g.svg" alt="conjugation" width="70%"/> <br>共軛的幾何解釋 <br> </div> 你或許也學過極座標(polar corrdinate),它與 $xy$ 座標一樣,只是 $x$ 與 $y$ 改用三角函數做表示,即: \begin{align} (x,y)=(r\cos{\theta}, r\sin{\theta}) \end{align} <div style="text-align: center;"> <img src="https://hackmd.io/_uploads/ByhpE1Bmbx.svg" alt="polar coordinate" width="70%"/> <br>極座標</p> <br> </div> 以前面向量為例,原本的 $(3,4)$ 可以表示成 $\approx(5\cos{53.13^\circ}. 5\sin{53.13^\circ})$。同樣地,複數平面也可以改成極座標,其中的 $r$ 就是 $|z|$: \begin{align} (a,bi)=(|z|\cos{\theta}, i|z|\sin{\theta}) \end{align} 從這裡你有沒有發現什麼,沒錯前面提到的 units!就是複數平面與原點距離為 1 的單位圓,單位圓上每一個點的複數絕對值都是 $1$。 <div style="text-align: center;"> <img src="https://hackmd.io/_uploads/HJYBDkHXWx.svg" alt="polar coordinate" width="70%"/> <br>units 的幾何解釋,在紅線上所有的點,其絕對值都是 1 <br> </div> ## 歐拉公式 這邊是我要跟讀者道歉的地方,由於篇幅限制,這邊我們只能直接給你公式結果,因為這推導過程會需要微積分與 Taylor series,當然這兩個並不會真的難到無法理解,但會用到很大的篇幅,有興趣的讀者可以在網路上找到許多證明方法,這邊就直接說明歐拉公式是什麼: \begin{align} e^{i\theta}=\cos{\theta}+i\sin{\theta} \end{align} 因此當 $\theta=\pi$ 時 \begin{align} e^{i\pi}=\cos{\pi}+i\sin{\pi}=-1+0i=-1 \end{align} 這東西可以做非常神奇的事,它可以讓我們將複數在平面上做旋轉,比方說我們要讓 $z=3+4i$ 旋轉 $90$ 度: \begin{align} e^{i\frac{\pi}{2}}(3+4i)&=(\cos \frac{\pi}{2}+i\sin \frac{\pi}{2})(3+4i)\\ &=i(3+4i)\\ &=-4+3i \end{align} 從以上你發現一個神奇的事,在過去,你想得到一個向量旋轉 $90$ 度,得對向量乘上旋轉矩陣,才得到旋轉後的向量是甚麼,現在,你只要簡單地乘上 $i$ 就好。以前一章旋轉向量為例,旋轉 $-90$ 度就是簡單地乘上 $-i$: \begin{align} -i(3+4i)=4-3i \end{align} 接下來我們要結合矩陣,引出非常神奇的事情,假設我們把 $1$ 與 $i$ 都定義成矩陣: \begin{align} 1=I= \begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix}, \space i= \begin{bmatrix} 0 & -1 \\ 1 & 0 \end{bmatrix} \end{align} 因此 $e^{i\theta}$ 可以寫成: \begin{align} e^{i\theta}&=\cos{\theta} \begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix} +\sin{\theta} \begin{bmatrix} 0 & -1 \\ 1 & 0 \end{bmatrix}\\ &= \begin{bmatrix} \cos{\theta} & -\sin{\theta} \\ \sin{\theta} & \cos{\theta} \end{bmatrix} \end{align} 有沒有,這就是上一章提到的旋轉矩陣!!同理,複數可以表示成: \begin{align} z&=a+ib \\ &=a \begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix} +b \begin{bmatrix} 0 & -1 \\ 1 & 0 \end{bmatrix}\\ &= \begin{bmatrix} a & -b \\ b & a \end{bmatrix} \end{align} 因此: \begin{align} z'&=e^{i\theta}z=a'+ib'\\ &= \begin{bmatrix} \cos{\theta} & -\sin{\theta} \\ \sin{\theta} & \cos{\theta} \end{bmatrix} \begin{bmatrix} a & -b \\ b & a \end{bmatrix} \\ &= \begin{bmatrix} a\cos{\theta}-b\sin{\theta} & -b\cos{\theta}-a\sin{\theta} \\ a\sin{\theta}+b\cos{\theta} & -b\sin{\theta}+a\cos{\theta} \end{bmatrix} \\ &= \begin{bmatrix} a' & -b' \\ b' & a' \end{bmatrix}\\ &=(a\cos{\theta}-b\sin{\theta})+i(a\sin{\theta}+b\cos{\theta}) \end{align} 以上這段就在說明為何複數乘法與向量旋轉是同價的,以後你計算向量旋轉不必要用矩陣乘法,簡單的複數乘法也能做到。在後續補充單元中,我們會提及旋轉矩陣 $R$ 是 $SO(2)$ 群,這個複數旋轉是 $U(1)$ 群,而因為從上面我們得知他們兩個都是在二維平面上做旋轉,因此兩個群是 isomorphism (第一次接觸這名詞的朋友,就先當作這是指一對一關係)。 ## 後記 剛接觸複數或虛數的學生通常會有以下兩個的大哉問: 1. 虛數真的存在嗎? 2. 量子力學真的需要虛數嗎? 這是很正常的反應,許多剛接觸虛數的人都會覺得這是人為特別定義出來的東西,強加上去的東西,這邊筆者會嘗試回答這兩個問題,如果讀者一時仍無法接受的話也很正常,就像前面講的,數學家花了 200 年時間才接受。 首先,討論 $i$ 存不存在沒意義,就像你在問 $0$ 存不存在一樣,數學本是人類自己定義出來的東西,你也可以自己定義,但定義出來的東西有沒有意義才會是人們之後要不要接受的主因,就像是在下節進階補充會提到的 trionion,定義出來但沒有意義,而 $i$ 是個定義出來卻有意義,為人類開闢一個更廣闊的世界。 量子力學真的需要虛數嗎?很高興你問出這問題,代表你充滿了好奇心,提出了現今物理界都在熱烈討論的問題,數學家雖然接受了 $i$,但部分物理學家不是,他們相信可以不用 $i$ 來構建只需要實數的量子力學,只要把原本的複數拆成兩個實數,再搭配一些記號標示這個實數只跟哪個實數相加,就可以構建一個不需要複數的量子力學。 \begin{align} (a,b)+(c,d)=(a+c, b+d) \end{align} 不過這項工作並非易事,主要問題會出現在兩組獨立數字 $(a,b),(c,d)$ 如何 [tensor product](https://www.entangletech.tw/lesson/math-06) (之後的章節我們會介紹),另一個問題是如何相乘,你可能想,就這樣乘就好啦~ \begin{align} (a,b)\cdot(c,d)=(ac, bd) \end{align} 但這樣會引出另一個問題,就是兩個非零數相乘會得到零: \begin{align} (8,0)\cdot(0,3)=(0, 0) \end{align} 如果直接沿用原本計算規則,僅把複數改成實數,在 2021 年就透過[實驗證明](https://www.nature.com/articles/s41586-021-04160-4#Abs1)如此方法無法與實驗結果相符。 <div style="text-align: center;"> <img src="https://hackmd.io/_uploads/BJTCD1r7bg.png" alt="paper" width="60%"/> <br>利用貝爾實驗驗證單純將複數改成實數,其他規則都不變的量子力學,是否能與實驗相符</p> <br> </div> 而在今年(2025)三月與十月份,[德國](https://arxiv.org/abs/2503.17307)與[法國](https://arxiv.org/abs/2504.02808)科學家各別修改了計算規則,提出自己的版本,構建完全基於實數的量子力學,且理論上與現今量子力學等價,那這代表量子力學可以拋棄 $i$ 了嗎? 如果仔細看論文,可以發現為了讓整套理論只用到實數,要建立大量的記號來標示這個實數該跟哪個實數計算,哪兩個實數相乘需要加上負號,從而讓整套理論變得更複雜,最後你還不如乖乖接受 $i$,從這兩篇論文我們得知虛數的角色,它讓整套物理理論變得更簡潔優雅。 <div style="text-align: center;"> <img src="https://hackmd.io/_uploads/H12yMRmXbe.png" alt="paper" width="100%"/> <br>為了只用實數,必須把矩陣拆成 Sy 與 An,然後手動分配誰跟誰乘要加負號,本式相當於兩個複數相乘,I 是單位矩陣,J 相當於虛數</p> <br> </div> 這就像是,你拋棄向量概念來解幾何問題,你的確可以用國中數學,尺規作圖等方法來解,沒問題,但不如你使用向量來得簡潔優雅。 ## 進階補充 以上討論的都只有限定在一個虛數單位 $i$,那人類一定不滿足與此,人類會想要定義如果有兩個虛數單位 $i,j$ 會發生什麼事?那三個虛數單位呢 $i,j,k$ 四個以上呢等等? ### Trionion 如果今天一個複數有兩個虛數單位,這種數我們稱為三元數(trionion),即: \begin{align} z=a+bi+cj \end{align} 而按照前面我們的定義,很合理地我們定義: \begin{align} i^2=j^2=-1 \end{align} 現在我們要從這兩個已知去找出 $ij$ 是什麼,理應上 $ij$ 也會是這個形式 $a'+b'i+c'j$,接著我們再乘上 $i$: \begin{align} i^2j&=a'i+b'i^2+c'ji \\ -j&=a'i-b'+c'ji \\ &=a'i-b'+c'(a'+b'i+c'j)\\ &=(a'c'-b')+(a'+b'c')i+c'^2j \end{align} 如果等號左右兩邊相等,代表 $c'^2=-1$,然而這就出現問題了,前面我們定義 $c$ 會是實數,但推演出來 $c$ 變成虛數,前後矛盾,因此三元數無法存在,或是說無法良好定義。 ### Quaternions Hamilton 在當年發現三元數無法很好地定義後,隨即在 1843 年提出四元數(quaternions),該複數 $q$ 裡有三個虛數單位 $i,j,k$: \begin{align} q=a+bi+cj+dk \end{align} 很自然地,我們定義: \begin{align} i^2=j^2=k^2=-1 \end{align} 然後 \begin{align} ij=-ji=k,\space jk=-kj=i,\space ki=-ik=j,\space ijk=-1 \end{align} 從前面的內容我們得知,只有一個虛數單位 $i$ 可以代表二維平面旋轉,假使兩個虛數單位的三元數存在,那它就可以代表三維空間的旋轉,但因為它不存在,人類只能拿四元數當作三維空間的旋轉,然後它們兩個之間就不是一對一關係,是二對一關係(double cover)。 ## 延伸閱讀 - [歐拉數:描述連續變化的基石](https://hackmd.io/@sysprog/euler-number) - [甚麼是e?](https://medium.com/@godfrey.leung.cosmo/有趣數學系列-甚麼是e-8e8ca4831743)