Matlab 假设高斯分布,如何为两个常微分方程添加白噪声过程项?
这个问题已经困扰了我好几天了。当我提到高年级学生时,他们也不能给出答复 我们有十首颂歌,每首颂歌都应该加上一个噪声项。噪声定义如下。因为我总是发现我不能上传图片,下面的公式可能不是很清楚。为了理解,您可以阅读我的解释,也可以访问以下地址:。您可以在该地址的支持信息的正上方找到方程的描述Matlab 假设高斯分布,如何为两个常微分方程添加白噪声过程项?,matlab,noise,ode,stochastic-process,Matlab,Noise,Ode,Stochastic Process,这个问题已经困扰了我好几天了。当我提到高年级学生时,他们也不能给出答复 我们有十首颂歌,每首颂歌都应该加上一个噪声项。噪声定义如下。因为我总是发现我不能上传图片,下面的公式可能不是很清楚。为了理解,您可以阅读我的解释,也可以访问以下地址:。您可以在该地址的支持信息的正上方找到方程的描述 白噪声项epilon_i(t)假设为高斯分布epilon_i(t)表示对于方程i,在t时间点,噪声值 噪声的自相关性如下所示: (等式1) 其中,delta(t)是狄拉克δ函数,扩散矩阵D由 (等式2) 我们的问
epilon_i(t)
假设为高斯分布epilon_i(t)
表示对于方程i
,在t
时间点,噪声值李>
delta(t)
是狄拉克δ函数,扩散矩阵D
由
(等式2)
我们的问题集中在如何解释扩散矩阵中的狄拉克δ函数。由于狄拉克δ函数的性质是delta(0)=Inf
和delta(t)=0如果t neq 0
,我们不知道如何计算epilon
,如果我们尝试2D(x,t)delta(t-t')
。所以我们简单地假设delta(0)=1
和delta(t)=0,如果t neq 0
但我们不知道这是否正确。您能告诉我如何在MATLAB中使用扩散方程的δ函数吗
这个问题与MATLAB中的随机过程有关。因此,我们回顾不同的随机过程来启发我们的想法。在MATLAB中,维纳过程通常被定义为a=sqrt(dt)*rand(1,N)
N
是步数,dt
是步长。相应地,布朗运动可以定义为:b=cumsum(a)所有这些都与随机过程有关。然而,它们与白噪声过程无关,白噪声过程对自相关矩阵有限制,如D
所述
然后,我们可以简单地使用<代码> RANN(1, 10)< /代码>来生成表示噪声的向量。然而,由于噪声的定义必须满足等式(2),这不能使不同等式中的噪声项具有预定义的偏相关(
D_ij
)。然后我们尝试使用mvnrn
在每个时间步生成多变量正态分布。不幸的是,MATLAB中的函数mvnrd
返回一个矩阵。但是我们需要返回一个长度为10
的向量
我们很困惑,你能给我点颜色看看吗?非常感谢
注意:我在这里看到两个模糊的问题:1)如何处理DE中的随机项,2)如何处理DE中的delta函数。这两个问题都与数学相关,并且将是更好的选择。如果你有一个关于MATLAB的问题,我还不能确定,也许你应该添加代码示例来更好地说明你的观点。也就是说,我会简单地回答这两个问题,让你们走上正轨
这里的不是常微分方程,而是随机微分方程(SDE)。我不确定您是如何使用MATLAB来处理这个问题的,但是像ode45
或ode23
这样的例程将没有任何帮助。对于SDE,您常用的分离变量的数学工具/特征方法等不起作用,您需要使用积分来处理它们。正如你可能已经猜到的,解决方案是随机的。要了解更多关于SDEs和与他们合作,你可以考虑贝尔顿奥克森德尔和数值解决方案,由Peter E. Kloeden和Eckhard Platen。
对于delta函数部分,您可以通过对ODE进行傅里叶变换来轻松地处理它。回想一下,delta函数的傅里叶变换是1
。这大大简化了DE,您可以在最后进行逆变换以返回到原始域