在上一節,我們講了兔崽子函數的複雜性,下面我們繼續探討「混沌」的概念。《禮記》中有一句話:「君子慎始,差若毫釐,謬以千裡。」大家看前四個字「君子慎始」,如果翻譯成物理語言,就是:正經人應該謹慎的選擇初始條件。初始條件為什麼這麼重要呢?「差若毫釐,謬以千裡」,如果初始條件有些許的不同,也許事物最終的運動、發展變化會完全不同。這就是古代樸素的混沌現象。
到了近現代,混沌現象終於用數學工具描述出來了。用數學工具描述混沌現象,是從「三體問題」開始的。提到三體問題,你可能會聯想到科幻小說《三體》。什麼是三體問題?有一天,秦始皇看見天上飛過兩顆飛星,這就是三體問題。兩顆恆星和一顆行星,就是三體問題了。你可能問,《三體》小說裡可以飛過三顆飛星。三顆飛星,再加上一顆行星,其實那叫「四體問題」。真正簡單的三體問題其實是兩顆恆星再加一顆行星。如果這顆行星的質量足夠小,對兩顆恆星的反作用可以忽略,那麼這叫「限制性的三體問題」。就算是這種限制性的三體問題,也是足夠困難,足夠複雜的。
限制性的三體問題中會出現混沌,龐加萊在一八九幾年時就已經發現了。龐加萊當時寫了一篇160頁的論文,去研究三體問題,然後還獲了一個獎。再然後,在論文已經付印時,龐加萊發現論文裡有一個錯誤,龐加萊說「已經印的論文全部銷毀,我自費銷毀,以後加印的時候也自費」,於是把這個錯誤改了過來。160頁的論文變成了270頁,這個270頁的論文就是「混沌」的始祖。
楊振寧先生曾經說過這樣一句話:數學論文分兩種,一種是你看了第一頁就不想再讀了,另一種呢,你看了第一行就不想再讀。不幸的是,龐加萊這篇論文雖然那麼重要,但是被遺忘了很多年,直到很多年後,後人從故紙堆裡把這篇論文翻出來的時候,大家看到了一句話:無法畫出來的圖形的複雜性讓我震驚。這句話看起來好恐怖,為什麼?因為龐加萊是被這種無法畫出來的圖形的複雜性震驚到的第一個人。第二個人什麼時候出現的?第2、3、4……個人是在電子計算機出現之後出現的,這時原來無法畫出來的圖形的複雜性變成了可以畫出來的圖形的複雜性。這些人真正的看到了這個圖形的複雜性的時候,他們震驚了,最後翻到了龐加萊的文章。龐加萊的時候沒有計算機,在他腦子裡,他是怎樣對這種無法畫出來的圖形的複雜性震驚的?我真的是無法想像,感覺這是很恐怖的事情。
70年以後,洛倫茲研究天氣預報,他試圖用一組微分方程結合觀測去預報天氣。(這個洛倫茲不是狹義相對論中洛倫茲變換的洛倫茲,是另一個人。)直到現在,雖然藉助於非常強大的遙感技術以及非常強大的超級計算機,我們對短期天氣可以有了基本上準確這樣的預報,但是長期天氣的預報還幾乎是一個不可能的任務。在超級計算機之前,短期天氣預報也是一個非常非常大的挑戰。據傳,電視臺播天氣預報的時候,要選擇一個有窗戶的房間。為什麼?避免睜眼說瞎話!假如電視臺選擇一個沒有窗戶的房間,那麼可能出現:你預告「今天晴」,但外邊正在下雨。有窗戶的房間就不同了,你念完「今天晴」,往外瞄一眼,看見外面在下雨,你趕緊改口說「今天晴——,轉多雲有小雨」,這樣就避免了睜眼說瞎話。
洛倫茲的時候,已經開始應用電子計算機,非常慢的那種電子計算機。他做了這樣的一個計算:把天氣現象簡化成一組微分方程,今天的天氣作為微分方程的初始條件。有了初始條件後,就可以求解微分方程,去推演明天的天氣、後天的天氣,等等。當洛倫茲做這樣的嘗試的時候,他發現了一件很奇怪的事情。他用兩種方法進行計算,第一種方法是給定今天的天氣,然後直接去算後天的天氣,第二種方法是,知道了今天的天氣以後,我先用計算機算出明天的天氣,然後讓計算機歇一會,把記錄下來的明天天氣再輸入計算機,讓計算機去計算後天的天氣。洛倫茲發現,這兩種方法得到的結果居然是完全不一樣的。洛倫茲反覆檢查,計算機沒壞,方法也沒有不對的地方。這就很奇怪了。
如果你是一個研究人員,你會怎麼做呢?這個時候就顯出了研究人員的水平。可以說有三種研究人員,第一種是胡亂做研究的人員,這種研究人員不管三七二十一,從中選出一個比較像的就好了,拿去發表;第二種研究人員呢,因為時間、經費等各種各樣的壓力,選一種看起來比較可靠的方法進行反覆檢查,直到確認這種方法應該是對的,而另一種方法就算了,不考慮了;而真正的研究人員可以做的更多一點,洛倫茲就做的更多一點,如果他只做到了第二種研究人員的話,他就和重新發現混沌現象失之交臂了。
洛倫茲更仔細的去研究,他終於發現,從第一天直接去預測第三天和從第一天算出第二天,再把第二天的結果輸入計算機去算第三天,兩者到底有什麼區別?把第二天的結果輸入計算機的時候,有效數字和計算機內部存儲的有效數字是不一樣的。比如說,計算機內部存儲了8位有效數字,而我輸入計算機的只有4位有效數字而已。如果發現有效數字的位數不同,你就滿足了,實際上你沒有真正的做好第三類研究人員。洛倫茲看到有效數字不同,他重新體會了龐加萊70年以前體會的震驚。
如果這個系統是處於一個很有序的狀態的話,輸入有4位有效數字的差別,也就是萬分之一的誤差,結果應該也有萬分之一的誤差才對,不應該結果完全不一樣。但是洛倫茲看到的結果是完全不一樣的。洛倫茲得出了一個非常沮喪的結論:長期的天氣預報是一件很沒有希望的事情。
你的傳感器總會有誤差吧,你的計算機有效數字的位數總是有限的吧,誤差會被指數放大,那麼你怎麼去做天氣預報?當然了,天氣預報問題涉及微分方程,超出了今天我們想講的範疇。那麼我們還是回到兔崽子函數的問題。
你可能問了,微分方程那麼高大上的問題和兔崽子函數土裡土氣的問題,它們兩個怎麼能劃等號?微分方程實際上是一個連續的迭代過程而已,而兔崽子函數是一個分立的迭代過程。兔崽子函數告訴你,第一天有多少兔子,第二天有多少兔子,第三天有多少兔子;微分方程告訴你的是,從第一天到第三天連續的第1.01天、1.02天、1.03天,一直是什麼樣的天氣。這兩者是一脈相承的,微分方程裡看到的複雜性在兔崽子函數裡也能看到。
洛倫茲靠著他的認真,終於做到了「君子慎始」——正經人要謹慎的對待初始條件。就靠著這股認真勁,他才重新做回了正經人,也讓物理學重新的認識了混沌這個現象。
混沌聽起來很可怕,讓我們沒有辦法預測一些事情,但是發展到現在,混沌現象也有了很多應用。比如有一個日本的衛星都已經發射上天了,最後發現燃料不夠用了,達不到給定的軌道,怎麼辦呢?數學家想了一個辦法——渾水摸魚法,讓衛星用有限的燃料進入一個運動比較混沌的區域,然後在運動混沌的區域藉助混沌的力量,「嗖」,衛星就得到了一個更高的速度,最後達到了預定的軌道。
除了有了一些應用以外,混沌現象其實深深的改變了我們對物理學的很多想法。一個例子是拉普拉斯妖,也是物理系的四大神獸之一。拉普拉斯認為,有這樣的一個妖魔,它有足夠的計算能力,給一個初始條件,就可以計算整個宇宙的未來。但是,混沌現象使任何現實的拉普拉斯妖全都退散了。為什麼?其實一個絕對意義上的拉普拉斯妖,用不到等到第二個、第三個人認識到混沌現象的時候,就已經破滅了。因為當時我們已經知道量子力學了,量子力學裡邊有隨機性,這個隨機性告訴我們,我們沒有辦法精確的預測未來。但是,你可能會有一個奢望,有沒有可能我們可以近似的預測無窮遠的未來?如果我們只感興趣經典的世界,在這個經典的世界上,可以預測未來嗎?
混沌告訴我們,這件事情做不到,因為量子世界哪怕給你的誤差是一丁點的,哪怕給你的誤差是10-26,但誤差會指數放大,迅速達到經典的層次。也就是說,在經典的層次上,決定論也已經失效。老派物理學家心中的殿堂,心中的夢想——決定論在混沌的面前,最終完全地失效。
但是,混沌對老派物理學家的打擊還不僅於此。我們知道,牛頓把萬有引力化成了一系列的微分方程,但人類解微分方程的能力是有限的,只有有限的微分方程有解析解,有太多太多的微分方程沒有解析解,對於這些沒有解析解的微分方程,怎麼辦呢?物理學家的做法是,首先我們點一些「孤燈」,這些所謂的孤燈就是有解析解的方程。一個物理系統有解析解,這很好,我知道怎樣處理。在這些有解析解的系統周圍,如果一個系統的狀態近似於這個有解析解的系統,只是有一點點的偏離的話,我可以做所謂的微擾處理。
但是,還有很多地方,我們做不了微擾。老派的物理學家想像,這些地方只是我們數學能力不足而已,它服從的物理規律還是我們已經知道的那些物理規律,所以說我們不用去擔心那些地方。但是混沌的出現告訴我們,那些我們沒有解析解的並且也沒有辦法去做微擾計算的區域,存在著大量的完全不同的物理規律,這些物理規律是用「混沌的王國」來表示的,在混沌的王國裡,我們即使知道那些最基本的物理定律,我們也無法用那些物理定律,哪怕是去定性的推導。物理學的孤燈照不亮混沌的王國,混沌的王國需要新的混沌的規律,但是直到現在,我們對這些非線性的規律還知之甚少。