第一章 模型
扔石頭問題
風輕雲淡的一天,你站在水平地面上,手裏拿着一塊石頭,想要扔得越遠越好。已知你能用多大的力氣扔出去,那麼最重要的決策就是選擇石頭出手時與地面的夾角。如果夾角太小,那麼儘管石頭在水平方向的速度分量很大,也會很快落到地面上,因而飛不出太遠;反之,若夾角過大,石頭能在空中停留較久,但掠過的水平距離卻不遠。很明顯我們需要在這中間作一些權衡。
利用牛頓物理學和微積分的一些初步知識,可以計算得到最佳的折中方案——石頭離手時應與地面呈45度夾角。就這個問題而言,這基本上是最簡潔優美的答案了。同樣的計算還可以告訴我們石頭在空中的飛行軌跡是個拋物線,甚至還能得出脫手後在空中任意時刻的速度有多大。
看起來,科學與數學相結合能夠使我們預測石塊飛出去直至落地之前的一切行為。然而,只有在我們作了許多的簡化假設之後才能夠如此。其中最主要的假設是,作用在石頭上的只有一種力,即地球的引力,而且這種力的大小及方向在各處總是一樣的。但實際上並非如此,因為它忽略了空氣阻力、地球自轉,也沒有計入月球的微弱引力,而且越到高處地球引力越小,在地球表面上「垂直向下」的方向也隨着具體位置的不同而逐漸變化。即使你能夠接受上述計算,45度角的結果也基於另一個隱含假設:石頭離手的初始速度與夾角無關。這也是不正確的:實際上夾角越小,人能使上的力氣越大。
上述這些缺陷的重要性各有不同,我們在計算和預測中應該採取怎樣的態度來對待這些偏差呢?把所有因素全部考慮在內進行計算固然是一種辦法,但還有一種遠為明智的辦法:首先決定你需要達到甚麼樣的精確度,然後用盡可能簡單的辦法達到它。如果經驗表明一項簡化的假設只會對結果產生微不足道的影響,那就應當採取這樣的假設。
例如,空氣阻力的影響相對來說是比較小的,因為石頭很小很硬,密度大。假如在出手角度上有較大的誤差,那麼通過計入空氣阻力來將計算複雜化就沒有多大意義。如果一定要考慮進去的話,以下這條經驗法則就足矣:空氣阻力變大,則通過減小出手角度來彌補。
何為數學模型
當我們考察一個物理問題的解答時,十有八九能夠就其中科學貢獻部分和數學貢獻部分劃出一道清晰的界線。科學家在觀察和實驗的基礎上,作一些簡潔性與解釋有效性的一般性考慮,建立一種理論。數學家,或者做數學的科學家,則研究理論的純粹邏輯結果。有時候,這些情形是常規計算的結果,常規計算所預言的現象正是理論在提出時所要解釋的。在某些偶然的情況下,理論所作出的預言則完全出乎意料。如果這些意料之外的現象後來被實驗所證實,那麼我們就得到了支持這種理論的重要證據。
然而,由於我上面所討論到的簡化問題,「證實一項科學預言」的概念就多多少少有了些問題。讓我們考慮另一個例子:牛頓的運動定律和引力定律告訴我們,兩個物體從同樣的高度開始作自由落體運動,它們將同時到達地面(如果地面平坦) 。這種現象由伽利略(Galileo Galilei)首先提出,它有點違背我們的直覺。實際上,它違背的不僅是我們的直覺:如果你親自試一試,比方說用高爾夫球和乒乓球,你會發現高爾夫球首先落地。既然如此,究竟在甚麼意義上伽利略的論斷是正確的呢?
當然,由於空氣阻力的存在,我們不可能把這個小實驗當作伽利略理論的反例:實驗證明,當空氣阻力很小時理論是正確的。如果你對此有所懷疑,覺得空氣阻力實在稀鬆平常,怎能總是挽救牛頓力學的預測於失敗之際,那麼,找個機會去觀察一下羽毛在真空中的下落,你就能重拾對科學的信念以及對伽利略的讚賞——真空中,羽毛的下落的確與石頭別無二致。
儘管如此,由於科學觀察永遠不是完全直接性和決定性的,我們仍需要一種更好的方式來描述科學與數學之間的關係。數學家並不是將科學理論直接應用於現實世界中,而是應用於模型上。在這裏,模型可以看作是所要研究的那部分現實世界的一種虛構、簡化的版本。在模型裏,我們就有可能進行完全精確的計算。在扔石頭的例子中,現實世界與模型的關係正如同圖1和圖2所展示的那樣。
對於一種給定的物理情形,有多種方法將其模型化。我們需要結合切近的經驗與深入的理論考量來決定,哪種模型更有可能向我們透露世界的本真。選擇模型時,有一個需要優先考慮的因素,即模型的行為應當與實際中觀察到的行為密切對應。
但是,諸如簡潔、數學表達上的優雅等其他因素可能反而時常會更重要一些。實際上,確實有一些模型在現實世界中幾乎找不到任何相似之物,但同時卻非常有用。接下來有一些例子將會對此進行說明。擲骰子問題假設我要擲一對骰子,想要了解它們的行為如何。經驗告訴我,問某些問題根本是不現實的。例如,不可能期待有人能預先告訴我某一次擲骰子的結果,即便是他掌握了很高超的科技,並且用機器來擲骰子。與此相反的是,關於概率的問題則常常是能夠回答的,比如「兩個骰子的結果之和為7的可能性有多大」之類的問題。這樣的問題的答案可能也是有用處的,比方說在我玩雙陸棋賭錢的時候。這一類問題很容易模型化,只要將兩個骰子擲出來的結果看作是從下列36個整數對中隨機選取一個。
每組數對中第一個數表示骰子甲的結果,第二個數表示骰子乙的結果。恰有六組滿足兩數之和為7,因此擲出7的概率就是6/36,即1/6。
可能有人會反對這種模型,他們會說,骰子在滾動時是遵循牛頓定律的,至少在很高的精度上遵循,因此骰子落地的情況根本不是隨機的:原則上是完全能夠被計算出來的。但是,「原則上」這個短語在這裏被過度使用了,因為這樣的計算將會是極端複雜的,並且需要知道骰子的形狀、材料、初始速度、旋轉速度等更為精確的信息,而這般精確的信息在實際中是根本無法測出來的。因為這一點,使用某種更為複雜的決定論模型是無論如何也不會有任何優勢的。
預測人口增長
較「軟」性的科學——比如生物學和經濟學中,也充斥着各種數學模型,這些模型都遠比它們所要真正表示的現象簡單得多,甚至以某些方式刻意地使其不夠精確,但是這些模型還是有其用場、富於啟發性。就以一個在經濟學上有重要意義的生物學問題為例,我們來考慮預測一國未來20年的人口。我們可能會用到一種非常簡單的模型,即將全國人口表示為一組數對(t,p(t)) ,其中t表示時間,p(t)表示時刻t的人口規模。另外我們要用到兩個數b和d,來表示出生率和死亡率。所謂出生率和死亡率,即每年出生人數和死亡人數佔總人口的比例。
假設我們已知2002年初的總人口是p。根據上述模型,2002年的出生人數和死亡人數將分別為bp和dp,因此2003年初的總人口將為p+bp–dp=(1+b–d)p。其他年份亦然,因此我們就能夠寫出公式p(n+1)=(1+b–d)p(n),意即n+1年年初的人口是n年年初人口乘以(1+b–d) 。換句話說,每一年人口數量都會乘上(1+b–d)。那麼20年後的人口就是乘以(1+b-d)20,於是就得出了初始問題的答案。
這個模型已經比較好了,它能向我們證明,如果出生率明顯高於死亡率,那麼人口就會急劇增長。但即便如此,它也還是不夠現實的,它作出的預測可能很不精確。比方說,模型中假設出生率和死亡率在20年中都保持不變,這並不太可信。過去的事實已經證明,出生率和死亡率經常會受到社會變遷和政治事件的影響,如醫學進步、新型疾病出現、女性首次生育年齡增大、稅負激勵以及偶爾發生的大規模戰爭等等。生育率與死亡率會隨時間變化還有另一個原因,就是一國國民的年齡分佈可能相當失衡。比方說,15年前出現了一波嬰兒潮,那麼我們就有理由預期再過10年到15年出生率就會增加。
因此,通過引入其他因素來使模型複雜化,這個想法相當誘人。我們記出生率和死亡率分別為b(t)和d(t),使其可以隨時間變化。我們並不想單用一個數字p(t)來表示總人口,我們可能想要知道不同年齡層各有多少人。如果同時還能盡可能多地知道各個年齡層的社會態度和行為傾向,也會對預測未來的出生率和死亡率有所幫助。獲取這樣的統計信息是十分昂貴且困難的,但這些信息確實能夠大幅提高預測的精度。因此,沒有一種模型能夠脫穎而出,聲稱比其他模型都好。關於社會和政治的變遷,誰也不可能確切地說出情況會是甚麼樣子。關於某種模型,我們所能提出的合理問題,最多只能是問某種有條件的預測,也就是說模型只能告訴我們,這樣的社會或政治變遷如果發生的話會產生怎樣的影響。
氣體的行為
氣體動理論由丹尼爾.伯努利(Daniel Bernoulli)在1738年提出,後來又由麥克斯韋(James Clerk Maxwell)、玻爾玆曼(Ludwig Eduard Boltzmann)等人在19世紀後半葉推進。根據這種理論,氣體是由運動着的分子組成的,氣體的許多性質——如溫度和壓強,都是這些分子的統計屬性。譬如,溫度就對應着分子的平均速度。
有了這樣的想法之後,讓我們設想一種模型來描述方盒子中的氣體。這個盒子當然應該用一個立方體來表示(意即數學的而非物理的)。既然分子是非常小的,那麼用立方體中的點來表示也就很自然了。這些點應當是運動的,所以我們必須確定控制它們運動的規則。此時,我們需要作出一些選擇。
如果盒中只有一個分子,那麼規則可以很明顯:分子以恆定速度運動,撞到盒子壁面時就反彈出去。要將這種模型推廣到包含N個分子的情形(N是個較大的數),最簡單的辦法就是假設分子都遵從這樣的運動規則,分子之間絕對沒有相互作用。為了啟動這樣的N分子模型,我們要選擇分子(或者說,表示它們的那些點) 的初始位置及初始速度。隨機選擇是一種好辦法,因為我們可以預期,在任意時刻,真實氣體中的分子都在空間中彌散着,運動方向也各式各樣。
要說清在立方體中隨機取一個點並不困難,隨機的運動方向也不複雜,但如何隨機地選擇速率就有些含混了,因為速率可以取從0到無窮大的任意值。為了避免這個困難,我們可以作一個從物理角度看似不太可信的假設,讓所有分子的速度大小都相同,僅僅讓初始位置和方向能夠隨機選取。圖3就表示了這個模型的一個二維情形。
N個分子完全相互獨立運動的假設毫無疑問是過度簡化的。比方說,利用這個模型,我們就不可能理解,為甚麼當溫度足夠低時氣體會液化:當你把模型中的各點運動速率降低,得到的還是相同的模型,無非跑得慢一些而已。不過這個模型還是能夠解釋真實氣體的許多行為。例如,想像盒子被慢慢壓縮的情形。分子仍然會繼續以相同速率運動,但由於盒子變小,分子撞擊壁面更加頻繁,可供撞擊的壁面面積也變小了。由於這兩個緣故,單位面積的壁面每秒鐘被撞擊次數就增多了。這些撞擊正是氣體壓強的來源,於是我們可以總結出,氣體體積減小時,氣體壓強很可能增大——正如實際觀測所證實的那樣。類似的論證還可以解釋,為甚麼氣體溫度升高而體積不變時,壓強會增大。要推算出壓強、溫度與體積之間的數值關係也並不困難。
上述模型大致上就是伯努利所提出的模型。麥克斯韋的成就之一就是發現了一個優美的理論,來解決如何更逼真地選擇初始速率的問題。為了理解這一點,讓我們放棄分子間沒有相互作用的假設。作為替代,我們假定分子會時不時地相互碰撞,就像台球一樣。碰撞之後,它們就以另外的速率、向另外的方向,在遵守能量守恆和動量守恆定律的前提下隨機彈開。當然,既然我們用沒有體積的點來表示分子,那麼就很難看出它們要如何碰撞。不過,這個麻煩在理論中恰可以作為一個非正式的論據,說明分子運動速度及方向具有某種隨機性。麥克斯韋就這種隨機性的本質作了兩個非常合理的假定:其一,分子運動的隨機性不隨時間而改變;其二,這個隨機性在不同方向上沒有區別。大體來講,第二條假設意味着,選取d1和d2兩個方向及某個速率s,那麼粒子以速率s沿着d1方向運動的概率和以速率s沿着d2方向運動的概率是相同的。不可思議的是,這樣的兩個假設就足以恰好決定分子運動速度的分佈形式,即意味着,如果我們想要隨機選取速度,就只有一種自然的方式。(它們應當服從正態分佈。這種分佈產生了著名的「鐘形曲線」。這種曲線在各種各樣的場合下經常出現,既出現在數學中也出現在實驗中。)
一旦選定了速度,我們就可以再次忘掉分子間的相互作用。結果表明,這種作了一點改進的模型依然存在着原始模型中的許多瑕疵。為了進一步修正,我們只能再把分子間的相互作用考慮進來。但是結果發現,即使是非常簡單的相互作用粒子模型,其行為也極其複雜,會引發極為難解,事實上多數都未能解決的數學問題。