Euler-Maruyama-Verfahren

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
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[Bearbeiten]

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

 \mathrm dS_t = a(t,S_t)\,\mathrm dt + b(t,S_t)\,\mathrm dW_t, \quad S_0=A.

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

0 = t_0 < t_1 < \dots  < t_n = T

mit t_k = k h und Schrittweite h = \tfrac{T}{n}, n \in \N gewählt. Zusätzlich wird das stochastische Differential \mathrm dW_t durch die Zuwächse

\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 \Delta W_k unabhängig und normalverteilt mit Erwartungswert 0 und Varianz h sind.

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

\begin{align}
\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{align}

Dann ist \hat{S}_k eine Näherung für S_{t_k}.

Konvergenz des Verfahrens[Bearbeiten]

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

E(|S_t^{(n)}-S_t|) \le  c n^{-q} \;\;\forall t \in [0,T] .

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

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

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

|E(f(S_t^{(i)}))-E(f(S_t))| \le  c n^{-q} \;\;\forall t \in [0,T]

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

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

Bemerkungen[Bearbeiten]

  • 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.

Beispiel[Bearbeiten]

Der folgende Beispielcode zeigt die Implementierung des Euler-Maruyama-Verfahrens zur Berechnung des Ornstein-Uhlenbeck-Prozesses als Lösung des Anfangswertproblems  dY_t=\theta \cdot (\mu-Y_t)dt + \sigma dW_t,\;\;Y_0=IC in Python:

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 xrange(1,N):
    y[i] = y[i-1] + dt*(theta*(mu-y[i-1])) + sigma*sqrtdt*np.random.normal(loc=0.0,scale=1.0)
 
ax = plt.subplot(111)
ax.plot(t,y)
plt.show()

Literatur[Bearbeiten]

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