數值分析中,擬蒙特卡羅方法(Quasi-Monte Carlo method)是使用低差異列(一種確定生成的超均勻分布列,也稱為擬隨機列、次隨機列)來進行數值積分和研究其它一些數值問題的方法。而普通的蒙特卡羅方法或蒙地卡羅積分方法使用的是偽隨機數。MATLAB中提供了生成如哈爾頓列索博爾列等超均勻分布列的函數[1]

Thumb
偽隨機序列
Thumb
低差異序列(索博爾列)
由偽隨機數法和低差異列法生成的256點序列(紅點為第1至10點,藍點為第11至100點,綠點為第101至256點) 直觀上,低差異列的分布更為均勻

擬蒙特卡羅方法和蒙特卡羅方法的具體內容相似,要解決的問題都是通過測量某個可測函數 f 在某些點上的取值,而在數值上求它的積分的近似值。例如要求在單位體積上的積分近似,可以設取的點為x1, ..., xN,那麼:

其中的xi都是s維向量。擬蒙特卡羅方法和普通蒙特卡羅方法的區別在於xi的具體選取方式。蒙特卡羅方法用的是偽隨機列,而擬蒙特卡羅方法用到的是哈爾頓列索博爾列等低差異列。使用低差異列的優點是收斂速率較快。擬蒙特卡羅方法可以達到O(1/N)的收斂速率,而普通蒙特卡羅方法的收斂速率則是 O(N-0.5)[2]

近年來,擬蒙特卡羅方法在金融數學計算機數學領域裡得到了越來越多的應用[2],因為其中常常會需要計算高維積分的數值近似。蒙特卡羅方法和擬蒙特卡羅方法可以快捷簡單地得到較好的結果。

誤差估計

擬蒙特卡羅方法的近似誤差可以用取點x1, ..., xN的差異度作為上限。具體來說,Koksma-Hlawka不等式表明,誤差項

限制,其中V(f)為函數f的Hardy-Krause變差[3],DN是(x1,...,xN)的差異度,定義為

,

其中Q是任何[0,1]s中邊界與坐標軸平行的方形「塊」[3]表明擬蒙特卡羅方法的近似誤差大約是的量級,於此相對的是普通蒙特卡羅方法的近似誤差為量級。注意這裡的不等式給出的是誤差上限,事實上擬蒙特卡羅方法的收斂速率要比其上限所示的速率快得多[2]。因此,一般來說擬蒙特卡羅方法比起普通的蒙特卡羅方法來說大大加快了收斂的速率。

參考來源

外部連結

Wikiwand in your browser!

Seamless Wikipedia browsing. On steroids.

Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.

Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.