對於寫程式的人而言,數學通常是為了拿來用的,例如:
- 為了做影像處理,語音處理、訊號處理而學習《傅立葉轉換》
- 為了瞭解神經網路模型,所以學會了《偏微分、梯度、與鏈鎖規則》
- 為了資料結構設計而學習《圖形理論》,然後學會了各種《圖形上的算法》。
但是、這種《以應用為目的》的方式,常常讓我們無法真正進入數學的殿堂 ...
數學系的數學,其實比較在意《系統性與優美性》
對於數學家而言,學習數學本身就是目的,學習之後就能發展出更多更好的數學,證明更多的定理,發現更多的數學規律 ...
本書的想法,就是讓《程式人》用數學家的角度,而非應用的角度,來學習數學,並且用 Python 去實作這些數學,讓程式人所學的數學能更有系統,而不是《哪裡有用學哪裡》 ...
在我大學的時候,看到下列數學名詞,我就會不知所措:
- 群、體、環、模
- 向量、張量、場
- 拓樸學、分析學、希爾伯特空間
為甚麼會不知所措呢?
因為我腦海裡搜尋不到這些詞的意義 (就算曾經學過,也沒真正把定義搞清楚) ,所以常常拿香蕉比雞腿,搞得數學跟玄學沒兩樣 ...
但是現在我知道,這些都是很有系統的數學定義,就算我不知道,查一下維基百科,大概就能理解其意義了。
數學系的數學,可以分為《純粹數學領域》和《應用數學領域》,純粹數學的領域如下:
- 數學基礎:邏輯、集合、關係、函數
- 代數:+ - * / 等運算形成的結構體系
- 幾何:空間 Space 的相關數學
- 分析:基本上就是微積分 ...
以下是成功大學數學系的《純粹數學》相關課程
除了以上三大領域之外,通常被歸類為應用數學,像是機率統計、電腦相關的數學等等。
純粹數學領域,主要是《代數、幾何、微積分》所建構出來的世界,其結構如下圖:
在《集合、邏輯、函數、關係、證明》這些基礎上,數學家們建構出《定義、公理》,然後根據這些《定義與公理》推導出一個又一個的《定理》。
在兩千多年前,歐幾里德的《幾何原本》就以這樣的方式,透過定義非常基本的《點、線、面、圓》等概念,然後逐步推導出一個又一個的定理 (像是畢氏定理),建構出整個《歐氏幾何》的世界。
歐氏幾何的這種方法,在歐洲失傳了很久,但卻被穆斯林教徒保存在他們的《智慧宮》。
在文藝復興時期,《幾何原本》從穆斯林手上,又傳回了歐洲,於是歐洲人才驚覺:
原來我們的祖先曾經建構出如此優美的數學,但是卻失傳了
但是除了數學之外,歐洲人在教會的重重鉗制下,意外的結合《宗教改革》的力量,開始發展出《科學思潮》,用實驗的方式去檢驗理論。
於是除了數學之外,歐洲的《天文、物理、醫學、化學、生物學》等也快速發展,因而成就了後來所謂的《工業革命》。
雖然工業革命並非單純是因為數學造成的,但是數學在工業上,卻扮演著那種可以貫穿數百年,卻不會因環境改變而失傳或難以繼續的一種長期知識。
科技的發展,始終圍繞著《數學、物理》這類基礎科學,即使環境改變,但是這些基礎科學還在,人類就能利用這些法則,創造出更新更強大的科技。
但是、對於數學家而言,數學不只是一個解題工具,而且是一種優美的結構體系,這個結構體系,建構在一些稱之為《公理》的系統上。
這樣的想法,在 1920 年的《希爾伯特計畫》當中被清楚地描述出來,而且企圖將所有的數學都納入這種《公理 => 定理》體系,這就是所謂的《公理化數學》。
當然、這些公理化的想法,並非希爾伯特創造的,而是數學家們在歷史中不斷使用,從古希臘的《歐幾里得》幾何學就開始使用的一種方法。
但是希爾伯特對《公理化》的要求更嚴格,所以他重新用更嚴格的標準,將歐氏幾何重新公理化,寫下了《[幾何學之基礎]》 (Grundlagen der Geometrie) 這本書,這組公理被稱為 希爾伯特公理 (Hilbert Axioms)。
但是希爾伯特並沒有停在幾何學上,而是企圖將整個數學體系公理化,因此他在 1900 年演講時提出了 希爾伯特的23個問題 ,其中第二個問題 算術公理之相容性 就是在問是否能將包含《數論》在內的邏輯系統整個公理化,而且要達到《一致且完備》的情況。
- 一致:不會產生矛盾
- 完備:所有定理都可以被證明
1929 年哥德爾證明了《一階邏輯是一致且完備》的 《哥德爾完備性定理》 之後,似乎希爾伯特的想法即將被實現了,但是在 1931 年哥德爾證明了 《加入整數系統的一階邏輯不完備》的《哥德爾不完備定理》 之後,希爾伯特第二問題的 算術公理之相容性 差不多就被否決掉了。
但即使如此,這種公理化的手法,對現代數學的影響力非常大,所以《希爾伯特計畫》雖然沒有達到《一致且完備》的要求,但是對數學系統必須明確用一些公理描述出來,然後根據這些法則推出這個系統的定理,卻是現代數學必須遵循的基本條件。
這樣的公理化要求,在非數學系的教科書也到處都是,但學生們卻很難體會公理化有何好處?
對於數學家而言,一個數學系統,只要列出其公理,那麼數學家去證明出該系統中一個又一個的定理,這些定理就會適用於該數學系統。
然後數學系統有層次性,於是若 B 系統是 A 系統加上額外的公理所形成的,那麼 A 系統的定理,在 B 系統中自然就成立,根本不需要再去證明,因此整個數學的大廈就可以被建立起來,而不需要重複地在每一個系統裡去證明那些已經被其他數學家證明過的定理。