用于 SDE 中弱收敛的 Richardson 外推法问题

计算科学 收敛 随机 扩散
2021-12-03 04:16:36

我已经将 Euler-Maruyama 方法的 Richardson 外推到 4 阶,以估计 SDE 的矩。

Euler-Maruyama 有效,我希望 Richardson 外推也有效,因为当我抑制噪声贡献时,它会在得到的常微分方程中给出正确的解。

但是,当我添加噪声项时,我没有得到我期望的矩(特别是方差),就像我使用常规欧拉方法所做的那样,所以显然我做错了什么。

这是我用于外推的 MATLAB 代码:

function [t, y] = Richardson_weak_4th_order(a, b, t_interval, y0, h)

[t1, y1] = euler_maruyama(a, b, t_interval, y0, h);
[~, y2]  = euler_maruyama(a, b, t_interval, y0, h/2);
[~, y3]  = euler_maruyama(a, b, t_interval, y0, h/4);
[~, y4]  = euler_maruyama(a, b, t_interval, y0, h/8);

% Extrapolation
y2 = y2(1:2:end,:);
y3 = y3(1:4:end,:);
y4 = y4(1:8:end,:);

t = t1;
y = 1/21*(64*y4 - 56*y3 + 14*y2 - y1);

为简单起见,我正在使用 Ornstein-Uhlenbeck 过程进行测试

dXt=(mXt)dt+σdWt
为此E(X)mVar(X)σ22. Euler 方法的结果还可以,但外推法的方差要大得多。我错过了什么?

编辑:问题是理查森外推没有在估计的时刻(应该)上实现,而是在过程的实现上实现。

1个回答

您正在将 Richardson 外推法应用于 OU 流程的越来越准确的独立样本路径。

即使对于独立的相同正态分布的随机变量,这将如何工作y1,y2,y3,y4N(μ,σ2)? 这些已经“收敛”到真实分布N(μ,σ2),并且您可能期望外推法只是重现变量,但是

121(64y456y3+14y2y1)N(μ,16.8σ2).
如果它们是独立的,那将破坏这种线性组合做正确事情的任何机会。

根据在 Google Scholar 上的粗略搜索,Richardson 推断确实会有所帮助。但我认为有必要谨慎选择样本的方式以及它们的独立性。上述论点与yi也适用于yi是对生成过程路径的样本矩的估计:样本矩的方差会被 Richardson 外推的过程放大,所以这是你需要小心处理的事情。

因此,Richardson 外推只能稍微小心地应用于采样时刻,而不是采样路径。特别是对于示例时刻,它确实会有所帮助:独立yk将分发为N(μ,22(k1)σ2), 然后

121(64y456y3+14y2y1)N(μ,0.7σ2).
如果你要做同样的事情yk来自同一个样本,那么根据我的计算,方差将(对于样本均值)为0.15σ2.