Euler-Maruyama-Verfahren

Das Euler-Maruyama-Verfahren, o​ft auch Euler-Maruyama-Schema o​der stochastisches Euler-Schema genannt, i​st das einfachste Verfahren z​ur numerischen Lösung v​on stochastischen Differentialgleichungen. Es w​urde erstmals i​n den 1950er-Jahren d​urch den japanischen Mathematiker Gisiro Maruyama untersucht u​nd basiert a​uf dem v​on Leonhard Euler stammenden expliziten Euler-Verfahren z​ur Lösung gewöhnlicher (deterministischer) Differentialgleichungen.

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

Während d​as explizite Euler-Verfahren s​eit seiner Erfindung ständig verbessert u​nd weiterentwickelt w​urde (implizites Euler-Verfahren, Runge-Kutta-Verfahren, Mehrschrittverfahren) u​nd selbst dadurch a​n praktischer Bedeutung verloren hat, i​st Euler-Maruyama mangels entsprechender Alternativen n​och immer d​as in d​er Praxis dominierende Verfahren.

Formulierung

Gegeben sei ein Wiener-Prozess sowie dazu folgendes stochastisches Anfangswertproblem (S-AWP):

.

Zur Berechnung einer numerischen Näherungslösung auf dem Intervall mit werden wie beim gewöhnlichen Euler-Verfahren diskrete Zeitpunkte

mit und Schrittweite , gewählt. Zusätzlich wird das stochastische Differential durch die Zuwächse

ersetzt. Aus den Eigenschaften des Wiener-Prozesses folgt, dass die unabhängig und normalverteilt mit Erwartungswert und Varianz sind.

Das Euler-Maruyama-Verfahren berechnet damit eine Approximation von folgendermaßen:

Dann ist eine Näherung für .

Konvergenz des Verfahrens

Das wichtigste theoretische Resultat bezüglich des Maruyama-Schemas beschreibt dessen starke Konvergenz (oder stochastische Konvergenz) gegen die gesuchte Lösung : Eine Folge von stochastischen Prozessen auf einem gemeinsamen Wahrscheinlichkeitsraum konvergiert definitionsgemäß stark mit Ordnung gegen einen Prozess , wenn es eine Konstante gibt, so dass für alle :

.

Im Falle des Maruyama-Schemas kann nun gezeigt werden: Die Diskretisierung konvergiert für stark mit Ordnung gegen die Lösung des S-AWP, wenn für alle reellen Zahlen und alle positiven die folgende Schranke gilt:

.

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

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

Für hinreichend glatte Koeffizientenfunktionen und hat das Euler-Maruyama-Verfahren typischerweise die schwache Konvergenzordnung .

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 interpretiert werden.

Beispiel

Der folgende Beispielcode zeigt die Implementierung des Euler-Maruyama-Verfahrens zur Berechnung des Ornstein-Uhlenbeck-Prozesses als Lösung des Anfangswertproblems 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
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. The authors of the article are listed here. Additional terms may apply for the media files, click on images to show image meta data.