Forums  > Pricing & Modelling  > Derivation of Equations For Analytical Solution of Fokker-Planck Equations  
Page 1 of 1
Display using:  


Total Posts: 301
Joined: Aug 2005
Posted: 2020-04-03 14:06
Dear friends, I was trying to think how to derive the proper equations for the evolution of density in Ito-hermite method. I was able to find some other interesting equations that I decided to share here with friends.
Before I write the main equations, I want to mention that this idea is based on equivalence between two densities. I take one density that is standard normal called Z (could also be taken as brownian motion) and then I try to find the evolution of a particular point on the density of SDE variable X(t,Z) and this particular point is related to a specific fixed value of Z which is already known. Z is a static density that does not change with time at all.
I will write a few equations first that we will use later in the main derivation. Here are the equations

Follows from change of variable formula for densities.

where f(X,t) is the fokker planck equation.(sorry for missing index t in latex)

Now we come towards the main equation derivation(which might as well possibly be wrong)

Since standard normal is a static density and it does not change with time, we can write

since we can write densities in terms of each other using change of variable formula, we can write

taking the derivatives, we can expand the above equation as


in the above equation ,we get

where is the fokker planck equation for the related SDE.
We can use the change of variable formula in fokker-planck again to get rid of the densities and get an evolution equation solely in terms of Z and SDE variable X(Z,t). Suppose the structure of fokker planck is given as

when we have a(X,t)=0 we can eliminate the densities from the equation by converting p(X,t) into p(Z) and cancelling the p(Z) in the equation. using the following formulas, we get

This follows from the standard change of variables in a density.

putting the above value of fokker planck in the first equation and cancelling p(Z) we get

Please be careful with signs as I might have missed some absolute in change of probability derivatives.

In order to work out a proper evolution equation, We can take the value of Z and its derivatives and and as constant at start of the time step and expand the integrals of the kind like, and for a particular value of Z related to each grid point using stochastics just like we did for monte carlo simulations and then form a valid evolution equation. In the above integrals H_n(Z) is a standard normal hermite polynomial of nth degree.
These are very basic thoughts that I just worked out quickly and there is also some possibility that we might have to use the equivalence relation with brownian motion density instead of standard normal density but if required doing the same exercise on brownian motion should also be straightforward.
For more information about the analytics and other background, you can see my other thread here::
and please feel free to ask me any questions.


Total Posts: 301
Joined: Aug 2005
Posted: 2020-04-04 10:57
Dear friends, the method proposed in previous post to solve for the densities of SDEs by doing a change of variable with static density of standard normal will work for other SDEs only if it works for the simplest SDE which is that of brownian motion. And doing it for brownian motion SDE will give us insights about how to solve more complicated SDEs since mathematics there can become very tedious and knowing basic principles towards solution of brownian motion SDE will be very helpful. Therefore I tried to solve the brownian motion SDE with this method and it does work. Here are the details.
In what follows, we use the notation B(t) for standard brownian motion and Z for standard normal.

The fokker planck equation for Brownian motion is given as

and we apply time derivative on static standard normal density as
Changing to standard brownian motion density inside the brackets by application of change of variable formula
applying the time derivative to equation (3), we get the equation

I have removed absolute signs since the derivative between brownian motion and standard normal will be positive.
We put the expression for standard brownian fokker-planck equation from equation(1) to above equation (4)

now we want to convert the derivatives , and P(B,t) again to standard normal density so that we can cancel the densities from our equation.
We use the following equations

where I have used
which are derivatives of standard normal density.
After applying the above formulas in previous equation(5) and cancelling P(Z) that is common throughout, we get

For general solution of SDEs, we will have to find out the derivatives like and and the third derivative using finite differences or some other analytic procedure. But in case of brownian motion, we know these derivatives and apply them in the above equation

and now our above equation (6) becomes
But and
So we get from Equation(7)

taking dt to the other side of the equation(i.e multiply by dt.), we get


The expression on the left can be solved(by integration on both sides) to get
or in general

Of course we will have to take care of signs on Z when taking root on the above formula.
So we can solve for Brownian motion with this method and the good thing is that we learnt that we will have to do some mathematical manipulation of the equations to solve the general SDE and turn the solution expression into squared form and this seems to be very helpful that we know in advance that complicated SDEs will also have to be solved for squared expressions.


Total Posts: 3612
Joined: Jun 2004
Posted: 2020-04-04 17:39
Hi, Amin,
So the square of Brownian motion is just a normal variable times t?
Thus with deterministic increments?

The older I grow, the more I distrust the familiar doctrine that age brings wisdom Henry L. Mencken


Total Posts: 301
Joined: Aug 2005
Posted: 2020-04-04 20:00
Thank for the question Paulius. This is not valid in traditional framework of monte carlo simulations. This technique is for simulating the densities of Stochastic differential equations. In this density simulation framework, the whole SDE grid is mapped on standard normal random variable with each point on the grid corresponding to a particular value of normal ranging from -5 to +5. A typical grid can have an equidistant Z-spacing of .2 (starting from -.5 up to +.5) And the whole grid moves and expands(and sometimes possibly contracts) as a function of underlying Z which is the standard normal variable. As time advances, any point on the grid continues to take the same value of Z that is associated with the same grid point. This is not a typical simulation but it is for the deterministic calculation of the density that is why it is derived from fokker-planck equation which is known to represent the densities of SDEs.
By the way it is
Normal random variable appears in a squared form. For more details, you will have to look at the other math-finance forum where I have been posting regularly in more detail. The link to my thread on other forum is given in the first post.


Total Posts: 301
Joined: Aug 2005
Posted: 2020-08-03 16:22
Download Matlab Code for Semi-Analytical Solution of Fokker-Planck Equation -- New Research
Here you can download the code for analytical solution of Fokker-planck equation that you can use for solution of densities of Stochastic Differential Equations with multiple drift and volatility terms.
Please download the code at post 971 here

Here in post 970 you can view fifteen overlaid graphs that show how our solution is faithfully close to true solution for a large number of difficult scenarios of mean-reverting SDEs

With this new method you can easily simulate SDEs with three or four drift terms for advanced calibration to stochastic volatility models. You can also handle bi-modal densities.


Total Posts: 301
Joined: Aug 2005
Posted: 2020-08-20 07:46
Download Improved Much Faster Matlab Code for Semi-Analytical Solution of Fokker-Planck Equation
I am releasing a new much faster and improved version of the code for semi-analytic solution program for FPE. I have removed any matlab specific function (spline interpolation) and there is only ultra-fast lagrange polynomial interpolation. You can easily code it in any language.
Here in post 983 you can download the new improved code for densities of SDEs with multiple drift terms.
With this new method you can easily simulate SDEs with three or four drift terms for advanced calibration to stochastic volatility models and handle bi-modal densities. If you need any help with advanced analytics and stochastic volatility solutions, please mention here or drop me a message on my linkedin.


Total Posts: 301
Joined: Aug 2005
Posted: 2021-07-16 00:46
Download Matlab Code for Analytical Evolution/Simulation of Densities of Stochastic Differential Equations (SDEs).

The new Density simulation algorithm is faster, more accurate and simpler than the Fokker-planck based simulation algorithm I had earlier distributed several months ago. The new algorithm is accurate to just within a few basis points almost everywhere. Unlike previous FPE algorithm, I am sure we can carry this algorithm over to original coordinates and two dimensions as well. This algorithm does not suffer from instabilities in the middle of the density and gives smooth derivatives of the density.
Here you look at graphs of densities of SDEs simulated with this algorithm.

Here you download the matlab code for the algorithm

With this new method you can easily simulate SDEs with three or four drift terms for advanced calibration to stochastic volatility models and handle bi-modal densities. If you need any help with advanced analytics and stochastic volatility solutions, please drop me a message on my linkedin.
Previous Thread :: Next Thread 
Page 1 of 1