蒙特-卡羅法
正文
研究物理或數學過程的一種隨機模型的計算方法。蒙特-卡羅法是以隨機抽樣技巧作為工具的一門近代數值分析的學科。蒙特-卡羅法的思想提出雖然較早,但系統性的研究實開始於1944年前後。當時由於研製核子彈,需要研究中子在裂變物質中的輸運,提出了一些不易用一般數學方法求解的問題。J.馮·諾埃曼、S.烏拉姆和E.費密等發展了這個用直接模擬物理過程的方法,解決了這些當時不易解決的難題。在研究宇宙線簇射中的問題時,也使用了這個方法。
蒙特-卡羅法可以用來求解兩類問題。第一類問題稱之為機率問題,用直接模擬某種物理過程的方法解決。為了說明求解機率問題的方法,現舉一個γ射線對有限厚度的平板媒質的穿透問題(圖1)作為例子。
蒙特-卡羅法


,則光子被吸收,不然則未被吸收。如被吸收,則須重取一光子,從頭開始這個過程;如未吸收,則從克萊因-仁科公式和康普頓公式(見光的量子理論)決定光子經過一次散射後的波長λ1,和光子散射前與散射後的方向之間的夾角ω,由此可定出光子散射後的方向。決定λ1與 ω的隨機抽樣技巧,不擬在此多述。連續使用這樣的過程,就可研究光子在媒質中的行為。所以追蹤一個光子行為的過程是這樣的:先定光子的碰撞位置,然後再定光子的波長改變和方向改變,對一個光子一直追蹤下去,直到它被吸收,或被反射出這個平板媒質,或穿透過這個平板媒質。 以後再取一個光子,用上面所述的辦法進行追蹤。如果所取的總的光子樣品數目為N,其中m個光子通過平板媒質,則穿透幾率ρ便為
ρ=m/N。
蒙特-卡羅法解決的第二類問題,是所謂定數問題。在解定數問題時,必須把問題化為相適應的能作模擬的機率問題。這裡舉求定積分的問題作為例子。求定積分是一個定數問題,它可以化為打靶問題,而打靶問題是機率問題。例如計算定積分
要求積分I,可以先設制一個正方靶(0≤x≤1;0≤y≤1)在這正方靶內,作曲線y=f(x)(圖2),並對這靶投射黑點。假定投射在單位正方形靶內任意點(x,y)的機率相等,如果點落在曲線y=f(x)的下面或剛落在這曲線上【即當y≤f(x)】,則認為事件A實現;如果點落在曲線y=f(x)的上方【即y≤f(x)】,則認為事件A不實現。可以證明,事件A實現的機率即是這積分之值。
蒙特-卡羅法從上述產生的隨機數ξi與ηi,定義

。
這方法不僅在原子能套用中大量使用,目前在粒子物理、原子核物理、固體物理、統計物理、高分子化學、軍事科學、氣象科學、醫學、地質學、線性規劃等領域均已廣泛套用。
蒙特-卡羅法在近30年來所以能有這樣大的發展,與快速電子計算機的廣泛使用分不開。凡用蒙特-卡羅法模擬一個問題時,往往需要進行大量的抽樣,而抽樣過程靠電子計算機進行。如果要求計算結果的機率誤差愈小,所抽的樣品應愈多,因此計算量相當大,沒有現代計算技術,很難構想蒙特-卡羅法會有今天這樣的發展。可以預料,隨著計算技術的進一步發展,蒙特-卡羅法將會有更大的發展。
參考書目
C. D. Zerby,Methods in Computational Physics,Vol.1, Academic Press, New York and London,1963.
J. Spanier and E. M. Gelbard, Monte CarloPrinciples and Neutron Transport Problems, Addison-Wesley, Reading, Mass.,1969.

