通過構造概率模型並對它進行隨機試驗來解算數學問題的方法。以計算函數 f( x)的定積分 為例(見圖),首先構造一個概率模型:取一個邊長分別為c和 b- a的矩形,並在矩形內隨機投點,假設隨機點均勻地落在整個矩形之內,則落在圖中陰影區內的隨機點數 n與投點總數 N之比 n/ N,就近似地等於陰影區面積與矩形面積之比: 。由此可求出定積分

  蒙特卡羅法歷史悠久。1773年法國G.-L.L.von佈豐曾通過隨機投針試驗來確定圓周率π的近似值,這就是應用這個方法的最早例子。蒙特卡羅是摩納哥著名賭城,1945年 J.von諾伊曼等人用它來命名此法,沿用至今。數字計算機的發展為大規模的隨機試驗提供瞭有效工具,遂使蒙特卡羅法得到廣泛應用。在連續系統和離散事件系統的仿真中,通常構造一個和系統特性相近似的概率模型,並對它進行隨機試驗,因此蒙特卡羅法也是系統仿真方法之一。

  蒙特卡羅法的步驟是:①構造實際問題的概率模型;②根據概率模型的特點,設計和使用降低方差的各類方法,加速試驗的收斂;③給出概率模型中各種不同分佈隨機變量的抽樣方法;④統計試驗結果,給出問題的解和精度估計。

  概率模型 用概率統計的方法對實際問題或系統作出的一種數學描述。例如對離散事件系統中臨時實體的到達時間、永久實體的服務時間的描述(見離散事件系統仿真方法)就是采用概率模型。雖然由這些模型所確定的到達時間、服務時間可能與具體某一段時間內實際到達時間、服務時間有出入,但它是通過多次統計獲得的結果,所以從概率分佈的規律來說還是相符的。概率模型不僅可用來描述本身就具有隨機特性的問題或系統,也可用來描述一個確定型問題。例如參數尋優中的隨機搜索法(見動力學系統參數尋優)就是將參數最優化問題構造為一個概率模型,然後用隨機投點、統計分析的方法來進行搜索。

  隨機數的產生 用蒙特卡羅法進行仿真時,需要應用各種不同分佈的隨機變量。隻要有一種連續分佈的隨機變量,就可設法得到任意分佈的隨機變量。在(0,1)上均勻的分佈函數是一種最簡單的連續分佈函數。因此在

蒙特卡羅法中,多是先產生均勻分佈隨機變量 R的抽樣值ri(i=1,2,…),稱為隨機數。在計算機中產生隨機數的方法有:①把已有的隨機數表輸入計算機;②用物理方法,如噪聲型隨機數發生器產生出真正的隨機數;③用數學方法根據遞推公式

由程序來產生。這種方法速度高,占用機器的內存少,使用最為普遍。在計算機中表示一個數字的字長有限,因此隻能表示有限個不同的數,而且用遞推方法產生的數值序列{rn}是完全確定的,到一定長度便周而復始,這些都與隨機數的基本性質相矛盾。但是隻要產生的數值序列{rn}能夠通過隨機數的各種統計檢驗,仍可以把它當作隨機數來使用。為區別起見,常將用數學方法產生的隨機數稱為偽隨機數。