本文參考自:鏈接
探討一:

下面來就事論事.
先不談虛數單位的定義. 我們來看看數系是如何擴充的.
整數抽象自日常的計數. 但是對於"半個饅頭"等等的計數問題, 整數無能為力. 把問題精確地寫出來, 就是: 多少個(相同的)饅頭加在一起是一個饅頭? 為此我們需要引入"半個饅頭". 換句話說, 我們需要引入方程

[注: 我們覺得有理數很好理解, 不過是因為我們習慣了而已. 數學常常要打破習慣, 從而看到不一樣的景色.]
但是有理數究竟是什么? 對於正整數, 我們可以從日常的經驗中抽象出來它的性質, 例如說"1是一只羊, 一頭牛, 一個人......的共有的數量屬性"(這句話本身含義不清楚, 但我們先不去管它). 正的有理數可以通過"等分"來直觀地理解. 對於"零"和負數, 這種直觀認知就已經有點困難了; 回想一下羅馬人是如何對待零的. 為了彌補這種語義上的模糊帶來的缺陷, 數學家發明了嚴格的定義; 下面再講.
對於無理數, 問題就更加嚴重, 因為日常計數問題中沒有它的對應物. 實際上, 正如我們所知道的, 最早的無理數來源於幾何度量問題:



由此立刻產生了問題: 很多具有整系數的二次方程是沒有根的(以及更高次的方程). 最簡單的例子就是

[由此我們可以看到"為方程尋找根"實際上是一個比"定義圓周率"要抽象得多的問題, 因為后者是"客觀存在"的(現在不追究這是什么意思, 下文再講), 而前者卻不一定有什么現實對應物].
我們知道Euler時期就已經對實數有了模糊的概念(他已經發現了很多跟


[這個公式的含義實際上也不明確; 什么叫把


Dedekind等人嚴格地定義了實數, 至此人們總算是能夠用不引發歧義的語言來描述實數. 按照現在的觀點, 實數其實也只是一個思維對象, 十進制小數和Dedekind分划等等不過是這個思維對象在現實中的實現. 而圓周率等等需要借助幾何度量來定義的實數也可以納入這個邏輯框架之下了, 因為有了分析學的幫助后, 我們就能夠說清楚什么是"曲線的長度"了.
但是對於"虛數", 不得不承認, 我們還是感到困難, 因為它並沒有實在的對應物, 可偏偏在實際問題(流體力學, 傳熱學, 電學etc)之中有着重要的應用.
怎么才能夠為方程

我們當然可以通過實數域上的二維可除代數來定義復數. 但這樣似乎沒法做太多的推廣. 所以我們換一種方式來考慮問題. 這種方式能夠讓我們說清楚什么是"添加代數方程的根".
對於給定的域

![k[x]](/image/Ly93d3cuemhpaHUuY29tL2VxdWF0aW9uP3RleD1rJTVCeCU1RA==.png)
[注: 回憶一下, 多項式環
![k[x]](/image/Ly93d3cuemhpaHUuY29tL2VxdWF0aW9uP3RleD1rJTVCeCU1RA==.png)

對於一個不可約多項式
![f(x)\in k[x]](/image/Ly93d3cuemhpaHUuY29tL2VxdWF0aW9uP3RleD1mJTI4eCUyOSU1Q2luK2slNUJ4JTVE.png)


![K=k[x]/I](/image/Ly93d3cuemhpaHUuY29tL2VxdWF0aW9uP3RleD1LJTNEayU1QnglNUQlMkZJ.png)













這樣, 我們知道了"添加代數方程的根"的嚴格含義. 至於"有理數"的定義, 則要簡單得多; 無非就是整環的分式域而已.
如果某域上的任何代數方程在這域中都有解, 則這域稱作代數閉的. 對於這類域, 研究其上的多項式是一件比較容易的事情; 實際上, 任何多項式都可以分解成線性因式的乘積(Bezout定理).
回到復數的情形, 取




說了這么多, 才發現自己寫了很多似乎很"哲學"的話, 之后后面一部分是干貨. 但假如前面的"哲學"能夠幫助一些人想清楚問題的話, 我也很欣慰.
拿負數來開平方有必要嗎?
有必要!
但是這個問題的完整解答,遠不止於“定義:i^2=-1”。
一、筆者首先簡要地介紹有理數集:
1、我們有自然數集和加法運算,自然數集對加法運算封閉(兩個自然數做加法運算結果還是自然數)。
2、加法運算的逆是減法運算,但是自然數集對減法運算不封閉(不能保證任意兩個自然數做減法運算結果還是自然數);通過定義了負數,把自然數集擴充為整數集;整數集對加法運算和減法運算都封閉(人們認可負數經歷了很長的過程,原因是認為負數沒有現實意義)。
3、乘法運算的逆是除法運算,整數集對乘法運算封閉,但是對除法運算不封閉;通過定義了分數,把整數集擴充為有理數集;有理數集對加法運算、減法運算、乘法運算和除法運算(除數非零)都封閉。
4、有理數集更嚴格的稱謂是“有理數域”,但是“域”的解釋需要抽象代數的內容,為了通俗起見,筆者就把“有理數域”稱為“有理數集”;以上的“集”都是集合的意思,就是同一類數的集合;比如自然數集、整數集。
二、萬物皆數與畢達哥拉斯定理:
1、古希臘時期的畢達哥拉斯學派認為”萬物皆數“並奉為教義,這里的數指的是有理數;這種信念源於他們對自己構造的有理數集的自信,他們認為有理數集已經包含了所有的數。
2、隨后這個學派發現了”畢達哥拉斯定理“,即”勾股定理“,並用面積法給出了證明。


3、如果”萬物皆有理數“的話,那么直角三角形的斜邊也應該是有理數;但是畢達哥拉斯學派的希帕索斯(Hipasus)找到了這樣的例子並給出了證明:a=1,b=1,由a、b通過勾股定理確定的c不是有理數!有一種說法是Hipasus因為這個發現被逐出了學派,另一種說法是他遭到了學派的屠戮。
4、無論如何,有理數集中沒有這樣”c“,但是現實中確實存在這樣的c,那唯一的原因就是畢達哥拉斯學派創造的有理數集存在缺陷,沒有涵蓋所有的數!
5、通過添加開n次方運算,把有理數集擴充為實集(實集不是實數集,只是部分實數的集合,這里的實集嚴格來說只是有理數集的n次代數擴張)。
6、實集對加法運算、減法運算、乘法運算和除法運算(除數非零)封閉,實集中的正數還對開n次方運算封閉,實集中的負數對開奇數次方運算封閉而對開偶數次方不封閉;特別的,√(-1)不在這個實集中,換言之在這個實集中沒有數的平方等於(-1)。
三、是添加定義的時候了嗎?
1、那是否應該添加定義”i^2=-1”或是“i=√(-1)”,把上述的實集做成一個更大的數集?
答案是人們認為沒有必要!
2、人們認為正數開方是有意義的,因為開方的結果在現實中有這樣的元算與之對應。正如√2,人們確實能找到一條長度不多不少恰好是√2的線段。
3、人們認為負數開方是沒有意義的,因為開方的結果在現實中沒有這樣的元素與之對應。當然筆者還說過,那個時代,人們甚至還不認可負數,因為在現實中沒有”負“的線段。³√(-2)=-³√(2)只是正數開方的一種”變形“;至於√(-1),那更沒有人關心有沒有東西與它對應了,因為它沒有現實意義。
四、三次、四次方程與求根公式:
1、所謂的方程,就是含有未知量的等式;未知量是數,方程就是代數方程;未知量是函數,方程就是函數方程(例如微分方程和積分方程);方程的解,就是一個能使方程成立的量;代數方程的解是數,這樣的數稱為代數方程的根。
2、代數方程里,人們比較關注多項式方程,因為這樣的方程與人們的生產生活密切相關;古典數學時期,數學家研究的方程也主要是多項式方程。下文出現的”方程“都特指”多項式方程“。
3、所謂的方程的求根公式,就是用方程的系數通過加減乘除和開方運算來構造根的式子。
4、一次方程和二次方程的求根公式很早就被發現了,人們致力於尋找三次和更高次方程的求根公式。
5、16世紀意大利數學家菲爾洛(Ferro)發現了缺二次項的、即形如x^3+px+q=0的三次方程的求根公式。因為當時人們普遍不接受負數,所以實際上Ferro是把缺二次項的三次方程分成了三類:x^3+px=q、x^3=px+q、x^3+q=px,p和q都是正數;他分別給出了解法。
6、有意思的是,當時的數學家之間流行”決斗“(文藝復興時期的風氣?)。所謂的”決斗“,就是相互要求對手解決自己提出的問題。所以Ferro把自己的三次方程求根公式作為決斗時秘密武器,沒有發表。也因為這個求根 公式,Ferro在決斗中屢屢獲勝,名聲鵲起。
7、Ferro死前,把自己的秘密武器傳授給了學生菲奧爾(Fior)和女婿兼繼承人納威(Nave)。
8、Fior也是一個爭強好勝的人,他向當時的數學家塔爾塔利亞(Tartaglia,這不是原名,意為口吃者,Tartaglia孩童時期被法國士兵用馬刀砍傷了臉變成口吃)提出挑戰。Tartaglia並不知道缺二次項的三次方程的求根公式,但是在挑戰的壓力下,竟然成功地推導出了一般的求根公式!因此,Tartaglia在與Fior的決斗中大獲全勝,因為后者並不會解形如x^3+rx^2+px+q=0的一般三次方程。Tartaglia名聲鵲起。
9、卡爾丹(Cardano)得知這件事后,多次乞求Tartaglia把求根公式告訴他。作為回報,Cardano許諾給予Tartaglia經濟上的援助。Tartaglia最終耐不住Cardano的軟磨硬泡和利益誘惑,把求根公式以一首晦澀難懂的語句詩的形式告訴了Cardano,並要求Cardano發誓保密。
10、后來,Cardano從Nave那里了解到Ferro的求根公式,認為Tartaglia的求根公式本質上和Ferro的求根公式是一樣的(其實一般的三次方程通過一個變量代換就可以轉化為缺二次項的三次方程,待會大家就會看到)。
11、所以Cardano不顧自己的誓言,把求根公式傳授給了學生費拉里(Ferrari),Ferrari在此基礎上竟然發現了四次方程求根公式!
12、Cardano把三次方程求根公式和學生Ferrari的四次方程求根公式發表在了自己的著作《重要的藝術》(Ars magna)。Cardano這樣評論道:”Ferro在30年前就發現了這個法則,並把它傳給了Fior。是Fior向Tartaglia挑戰,使得Tartaglia有機會重新發現這一法則。Tartaglia在我的懇求之下把這個法則告訴了我,但Tartaglia保留了證明,我在獲得這種幫助之下找到了它的證明“。
13、接下來就是Tartaglia對Cardano的嚴厲控訴,譴責Cardano的背信棄義。憤怒的Tartaglia向Cardano提出挑戰,而Ferrari代替自己的老師接收了挑戰。因為Ferrari已經發現了四次方程的求根公式,所以大敗Tartaglia。Tartaglia名聲掃地,在爭吵和窮困中度過了晚年。
14、三次方程求根公式是枯燥的,但是公式背后的歷史是有趣的;筆者無意評論Cardano和Tartaglia孰對孰錯,每個讀者心中自有看法。
五、三次方程不可約的情況:
1、一般的三次方程為aX^3+bX2+cX+d=0,通過變量代換X=x-[b/(3a)](前文提及的),一般的三次方程可以轉化為缺二次項的三次方程x^3+px+q=0,求解這個方程就可以了。
2、x^3+px+q=0的求根公式:
這里筆者就不給出求根公式的推導過程了。
3、注意到⊿要開平方,但⊿並不能保證一定大於0。也就是說,Cardano或是Tartaglia的用加減乘除和開方運算構造的求根公式里,可能要面臨負數開平方的困境。
4、為了讓讀者更清晰的認識到矛盾所在,筆者舉一個例子:
三次方程x^3+px+q=0,p=-10,q=6。
函數y=x^3-10x+6的圖像大致為

函數曲線和x軸相交的點的x值,就是三次方程x^3-10x+6=0的根。
通過圖像,我們可以清楚地看到這個三次方程有3個實根。
但是,⊿=(1/4)q^2+(1/27)p^3=-28.037<0!
5、也就是說,實系數的三次方程,對於⊿<0的情況,為了得到3個實根,根據求根公式,必須對負數開平方!這個結果對16世紀的數學家是難以接受的。
6、借助負數開平方得到實根的過程,實在難以讓人滿意,所以Cardano試圖”修正“求根公式來避免這種情況。但是,所有的嘗試都失敗。Cardano無奈地把這種情況稱為”三次方程不可約“情況。
7、為了處理這種情況,Cardano引入了虛數單位i,定義i^2=-1,使得求根公式可以正常運作。
8、那么這樣的”修正“是否存在呢?直到19世紀,天才數學家伽羅瓦(Galois)才用他開創性的群論工具才給出答案:不存在!也就是說:”借助負數開平方得到實根的過程“是無法避免的!
9 、這里必須強調的是:二次方程的求解之所以沒有導致虛數i的引入,原因在於判別式⊿<0時方程確實沒有實數解,直觀地看就是函數曲線y=ax^2+bx+c與x軸確實沒有交點,人們不會有興趣更不會認為有意義而去為負數開平方動腦筋!
六、總結與反思:
1、數學似乎和所有人開了一個玩笑:當你認為有理數域完備的時候,你發現用自己證明的畢達哥拉斯定理居然發現了一大類怪胎,所以不得不把開方運算納入系統;當你認為求根公式能解決所有三次方程的時候,你發現三個明顯存在的實根居然要借助負數開平方,所以不得不定義”i^2=-1”;至於定義了”i^2=-1”之后,給代數和分析帶來的諸多便利,那已經是后話。
2、這再次驗證了筆者的話:“沒有哪一位數學家,可以從一開始就預見他所定義創造的東西,能帶來多少方便快捷”,或是存在多少缺陷;數學家都是摸着石頭過河,一路上很多修修補補。課本中的斟字酌句的描述,未能表現出創造過程中的斗爭、挫折,以及在建立一個客觀的結構之前,數學家所經歷的艱苦漫長的道路。
3、“i^2=-1”的故事,遠不是一個簡單的定義所能講述的.
樓上的答案都沒有提到這一點,復數最重要的性質是 旋轉。也就是 兩個復數的積的輻角等於各自輻角的和。如果沒有這一特性,復數在數學和物理上的地位不會像現在這么重要。
先從原題說起,從根本上來看,為什么i是-1的平方根。

-1位於實軸負半軸,輻角為π(180度)。開平方,按照前面說的輻角的性質,即是輻角減半,變為π/2,也即虛軸正半軸上的i的位置。另一個解是輻角為3π/2的-i,因為-1的輻角也可以是3π。
或者反過來看,一個復數乘以i,就相當於逆時針旋轉π/2。那么i^2=1*i*i,就是把1旋轉了2次π/2,正好落在-1上。
舉一反三,現在大家明白如何從復數旋轉的角度,來說明為什么負負得正了吧?
理解了這一點,就很容易明白,為什么復數作為一個不那么自然的,人為發明的數,能夠如此好地應用於物理了。
比如極其重要的簡諧振動,可以看成復平面單位圓上,做勻速圓周運動的點,在實軸上的投影。既然是旋轉,那么用時間的指數函數就可以表達了,並且求導非常方便。

按照i的定義,i是-1的平方根,或者


接着來:

如果你的代數感覺好,你馬上就覺得上面的式子有一些“代數味道”。是的,一個角度為


索性,我們把式子補齊:


還記得三角恆等式么:


針對一個任意角度,把cos部分作為實部,把sin部分作為虛部,用三角不等式就可以構造出復數的乘法,這就是復數乘法的意義。改寫成:
![cos(a+b) + isin(a+b) = [cos(a)cos(b)-sin(a)sin(b)] + i[sin(a)cos(b)+cos(a)sin(b)]](/image/Ly93d3cuemhpaHUuY29tL2VxdWF0aW9uP3RleD1jb3MlMjhhJTJCYiUyOSslMkIraXNpbiUyOGElMkJiJTI5KyUzRCslNUJjb3MlMjhhJTI5Y29zJTI4YiUyOS1zaW4lMjhhJTI5c2luJTI4YiUyOSU1RCslMkIraSU1QnNpbiUyOGElMjljb3MlMjhiJTI5JTJCY29zJTI4YSUyOXNpbiUyOGIlMjklNUQ=.png)
也就是教科書上看到的形式:
![z_{1} \cdot z_{2} = (x_{1} + iy_{1}) \cdot (x_{2} + iy_{2}) = [(x_{1} x_{2}) - (y_{1} y_{2})] + i[(x_{1} y_{2}) - (x_{2} y_{1})]](/image/Ly93d3cuemhpaHUuY29tL2VxdWF0aW9uP3RleD16XyU3QjElN0QrJTVDY2RvdCsrel8lN0IyJTdEKyUzRCslMjh4XyU3QjElN0QrJTJCK2l5XyU3QjElN0QlMjkrJTVDY2RvdCsrJTI4eF8lN0IyJTdEKyUyQitpeV8lN0IyJTdEJTI5KyUzRCslNUIlMjh4XyU3QjElN0QreF8lN0IyJTdEJTI5Ky0rJTI4eV8lN0IxJTdEK3lfJTdCMiU3RCUyOSU1RCslMkIraSU1QiUyOHhfJTdCMSU3RCt5XyU3QjIlN0QlMjkrLSslMjh4XyU3QjIlN0QreV8lN0IxJTdEJTI5JTVE.png)
如果你有興趣,請玩歐拉公式,去了解這種乘法計算中的各種有趣的地方。
至於i么,其實就是復平面上的一個自然基。i的“全稱”是:
![i=[0, 1]^{T} =[cos(\pi/2), sin(\pi/2)]^{T}](/image/Ly93d3cuemhpaHUuY29tL2VxdWF0aW9uP3RleD1pJTNEJTVCMCUyQysxJTVEJTVFJTdCVCU3RCslM0QlNUJjb3MlMjglNUNwaSUyRjIlMjklMkMrc2luJTI4JTVDcGklMkYyJTI5JTVEJTVFJTdCVCU3RCs=.png)
小結一下:在實數上玩的時候(比如代數多項式的根),常常發現數不夠用,於是把實數擴張成復平面。復數(域)的運算限制在實軸(域)上都是成立的。i的平方所以是-1,這樣理解:平方是同一變換兩次合成的結果。把實數乘法單位元1變換成-1(加法群逆元),需要在復數域中表達為一個角度為



我們剛才都是從代數在講。我們注意從分析上:


各種導數,都無非是在相位上變換;歐拉公式也能看出,乘除和指對數也都是在相位上變換;就不難理解為什么那么多物理現象需要用復數來描述了。