Milstein method

In mathematics, the Milstein method is a technique for the approximate numerical solution of a stochastic differential equation.

It is named after Grigori Milstein who first published it in 1974.

[1][2] Consider the autonomous Itō stochastic differential equation:

with initial condition

denotes the Wiener process, and suppose that we wish to solve this SDE on some interval of time

Then the Milstein approximation to the true solution

is the Markov chain

defined as follows: Note that when

(i.e. the diffusion term does not depend on

) this method is equivalent to the Euler–Maruyama method.

The Milstein scheme has both weak and strong order of convergence

which is superior to the Euler–Maruyama method, which in turn has the same weak order of convergence

but inferior strong order of convergence

[3] For this derivation, we will only look at geometric Brownian motion (GBM), the stochastic differential equation of which is given by:

= μ

t + σ

with real constants

μ

σ

Using Itō's lemma we get:

ln ⁡

μ −

σ

Thus, the solution to the GBM SDE is:

exp ⁡

{\displaystyle {\begin{aligned}X_{t+\Delta t}&=X_{t}\exp \left\{\int _{t}^{t+\Delta t}\left(\mu -{\frac {1}{2}}\sigma ^{2}\right)\mathrm {d} t+\int _{t}^{t+\Delta t}\sigma \mathrm {d} W_{u}\right\}\\&\approx X_{t}\left(1+\mu \Delta t-{\frac {1}{2}}\sigma ^{2}\Delta t+\sigma \Delta W_{t}+{\frac {1}{2}}\sigma ^{2}(\Delta W_{t})^{2}\right)\\&=X_{t}+a(X_{t})\Delta t+b(X_{t})\Delta W_{t}+{\frac {1}{2}}b(X_{t})b'(X_{t})((\Delta W_{t})^{2}-\Delta t)\end{aligned}}}

The numerical solution is presented in the graphic for three different trajectories.

[4] The following Python code implements the Milstein method and uses it to solve the SDE describing geometric Brownian motion defined by

init

{\displaystyle {\begin{cases}dY_{t}=\mu Y\,{\mathrm {d} }t+\sigma Y\,{\mathrm {d} }W_{t}\\Y_{0}=Y_{\text{init}}\end{cases}}}

Numerical solution for the stochastic differential equation where the drift is twice the diffusion coefficient.