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
- The white noise term
epislon_i(t)
is assumed with Gaussian distribution.epislon_i(t)
means that for equationi
, and att
timepoint, the value of the noise. - the auto-correlation of noise are given:
(EQ.1)
where delta(t)
is the Dirac delta function and the diffusion matrix D
is defined by
(EQ.2)
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 epislon
if 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!