代數

在《資訊工程系》當中,我們通常必修《線性代數》,但是在很長的一段時間裏,我其實搞不清楚到底甚麼是《代數》。

狹義來說,代數學起源於《算術》,是研究《加減乘除》運算的一門學問:

廣義來說、可以參考維基百科英文版對代數的解釋:

In its most general form, algebra is the study of mathematical symbols and the rules for manipulating these symbols

我認為這個《廣義解釋》比較清楚的描繪了代數的範圍,根據這個解釋,代數學是研究數學符號、以及操作這些符號之規則的學問。

數學的領域很大,但是大致第一層可以約略區分為《代數、幾何、分析、統計》等等領域。

在數學分支中,代數學應該是和電腦之間關係最密切的一門學問了,因為電腦基本上也是操弄數字以完成工作的一項工具。

而幾何大概是和《電腦距離最遠》的一項數學,因為像《圓形、直線、曲線》等等圖形的表達,通常是電腦不太擅長的工作。因此幾何證明對電腦而言,有點格格不入的感覺,雖然電腦其實也可以用來做幾何證明的!

算術

從小學一年級開始,我們就學習《加減乘除》等概念,一直到四年級以之前,都是以《算術》為數學的主軸。

《算術》大概可以說是最實用的數學了,這是一門你到菜市場買菜都可以用得到的數學,而且每天都會用到!

我們可以用電腦輕易地進行一些算術的動作,例如用 node.js+javascript 進行下列操作:

D:\Dropbox\gitbook\rlab\code\algebra>node
> 3+5
8
> 7*4
28
> 25*8
200
> 200/5
40
> ((3-5)+20/4)*3
9

以上的算術看來簡單,但是數學從古代演化到今天,算術其實經歷過長期不斷地改良與演進。

在古代數學史上,兩河流域的巴比倫在從公元前3000年開始就發展出了獨特的數學體系,採用六十進位制,詳情請參考 《維基百科:巴比倫數學》

我們現在所用的阿拉伯數字,其實是印度的婆羅米人發明的,這種很容易撰寫的十進制數字,對數學的發展幫助很大,這是現代人很難想像的。

我們現在所使用的阿拉伯數字 0123456789,屬於歐洲式的寫法,標準的阿拉伯寫法是 ٠١٢٣٤٥٦٧٨٩,更詳細的內容請參考 《維基百科:印度-阿拉伯數字系統》

阿拉伯數字採取位值法,高位在左,低位在右,從左往右書寫。藉助一些簡單的數學符號(小數點、負號等),這個系統可以明確的表示所有的有理數。

初等代數

等到小學生已經學會《加減乘除》這些算術了,我們的數學教育開始慢慢導入《變數》的觀念。

但是變數的概念並不容易,不只我覺得如此,康熙學代數時也發生過類似的現象,當時《傅聖澤》為了教康熙 (a+b)2=a2+2ab+b2(a+b)^2=a^2+2ab+b^2 ,於是寫下:

(甲+乙)(甲+乙)= 甲甲+二甲乙+乙乙

康熙看了很頭大,於是寫下了:

諭王道化:朕自起身起身以來,每日同阿哥等察【阿而熱巴拉新法】,最難明白,他說比舊法易,看來比舊法愈難,錯處易甚多,騖突處也不少 ...... 還有言者:甲乘甲、乙乘乙,總無數目,即乘出來亦不知多少,看起來想是此人算法平平耳。(參考【掌故叢編】二輯【清聖組諭旨二】)

詳情請參考:《康熙皇帝與符號代數》 一文!

但是康熙皇帝的數學造詣其實蠻高的,這點可以參考 《康熙皇帝的數學事業》 一文,康熙重用《南懷仁》並向他學習數學,南懷仁為了交康熙數學,還找了一堆人來翻譯《幾何原本》。康熙也向比利時的神父《安多》學習了《數學概要》這本書。

連《萊布尼茨》都從《白晉》的信中得知康熙精通數學,結果送了一台二進位計算器給康熙。

這樣一個對數學很厲害的皇帝,卻也被《變數的概念所難倒了》,可見代數對古人來講,並不簡單!

言歸正傳,當我們學會變數的概念之後,老師就會引入《方程式求解》的問題,像是《國中一年級》的《一元一次方程式、二元一次方程式》求解問題等等,像是以下範例:

{4x+2y=142xy=1.\begin{cases}4x + 2y = 14 \\ 2x - y = 1.\end{cases}

多元一次方程組的求法,會衍生出《線性代數》這門以《矩陣》為核心的數學,這對電腦非常的有用,像是 matlab 這樣的科學計算軟體,就是 matrix laboratory 的簡稱,其設計完全是以《矩陣運算》為核心而建構出來的,我們將在後續的章節專門探討此一主題。

中學時學校會進一步教《一元二次方程式》的求解方法與公式,其公式如下:

ax2+bx+c=0ax^2+bx+c=0 的公式解為 b±b24ac2a{-b \pm \sqrt{b^2-4ac} \over 2a}

有了這樣的公式,我們可以很輕易地寫出一個程式,求解一元二次多項式的根。

檔案: root2.js

function root2(a,b,c) {
    var t = b*b-4*a*c
    if (t < 0) throw Error('沒有實根');
    var t2 = Math.sqrt(t);
    return [(-b+t2)/(2*a), (-b-t2)/(2*a)];
}

console.log("root of 1x^2+4x+0=", root2(1,4,0));

執行結果:

D:\Dropbox\gitbook\rlab\code\algebra>node root2
root of 1x^2+4x+0= [ 0, -4 ]

古巴比倫留下的陶片顯示,在大約公元前2000年(2000 BC)古巴比倫的數學家就能解一元二次方程了。巴比倫人並非求出通用的公式,而是針對某些特定的問題求解,詳情請參考 《維基百科:巴比倫數學》

後來、公元前300年左右古希臘的 歐幾里得 、公元200年左右亞歷山大城的 丟番圖 ,公元七世紀波斯的 花拉子米 等人也都研究過求且方程式的問題。

《丟番圖》是第一個將符號引入代數的數學家,並且提出了《丟番圖方程》和《丟番圖問題》,因此被稱為《代數學之父》。

丟番圖的墓誌銘 上寫著:

丟番圖的一生,六分之一是幼年時期,青少年時期占了十二分之一,又過了七分之一才結婚。5年後有了兒子,不過兒子比他早 4 年逝世,兒子一生歲月只有的一半

連人死了都還要出題給人猜,真的是個可怕的數學家阿!

歷史講到這裡,讓我們言歸正傳,回到《求根公式》上,一元二次方程式的求根公式並不難,只要代入公式立刻可以求得根式解答,於是早期的數學家當然會想,那《三次、四次、五次、六次、....》多項式有沒有求解公式呢?

但是這個問題並不容易回答,三次方程公式解四次方程公式解 的問題直到1520年時才由 塔爾塔利亞卡爾達諾 等人發現,其解法如下:

三次方程式的公式解

一元三次方程式: x3+ax2+bx+c=0x^3+ax^2+bx+c=0 公式解的求法,令 y=x+a/3y=x+a/3 ,如此可將上式改寫為

y3+3py+2q=0y^3+3py+2q=0 其中的 p, q 定義如下:

2q=2a327ab3+c2q={2a^3 \over 27}-{ab \over 3}+c , 3p=ba233p=b-{a^2\over3}

然後可以用 D=p3+q2D=p^3+q^2 作為是否有實根的判別式,D0D \leq 0 時三個根都是實根。

得到的解公式如下:

  1. y1=u++uy_1=u_+ +u_-
  2. y2=ρ+u++ρuy_2=\rho_+u_+ + \rho_-u_-
  3. y3=ρu++ρ+uy_3=\rho_-u_+ + \rho_+u_-

其中的 u±=q±D3u_\pm=\sqrt[3]{-q\pm\sqrt{D}} , ρ±=12(1±i3)\rho_\pm = {1 \over 2} (-1\pm i\sqrt{3})

四次方程式的公式解

一元四次方程式: x4+ax3+bx2+cx+d=0x^4+ax^3+bx^2+cx+d=0 公式解的求法,令 y=x+a/4y=x+a/4 ,如此可將上式改寫為

y4+py2+qy+r=0y^4+py^2+qy+r=0 其中的 p, q, r 定義如下:

詳細解法請參考 維基百科:四次方程

代數基本定理

通常在中學裏老師會告訴我們 《代數基本定理》 的內容,但是不會給出證明。

代數基本定理:方程式p(x)=xn+an1xn1+...+a1x+a0=0p(x)=x^n+a_{n-1} x^{n-1}+...+a_1 x+a_0=0 至少有一個複數根。

當我們知道至少有一個根之後,就可以用《遞迴方式》的《數學歸納法》證明該方程式 恰好有 n 個複數根

換句話說: p(x)=(xx1)(xx2)...(xxn)p(x)=(x-x_1)(x-x_2)...(x-x_n) 是成立的,也就是 n 次多項式可以完全被分解。

高斯一生總共對《代數基本定理》給出了四個證明,其中第一個是在他22歲時(1799年)的博士論文中給出的。高斯給出的證明既有幾何的,也有函數的,還有積分的方法。高斯關於這一命題的證明方法是去證明其根的存在性,開創了關於研究存在性命題的新途徑。

不過、代數基本定理只告訴我們複數根是存在的,但是並沒有說《存在固定的公式可以計算出這些複數根》。

既然代數基本定理告訴我們 n 次多項式可以分解成 n 個一次式的乘積,也就是 p(x)=xn+an1xn1+...+a1x+a0p(x)=x^n+a_{n-1} x^{n-1}+...+a_1 x+a_0 =(xx1)(xx2)...(xxn)=(x-x_1)(x-x_2)...(x-x_n) 那麼我們就可以得出以下的《韋達定理》

韋達定理

韋達定理: an1=e1,an2=e2,....,a0=(1)nena_{n-1}=-e_1, a_{n-2}=e_2, ...., a_0=(-1)^ne_n

其中: e1=ixi=x1+x2+...+xne_1=\sum_i x_i =x_1+x_2+...+x_n e2=j<kxjxk=x1x2+x2x3+...+xn1xne_2=\sum_{j<k} x_j x_k = x_1x_2+x_2x_3+...+x_{n-1}x_n e3=j<k<mxjxkxm=x1x2x3+x1x2x4+...+xn2xn1xne_3=\sum_{j<k<m} x_j x_k x_m = x_1x_2x_3+x_1 x_2x_4+...+x_{n-2}x_{n-1}x_n ... en=x1x2...xne_n=x_1x_2...x_n

代數數與超越數

根據上述的《代數基本定理》,n 次多項式有 n 個根 (含重根),那麼、是否有《某些數》不屬於任何《有理係數多項式》的根呢?

p(x)=xn+an1xn1+...+a1x+a0=0p(x)=x^n+a_{n-1} x^{n-1}+...+a_1 x+a_0=0

更精確地說,假如在上述方程式中,所有係數 aia_i 均為有理數,也就是 ai=pi/qia_i=p_i/q_i ,那麼請問是否有某些數不是任何《有理係數多項式》的根呢?

這個問題的答案是肯定的,因為像是 π,e\pi,e 等數,就不適任何《有理係數多項式》的根,這種數稱為《超越數》(Transcendental Number)。

而那些不是超越數的數,也就是那些是《有理係數多項式》的根的數,就稱為《代數數》(Algebraic Number)。

五次方程式的公式解

如上所述,《二次多項式》的公式解如下為 x=b±b24ac2ax = \frac{-b \pm \sqrt {b^2-4ac}}{2a},《三次多項式》和《四次多項式》也有公式解,雖然解的形式越變越複雜,但是我們有辦法一直往上,寫出五次,六次,七次一直到 n 次多項式的公式解嗎?

很可惜的,這件事情已經有人證明是做不到的了,證明的人是 阿貝爾伽羅瓦,他們分別利用群論的方式,證明了而五次以上的多項式沒有公式解,詳情請看下列連結:

results matching ""

    No results matching ""