Kolmogorov Forward Equation in pdepe

3 views (last 30 days)
Coolman86
Coolman86 on 5 Apr 2015
I'm quite familiar with the pdepe function but I'm having a difficulty with solving Kolmogorov Forward Equation using pdepe. The only thing that makes is it complicated is the initial condition in terms of the dirac delta function.
The Kolmogorov PDE I'm trying to solve, reads: dp/dt = 1/2*sigma^2 * d(dp/dx)/dx
Assume a time s = 0 and a state X(s) = y and a future time t>=s. Denote p(s,y;t,x) the conditional probability density of X being at the future time t at x, given X(s) = X(0) = y.
By definition, for t->s the density p(s,y;t,x) is infinity if X(t) = y, otherwise 0 (this is the dirac delta).
So a good specification of the initial condition for t=0 is necessary. I have tried several choices for the IC and when I solve the Kolmogorov PDE for the densities, the plot seems to have a good shape but the values of the densities are incorrect.
Any ideas? Thanks!

Answers (4)

Torsten
Torsten on 7 Apr 2015
Why don't you use the analytical solution to your PDE ?
Best wishes
Torsten.

Coolman86
Coolman86 on 7 Apr 2015
Of course I know that for such a problem there exists a simple analytical solution (normal density). But that wasn't the question. I just wanted to see how Matlab can deal with this kind of problem.

Torsten
Torsten on 8 Apr 2015
You will have to place many, many points around the point x0 where the mass is concentrated in order to get satisfactory results.
Usual numerical approximations to Dirac Delta are listed in the paragraph "Beispiele für Dirac-Folgen" under
Best wishes
Torsten.

Francesco Franceschini
Francesco Franceschini on 6 Jan 2022
Edited: Francesco Franceschini on 6 Jan 2022
Hi! I have a question about the same problem on the boundary conditions to encode in the function bcfun. I am familiar with the Matlab form required for the boundary conditions.
However the function u(x, t) solving the Kolmogorov Forward Equation for a Brownian motion (i.e. the normal density) requires the following 4 boundary conditions:
u(-inf, t) = 0, dudx(-inf, t) = 0
u(+inf, t) = 0, dudx(+inf, t) = 0
Then, my questions are:
1) How can I encode 4 boundary conditions in bcfun? Is this possible?
2) The values inf at which the boundary conditions are set must be replaced by a finite but large value? In other words, the space domain of the problem, i.e. (-inf, inf), must be taken bounded from a numerical view point?
Thanks a lot.

Products

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!