Reputation: 1
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
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. (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!
Upvotes: 0
Views: 2531
Reputation: 42225
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.
Upvotes: 1