2011-07-16 146 views
0

这个问题已经让我困惑了好几天。当我提到高年级学生时,他们也不能回答。如何为几个常微分方程添加白噪声处理项,假设高斯分布?

我们有10个ODE,每个噪声项都应该添加到其中。噪音定义如下。因为我总是发现我无法上传图片,下面的公式可能不是很清楚。为了理解,你可以阅读我的解释或去这个地址:Plos one。你可以在这个地址

  1. 白噪声项被假定为高斯分布epislon_i(t)找到方程正上方支持信息的描述。 epislon_i(t)意味着对于等式it时间点,噪声的值。
  2. 噪声的自相关给出:

(等式1)eq1

其中delta(t)是狄拉克δ函数与扩散矩阵D

定义(EQ.2)eq2

我们的问题m侧重于如何解释扩散矩阵中的狄拉克三角函数。由于狄拉克三角函数的性质是delta(0) = Infdelta(t) = 0 if t neq 0,我们不知道如何计算epislon如果我们尝试sqrt of 2D(x, t)delta(t-t')。所以我们简单地假设:delta(0) = 1delta(t) = 0 if t neq 0; 但我们不知道这是否正确。请问如何在MATLAB中使用扩散方程的Delta函数?

这个问题与MATLAB中的随机过程有关。所以我们回顾不同的随机过程来激发我们的想法。在MATLAB中,Wienner过程通常定义为a = sqrt(dt) * rand(1, N)N是步数,dt是步长的长度。相应地,布朗运动可以定义为:所有这些与随机过程相关联。然而,它们并不涉及对自相关矩阵有约束的白噪声处理,由D指出。

然后我们认为,我们可以简单地使用randn(1, 10)来生成一个代表噪声的向量。但是,由于噪声的定义必须满足方程(2),因此不能使具有预定义的部分相关性的不同方程中的噪声项(D_ij)。然后我们尝试使用mvnrnd在每个时间步骤生成一个多变量正态分布。不幸的是,MATLAB中的函数mvnrnd返回一个矩阵。但是我们需要返回一个长度为10的向量。

我们相当困惑,所以请你给我一个灯光?非常感谢!

回答

1

注意:我看到这里有两个模糊的问题:1)如何处理在DE随机项和2)如何处理在DE增量功能。这两个都是数学相关的问题,http://www.math.stackexchange.com将是一个更好的地方。如果您有关于MATLAB的问题,我一直无法把它放下来,您应该添加代码示例以更好地说明您的观点。也就是说,我会简单回答这两个问题,只是为了让你走上正轨。


你这里不是常微分方程,但随机微分方程(SDE)什么。我不确定你如何使用MATLAB来处理这个问题,但是像ode45ode23这样的例程不会有任何帮助。对于SDE,通常用于分离变量/特征方法的数学工具不起作用,您需要使用Itô calculus和Itô积分来处理它们。正如你可能猜到的那样,解决方案将是随机的。要了解更多关于SDE并与他们合作,您可以考虑BerntØksendal的Stochastic Differential Equations: An Introduction with Applications以及Peter E. Kloeden和Eckhard Platen的数值解决方案Numerical Solution of Stochastic Differential Equations

来到delta函数部分,您可以通过对ODE进行傅立叶变换来轻松处理它。回想一下delta函数的傅立叶变换是1。这极大地简化了DE,并且您可以在最后进行逆向变换以返回到原始域。