Euler-Maruyama 方法是求解随机微分方程 (SDE) 的一种直接数值方法,但与高级求解器相比,通常精度较低且稳定性较差。 它扩展了确定性 Euler 方法来处理随机项,通过使用噪声的简单离散化来逐步逼近解。 虽然易于实现,但它在收敛速度和误差控制方面存在局限性。 更高级的方法,例如 Milstein 方案或随机 Runge-Kutta 变体,通过考虑高阶项或使用自适应步长来提供更好的精度和稳定性。 它们之间的选择取决于问题的复杂性、所需的精度和计算约束。
一个关键的区别在于收敛阶数。 Euler-Maruyama 的强收敛阶数为 0.5,弱收敛阶数为 1,这意味着其误差随着路径精度步长的平方根而缩放。 相比之下,Milstein 方法通过包含一个校正项来补偿噪声与系统漂移的相互作用,从而实现强收敛阶数 1,从而显着减少具有乘性噪声(其中噪声取决于状态)的系统的误差。 例如,在使用几何布朗运动对资产价格进行建模时,Milstein 的校正项显式地处理了状态相关的噪声,从而比 Euler-Maruyama 产生更准确的模拟。 诸如隐式方法或具有自适应步长调整的方法(例如,Kloeden-Platen 方法)之类的高级求解器进一步提高了刚性系统或高度非线性 SDE 的稳定性,在这些情况下,Euler-Maruyama 可能会发散或需要不切实际的小步长。
实际权衡很重要。 Euler-Maruyama 的简单性使其成为原型设计或快速实现比精度需求更重要的问题的理想选择。 但是,当精度或效率至关重要时,最好使用高级方法。 例如,模拟具有快速动力学的化学反应可能需要自适应求解器来处理不同的时间尺度,而 Euler-Maruyama 的固定步长可能会错过快速转换。 同样,具有强噪声-漂移耦合的系统(例如,在随机振动下的机械系统)受益于 Milstein 的校正。 开发人员应权衡计算成本:高级方法通常需要更多的函数评估或 Jacobian 计算,这可能会抵消其对大规模或实时应用程序的精度增益。 在这种情况下,尽管 Euler-Maruyama 存在局限性,但它仍然是务实的选择。