這里要討論的,是關於數學分析(以及工科生的高等數學)這門課程本身的某些中心思想和知識內容的組織方式。我並不是數學教師,甚至不是數學系學生,但是我作為一個“業余”讀者,還是從這門課程中發現了一些自己以前沒有注意過的東西。在此分享出來,供大家參考和批評。
1 連續函數的意義
首先,讓我們從一個高等數學中再熟悉不過的概念——連續性說起。所謂函數的連續性定義如下:
設實函數\(f(x)\)在點\(x_0\)及其附近有定義。若給定一任意小的\(\varepsilon>0\),總能找到對應的\(\delta>0\)使得\(|f(x)-f(x_0)|<\varepsilon\)對所有的\(|x-x_0|<\delta\)都成立,則稱\(f(x)\)在\(x_0\)處連續。若一個函數在其定義域內都連續,則常稱該函數為連續函數。
我在這里沒有直接使用極限的記法,仍然用\(\varepsilon-\delta\)方法表述了一遍。“連續”兩個字究竟是在說什么呢?如果我們直觀地把定義翻譯成自然語言,就是說:如果函數在其定義域內某一點(且稱其為中心點)附近,總是可以划出一片足夠小的區域,使得該區域內的函數值都與函數在中心點處的值充分接近,那么就稱這個函數在該點處連續。歸根結底,我們不如說:函數在某點連續,就是說函數在此足夠平坦,足夠光滑。這是我們能夠從各種連續函數的圖像所得到的一種印象。
我們可以說,連續性是一種較好的性質,因為很多函數並不能滿足連續性的要求。一些函數在若干個離散的點上不連續,這里引出了關於間斷點的討論;另一些函數則干脆是處處不連續,比如在教材中常常討論的諸如Dirichlet函數與Riemann函數之類。盡管如此,這里卻要給出對微積分課程給出一個關鍵的斷語,那就是:
連續函數是數學分析課程(理科)的主線,更是高等數學課程(工科)所討論的幾乎全部內容。
在已經指出許多常見常用但並不連續的函數之后,為何我們仍然會得到這樣一個結論呢?我們不妨再回頭看看連續函數究竟有怎樣的特性。
1.1 連續函數類是實函數類的“傑出代表”
關於連續函數,有一個很不起眼的命題——這個命題[1]常常作為一些數學分析乃至實變函數教材課后一道簡單的習題列出,而工科生則可能沒有接觸過這個命題。其內容大致是這樣的:
命題:設有兩函數\(f_1(x),f_2(x)\)均在一個開區間\((a,b)\)上連續,其中\(a<b\)為兩個任意的實數。若\(f_1(x)\)與\(f_2(x)\)在\((a,b)\)內所有的有理點處取值相同,即
則函數\(f_1(x),f_2(x)\)必然在\((a,b)\)上所有點處都取值相同,即它們在區間上是同一個函數。
這個命題換句話說,就是:對於一個連續函數而言,只需要其在某區間\((a,b)\)上所有有理點上的值,就可以完全確定這個連續函數在\((a,b)\)內的情況,盡管我們甚至還不知道這個函數在那比有理點“多得多”(這個所謂的“多”當然不是嚴格描述)的無理點上究竟為何值——事實上大多數情況下我們也無法算出。
對於數學系的學生而言,這一命題看起來是十分普通的,至多不過為一道普通的練習題罷了;但是,如果我們現在是處在一個數學理論之“局外人”的視角來看待這個命題,我們不能不說這樣一個結果是極其值得思考的。為了便於讀者理解這個命題的深層內涵,這里我們還是有必要把這個命題證明一下,盡管所用的工具仍然是對於一般人而言顯得枯燥無味的\(\varepsilon-\delta\)理論(也就是利用前面那條連續性的定義來證明)。
證明:我們現在需要做的事情,就是證明滿足題設的這樣兩個\(f_1(x),f_2(x)\)在區間\((a,b)\)上的所有無理點處也取相同的值。現在任取一個介於\(a,b\)之間的無理數\(x_0\),那么我們要做的事情就是證明\(f_1(x_0)=f_2(x_0)\)的成立。考慮到這兩個函數在無理點\(x_1\)處都是連續的,因而對於任給的\(\varepsilon>0\),分別有與之對應的正數\(\delta_1,\delta_2\)使得$$\begin{cases}|f_1(x)-f_1(x_0)|<\dfrac{\varepsilon}{3}\ (|x-x_0|<\delta_1)\|f_2(x)-f_2(x_0)|<\dfrac{\varepsilon}{3}\ (|x-x_0|<\delta_2)\end{cases}$$我們取\(\delta\)為\(\delta_1\)與\(\delta_2\)中之較小者——從而這樣上面的兩個不等式都能在\(|x-x_0|<\delta\)的范圍內滿足,那么利用絕對值的三角不等式可以得到$$|f_1(x_0)-f_2(x_0)|\leq|f_1(x_0)-f_1(x)|+|f_1(x)-f_2(x)|+|f_2(x)-f_2(x_0)|$$觀察一下不等式最右側的情況,其中\(|f_1(x_0)-f_1(x)|\)與\(|f_2(x)-f_2(x_0)|\)在\(|x-x_0|<\delta\)時均小於\(\dfrac{\varepsilon}{3}\),相當於說它倆都是可以“任意小”的內容。而中間的一項\(|f_1(x)-f_2(x)|\),在無理點自然是不知如何,但是在所有有理點處必然為\(0\)。由於在任何一個無理點的任意小鄰域內總是有有理點存在,因此我們可以確認:無論\(x_0\)與\(\delta\)如何,總是可以在\(|x-x_0|<\delta\)的范圍內找到一個有理點,從而使得$$|f_1(x_0)-f_2(x_0)|\leq\dfrac{\varepsilon}{3}+0+\dfrac{\varepsilon}{3}<\varepsilon,$$並且考慮到\(|f_1(x_0)-f_2(x_0)|\)是一個常數,不因\(x\)的取值而改變,所以我們得到\(|f_1(x_0)-f_2(x_0)|<\varepsilon\)總是能夠成立。由\(\varepsilon\)可以任意小,故只能有\(|f_1(x_0)-f_2(x_0)|=0,\)也就是\(f_1(x_0)=f_2(x_0).\)這樣便證明了\(f_1(x)\)與\(f_2(x)\)即使在無理點也取相同的值——這正是我們所期待的結論。
證明是枯燥的——我在敘說的過程中顯得比較羅嗦,無非是為了避免給一般的讀者造成太大障礙。在證明過程中,別的許多細節或技巧都可以忽略(例如取\(\dfrac{\varepsilon}{3}\)的“別有用心”),唯有一點特別重要:
在任何一個無理點的任意小鄰域內總是有有理點存在。
這正是證明的核心。從比較直觀的角度出發,這個命題的證明過程其實可以非常容易的為我們理解:由於在任何一個無理點的附近都有有理點(說得更仔細一些,是無窮多個),再加上函數的連續性要求,這使得連續函數在無理點處的取值絕不是自由的——它必須與其周圍這樣無數多個有理點處的函數取值相協調,結果便是函數在無理點處的取值事實上已經被這些有理點鎖死了(所謂的qin-ding)。這便是隱藏在令人頭痛的\(\dfrac{\varepsilon}{3}\)之下的基本邏輯——函數的連續性與其在這看似很稀疏的有理點處之取值,便足以確定函數在整個實數域上的分布。
相反地,對於非連續的函數,當然不可能有這樣的好事情。有間斷點的函數當然可以在間斷點處取任何值——間斷點附近的那些連續點不能像在連續函數中那樣,約束住函數在該間斷點的取值。對於更一般一些的函數類,例如Riemann可積函數,所謂約束更是天方夜譚了——凡是熟悉Riemann可積性理論的學生一定知道,一個Riemann可積函數在一段區間上的積分,不因其在該區間上任意有限個(甚至可數無窮個)點處函數值的改變而發生變化。對於這些更加一般的函數,我們可以說:只要有一個點處的函數值不知道,函數就確定不下來。對於只含離散間斷點的函數而言,我們可以說這個點是任意一個間斷點(因為在間斷點之外函數還是連續的);而對於由Riemann積分值確定的一個可積函數,這個點可以是其定義域上的任何一個點了——也就是說,必須確定了所有的點才能真正的定下來這個函數。可以說以這種方式定義出來的函數是相當的桀驁不馴的。
到這里,我們可以初步得到一個結論了:連續函數類,正是整個實函數類之傑出代表。連續函數是一切實函數中最簡單、最方便處理的一類函數,也最與我們對所謂“函數”的表觀認識接近。從感性的角度來看,如果我們已經知道了某一個函數在足夠多個點(例如所有的有理點)的取值,這個函數不就應該定下來了嗎?然而,只有連續函數才具有這樣的性質。我們同樣可以將前面那個命題按另外一種方式來理解:在所有有理點處取給定函數值的連續函數是唯一的——完美的東西,理應是唯一的。
1.2 連續函數與實際科學問題的關系
前幾天與同學閑聊,說到高等數學的知識內容,他不禁感慨:“數學家們研究那么多千奇百怪的東西,在現實中又不存在,有什么意義呢?”這種看法,大致可以說是我們大多數大學生對於大學數學的普遍認識了。
這里首先要討論的倒不是這種成見,而是連續函數與實際科學問題的聯系。眾所周知,一旦我們打算在實際科學問題中應用諸如微積分之類的數學工具,我們便已經默認了我們所用的函數應當是“連續”的——這個“連續”不同於前面所討論的那種數學上的連續性,而是說這一個函數理應在觀測域內的任何一個點處都有定義都有值。至於數學上的那種連續性,對於大多數自然科學問題也往往是需要的,不過我們必須認識到這種連續性並非必要的事物——至少到目前為止我們可以這樣認為。
例如,現在我們要利用微分方程來研究某一動物種群的增長。設有一個時間變量\(t\)(我們可以認為它是從研究開始的時間點計起的),又記這樣一個動物種群中的個體數在\(t\)時刻為\(N(t)\)。此外,我們還假設,這一種群有一個固定的出生率\(b\)。由於出生率表示的是“在單位時間內出生的個體數占當前個體總數的比率”,我們在這里把所謂的“單位時間”壓縮為一個時間微元\(\mathrm{d}t\)以表示瞬態過程,那么就有\(b=\dfrac{\mathrm{d}N}{N\cdot\mathrm{d}t}\),也即
該方程表示動物種群的增長率正比於種群的數量——個體越多,生的越快。這是很好理解的。通過非常簡單的分離變量法來解這個微分方程,並假設在\(t=0\)時種群數量為\(N_0,\)我們很快能得到這個微分方程在該初值條件下的解為\(N(t)=N_0\mathrm{e}^{bt}\)。這個式子表明種群數量隨時間的變化呈現為急劇增長的指數函數——也就是高中生物課所謂的“J”型增長。
無論是微分方程的解法還是生物學的理論,皆非此處所關心的重點問題。我們所關注的問題是:真實世界中,種群數量的增長真的是由這樣的連續函數所確定的嗎?事實上並非如此,因為一方面種群個體的數量總是整數,不可能遍歷一個區間;另一方面,種群個體的數量也並非無時無刻不在增加,也就是說那個增長率\(b\)不可能表現為一個瞬態的變化系數。這些問題的根源歸結於:種群個體數量增長這樣一個過程,本來就是一個離散的過程;因此,出生率\(b\)也最多只能是關於一段足夠長的時間所計算出來的比率,不可能用於描述連續的變化過程。在現實情況下,我們對於種群個數的記錄總是離散的,例如我們選擇每一年記錄一次種群的數量——這時\(t\)只能取整數年,相應的變化模型則應表述為
這里\(\Delta t\)恆為一年,而\(b_y\)則表示年出生率——我們仍然假設其是恆定的。微分模型被轉化為離散模型(也就是差分模型),種群的數量最終也並不會表現為指數函數了——它只會是一系列看起來呈指數增長的離散數據點而已。(如果結合\(N(t)\)的意義要求該函數在每一個時刻都應有值,那么函數圖像就會是一個所謂分段函數的形態。)
從這個例子我們可以得到什么?盡管在大多數自然科學問題中我們總是不自覺的使用那些在區間上任何實數點處都有值的函數(也就是一般人所理解的“連續函數”)來作為實際問題的數學模型,但我們所面對的現實世界卻往往是離散的、不便於處理的。這一方面源於某些自然規律或實際問題本身就是以離散的變化而呈現出來(例如種群個體的出生與死亡,銀行存款的利息生成,乃至量子論的相關結果),另一方面也出自於觀測這一行為本身的有限性——我們不可能觀測到無限個數據點,人眼有最小的視覺分辨頻率,電子設備也有采樣的時間間隔。這一系列原因導致我們所最終接觸到的世界總是以離散的形態呈現於我們的面前,盡管我們傾向於認為這些離散形態因其極小的時間間隔而可被毫無顧忌的用連續模型加以概括。連續的函數在許多時候都比離散的數據更易於理解和應用——前提是這種連續的規律足夠簡單並已經為人類認識研究的足夠透徹,例如初等函數或一部分特殊函數。
在數學理論的領域以內,我們可以說有許許多多不同的函數,且在上一節我們也認識到只有連續函數能夠通過相對“稀疏”的點加以確定,其余函數則可任意的改變它們在那些奇異點處的取值而不受約束。但是,在實際科學問題中,我們卻會發現:我們最終所擁有的只有連續函數——包括一部分只有少數間斷點的“幾乎”連續函數。為何如此?因為我們總是在觀測、記錄數據時作出這樣一個假設:
觀測和記錄所得的數據,已經足以確定該函數的變化規律而沒有過分的偏差。
這不是與連續函數的性質十分類同嗎?區別僅在於,我們的觀測和記錄總是有限的,因此即使是確定連續函數所要求的“所有有理點處函數值”我們也不可能全部獲得。但總體而言,通過縮小觀測間隔,我們可以保證觀測結果的足夠“充分”,接下來通過插值的方法所得的近似曲線之相對誤差可以降到自然科學所容忍的范圍以內。這“縮小觀測間隔”的目的,也無非就是為了保證一件事情:
在任意給定的時間點周圍足夠近的時間范圍內,總是存在已經觀測到的數據點。
這樣,再利用連續函數的特性,我們便可以放心的認為:利用觀測數據加上插值等連續化方法所得到的函數曲線,基本上能夠反映被觀測量、被研究問題的真實情況。換句話說,在自然科學的領域內,我們利用連續函數在連續點附近相對平滑這一特性,來彌補觀測有限這一問題,以降低其所造成的誤差,保證科學規律最大的真實性。這就是連續函數在一般自然科學問題(特別是各種連續現象)中的重要意義與價值。
而對於前面所言的那些離散模型問題(如生物種群數量),用連續函數來表征的意義在於將問題簡單化,畢竟在較為簡單的情形下微分方程比差分方程易於解決。再者,我們又何嘗不能說生物種群在某一刻的數量是個小數呢?懷胎十月,我們不妨認為每過一個月這世界上就多了0.1個人,直到孩子誕生,人數達到1為止。所以,關於離散模型,我們也可以說是觀測或記錄上的間斷所導致的,而連續函數的引入正是為了填補上那些沒有數據點處的規律。
當然,我們也得說,這里有很多例外。當我們的觀測已經被約束局限於某些固定的特殊點,或待研究的現象表現為某種瞬時突變,連續函數的這種局域特性反而會顯得多余,甚至會引發錯誤的結論。這時我們所應用的數學模型,又會有所改易。這些內容,在具體的學科領域之內,會有更加詳細的討論。
1.3 概念延伸:稠密集確定連續函數
前面我們一直在喋喋不休地重復“所有有理點確定連續函數”,這“所有的有理點”難道真的有什么特殊之處?其實,選取這一系列點為代表,有理數本身的諸多性質(比如可以表示為\(p/q\))倒並沒有發揮什么作用,唯一的要點在於:
任何一個實數的任意小鄰域內都有有理數。
正是這一條性質使得我們最終得以確認連續函數只需要有理點就可以完全確定。事實上,不限於有理數集,只要任何一個數集滿足這樣的性質,我們都可以證明函數在這個數集上的取值就能唯一的確定一個連續函數。因此,我們給出這樣一個定義:
定義:設數集\(A\subset B\),若任給\(x\in B\)及任意小的\(\delta>0,\)總是存在\(x'\in A\)滿足\(|x'-x|<\delta,\)則我們稱\(A\)是\(B\)的一個稠密子集,或稱\(A\)在\(B\)中稠密。如果這里取\(B=\mathbb{R}\),我們也常直稱\(A\)是一個稠密集。
於是,我們起初所討論的那一個命題可以進一步拓展為:
連續函數在整個實軸上的取值,可以唯一地由其在一個稠密集上的取值所決定。
稠密集決定一個連續函數。這正是連續函數的神奇之處:部分決定整體。當然我們也得承認,這不是一種魔術,而是因為連續這兩個字已經給連續函數施加了非常強的約束,這種約束使得整個實數集顯得“多余”了。
關於稠密集,我們還可以有更多的思考。例如,有理數集顯然是一個稠密集,那么在有理數集中移出有限多個有理數之后,所得到的數集還是稠密的嗎?顯然還是。(證明或理解,交由讀者自己完成。)那么我們忍不住要問,實數集最小的稠密集是什么呢?也就是說,是否存在一個稠密集\(S\)是其他所有稠密集的子集呢?若是有這樣的一個數集,我們就可以只靠某一函數在\(S\)上的取值來“最經濟”地決定一個連續函數了。關於這個問題,我所能給出的結論是:空想是徒勞的,因為沒有這樣的“最小稠密集”——既然我們已經確認任意稠密集去掉有限個點仍然稠密,那么如果真有這樣一個最小稠密集\(S\),給它去掉若干個點又如何呢?這必然與其最小性矛盾。這些內容,讀者若感到有很強的興趣,歡迎自學點集拓撲理論的相關內容;點集拓撲算是數學理論的柱石之一,然而相關知識對於自然科學的意義卻比較寥寥,因此在這里就不再多費口舌了。(這里有Matrix 67上的幾個比較簡單而有趣的稠密集問題:再談稠密性:令人吃驚的稠密集及其交集)
2 何謂“有理”分析:數學分析的知識結構
以上我們討論了連續函數的特殊價值。現在我們仍然從大家都有了解過的《高等數學》課本之中,再舉出幾個例子來——而它們並不是連續函數。
- Dirichlet函數:\(D(x)=\begin{cases}1,x\in\mathbb{Q}\\0,x\notin\mathbb{Q}\end{cases}.\)
- Riemann函數:\(R(x)=\begin{cases}1/q,x=p/q\in\mathbb{Q},(p,q)=1\\0,x\notin\mathbb{Q}\end{cases}.\)
- 符號函數:\(\mathrm{sgn}(x)=\begin{cases}1,x>0\\0,x=0\\-1,x<0\end{cases}.\)
- 一個分段函數[2]\(f(x)=\begin{cases}\sin\dfrac{1}{x},x\neq0\\0,x=0\end{cases}.\)
前面兩個函數可以說是高等數學乃至數學分析課程中各種“不存在”、“不是”問題的常客,唯一的例外可能是在可積性理論中要求你證明“Riemann函數是可積的”這樣一個出人意料的結論;符號函數存在一個跳躍間斷點(第一類),而最后一個分段函數以\(0\)為其振盪間斷點(第二類),總之它們的性質都相對於一般的連續函數要奇異許多,也不便於處理。
但是最重要的一點卻在這里:這些函數,無一例外,幾乎都是以反例的形象出現在課程當中,而未“再當大任”。在間斷點的對應章節以外何嘗再見到過所謂的振盪間斷點?Dirichlet函數、Riemann函數和符號函數可曾有過什么實際的應用?皆沒有。這些在后續課程中發揮重要作用的函數,在微積分的基礎課程中則只是表現為差勁的反例,從這里我們便可以看到一個非常強的偏向:
所謂的“高等數學”歸根結底就是“連續函數論”。
學過工科的復變函數課程的讀者可能會馬上聯想到另外一個說法:
所謂的“復變函數”歸根結底就是“解析函數論”。
這兩者有非常高的相似性。高等數學課程的要求似乎是要求學生掌握利用微積分工具對“各類”函數進行研究,然而事實上我們在這門課程中從頭到尾研究的都是連續或至多有幾個寥落的間斷點的函數而已!這是否是一種局限呢?這是出自於課程的安排不足,還是來自於古典微積分工具本身的缺陷,或是源於我們的實際需要確實僅止步於此呢?以下我們就來討論這一系列的問題。
2.1 數學分析/高等數學的知識框架
這里我們應當首先列出數學分析或高等數學課程的具體知識框架,以便於我們來具體分析。為了簡便起見,我僅按照一個非常粗略的結構來概述它們。讀者若已經非常熟悉這些內容,請跳過。
- 邏輯基礎:實數理論(高等數學無)
- 基本工具:極限理論【 數列和數列極限 | 函數極限 | 函數的連續性,初等函數的連續性 | 函數的階,等價無窮小 | 函數的一致連續性(高等數學可能無) 】
- 一元微分學【 導數和微分 | 微分中值定理,不等式 | Taylor公式 | 函數性質與函數作圖 】
- 一元積分學【 不定積分(原函數) | 定積分的定義(Riemann積分) | 可積性理論(高等數學無) | Newton-Leibniz公式(微積分學基本定理) | 廣義積分,斂散性判別 | 微元法,積分應用(數學分析討論稍少) 】
- 多元微分學 【 理論基礎:\(\mathbb{R}^n\)空間,其上的拓撲(高等數學幾乎不討論) | 多元函數及其極限 | 偏導數與全微分,梯度 | 隱/反函數存在定理,求導公式(高等數學可能無) | 多元函數Taylor公式(高等數學可能無) | 有/無約束極值問題 】
- 高維空間上的積分學 【 重積分(二重、三重積分) | 含參積分,斂散性判別(高等數學無) | 線面積分 | Green公式,Gauss公式,Stokes公式 | 場論初步 】
- 常微分方程初步(數學分析常無,單獨開一門專業課) 【 簡易常微分方程(分離變量,齊次,常數變易法,可降階) | 高階線性微分方程(組) | 恰當方程與積分因子 | 各類換元法 】
- 無窮級數理論 【 數項級數的斂散性判別(正項級數,一般項級數) | 函數項級數的收斂域 | 函數項級數的一致收斂性,極限換序理論(高等數學可能無,或討論不深) | 冪級數,收斂半徑,函數的冪級數展開 | Fourier級數初步(部分教材或課程可能無) 】
越過這長長的一段提綱,我們需要注意到一點:這看似龐雜的內容,其實可以歸結為兩個中心——以古典微積分及相應工具(導數、積分、常微分方程、無窮級數)為理論安排的中心,以連續函數為研究對象的中心。前者是顯性的,而后者卻是隱性的;我們能見到許多名為《解析函數論》的書,卻還沒有見到過所謂《連續函數論》的書,因為並不是連續函數——而是古典微積分理論賦予了高等數學或者數學分析課程以最大的意義。(在復變函數理論中則有所不同,解析函數本身具有的優良性質在很大程度上引領了早期復變函數理論的研究。)
盡管如此,我們卻仍然需要意識到連續函數在這兩門課程之中的重要性。對於數學系學生而言,其重要性倒是可以稍微擱置一邊,畢竟連續函數只是他們將來要研究的各類函數和數學對象之中普普通通、輕松易懂的一類罷了;但對於將要走上工程或研究崗位、與實際問題打交道的學生們來說,連續函數(從這里開始我總是用這個詞指代連續函數或只有少量簡短點的函數之總稱)卻將是他們最經常甚至是唯一有可能接觸到的數學對象[3]——要和它們打一輩子的交道。這件事情從古典微積分誕生的數百年來,似乎都還沒有發生過太大的變化——這反映了連續函數與實際問題之間非常特殊的一種聯系。這是嚴謹、“完美”的理論在現實世界中一個最令人感到親切的投影。
2.2 從稠密集到連續集,從《數學分析》到《實變函數論》
不知道讀者是否對實數系理論有所了解?如果讀者還完全沒有接觸過這一內容,不妨抽空讀一讀本博客中的兩篇詼諧有趣的概述實數系與實數定理(上)與實數系與實數定理(下)。下面的內容都由實數理論的相關內容說起。
我們知道,數學分析或高等數學所研究的對象,是“實數系上的函數”;然而前面種種分析敘述已經表明,唯有連續函數是這兩門課程的主線,對於工科生而言連續函數甚至是他們唯一熟悉的東西。一方面,我們已經講清,在實際的工程、科學技術問題中,的確只有連續函數是最為適合的研究對象和理論依據;另一方面,我們也應當認識到,在數學分析或高等數學課程中所使用的古典微積分工具,本身就是出自於當時的數學家們對連續函數的研究、歸納與把握。
就以古典的Riemann積分為例。齊民友先生的《重溫微積分》一書中有一節標題為“這樣評價Riemann公正嗎?”討論的是Riemann積分的缺陷與不足究竟應當怎樣看待。在現代數學家們看來,Riemann積分是非常粗糙的,法國的著名數學家Dieudonne在他的《現代分析基礎》一書之中甚至完全沒有涉及Riemann積分,原因是:
如果不是它的帶有權威的名字,它老早就該沒落下去了……現今這一“理論”的重要性在測度與積分的一般理論中,最多不過是一普通的有趣的練習……長久以后必將失去它的歷史重要性。
在此我們倒不必探討Dieudonne先生的這個預言是否得到應驗,反正到現在為止國內大部分數學系學生分析課本上的積分理論也還沒有直接換成一般的測度積分理論。前沿數學家們持這樣觀點的原因在於,由Riemann最終概括總結的這套古典微積分理論,是出自於幾百年前(Newton與Leibniz的時代)就基本成形的對連續函數和實際物理問題的研究。它雖然易於理解但缺乏一般性,完全可以充作現代分析理論下一個非常不起眼的特例來看待。這里我們是不是該驚呼數學家和其他自然科學工作者之間的巨大差異呢?
數學史上有許多非常為人熟知的故事:所謂“函數”定義的變遷(John Bernoulli, Euler, Cauchy, Fourier, Dirichlet, 一直到近現代的數學家們);分析學家關於收斂性(主要是級數收斂性)漫長的探索過程;分析學的算術化(實數理論的建立)……從這一系列的故事中我們可以發現關鍵的一個線索:數學家從直觀認識走向嚴謹理論經歷了漫長的歷史階段,而這所謂的“直觀認識”則正是今天的連續函數。沒有人會在Newton或者Euler所在的時代提出所謂“處處不連續函數”或者“無窮多個間斷點”——在他們看來,函數本來就應當是連續的,是一條曲線,是“隨手畫出來的”。從歷史發展的角度來說,如果不是出現了某些危機(例如看似連續Fourier級數收斂於存在間斷點的函數),我們完全可以把古典微積分的應用范圍乃至數學研究的范圍局限於連續函數類之中——就像最終是三次方程而不是二次方程推動了虛數和復數理論的發展。然而,一旦走出這和諧美好、符合直觀的“溫室”,數學家們似乎就再也沒法走回來了,哪怕有許多的指責與質疑,因為在連續函數之外我們確實看到了許多更加豐富的內容,就像進入看似玄虛的復數域卻給數學理論與科學技術領域帶來了極大的方便。
關於數學分析,我們要說的最重要的一點是什么呢?也許不僅僅是連續函數的問題了,而應當歸結到實數系的性質上去:
古典微積分所研究的一切內容,幾乎都僅限於實數系的數域性質、有序性質和阿基米德性質(即無界性質),而很少真正利用實數系獨有的連續性。換句話說,我們完全可以僅在有理數集上建立一套微積分體系——只要我們稍稍修改相關定義即可。
那么我們為什么還要將研究的范圍擴張至實域呢?原因無非是:實數域是我們所認為真實存在的“數”之總和(可以參見實數系與實數定理(下)的最后一節內容),因而有必要將其統一囊括起來,哪怕有理數之外的無理數在實際研究問題之中並不真正比有理數特殊多少,更何況我們應當指出我們所觀測到和記錄到的一切數據本質上都是有理數。這是對於面向實際問題的學生們特別重要的一點,他們不必拘束於繁雜嚴謹的數學框架之下,而應當將更多的精力放在對於實際問題的研究與把握之上。理論的嚴謹與成體系與應用上的簡潔方便總是存在着一點矛盾,這是有待於我們去解決的問題。
由於有理數集不完備,我們當然可以找到無數個收斂於無理數的有理數列,這確實是理論上的空缺,需要由更加深刻完備的理論加以補充;但是,對於應用者而言,他完全可以不必理會這樣的數列,如果他限定數列收斂於一個有理數或某個無理數的有理近似(如小數點后若干位)而已,那么這一類數列對他而言便沒有任何研究的價值,諸如此類。我在這里想說的是,我們既要看到理論是如何一層一層完備嚴謹起來的,也要認識到在自己將來所要面臨的領域與問題之中哪些東西是多余的、是不必考慮的。
那么,在哪里我們真正的要讓實數集的連續性派上用場呢?那就是數學系的實變函數課程了。本來在這里還可以接下去討論許多有趣的內容,但寫到這里我突覺如此將有破壞文章主旨之嫌,因此這些內容不妨留到以后有空時再專辟一章來敘述。讀者切不要秉持流行的偏見,把實變函數論所研究的內容一並視為現實世界中不存在的反例、怪物;我想在這里引用齊民友老先生在《重溫微積分》第四章中的一段評述:
反例的重要性在於它揭露了無法回避的矛盾。
無論數學家與自然科學工作者各自怎樣看待這些課程、知識、內容,他們一定都會贊同一個結論:我們的知識與科學,總是需要不斷的前進與提高,而這是每一個人的責任。