Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 假设高斯分布,如何为两个常微分方程添加白噪声过程项?_Matlab_Noise_Ode_Stochastic Process - Fatal编程技术网

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
    时间点,噪声值
  • 噪声的自相关性如下所示:
  • (等式1)

    其中,
    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,您可以在最后进行逆变换以返回到原始域