Euler-Maruyama-Verfahren

Exakte Lösung (schwarz) und Euler-Maruyama-Näherung mit Schrittweite 0,01 (rot) für die stochastische Differential­gleichung dSt = St dWt, S0 = 1

Das Euler-Maruyama-Verfahren, oft auch Euler-Maruyama-Schema oder stochastisches Euler-Schema genannt, ist das einfachste Verfahren zur numerischen Lösung von stochastischen Differentialgleichungen. Es wurde erstmals in den 1950er-Jahren durch den japanischen Mathematiker Gisiro Maruyama untersucht und basiert auf dem von Leonhard Euler stammenden expliziten Euler-Verfahren zur Lösung gewöhnlicher (deterministischer) Differentialgleichungen.

Während das explizite Euler-Verfahren seit seiner Erfindung ständig verbessert und weiterentwickelt wurde (implizites Euler-Verfahren, Runge-Kutta-Verfahren, Mehrschrittverfahren) und selbst dadurch an praktischer Bedeutung verloren hat, ist Euler-Maruyama mangels entsprechender Alternativen noch immer das in der Praxis dominierende Verfahren.

Formulierung

Gegeben sei ein Wiener-Prozess ( W t ) t 0 {\displaystyle (W_{t})_{t\geq 0}} sowie dazu folgendes stochastisches Anfangswertproblem (S-AWP):

d S t = a ( t , S t ) d t + b ( t , S t ) d W t , S 0 = A {\displaystyle \mathrm {d} S_{t}=a(t,S_{t})\,\mathrm {d} t+b(t,S_{t})\,\mathrm {d} W_{t},\quad S_{0}=A} .

Zur Berechnung einer numerischen Näherungslösung auf dem Intervall [ 0 , T ] {\displaystyle [0,T]} mit T > 0 {\displaystyle T>0} werden wie beim gewöhnlichen Euler-Verfahren diskrete Zeitpunkte

0 = t 0 < t 1 < < t n = T {\displaystyle 0=t_{0}<t_{1}<\dots <t_{n}=T}

mit t k = k h {\displaystyle t_{k}=kh} und Schrittweite h = T n {\displaystyle h={\tfrac {T}{n}}} , n N {\displaystyle n\in \mathbb {N} } gewählt. Zusätzlich wird das stochastische Differential d W t {\displaystyle \mathrm {d} W_{t}} durch die Zuwächse

Δ W k := W t k + 1 W t k , k = 0 , , n 1 {\displaystyle \Delta W_{k}:=W_{t_{k+1}}-W_{t_{k}},\quad k=0,\ldots ,n-1}

ersetzt. Aus den Eigenschaften des Wiener-Prozesses folgt, dass die Δ W k {\displaystyle \Delta W_{k}} unabhängig und normalverteilt mit Erwartungswert 0 {\displaystyle 0} und Varianz h {\displaystyle h} sind.

Das Euler-Maruyama-Verfahren berechnet damit eine Approximation S ^ {\displaystyle {\hat {S}}} von S {\displaystyle S} folgendermaßen:

S ^ 0 = A , S ^ k + 1 = S ^ k + a ( t k , S ^ k ) h + b ( t k , S ^ k ) Δ W k k = 0 , , n 1 . {\displaystyle {\begin{aligned}{\hat {S}}_{0}&=A\,,\\{\hat {S}}_{k+1}&={\hat {S}}_{k}+a(t_{k},{\hat {S}}_{k})\cdot h+b(t_{k},{\hat {S}}_{k})\cdot \Delta W_{k}\quad k=0,\ldots ,n-1\,.\end{aligned}}}

Dann ist S ^ k {\displaystyle {\hat {S}}_{k}} eine Näherung für S t k {\displaystyle S_{t_{k}}} .

Konvergenz des Verfahrens

Das wichtigste theoretische Resultat bezüglich des Maruyama-Schemas beschreibt dessen starke Konvergenz (oder stochastische Konvergenz) gegen die gesuchte Lösung S {\displaystyle S} : Eine Folge von stochastischen Prozessen ( S t ( n ) ) , 0 t T , n N {\displaystyle \left(S_{t}^{(n)}\right),\;0\leq t\leq T,\;n\in \mathbb {N} } auf einem gemeinsamen Wahrscheinlichkeitsraum konvergiert definitionsgemäß stark mit Ordnung q {\displaystyle q} gegen einen Prozess ( S t ) , 0 t T {\displaystyle (S_{t}),\;0\leq t\leq T} , wenn es eine Konstante c {\displaystyle c} gibt, so dass für alle t [ 0 , T ] {\displaystyle t\in [0,T]} :

E ( | S t ( n ) S t | ) c n q t [ 0 , T ] {\displaystyle E(|S_{t}^{(n)}-S_{t}|)\leq cn^{-q}\;\;\forall t\in [0,T]} .

Im Falle des Maruyama-Schemas kann nun gezeigt werden: Die Diskretisierung ( S ^ t ) {\displaystyle ({\hat {S}}_{t})} konvergiert für n {\displaystyle n\to \infty } stark mit Ordnung 1 2 {\displaystyle {\tfrac {1}{2}}} gegen die Lösung S {\displaystyle S} des S-AWP, wenn für alle reellen Zahlen x {\displaystyle x} und alle positiven s , t {\displaystyle s,t} die folgende Schranke gilt:

| a ( s , x ) a ( t , x ) | + | b ( s , x ) b ( t , x ) | K ( 1 + | x | ) ( | t s | ) {\displaystyle |a(s,x)-a(t,x)|+|b(s,x)-b(t,x)|\leq K(1+|x|){\sqrt {(|t-s|)}}} .

Von schwacher oder Verteilungskonvergenz mit Ordnung q {\displaystyle q} spricht man hingegen, wenn für eine Konstante c {\displaystyle c} gilt:

| E ( f ( S t ( i ) ) ) E ( f ( S t ) ) | c n q t [ 0 , T ] {\displaystyle |E(f(S_{t}^{(i)}))-E(f(S_{t}))|\leq cn^{-q}\;\;\forall t\in [0,T]}

für alle Funktionen f {\displaystyle f} , die mindestens ( 2 q + 2 ) {\displaystyle (2q+2)} -mal stetig differenzierbar sind und deren sämtliche Ableitungen durch Polynome beschränkt sind.

Für hinreichend glatte Koeffizientenfunktionen a {\displaystyle a} und b {\displaystyle b} hat das Euler-Maruyama-Verfahren typischerweise die schwache Konvergenzordnung q = 1 {\displaystyle q=1} .

Bemerkungen

  • Es gibt auch Lösungsverfahren höherer starker Ordnung als das Euler-Maruyama-Verfahren, etwa das Milstein-Verfahren, das meist Ordnung 1 erreicht. Diese Verfahren sind aber numerisch aufwändiger und resultieren nicht immer in einer schnelleren Konvergenz.
  • Die oben angeführte Bedingung für die starke Konvergenz mit Ordnung 0,5 ist nur wenig strenger als die Bedingung an a und b, die die Existenz der Lösung S sicherstellt. Sie ist also beinahe immer erfüllt.
  • An starker Konvergenz ist man in der Praxis nur sehr selten interessiert, da zumeist nicht eine spezielle Lösung zu einem speziellen Wiener-Prozess gesucht wird, sondern vielmehr eine Stichprobe aus der Wahrscheinlichkeitsverteilung des Prozesses, wie man sie beispielsweise für Monte-Carlo-Verfahren benötigt.
  • Ein implizites Maruyama-Schema als Analogon zum impliziten Euler-Verfahren ist nicht möglich; dies liegt an der Definition des (stochastischen) Ito-Integrals, über das stochastische Differentialgleichungen definiert sind und das Funktionen immer am Anfang eines Intervalls auswertet (siehe dort). Implizite Verfahren konvergieren also hier gegen teilweise völlig falsche Ergebnisse.
  • Die übliche Simulation einer brownschen Bewegung durch einen gaußschen Random Walk kann als Anwendung des Euler-Maruyama-Schemas auf die triviale Differentialgleichung d S t = 1 d W t , S 0 = 0 {\displaystyle \mathrm {d} S_{t}=1\,\mathrm {d} W_{t},\;\;S_{0}=0} interpretiert werden.

Beispiel

Der folgende Beispielcode zeigt die Implementierung des Euler-Maruyama-Verfahrens zur Berechnung des Ornstein-Uhlenbeck-Prozesses als Lösung des Anfangswertproblems d Y t = θ ( μ Y t ) d t + σ d W t , Y 0 = I C {\displaystyle dY_{t}=\theta \cdot (\mu -Y_{t})dt+\sigma dW_{t},\;\;Y_{0}=IC} in Python (3.x):

Ergebnis des Beispielcodes
import numpy as np
import matplotlib.pyplot as plt

tBegin=0
tEnd=2
dt=.00001

t = np.arange(tBegin, tEnd, dt)
N = t.size
IC=0
theta=1
mu=1.2
sigma=0.3

sqrtdt = np.sqrt(dt)
y = np.zeros(N)
y[0] = IC
for i in range(1,N):
    y[i] = y[i-1] + dt*(theta*(mu-y[i-1])) + sigma*np.random.normal(loc=0.0,scale=sqrtdt)

fig, ax = plt.subplots()
ax.plot(t,y)
ax.set(xlabel='t', ylabel='y',
       title='Euler-Maruyama-Verfahren zur Berechnung eines \n Ornstein-Uhlenbeck-Prozesses mit $\\theta=1$, $\mu=1.2$, $\sigma=0.3$')
ax.grid()
plt.show()

Literatur

  • Paul Glasserman: Monte Carlo Methods in Financial Engineering. Springer 2003, ISBN 0-387-00451-3