Skip to content
All library documents

Choosing Between Fokker–Planck PDEs and Monte Carlo for Pricing

Article Quant Q&A · Author: davidhigh

Summary

The document compares two ways to obtain future distributions and price claims from an Itô process. A Fokker–Planck equation evolves the probability density through a deterministic partial differential equation, while Monte Carlo estimates outcomes from simulated paths. For low-dimensional problems, a PDE can be accurate and computationally efficient, provided its boundary conditions are manageable.

The main tradeoff is dimensionality and problem structure. Grid-based PDE methods become expensive as state dimensions grow, whereas Monte Carlo’s sampling error scales with sample count rather than directly with dimension, making it practical for large baskets and complex path-dependent payoffs. Monte Carlo also makes exotic payoff functions relatively straightforward to implement and offers established techniques for estimating sensitivities, though estimates can have bias or variance. The comparison is qualitative: solver performance depends on boundary conditions, model structure, desired precision, and variance reduction methods. The author favors Monte Carlo as the easier general implementation, while noting PDEs may be preferable for simple low-dimensional cases.

Key ideas

  • The Fokker–Planck equation evolves a probability density deterministically, while Monte Carlo estimates it from simulated paths.
  • Grid-based PDE costs can grow rapidly with the number of state dimensions.
  • Monte Carlo is often practical for high-dimensional or path-dependent pricing problems.
  • PDEs can offer fast, accurate solutions for low-dimensional problems with manageable boundaries.
  • The better method depends on payoff complexity, boundary conditions, dimensions, and precision needs.

Tags

Full text
# Advantage of solving the Fokker-Planck equation over Monte-Carlo simulations


# Advantage of solving the Fokker-Planck equation over Monte-Carlo simulations












For a standard Ito process

$$dX_t = \mu(X_t, t) \,dt + \sigma(X_t, t) \,dW_t,$$

the Fokker-Planck or forward Kolmogorov equation gives an equation for the probability density $p ( x , t )$ of the random variable $X_t$,

$$\frac{\partial}{\partial t} p(x, t) = -\frac{\partial}{\partial x}\left[\mu(x, t) p(x, t)\right] + \frac{1}{2} \frac{\partial^2}{\partial x^2}\left[\sigma^2(X_t, t) p(x, t)\right].$$

Starting from some initial density $p(x,t_0)$, which is often chosen as a delta-peak at the current spot, i.e. $p(x,t_0) = \delta(x-x_0)$, it can be used to calculate future distributions, and from these prices of financial instruments through expectation values.

The concept is quite similar to Monte-Carlo simulations -- with the difference that Monte-Carlo tries to approximate the distribution from a series of realizations, whereas Fokker-Planck arrives at the same quantity through a (deterministic) PDE. Thus the question:

What are the advantages of solving the Fokker-Planck equation over using a Monte-Carlo simulation?

For example: does it give higher accuracy? Are there relevant quantities which can't be calculated via Monte-Carlo? Are there scenarios where it is preferred over Monte-Carlo in practice? And so on.

I'm also looking for thoughts and a discussion on it, so please feel free to post even if it's not a "complete" answer.

## Answer by oliversm (score 5)

https://quant.stackexchange.com/a/41403

> As there are many comments but no answer, let me just sum up some of the comments.

## Solving a PDE or doing some probability?

Usually when one wants to solve the SDE they get a distribution for $X$. In the real world though it is often more useful know some of the properties of this distribution, such as its expected value $\mathbb{E}(X)$, or more generally $\mathbb{E}(f(X))$. We know by the Feynman-Kac theorem that solving this expectation (possibly a conditional expectation) also corresponds to solving a PDE. It is then up to you to decide what is easier, solve a PDE with some tricky boundary conditions, or find an expectation with some strange conditional statements? Each has there own advantages and disadvantages, but the bulk of it really boils down to dimensionality.

## PDEs can become very nasty very quickly

If we only have one driving Brownian motion and we are solving for a scalar random variable, it is likely best to formulate the problem in its PDE form (where possible), as solving PDEs in 2-dimensions is a pretty easy job for most computers. So unless you have some very nasty boundary conditions this will likely be your best shot. However, in real world applications there do exist many nasty boundary conditions, think Barrier options, Asian options, etc, and these then start to correspond to moving boundary value problems and worse.

## When dimensions become very large

A very simple disadvantage of a PDE solver, is that ultimately it will likely boil down to producing some sort of grid or lattice, and then use finite difference or something similar. Typically you can't solve PDEs in the whole of $\mathbb{R}^d$ and so you consider some volume and put points equidistantly spaced in each dimension. Even with a modest 2 points in each dimension if you have a 50 dimensional SDE to solve (not uncommon in some basket options or if you want to model an index or a set of currency exchanges) then you will require a grid of $2^{50} \approx 10^{15}$ points, which is about a petaflop of data.

However, framing this as a Monte Carlo problem using $N$ random numbers then the error scales as $N^{-1/2}$, which doesn't depend on the problem dimension, and hence this is likely the only feasible way to solve such high dimensional problems.

### Boundary conditions are now easy (easier)

Of course if you've written a Monte Carlo solver and a PDE solver it is quite clear that the first is usually easier. Now implementing any exotic function $f$ is fairly trivial, and this is true for most types of exotic options. There are now some new subtleties about introducing biases from various estimators and schemes but these are usually for the more advanced stuff.

## Calculating Greeks

It should also be said that there are a few simple (and complicated) ways to compute the derivatives (aka Greeks) of these expectations with respect to the SDE parameters. In Monte Carlo you can use the same scheme to simply bump the simulation into giving you a derivative, use likelihood ratio or pathwise sensitivity methods, or you can do more complicated methods such as algorithmic differentiation. Some of these give you some Greeks (nearly) for free. However, as far as I can tell if you want to do the same thing using the Fokker-Planck approach then you have much more awkward PDEs to start solving.

## Accuracy

If the dimensionality is small then the PDEs will likely give you the most accurate answer the quickest, and possibly the only route to a very accurate answer if you need one (without renting out a super computer cluster). However, as noted in the comments by Quantuple, if you have a good bit of knowledge about the problem you can get some very accurate answers with some variance reduction techniques, and cut down the compute time with things such as QMC or MLMC, etc.

## Have you got to code it up?

If you've got to code it up, then without doubt it will probably be much easier to implement a simple Euler-Maruyama scheme as part of a Monte Carlo program. Of course there are exceptions, but I think there are more pitfalls and difficulties in solving PDEs than just producing a ton of random numbers.

## Summary

If the dimensions are small, the SDE not too nasty (think autonomous and Lipschitz), and you're not interested in anything too complicated to do with $p(x,t)$, then maybe go for the Fokker-Planck route. Otherwise it's likely Monte Carlo is a safe bet.

Disclaimer I work a lot with Monte Carlo schemes and less with PDE solvers, so please feel free to add anything I have missed/neglected.

Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)

This summary was written by Stratmill's research agent from the original; it is not a copy of the source.