数值分析中,拟蒙特卡罗方法(Quasi-Monte Carlo method)是使用低差异列(一种确定生成的超均匀分布列,也称为拟随机列、次随机列)来进行数值积分和研究其它一些数值问题的方法。而普通的蒙特卡罗方法或蒙地卡罗积分方法使用的是伪随机数。MATLAB中提供了生成如哈尔顿列、索博尔列等超均匀分布列的函数。
拟蒙特卡罗方法和蒙特卡罗方法的具体内容相似,要解决的问题都是通过测量某个可测函数 在某些点上的取值,而在数值上求它的积分的近似值。例如要求在单位体积1, ..., ,那么:
其中的都是s维向量。拟蒙特卡罗方法和普通蒙特卡罗方法的区别在于的具体选取方式。蒙特卡罗方法用的是伪随机列,而拟蒙特卡罗方法用到的是哈尔顿列、索博尔列等低差异列。使用低差异列的优点是收敛速率较快。拟蒙特卡罗方法可以达到O(1/N)的收敛速率,而普通蒙特卡罗方法的收敛速率则是 O(N-0.5)。
近年来,拟蒙特卡罗方法在金融数学和计算机数学领域里得到了越来越多的应用,因为其中常常会需要计算高维积分的数值近似。蒙特卡罗方法和拟蒙特卡罗方法可以快捷简单地得到较好的结果。
拟蒙特卡罗方法的近似误差可以用取点1, ..., 的差异度作为上限。具体来说,Koksma-Hlawka不等式表明,误差项
被
限制,其中V(f)为函数的Hardy-Krause变差,DN是(x1,...,xN)的差异度,定义为
其中Q是任何s中边界与坐标轴平行的方形“块”。表明拟蒙特卡罗方法的近似误差大约是的量级,于此相对的是普通蒙特卡罗方法的近似误差为量级。注意这里的不等式给出的是误差上限,事实上拟蒙特卡罗方法的收敛速率要比其上限所示的速率快得多。因此,一般来说拟蒙特卡罗方法比起普通的蒙特卡罗方法来说大大加快了收敛的速率。