0

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!

4

1 回答 1

1

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


您在这里拥有的不是 ODE,而是随机微分方程 (SDE)。我不确定你是如何使用 MATLAB 来处理这个的,但是像这样的例程ode45或者ode23不会有任何帮助。对于 SDE,您常用的变量分离/特征方法等数学工具不起作用,您需要使用Itô 微积分和 Itô 积分来处理它们。正如您可能已经猜到的那样,解决方案将是随机的。要了解有关 SDE 和使用它们的更多信息,您可以参考 Bernt Øksendal的 Stochastic Differential Equations: An Introduction with Applications以及数值解,Peter E. Kloeden 和 Eckhard Platen的随机微分方程的数值解。

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

于 2011-07-16T21:14:44.860 回答