我正在为离散随机动力系统编写模拟。由于模拟是随机的,我需要多次运行模拟,然后平均每个时间步的值。我在下面有一些简单的 julia 代码来演示这个过程。
我的问题实际上是关于对来自 100、1000、10000 次模拟的数据进行平均时的数值稳定性。模拟是离散的而不是连续的,所以我不需要太担心细粒度的离散化,因为误差累积真的很重要。但是,我不确定是否存在随着时间的推移累积的舍入误差问题,即使是简单的平均值?
在下面的代码中,我保留了一些模拟输出的运行平均值v
。所以对于每次模拟运行,我只取运行平均值和新值的平均值——在这种情况下是一个随机数rand()
。这是一种数值稳定的方法,还是我需要将每个模拟分配并保存到一些大数组或文件中,然后在最后平均它们?
n2 = 5
v = 0.0
for i in 1:n2
v = mean([v, rand()])
end
任何建议将不胜感激。我试图在数值稳定性与限制不必要的内存分配之间找到正确的平衡。谢谢。