假设高斯分布,如何为几个常微分方程添加白噪声过程项?

发布于 2024-11-24 18:25:38 字数 1489 浏览 4 评论 0原文

这个问题已经让我困惑好几天了。虽然我向高年级学生提出了要求,但他们也无法给出答复。

我们有十个 ODE,每个 ODE 都应添加一个噪声项。噪声定义如下。由于我总是发现无法上传图片,所以下面的公式可能不是很清楚。为了理解,您可以阅读我的解释或访问以下地址: Plos one。您可以在该地址的支持信息正上方找到方程的描述。

  1. 白噪声项epislon_i(t)假设为高斯分布。 epislon_i(t) 表示方程 it 时间点的噪声值。
  2. 噪声的自相关性给出:

(EQ.1) eq1

其中 delta(t) 是 Dirac delta 函数,扩散矩阵 D(EQ.2) 定义

eq2

我们的问题集中在如何解释扩散矩阵中的狄拉克δ函数。由于狄拉克 delta 函数的性质是 delta(0) = Inf 且 delta(t) = 0 if t neq 0,我们不知道如何计算 < code>epislon如果我们尝试对 2D(x, t)delta(tt') 进行sqrt。因此,我们简单地假设 delta(0) = 1 且 delta(t) = 0 if t neq 0; 但我们不知道这是否正确。请您告诉我如何在MATLAB中使用扩散方程的Delta函数?

这个问题与 MATLAB 中的随机过程有关。因此,我们回顾不同的随机过程来启发我们的想法。在 MATLAB 中,维纳过程通常定义为 a = sqrt(dt) * rand(1, N)N 是步数,dt 是步长。相应地,布朗运动可以定义为: b = cumsum(a); 所有这些都与随机过程相关。然而,它们与白噪声过程无关,白噪声过程对自相关矩阵有约束,如 D 所示。

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

我们很困惑,所以你能给我一点启发吗?非常感谢!

This question has already confused me several days. While I referred to senior students, they also cannot give a reply.

We have ten ODEs, into which each a noise term should be added. The noise is defined as follows. since I always find that I cannot upload a picture, the formula below maybe not very clear. In order to understand, you can either read my explanation or go the this address: Plos one. You could find the description of the equations directly above the Support Information in this address

  1. The white noise term epislon_i(t) is assumed with Gaussian distribution. epislon_i(t) means that for equation i, and at t timepoint, the value of the noise.
  2. the auto-correlation of noise are given:

(EQ.1) eq1

where delta(t) is the Dirac delta function and the diffusion matrix D is defined by

(EQ.2) eq2

Our problem focuses on how to explain the Dirac delta function in the diffusion matrix. Since the property of Dirac delta function is delta(0) = Inf and delta(t) = 0 if t neq 0, we don't know how to calculate the epislonif we try to sqrt of 2D(x, t)delta(t-t'). So we simply assume that delta(0) = 1 and delta(t) = 0 if t neq 0; But we don't know whether or not this is right. Could you please tell me how to use Delta function of diffusion equation in MATLAB?

This question associates with the stochastic process in MATLAB. So we review different stochastic process to inspire our ideas. In MATLAB, the Wienner process is often defined as a = sqrt(dt) * rand(1, N). N is the number of steps, dt is the length of the steps. Correspondingly, the Brownian motion can be defined as: b = cumsum(a); All of these associate with stochastic process. However, they doesn't related to the white noise process which has a constraints on the matrix of auto-correlation, noted by D.

Then we consider that, we may simply use randn(1, 10) to generate a vector representing the noise. However, since the definition of the noise must satisfy the equation (2), this cannot enable noise term in different equation have the predefined partial correlation (D_ij). Then we try to use mvnrnd to generate a multiple variable normal distribution at each time step. Unfortunately, the function mvnrnd in MATLAB return a matrix. But we need to return a vector of length 10.

We are rather confused, so could you please give me just a light? Thanks so much!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

寒冷纷飞旳雪 2024-12-01 18:25:38

注意:我在这里看到两个模糊的问题:1)如何处理 DE 中的随机项和 2)如何处理 DE 中的 delta 函数。这两个问题都是与数学相关的问题,http://www.math.stackexchange.com 将是更好的地方。如果您有与 MATLAB 有关的问题,我无法确定它,您也许应该添加代码示例来更好地说明您的观点。也就是说,我将简要回答这两个问题,只是为了让您走上正轨。


这里的不是 ODE,而是随机微分方程 (SDE)。我不确定您如何使用 MATLAB 来处理此问题,但像 ode45ode23 这样的例程不会有任何帮助。对于 SDE,您常用的变量分离/特征方法等数学工具不起作用,您需要使用 Itô 微积分 和 Itô 积分来处理它们。正如您可能已经猜到的,解决方案将是随机的。要了解有关 SDE 并使用它们的更多信息,您可以考虑随机微分方程:简介Bernt Øksendal 的应用程序以及数值解,随机微分方程的数值解 作者:Peter E. Kloeden 和 Eckhard Platen。

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

NOTE: I see two hazy questions in here: 1) how to deal with a stochastic term in a DE and 2) how to deal with a delta function in a DE. Both of these are math related questions and http://www.math.stackexchange.com will be a better place for this. If you had a question pertaining to MATLAB, I haven't been able to pin it down, and you should perhaps add code examples to better illustrate your point. That said, I'll answer the two questions briefly, just to put you on the right track.


What you have here are not ODEs, but Stochastic differential equations (SDE). I'm not sure how you're using MATLAB to work with this, but routines like ode45 or ode23 will not be of any help. For SDEs, your usual mathematical tools of separation of variables/method of characteristics etc don't work and you'll need to use Itô calculus and Itô integrals to work with them. The solutions, as you might have guessed, will be stochastic. To learn more about SDEs and working with them, you can consider Stochastic Differential Equations: An Introduction with Applications by Bernt Øksendal and for numerical solutions, Numerical Solution of Stochastic Differential Equations by Peter E. Kloeden and Eckhard Platen.

Coming to the delta function part, you can easily deal with it by taking the Fourier transform of the ODE. Recall that the Fourier transform of a delta function is 1. This greatly simplifies the DE and you can take an inverse transform in the very end to return to the original domain.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文