有没有不是蒙特卡洛的模拟方法?所有模拟方法都涉及将随机数代入函数以找到函数的值范围。那么所有的模拟方法本质上都是蒙特卡洛方法吗?
所有模拟方法都是蒙特卡罗的某种形式吗?
有些模拟不是蒙特卡洛。基本上,所有蒙特卡洛方法都使用(弱)大数定律:均值收敛于其期望值。
然后是准蒙特卡罗方法。这些是通过随机数和等距网格的折衷来模拟的,以产生更快的收敛。
非蒙特卡罗模拟例如用于计算流体动力学。在流体的单个部分的“微尺度”上对流体动力学进行建模是很容易的。这些部分具有初始速度、压力和尺寸,并受到来自相邻部分的力或固体的影响。模拟通过计算所有部分及其相互作用来计算流体的整体行为。有效地做到这一点使这成为一门科学。那里不需要随机数。
在气象学或气候研究中,事情也是类似的。但现在,初始值并不完全清楚:您只有在某些测量点的气象数据。很多数据需要猜测。
由于这些复杂问题的输入数据通常不连续,因此您可以使用不同的猜测运行模拟。最终结果将在最常见的结果中进行选择。这实际上是原则上模拟一些天气预报的方式。
蒙特卡罗方法是第一种使用计算机模拟解决统计问题的方法。它由来自洛斯阿拉莫斯实验室的 John von Neumann、Stanisław Ulam 和 Nicholas Metropolis 团队开发,该团队在二战期间致力于曼哈顿项目。它于1949 年由 Metropolis & Ulam首次描述,这是该名称首次出现在印刷品中。这是可能的,因为发现它的科学家们也能够使用他们正在研究的第一台计算机。在他们的工作中,他们使用蒙特卡罗方法来模拟物理问题,其想法是您可以通过对该过程的一些示例进行采样来模拟一个复杂的问题。有许多关于蒙特卡洛历史的有趣文章,例如Metropolis 本人或最近的一些,例如Robert & Casella。
因此,“蒙特卡洛”是第一种用于计算机模拟以解决统计问题的方法的名称。然后这个名字就变成了整个模拟方法家族的通用名称,并且通常以这种方式使用。
有一些模拟方法被认为是非蒙特卡洛,然而,虽然蒙特卡洛是计算机模拟的第一个用途,但“计算机模拟”和“蒙特卡洛”可以互换使用是很常见的。
什么是“模拟”有不同的定义,即
3 a : 通过另一个系统或过程的功能来模拟表示一个系统或过程的功能 b : 对一个问题的检查通常不需要通过模拟设备进行直接实验
剑桥词典:
做或做出一些行为或看起来像真实但不是真实的东西
维基百科:
随着时间的推移模仿现实世界的过程或系统的操作
模拟需要工作的是模仿某些系统或过程的能力。这不需要涉及任何随机性(如蒙特卡洛),但是如果尝试了所有可能性,那么该过程相当详尽的搜索或一般的优化问题。如果涉及随机元素并且使用计算机运行某个模型的模拟,那么这种模拟类似于最初的蒙特卡罗方法的精神(例如,Metropolis & Ulam,1949)。随机元素是模拟的关键部分,例如,Ross (2006, Simulation. 爱思唯尔)。但是,问题的答案在很大程度上取决于您假设的模拟定义。例如,如果您假设使用优化或穷举搜索的确定性算法实际上是模拟,那么我们需要将各种各样的算法视为模拟,这使得模拟本身的定义非常模糊。
从字面上看,每个统计程序都采用某种模型或现实的近似值,即“尝试”和评估。这与模拟的字典定义一致。然而,我们并不认为所有统计数据都是基于模拟的。问题和讨论似乎源于缺乏对“模拟”的精确定义。蒙特卡罗似乎是模拟的原型(也是第一个)示例,但是如果我们考虑模拟的非常一般的定义,那么许多非蒙特卡罗方法都属于该定义。所以有非蒙特卡洛模拟,但所有明显基于模拟的方法都类似于蒙特卡洛的精神,在某种程度上与它相关,或者受到它的启发。这就是为什么“蒙特卡洛”经常被用作“模拟”的同义词的原因。
所有模拟方法都涉及将随机数代入函数以找到函数的值范围。
我从未听说过模拟的定义。例如,维基百科关于模拟和计算机模拟的文章只是简单地提到了随机和随机等术语。
一个不涉及任何随机性并因此显然不是蒙特卡罗模拟的简单模拟示例如下:
我想模拟一个简单的钟摆的行为并做出一些简化的假设(无质量的绳索,准时的质量,没有摩擦,没有像科里奥利力这样的外力)。然后我得到一个数学钟摆,可以写下描述其运动的微分方程。然后,我可以使用一些求解微分方程的求解器,例如Runge-Kutta 方法,以在给定的初始条件下模拟其轨迹。(理论上我也可以争辩说我不需要考虑进一步的初始条件。)
通过这种方式,我无需使用随机数就可以很好地模拟真实的钟摆。因此,这不是蒙特卡罗模拟。
在另一个例子中,考虑逻辑图,它是一个没有任何随机性的简单人口模型。
不可以。可以使用 Runge-Kutta 或其他确定性算法(不是 Monte Carlo)来模拟受力下的粒子。
蒙特卡洛用于计算积分(您可以称其为模拟,但最终它只是计算估计量的数值近似)。同样,您可以使用确定性方法来做到这一点(例如梯形规则)。
从广义上讲,您可以分离算法来计算确定性和非确定性的积分。蒙特卡洛是一种非确定性方法。准蒙特卡洛是另一个。梯形规则是一种确定性算法。