吳高晨
蒙特卡羅(Monte Carlo)是世界著名的賭城,是摩納哥的標(biāo)志。起初,蒙特卡羅方法即賭博方法,后來發(fā)展成今天非常強(qiáng)大的數(shù)學(xué)計(jì)算方法,可以求解復(fù)雜的科學(xué)問題。蒙特卡羅方法系統(tǒng)性的研究開始于1944年前后。當(dāng)時(shí)由于研制原子彈,需要研究中子在裂變物質(zhì)中的運(yùn)動規(guī)律,提出了一些不易用常規(guī)數(shù)學(xué)方法求解的問題。馮·諾依曼、烏拉姆和費(fèi)米等科學(xué)家發(fā)展了這個(gè)用于直接模擬的蒙特卡羅方法,解決了這些當(dāng)時(shí)不易解決的難題。如今蒙特卡羅方法在原子能科學(xué)技術(shù)中有著重要的應(yīng)用。
撒豆子測面積
蒙特卡羅方法是以隨機(jī)概率為基礎(chǔ)的方法,在金融工程學(xué)、宏觀經(jīng)濟(jì)學(xué)、計(jì)算物理學(xué)等領(lǐng)域應(yīng)用廣泛。當(dāng)求解問題是某種隨機(jī)事件出現(xiàn)的概率,或者是某個(gè)隨機(jī)變量的期望值時(shí),通過某種“實(shí)驗(yàn)”的方法,以這種事件出現(xiàn)的頻率估計(jì)這一隨機(jī)事件的概率,或者得到這個(gè)隨機(jī)變量的某些數(shù)字特征,并將其作為問題的解。
舉一個(gè)例子來直觀地了解蒙特卡羅方法:假如我們要計(jì)算一個(gè)不規(guī)則圖形的面積,這個(gè)圖形越不規(guī)則,就越不容易精確地計(jì)算出它的面積,這個(gè)時(shí)候就可以用上蒙特卡羅方法。假設(shè)你有一袋豆子,把豆子均勻隨機(jī)地朝這個(gè)圖形上撒,然后數(shù)這個(gè)圖形之中有多少顆豆子,這個(gè)豆子的數(shù)目就是圖形的面積。不過這個(gè)面積只是一個(gè)估算值,當(dāng)你的豆子越小,撒得越多的時(shí)候,結(jié)果就越精確。所以說,蒙特卡羅方法需要依賴大量的實(shí)驗(yàn)。
利用隨機(jī)點(diǎn)計(jì)算圓周率
蒙特卡羅方法還可用于估算圓周率,如圖,在邊長為2的正方形內(nèi)作一個(gè)半徑為1的圓,正方形的面積等于2×2=4,圓的面積等于π×1×1=π,由此可得出,正方形的面積與圓形的面積的比值為 4:π?,F(xiàn)在讓我們用電腦生成若干組均勻分布0-2之間的隨機(jī)數(shù),作為某一點(diǎn)的坐標(biāo)散布于正方形內(nèi),那么落在正方形內(nèi)的點(diǎn)數(shù)N與落在圓形內(nèi)的點(diǎn)數(shù)K的比值接近于正方形的面積與圓的面積的比值,即,N:K≈4:π,因此,π≈4K/N。
用此方法求圓周率,需要大量的均勻分布的隨機(jī)數(shù)N才能獲得比較準(zhǔn)確的數(shù)值,這也是蒙特卡羅方法的不足之處。
是原子彈還是反應(yīng)堆停堆?
眾所周知,核反應(yīng)堆是一種非常不穩(wěn)定的存在,因此如何控制核反應(yīng)堆也就成為原子能科學(xué)技術(shù)領(lǐng)域非常重要的一個(gè)問題。
核反應(yīng)堆的工作原理其實(shí)不難理解,一個(gè)中子和一個(gè)裂變原子核相遇,會發(fā)生裂變反應(yīng),釋放出能量和兩個(gè)以上的中子。這些新產(chǎn)生的中子再去遇到其他裂變原子核,再發(fā)生裂變反應(yīng)。這個(gè)鏈條一樣的連續(xù)反應(yīng)被稱為鏈?zhǔn)搅炎兎磻?yīng)。如果這一切都是原子核自己完成的,就被稱為自持鏈?zhǔn)搅炎兎磻?yīng)。
大家可能會說,既然一次裂變反應(yīng)能釋放兩個(gè)以上的中子,那反應(yīng)肯定能夠繼續(xù)下去。是的,如果釋放出來的每一個(gè)中子都發(fā)生了新的裂變反應(yīng),裂變反應(yīng)就會以幾何形式增長,同時(shí)釋放出極大的能量。不過如果出現(xiàn)這種情況,我們制造的就不是核反應(yīng)堆,而是一顆威力巨大的原子彈了。
那么大家又會問,很多國家都建立了核電站,也沒有都變成原子彈啊。是的,那是因?yàn)榉磻?yīng)堆中不是只有裂變原子核,還有其他大量的材料,這些材料會吸收掉一些中子,還會有一些中子泄漏到反應(yīng)堆外,造成中子數(shù)的減少。如果中子數(shù)減少的數(shù)量大于增加的數(shù)量,最終反應(yīng)堆會停止運(yùn)行,被稱為停堆。
只有當(dāng)中子增加的數(shù)量與減少的數(shù)量相當(dāng)時(shí),反應(yīng)堆才能處于一種臨界安全狀態(tài)。蒙特卡羅方法就可以幫助科學(xué)家計(jì)算和控制這個(gè)狀態(tài)。
為什么要用蒙特卡羅方法呢?因?yàn)橹凶雍土炎冊雍嗽诓煌臅r(shí)間具有不同的能量狀態(tài)、不同的位置、不同的飛行方向,常規(guī)數(shù)學(xué)方法幾乎無法計(jì)算這一復(fù)雜的多維問題。這種雜亂無章的具有統(tǒng)計(jì)性質(zhì)的運(yùn)動方式正好符合蒙特卡羅方法的思想。蒙特卡羅方法關(guān)注中子的運(yùn)動軌跡,跟蹤記錄一個(gè)中子產(chǎn)生了幾個(gè)新的中子,把結(jié)果通過計(jì)算機(jī)記錄下來,等這個(gè)中子消失后,轉(zhuǎn)頭去跟蹤下一個(gè)目標(biāo)。我們把計(jì)算機(jī)追蹤過的中子數(shù)稱為N,那么反應(yīng)堆中消失的中子數(shù)就是N;而把計(jì)算機(jī)監(jiān)測到的新產(chǎn)生的中子數(shù)稱為M,當(dāng)N=M時(shí),則核反應(yīng)堆處于臨界安全狀態(tài)。
蒙特卡羅方法不僅在原子能科學(xué)中大量使用,目前在軍事科學(xué)、氣象科學(xué)、醫(yī)學(xué)、地質(zhì)學(xué)等領(lǐng)域均已廣泛使用。蒙特卡羅方法在近30年來之所以能有這樣大的發(fā)展,與計(jì)算機(jī)的快速發(fā)展和廣泛使用是密不可分的。凡用蒙特卡羅方法求解一個(gè)問題時(shí),往往需要進(jìn)行大量的重復(fù)一個(gè)過程,這一過程要靠計(jì)算機(jī)才能完成。如果要求計(jì)算結(jié)果的誤差越小,所進(jìn)行的重復(fù)過程應(yīng)越多,因此計(jì)算量相當(dāng)大,沒有現(xiàn)代的計(jì)算機(jī)技術(shù),很難設(shè)想蒙特卡羅方法會有今天的發(fā)展,可以預(yù)料,隨著計(jì)算機(jī)技術(shù)的進(jìn)一步發(fā)展,蒙特卡羅方法將會有更大的發(fā)展。
蒙特卡羅方法的發(fā)明人
烏拉姆是蒙特卡羅方法的發(fā)明人之一,美國數(shù)學(xué)家。他曾參與美國原子彈研制工程—曼哈頓工程,第二次世界大戰(zhàn)后又參與了氫彈研制工程。他曾當(dāng)選為美國總統(tǒng)科學(xué)顧問委員會成員、美國藝術(shù)與科學(xué)學(xué)院院士、美國全國科學(xué)院院士。烏拉姆參與提出的蒙特卡羅法,當(dāng)時(shí)被用于核物理研究,現(xiàn)已被廣泛地使用到許多領(lǐng)域。