Allgemeine Verfahren
Der n-dimensionale Gleichverteilungs- Generator.
In diesem Abschnitt werden wir eine systematische Darlegung der Verfahren zur Simulation von zufälligen Veränderlichen bringen. In den Kapiteln 1 und 3 haben wir schon des öfteren Simulationsmethoden von zufälligen Veränderlichen diskutiert, die alle auf dem folgenden Prinzip beruhten: die Definition einer zufälligen Veränderlichen wurde Wort für Wort in ein Rechnerprogramm übersetzt, wobei wir den experimentellen Versuch durch den Aufruf eines Generators für Pseudozufallszahlen ersetzt hatten. Wir erinnern in diesem Zusammenhang an die Simulation der Bernoulli- Verteilung sowie der Multinominalverteilung in Kap.1.7. Auch die Simulation der $\chi^{2}$- Verteilung in Kap.3.2 kann in diesem Zusammenhang erwähnt werden. In allen diesen Beispielen mußten wir für die Erzeugung einer Zufallszahl der gesuchten Verteilung im allgemeinen viele Aufrufe des Pseudozufallszahlen Generators durchführen. Eine Verbesserung der Generatoren liegt daher auf der Hand, nämlich die Erzeugung von $N$ Zahlen in einem Aufruf. Als Beispiel benutzen wir eine verbesserte Version des RANMAR- Generators, den wir im folgenden mit RANMARN bezeichnen werden. Die Initialisierungsroutine heißt entsprechend RMARINN.

Die Methode der inversen Verteilungsfunktion
Sei $p(x)$ irgendeine Dichtefunktion einer kontinuierlichen Veränderlichen $x$. Die integrale Verteilungsfunktion

\begin{displaymath}
P(\xi) = \int_{-\infty}^{\xi} dx p(x)
\end{displaymath} (1)

ist eine in dem Wertebereich $0 < P(\xi) \leq 1$ definierte Funktion. Wir erzeugen eine gleichverteilte Zufallszahl $u \in [0,1]$ und setzen
\begin{displaymath}
u = P(\xi).
\end{displaymath} (2)

Dann ergibt die Umkehrung,
\begin{displaymath}
\xi = P^{-1}(u),
\end{displaymath} (3)

eine gemäß der Dichtefunktion $p(x)$ verteilte Veränderliche $\xi$.

Die direkte Anwendung der inversen Verteilungsfunktion ist zwar außerordentlich beschränkt, da nur für wenige integrale Verteilungsfunktionen die Umkehrung analytisch darstellbar ist. Trotzdem bildet, wie wir im einzelnen noch sehen werden, die Methode der inversen Verteilungsfunktion die Grundlage fast aller Simulationsmethoden von zufälligen Veränderlichen.

Beispiel. Ein einfaches Beispiel ist die Exponentialfunktion

\begin{displaymath}
p(x) = \frac{1}{\tau} e^{-x/\tau}, \; \; \; x \geq 0.
\end{displaymath}

Die integrale Verteilungsfunktion ist

\begin{displaymath}
P(\xi) = \int_{0}^{\xi} dx p(x) = 1- e^{-\xi /\tau}.
\end{displaymath}

Die Gleichung

\begin{displaymath}
P(\xi) = u
\end{displaymath}

läßt sich leicht nach $\xi$ auflösen und ergibt

\begin{displaymath}
\xi= P^{-1}(u) = -\tau ln (1-u) \equiv -\tau ln (u).
\end{displaymath}

Im letzten Schritt haben wir die Tatsache benutzt, daß, wenn $u$ eine im Intervall $[0,1]$ gleichverteilte Zufallszahl ist, so ist auch $1-u$ gleichverteilt in $[0,1]$.

Beispiel. Ein zweites einfaches Beispiel ist die Dichtefunktion

\begin{displaymath}
p(x) = x e^{-x^{2}/2} , \; \; \; \; \; x \geq 0.
\end{displaymath}

Wegen

\begin{displaymath}
P(\xi) = \int_{0}^{\xi} dx x e^{-x^{2}/2} = 1 - e^{-\xi^{2}/2}
\end{displaymath}

und

\begin{displaymath}
P(\xi) = 1 - e^{-\xi^{2}/2} = u
\end{displaymath}

ist

\begin{displaymath}
\xi = \sqrt{-2 ln(1-u)} \equiv \sqrt{-2 ln(u)}
\end{displaymath}

ein Algorithmus zur Simulation der Verteilung $p(x)$.

Methode der Tabellen- Darstellung
Eine Methode, die für kontinuierliche wie für diskrete Veränderliche gleichermaßen anwendbar ist, ist die Tabellen- Darstellung der integralen Verteilungsfunktion. Wir teilen die reelle Achse in $M$ Teilintervalle mit den Stützstellen $\xi^{(0)}, \xi^{(1)},...,\xi^{(M)}$ ein und berechnen die Wahrscheinlichkeiten

\begin{displaymath}
P_{\mu} = \int_{\xi^{(\mu-1)}}^{\xi^{(\mu)}} dx p(x).
\end{displaymath} (4)

Die integrale Verteilungsfunktion an der Stelle $\xi^{(n)}$ ist dann
\begin{displaymath}
P(\xi^{(n)}) = \sum_{\mu=1}^{n} P_{\mu} = \int_{-\infty}^{\xi^{(n)}} dx p(x).
\end{displaymath} (5)

Wie bisher muß die Gleichung

\begin{displaymath}
P(\xi) = u
\end{displaymath}

nach $\xi$ aufgelöst werden. Zu diesem Zweck erzeugen wir eine Zufallszahl $u_{1} \in [0,1]$ und bestimmen zunächst den Wert $n$ so, daß
\begin{displaymath}
P(\xi^{(n-1)}) < u_{1} \leq P(\xi^{(n)}).
\end{displaymath} (6)

Anschließend erzeugen wir eine zweite Zufallszahl $u_{2}\in[0,1]$ und interpolieren gemäß
\begin{displaymath}
\xi = \xi^{(n-1)} +( \xi^{(n)} - \xi^{(n-1)}) u_{2}.
\end{displaymath} (7)

$\xi$ ist dann eine Veränderliche der Dichtefunktion $p(x)$. Diese Methode kann offensichtlich auch für jede diskrete Veränderliche benutzt werden. Die integrale Verteilungsfunktion ist
\begin{displaymath}
P(\kappa) = \sum_{k=0}^{\kappa} P(k).
\end{displaymath} (8)

Mit Hilfe einer gleichverteilten Zufallszahl $u \in [0,1]$ bestimmen wir $\kappa$ gemäß
\begin{displaymath}
P(\kappa-1) < u \leq P(\kappa).
\end{displaymath} (9)

$\kappa$ ist dann eine Veränderliche aus der Wahrscheinlichkeitsverteilung $P(k)$.

Man beachte, daß wir mit dem gleichen Funktionssymbol $P$ die Wahrscheinlichkeitsverteilung und die integrale Verteilung dargestellt haben. Die Unterscheidung treffen wir mit Hilfe des Arguments. $P(k)$ ist die Wahrscheinlichkeitsverteilung und $P(\kappa)$ die integrale Verteilung. Diese Schreibweise werden wir auch im folgenden beibehalten. Eine sehr viel detailliertere Behandlung der Tabellen- Methode werden wir noch als Vorbemerkung zur Simulation von diskreten Veränderlichen bringen.

Mehrdimensionale Veränderliche
Ist eine Dichtefunktion mehrerer Veränderlicher vorgegeben, so lassen sich zwei Fälle unterscheiden. Falls alle Veränderlichen unabhängig voneinander sind,

\begin{displaymath}
p(x_{1},x_{2},...,x_{n}) = \prod_{\nu=1}^{n} p_{\nu}(x_{\nu}),
\end{displaymath} (10)

so ergibt sich keine neue Situation. Die integrale Verteilungsfunktion ist einfach
\begin{displaymath}
P(\xi_{1},\xi_{2},...,\xi_{n}) = \prod_{\nu=1}^{n} P_{\nu}(\xi_{\nu}),
\end{displaymath} (11)

und die Lösung ist
\begin{displaymath}
\xi_{\nu} = P^{-1}(u_{\nu}), \; \; \; \; \; \nu=1,2,...,n,
\end{displaymath} (12)

wobei die $u_{\nu}, (\nu=1,2,...,n)$ gleichverteilte Zufallszahlen aus $[0,1]$ sind.

Sofern andererseits die Veränderlichen $x_{\nu}$ abhängig voneinander sind, kann man auf zwei verschiedenen Wegen vorgehen. Einmal kann versucht werden, mit Hilfe einer umkehrbar eindeutigen Transformation

\begin{displaymath}
\vec{y} = \vec{\psi}(\vec{x})
\end{displaymath} (13)

eine Dichtefunktion $p(\vec{y})$ unabhängiger Veränderlicher $y_{\nu}$ $(\nu=1,2,...,n)$ zu erhalten. Die Simulation des Vektors $\vec{y}$ wird dann wie oben geschildert durchgeführt. Die Rücktransformation
\begin{displaymath}
\vec{x} = \vec{\psi}^{-1}(\vec{y}) \equiv \vec{\phi}(\vec{y})
\end{displaymath} (14)

ergibt dann den zufälligen Vektor $\vec{x}$.

Oder aber, und das ist meist der bequemere Weg, man drückt die Dichtefunktion durch bedingte Randverteilungen aus,

\begin{displaymath}
p(x_{1},x_{2},...,x_{n}) = p_{1}(x_{1}) p_{2}(x_{2}\vert x_{1}) \cdot \cdot \cdot
p_{n}(x_{n}\vert x_{1},x_{2},...,x_{n-1}),
\end{displaymath} (15)

mit
\begin{displaymath}
p_{\nu}(x_{\nu}\vert x_{1},x_{2},...,x_{\nu-1}) = \frac{\int...
... \cdot \cdot dx_{n}
p(x_{1},...,x_{\nu-1},x_{\nu},...,x_{n})}.
\end{displaymath} (16)

Offensichtlich führt dann der folgende Algorithmus zum Ziel: Man bilde die integralen Verteilungsfunktionen,
$\displaystyle P_{1}(\xi_{1})$ $\textstyle =$ $\displaystyle \int_{-\infty}^{\xi_{1}} dx_{1} p_{1}(x_{1}),$  
$\displaystyle P_{2}(\xi_{2}\vert\xi_{1})$ $\textstyle =$ $\displaystyle \int_{-\infty}^{\xi_{2}} dx_{2}
p_{2}(x_{2}\vert\xi_{1}),$  
  $\textstyle .$   (17)
  $\textstyle .$    
$\displaystyle P_{n}(\xi_{n}\vert\xi_{1},\xi_{2},...,\xi_{n-1})$ $\textstyle =$ $\displaystyle \int_{-\infty}^{\xi_{n}}
dx_{n} p_{n}(x_{n}\vert\xi_{1},\xi_{2},...,\xi_{n-1}),$  

erzeuge einen Vektor $\vec{u}=(u_{1},u_{2},...,u_{n})$ von gleichverteilten Zufallszahlen aus $[0,1]$ und löse der Reihe nach die Gleichungen
$\displaystyle P_{1}(\xi_{1})$ $\textstyle =$ $\displaystyle u_{1}$  
$\displaystyle P_{2}(\xi_{2}\vert\xi_{1})$ $\textstyle =$ $\displaystyle u_{2}$  
  $\textstyle .$   (18)
  $\textstyle .$    
$\displaystyle P_{n}(\xi_{n}\vert\xi_{1},\xi_{2},...,\xi_{n-1})$ $\textstyle =$ $\displaystyle u_{n}.$  

Dieses ist offensichtlich kein Gleichungssystem, sondern eine Rekursion. Für eine möglichst einfache Lösung dieser Rekursion ist häufig die Reihenfolge der Veränderlichen wichtig. Für zwei Veränderliche z.B. sind die beiden folgenden Darstellungen equivalent:
\begin{displaymath}
p(x_{1},x_{2})=p_{1}(x_{1})p_{2}(x_{2}\vert x_{1})=p_{2}(x_{2})p_{1}(x_{1}\vert x_{2}).
\end{displaymath} (19)

Beispiel. Als Beispiel zur vorherigen Bemerkung betrachten wir die Dichtefunktion

\begin{displaymath}
p(x_{1},x_{2})= \{ \begin{array}{ll} 6 x_{1} & \; \; \; \; \...
...\; x_{1},x_{2} \geq 0 \\ 0 & \; \; \; \; \; sonst.
\end{array} \end{displaymath}

In der Darstellung

\begin{displaymath}
p(x_{1},x_{2}) = p_{1}(x_{1}) p_{2}(x_{2}\vert x_{1})
\end{displaymath}

erhalten wir
$\displaystyle p_{1}(x_{1})$ $\textstyle =$ $\displaystyle \int_{0}^{1-x_{1}} dx_{2} p(x_{1},x_{2}) =
6x_{1} (1-x_{1}),$  
$\displaystyle p_{2}(x_{2}\vert x_{1})$ $\textstyle =$ $\displaystyle \frac{p(x_{1},x_{2})}{p_{1}(x_{1})} = \frac{1}{1-x_{1}},$  

und
$\displaystyle P_{1}(\xi_{1})$ $\textstyle =$ $\displaystyle \int_{0}^{\xi_{1}} dx_{1} p_{1}(x_{1}) =
3\xi_{1}^{2} -2\xi_{1}^{3},$  
$\displaystyle P_{2}(\xi_{2}\vert\xi_{1})$ $\textstyle =$ $\displaystyle \int_{0}^{\xi_{2}} dx_{2} p_{2}(x_{2}\vert x_{1}=\xi_{1})
= \frac{\xi_{2}}{1-\xi_{1}}.$  

Die Rekursion
$\displaystyle 3\xi_{1}^{2} - 2\xi_{1}^{3}$ $\textstyle =$ $\displaystyle u_{1},$  
$\displaystyle \frac{\xi_{2}}{1-\xi_{1}}$ $\textstyle =$ $\displaystyle u_{2}$  

beinhaltet die Lösung einer kubischen Gleichung, die zwar möglich ist, aber dem Rechner viel Arithmetik abverlangt.

In der zweiten Darstellung

\begin{displaymath}
p(x_{1},x_{2}) = p_{2}(x_{2})p_{1}(x_{1}\vert x_{2})
\end{displaymath}

erhalten wir dagegen
$\displaystyle p_{2}(x_{2})$ $\textstyle =$ $\displaystyle \int_{0}^{1-x_{2}} dx_{1} p(x_{1},x_{2}) =
3(1-x_{2})^{2},$  
$\displaystyle p_{1}(x_{1}\vert x_{2})$ $\textstyle =$ $\displaystyle \frac{p(x_{1},x_{2})}{p_{2}(x_{2})} =
\frac{2x_{1}}{(1-x_{2})^{2}}$  

und
$\displaystyle P_{2}(\xi_{2})$ $\textstyle =$ $\displaystyle \int_{0}^{\xi_{2}} dx_{2} p_{2}(x_{2}) =
1-(1-\xi_{2})^{3},$  
$\displaystyle P_{1}(\xi_{1}\vert\xi_{2})$ $\textstyle =$ $\displaystyle \int_{0}^{\xi_{1}} dx_{1} p_{1}(x_{1}\vert x_{2}=\xi_{2})
= \frac{\xi_{1}^{2}}{(1-\xi_{2})^{2}}.$  

Die daraus folgende Rekursion
$\displaystyle (1-\xi_{2})^{3}$ $\textstyle =$ $\displaystyle u_{1},$  
$\displaystyle \frac{\xi_{1}^{2}}{(1-\xi_{2})^{2}}$ $\textstyle =$ $\displaystyle u_{2}$  

ist wesentlich einfacher zu lösen als die kubische Gleichung bei der ersten Darstellung, nämlich durch
$\displaystyle \xi_{2}$ $\textstyle =$ $\displaystyle 1 - \sqrt[3]{u_{1}},$  
$\displaystyle \xi_{1}$ $\textstyle =$ $\displaystyle (1-\xi_{2}) \sqrt{u_{2}}.$  

Beispiel. Das Paradebeispiel für die Transformation auf unabhängige Veränderliche ist die Simulation der $n$- dimensionalen allgemeinen Normalverteilung:

\begin{displaymath}
p(\vec{x}) = \frac{\sqrt{det A}}{(2\pi)^{n/2}} e^{-\frac{1}{2}
(\vec{x}-\vec{a})^{T} A (\vec{x}-\vec{a})}.
\end{displaymath}

Wir schreiben die Kovarianzmatrix $A^{-1}$ in der Form

\begin{displaymath}
A^{-1} = \left( \begin{array}{cccccc} \sigma_{11} & \sigma_{...
...& \sigma_{n2}
& . & . & . & \sigma_{nn} \end{array} \right)
\end{displaymath}

mit

\begin{displaymath}
\sigma_{\mu \nu} = <(x_{\nu}-a_{\nu})(x_{\mu}-a_{\mu})>.
\end{displaymath}

Aus der numerischen Mathematik entnehmen wir die Behauptung, daß diese Matrix als Produkt zweier Dreiecksmatrizen ausgedrückt werden kann,

\begin{displaymath}
A^{-1} = C C^{T}
\end{displaymath}

mit

\begin{displaymath}
C = \left( \begin{array}{cccccc} c_{11} & 0 & . & . & . & 0 ...
...& \\ c_{n1} & c_{n2} & . & . & . & c_{nn} \end{array} \right).
\end{displaymath}

Die Matrix $C$ erhält man am einfachsten aus der Rekursionsrelation

\begin{displaymath}
c_{ij} = \frac{\sigma_{ij}-\sum_{k=1}^{j-1} c_{ik}c_{jk}}
{\left( \sigma_{jj} - \sum_{k=1}^{j-1} c_{jk}^{2} \right)^{1/2}}.
\end{displaymath}

Transformiert man nun die Veränderliche $\vec{x}$ gemäß

\begin{displaymath}
\vec{y} = C^{-1} (\vec{x}-\vec{a})
\end{displaymath}

auf die Veränderliche $\vec{y}$, so erhält man die unabhängige Normalverteilung

\begin{displaymath}
p(\vec{y}) = \frac{1}{(2\pi)^{n/2}} e^{-\frac{1}{2} \vec{y}^{2}}
\end{displaymath}

mit Mittelwerten $y_{\nu}=0$ und Kovarianzmatrix $<y_{\nu} y_{\mu}> = \delta_{\nu \mu}.$ Die Rücktransformation ist denkbar einfach, und zwar

\begin{displaymath}
\vec{x} = C \vec{y} + \vec{a}.
\end{displaymath}

Die eigentliche Rechenarbeit besteht offensichtlich in der Berechnung der Matrix $C$.

Wir wollen dieses Verfahren noch einmal für den Fall einer zweidimensionalen Dichtefunktion mit $<x_{1}>=<x_{2}>=0$ explizit aufschreiben. Die Kovarianzmatrix lautet

\begin{displaymath}
A^{-1} = \left( \begin{array}{cc} <x_{1}x_{1}> & <x_{1}x_{2}...
...o \sigma_{1} \sigma_{2} &
\sigma_{2}^{2} \end{array} \right) ,
\end{displaymath}

wobei wir die Varianzen bzw Kovarianzen
$\displaystyle \sigma_{11}$ $\textstyle =$ $\displaystyle \sigma_{1}^{2} = <x_{1}x_{1}>,$  
$\displaystyle \sigma_{12}$ $\textstyle =$ $\displaystyle \sigma_{21} = \rho \sigma_{1} \sigma_{2},$  
$\displaystyle \sigma_{22}$ $\textstyle =$ $\displaystyle \sigma_{2}^{2} = <x_{2}x_{2}>$  

eingeführt haben. $\rho$ ist der hinreichend bekannte Korrelationskoeffizient. Für die Elemente der Matriz $C$ erhalten wir der Reihe nach
$\displaystyle c_{11}$ $\textstyle =$ $\displaystyle \sigma_{1},$  
$\displaystyle c_{21}$ $\textstyle =$ $\displaystyle \rho \sigma_{2},$  
$\displaystyle c_{22}$ $\textstyle =$ $\displaystyle \sigma_{2} \sqrt{1-\rho^{2}},$  

oder, übersichtlicher als Matriz geschrieben,

\begin{displaymath}
C = \left( \begin{array}{cc} \sigma_{1} & 0 \\ \rho \sigma_{2} & \sigma_{2}
\sqrt{1-\rho^{2}} \end{array} \right) .
\end{displaymath}

Die Dichtefunktion für $y_{1}$ und $y_{2}$ ist

\begin{displaymath}
p(y_{1},y_{2}) = \frac{1}{2\pi} e^{-\frac{1}{2}(y_{1}^{2}+y_{2}^{2})}
\end{displaymath}

und die Rücktransformation nach $x_{1}$ und $x_{2}$ lautet
$\displaystyle x_{1}$ $\textstyle =$ $\displaystyle \sigma_{1} y_{1},$  
$\displaystyle x_{2}$ $\textstyle =$ $\displaystyle \rho \sigma_{2} y_{1} + \sigma_{2} \sqrt{1-\rho^{2}} y_{2}.$  

Dieses Ergebnis stimmt bis auf die Reihenfolge der Veränderlichen mit den Ergebnissen in Kap.1.5 überein. Wegen der Symmetrie in den Veränderlichen $x_{1}$ und $x_{2}$ kommt es auf die Reihenfolge nicht an.

Reduktionsmethoden
Besonders wichtig für die Simulation eindimensionaler Veränderlicher sind die Reduktionsmethoden. Hierbei geht man von einer mehrdimensionalen Dichtefunktion aus, für die man bereits eine Simulationsverfahren besitzten möge. Beispiele hierfür sind die $n$- dimensionale Verteilung gleichverteilter unabhängiger Zufallszahlen aus $[0,1]$ oder die $n$- dimensionale Normalverteilung. Man sucht dann geeignete Transformationen,

\begin{displaymath}
\vec{y} = \vec{\psi}(\vec{x}),
\end{displaymath} (20)

wobei die Randverteilung einer bestimmten Komponente $y_{j}$ dann genau der Verteilung der gesuchten Dichtefunktion entsprechen möge. Die Integration zur Bildung von Randverteilungen ist in der Simulation trivial. Man braucht alle übrigen Veränderlichen außer $y_{j}$ einfach nur zu ignorieren.

Wir beginnen mit dem einfachsten Fall, der Reduktion einer zweidimensionalen Veränderlichen auf eine eindimensionale Veränderliche. Sei also $p(x_{1},x_{2})$ eine Dichtefunktion, für die wir bereits ein Verfahren zur Simulation der Veränderlichen $x_{1}$ und $x_{2}$ besitzen mögen. Wir transformieren gemäß

$\displaystyle y_{1}$ $\textstyle =$ $\displaystyle \psi_{1}(x_{1},x_{2}) ,$ (21)
$\displaystyle y_{2}$ $\textstyle =$ $\displaystyle \psi_{2}(x_{1},x_{2}) ,$ (22)

und erhalten eine Dichtefunktion $p(y_{1},y_{2})$ für die Veränderlichen $y_{1}$ und $y_{2}$. Die Randverteilungen
$\displaystyle p_{1}(y_{1})$ $\textstyle =$ $\displaystyle \int_{-\infty}^{\infty} dy_{2} p(y_{1},y_{2}),$ (23)
$\displaystyle p_{2}(y_{2})$ $\textstyle =$ $\displaystyle \int_{-\infty}^{\infty} dy_{1} p(y_{1},y_{2})$ (24)

sind nun häufig gesuchte Dichtefunktionen, deren Simulation damit auf die Simulation der Dichtefunktion $p(x_{1},x_{2})$ zurückgeführt ist.

Beispiel. Als Beispiel diskutieren wir die zweidimensionale unabhängige Normalverteilung mit Mittelwerten $<x_{1}>=<x_{2}>=0$ und Varianzen $\sigma_{1}=\sigma_{2}=1$,

\begin{displaymath}
p(x_{1},x_{2}) = \frac{1}{2\pi} e^{-\frac{1}{2}(x_{1}^{2}+x_{2}^{2})}
\end{displaymath}

Die Transformation
$\displaystyle y_{1}$ $\textstyle =$ $\displaystyle x_{1}+x_{2}$  
$\displaystyle y_{2}$ $\textstyle =$ $\displaystyle \frac{x_{1}}{x_{2}}$  

führt auf die Dichtefunktion:

\begin{displaymath}
p(y_{1},y_{2}) = \frac{1}{2\pi}\frac{\vert y_{1}\vert}{(1+y_...
...e^{-\frac{1}{2} \frac{(1+y_{2}^{2})y_{1}^{2}}{(1+y_{2})^{2}}},
\end{displaymath}

und die Integration über $y_{1}$ liefert

\begin{displaymath}
p_{2}(y_{2}) = \frac{1}{\pi} \frac{1}{(1+y_{2}^{2})}.
\end{displaymath}

Diese Dichtefunktion nennt man die Cauchy- Verteilung. Man erhält also eine Veränderliche der Cauchy- Verteilung, indem man die Veränderlichen $x_{1}$ und $x_{2}$ aus einer zweidimensionalen unabhängigen Normalverteilung mit $<x_{1}>=<x_{2}>=0$ und Varianzen $\sigma_{1}=\sigma_{2}=1$ durcheinander dividiert:

\begin{displaymath}
y_{2} = \frac{x_{1}}{x_{2}}.
\end{displaymath}

Beispiele. Weitere Beispiele sind die Verteilungsfunktionen, die man aus der Reduktion von $n$ unabhängigen gleichverteilten Zufallszahlen erhält. Seien also $u_{\nu} \in [0,1], \; \nu=1,2,...,n$, und setzen wir

$\displaystyle y_{1}$ $\textstyle =$ $\displaystyle \sum_{\nu=1}^{n} u_{\nu} ,$  
$\displaystyle y_{2}$ $\textstyle =$ $\displaystyle max \{ u_{1},u_{2},...,u_{n} \} ,$  

so erhält man die Randverteilungen
$\displaystyle p_{1}(y_{1})$ $\textstyle \approx$ $\displaystyle \frac{1}{\sqrt{2\pi}} e^{-\frac{1}{2}(y_{1}-n/2)^{2}},$  
$\displaystyle p_{2}(y_{2})$ $\textstyle =$ $\displaystyle n y_{2}^{n-1}.$ (25)

Die erste Verteilung haben wir in vorherigen Abschnitten schon mehrmals diskutiert, die zweite Verteilung haben wir bei der Behandlung geordneter Statistiken abgeleitet.

Für $n=3$ ist insbesondere die Zufallszahl

\begin{displaymath}
y = mid \{ u_{1},u_{2},u_{3} \}
\end{displaymath}

durch die einfache Dichtefunktion

\begin{displaymath}
p(y) = 6 y(1-y)
\end{displaymath}

darstellbar (siehe Kap.3.1).

Beispiel. Ein anderes wichtiges Beispiel hatten wir bereits bei der Herleitung der $\chi^{2}$- Verteilung gefunden. Wenn $x_{1},x_{2},...,x_{n}$ unabhängig normalverteilt sind, mit Mittelwerten $<x_{\nu}> = 0, \; \nu=1,2,...,n,$ und Varianzen $\sigma_{\nu}=1$,

\begin{displaymath}
p(x_{1},x_{2},...,x_{n}) = \frac{1}{(2\pi)^{n/2}} e^{-\frac{1}{2}
\sum_{\nu=1}^{n} x_{\nu}^{2}},
\end{displaymath}

dann ist die Summe der Quadrate

\begin{displaymath}
y = \sum_{\nu=1}^{n} x_{\nu}^{2}
\end{displaymath}

$\chi^{2}$- verteilt mit der Dichtefunktion

\begin{displaymath}
p(y) = \frac{1}{2^{n/2}\Gamma(\frac{n}{2})} y^{n/2-1} e^{-y/2}.
\end{displaymath}

$n$ nennt man die Anzahl der Freiheitsgrade.

Composition- Methode
Wir kommen noch einmal zurück auf die Formel

\begin{displaymath}
p(x_{1},x_{2}) = p_{1}(x_{1}) p_{2}(x_{2}\vert x_{1}).
\end{displaymath} (26)

Diese Formel gestattet in vielen Fällen eine bequeme Simulation der Randverteilung
\begin{displaymath}
p_{2}(x_{2}) = \int_{-\infty}^{\infty} dx_{1} p_{1}(x_{1})
p_{2}(x_{2}\vert x_{1}),
\end{displaymath} (27)

sofern Algorithmen zur Simulation von $p_{1}(x_{1})$ und $p_{2}(x_{2}\vert x_{1})$ bereits existieren. Dieses Verfahren ist in der Literatur auch unter dem englischen Ausdruck Composition- Methode bekannt.

Die Composition Methode kann in einfacher Weise auf gemischte Verteilungen erweitert werden, wobei dann allerdings $x_{1} \equiv k_{1}$ eine diskrete Veränderliche wird. Wir schreiben

\begin{displaymath}
p(k_{1},x_{2}) = P_{1}(k_{1}) p_{2}(x_{2}\vert k_{1})
\end{displaymath} (28)

und
\begin{displaymath}
p_{2}(x_{2}) = \sum_{k_{1}=0}^{\infty} P_{1}(k_{1})
p_{2}(x_{2}\vert k_{1}) .
\end{displaymath} (29)

Der Algorithmus lautet also: Bilde die integralen Verteilungen
$\displaystyle P_{1}(\xi_{1})$ $\textstyle =$ $\displaystyle \int_{-\infty}^{\xi_{1}} dx_{1} p_{1}(x_{1}),$ (30)
$\displaystyle P_{2}(\xi_{2}\vert\xi_{1})$ $\textstyle =$ $\displaystyle \int_{-\infty}^{\xi_{2}} dx_{2}
p_{2}(x_{2}\vert\xi_{1}),$  

bzw
$\displaystyle P_{1}(\kappa_{1})$ $\textstyle =$ $\displaystyle \sum_{k_{1}=0}^{\kappa_{1}} P_{1}(k_{1}),$ (31)
$\displaystyle P_{2}(\xi_{2}\vert\kappa_{1})$ $\textstyle =$ $\displaystyle \int_{-\infty}^{\xi_{2}} dx_{2}
p_{2}(x_{2}\vert\kappa_{1}),$  

und löse die Bestimmungsgleichungen
$\displaystyle P_{1}(\xi_{1})$ $\textstyle =$ $\displaystyle u_{1},$ (32)
$\displaystyle P_{2}(\xi_{2}\vert\xi_{1})$ $\textstyle =$ $\displaystyle u_{2},$  

bzw
$\displaystyle P_{1}(\kappa_{1}-1)$ $\textstyle <$ $\displaystyle u_{1} \leq P_{1}(\kappa_{1}),$ (33)
$\displaystyle P_{2}(\xi_{2}\vert\kappa_{1})$ $\textstyle =$ $\displaystyle u_{2},$  

wobei wie immer $u_{1}, u_{2} \in [0,1]$ zwei gleichverteilte Zufallszahlen sind. $\xi_{2}$ ist dann eine Veränderliche der Dichtefunktion $p_{2}(x_{2})$.

Beispiel. Das wichtigste Beispiel in diesem Rahmen ist eine Simulation der Normalverteilung. Wir beginnen mit der zweidimensionalen Normalverteilung

\begin{displaymath}
p(x_{1},x_{2}) = \frac{1}{2\pi} e^{-\frac{1}{2}(x_{1}^{2}+x_{2}^{2})}
\end{displaymath}

und transformieren gemäß
$\displaystyle x_{1}$ $\textstyle =$ $\displaystyle r cos \phi$ (34)
$\displaystyle x_{2}$ $\textstyle =$ $\displaystyle r sin \phi$  

mit $y_{1} \equiv r$ und $y_{2} \equiv \phi$. Dieses führt auf die Dichtefunktion der Veränderlichen $r$ und $\phi$:

\begin{displaymath}
p(r,\phi ) = \frac{1}{2\pi} r e^{-\frac{1}{2} r^{2}}.
\end{displaymath}

Wir faktorisieren die Dichtefunktion in der Form

\begin{displaymath}
p(r,\phi ) = p_{1}(r) p_{2}(\phi \vert r),
\end{displaymath}

und identifizieren
$\displaystyle p_{1}(r)$ $\textstyle =$ $\displaystyle \int_{0}^{2\pi} d\phi p(r,\phi ) = r e^{-\frac{1}{2}r^{2}},$  
$\displaystyle p_{2}(\phi \vert r)$ $\textstyle =$ $\displaystyle \frac{p(r,\phi )}{p_{1}(r)} = \frac{1}{2\pi}.$  

Für $p_{1}(r)$ und $p_{2}(\phi \vert r)$ haben wir aber bereits Algorithmen zur Simulation. $p_{1}(r)$ kann mit der inversen Transformationsmethode (siehe Beispiel am Anfang dieses Kapitels) gelöst werden und $p_{2}(\phi \vert r)$ ist eine Gleichverteilung in $[0,2\pi ]$. Damit erhalten wir den Algorithmus
$\displaystyle r$ $\textstyle =$ $\displaystyle \sqrt{-2 ln(u_{1})},$  
$\displaystyle \phi$ $\textstyle =$ $\displaystyle 2\pi u_{2},$  

mit $u_{1}, u_{2} \in [0,1]$. Die Rücktransformation gemäß (43) liefert zwei normalverteilte unabhängige Veränderliche.

Beispiel. Gesucht sei eine Simulation der Dichtefunktion

\begin{displaymath}
p_{2}(x_{2}) = n \int_{1}^{\infty} dx_{1} x_{1}^{-n} e^{-x_{1} x_{2}},
\; \; \; \; x_{2} > 0.
\end{displaymath}

Wir gehen von der zweidimensionalen Dichtefunktion

\begin{displaymath}
p(x_{1},x_{2}) = n x_{1}^{-n} e^{-x_{1} x_{2}}, \; \; \; x_{1}>1, \; x_{2}>0,
\end{displaymath}

aus und berechnen
$\displaystyle p_{1}(x_{1})$ $\textstyle =$ $\displaystyle n x_{1}^{-(n+1)}$  
$\displaystyle p_{2}(x_{2}\vert x_{1})$ $\textstyle =$ $\displaystyle \frac{p(x_{1},x_{2})}{p_{1}(x_{1})} =
x_{1} e^{-x_{1} x_{2}}.$  

Damit ergibt sich für die integralen Verteilungsfunktionen
$\displaystyle P_{1}(\xi_{1})$ $\textstyle =$ $\displaystyle 1- \xi_{1}^{-n},$  
$\displaystyle P_{2}(\xi_{2}\vert\xi_{1})$ $\textstyle =$ $\displaystyle 1 - e^{-\xi_{1} \xi_{2}}.$  

Mit Hilfe von zwei gleichverteilten Zufallszahlen $u_{1}, u_{2} \in [0,1]$ erhalten wir die Lösung
$\displaystyle \xi_{1}$ $\textstyle =$ $\displaystyle u_{1}^{-1/n},$  
$\displaystyle \xi_{2}$ $\textstyle =$ $\displaystyle -\frac{1}{\xi_{1}} ln(u_{2}).$  

$\xi_{2}$ ist dann die gesuchte Veränderliche der Dichtefunktion $p_{2}(x_{2})$.

Beispiel. Die Composition Methode kann besonders vorteilhaft für die Simulation von Dichtefunktionen verwendet werden, die als Reihenentwicklung darstellbar sind,

\begin{displaymath}
p_{2}(x) = \sum_{k=0}^{\infty} (k+1) P_{k} x^{k}, \; \; \; 0 \leq x \leq 1.
\end{displaymath}

Die Normierung verlangt, daß

\begin{displaymath}
\sum_{k=0}^{\infty} P_{k} = 1.
\end{displaymath}

Wir setzen $P(k) \equiv P_{k}$ und

\begin{displaymath}
p(k,x) = (k+1) P(k) x^{k}, \; \; \; 0 \leq x \leq 1,\; \; k \geq 0.
\end{displaymath}

Damit erhalten wir der Reihe nach
$\displaystyle P_{1}(k)$ $\textstyle =$ $\displaystyle P(k) \int_{0}^{1}dx (k+1) x^{k} = P(k) \equiv P_{k},$  
$\displaystyle p_{2}(x\vert k)$ $\textstyle =$ $\displaystyle \frac{p(k,x)}{P_{1}(k)} = (k+1) x^{k},$  

und
$\displaystyle P_{1}(\kappa)$ $\textstyle =$ $\displaystyle \sum_{k=0}^{\kappa} P_{k},$  
$\displaystyle P_{2}(\xi\vert\kappa)$ $\textstyle =$ $\displaystyle (\kappa+1) \int_{0}^{\xi} dx x^{k} = \xi^{\kappa+1} .$  

Wir erzeugen zwei Zufallszahlen $u_{1}, u_{2} \in [0,1]$ und erhalten $\kappa$ aus der Ungleichung

\begin{displaymath}
\sum_{k=0}^{\kappa-1} P_{k} < u_{1} \leq \sum_{k=0}^{\kappa} P_{k},
\end{displaymath}

sowie $\xi$ aus der Gleichung

\begin{displaymath}
\xi = u_{2}^{1/(1+\kappa)}.
\end{displaymath}

$\xi$ ist dann eine Veränderliche der Dichtefunktion $p_{2}(x)$.

Das Verfahren kann verallgemeinert werden für Summen beliebiger Dichtefunktionen $q_{k}(x)$,

\begin{displaymath}
p_{2}(x) = \sum_{k=0}^{n} P_{k} q_{k}(x),
\end{displaymath}

mit
$\displaystyle P_{0}$ $\textstyle =$ $\displaystyle 0,$  
$\displaystyle \sum_{k=0}^{n} P_{k}$ $\textstyle =$ $\displaystyle 1,$  
$\displaystyle \int_{-\infty}^{\infty} dx q_{k}(x)$ $\textstyle =$ $\displaystyle 1, \; \; \; k=1,2,...,n.$  

Die zugrundeliegende zweidimensionale Dichtefunktion ist also

\begin{displaymath}
p(k,x) = P(k) q_{k}(x), \; \; \; 0 \leq k \leq n,
\end{displaymath}

mit $P(k) \equiv P_{k}$. Die Randverteilungen sind also
$\displaystyle P_{1}(k)$ $\textstyle =$ $\displaystyle P(k) \equiv P_{k},$  
$\displaystyle p_{2}(x\vert k)$ $\textstyle =$ $\displaystyle q_{k}(x).$  

Mit Hilfe der integralen Verteilungsfunktionen
$\displaystyle P_{1}(\kappa)$ $\textstyle =$ $\displaystyle \sum_{k=0}^{\kappa} P_{k}, \; \; \; \kappa = 0,1,2,...,n,$  
$\displaystyle P_{2}(\xi\vert\kappa)$ $\textstyle =$ $\displaystyle \int_{-\infty}^{\xi} dx q_{\kappa}(x)
\equiv Q_{\kappa }(\xi)$ (35)

lautet die Formulierung des Verfahrens: Erzeuge zwei Zufallszahlen $u_{1}, u_{2} \in [0,1]$ und bestimme $\kappa$ aus

\begin{displaymath}
\sum_{k=0}^{\kappa -1} P_{k} < u_{1} \leq \sum_{k=0}^{\kappa} P_{k}.
\end{displaymath}

Löse die Gleichung

\begin{displaymath}
P_{2}(\xi \vert \kappa ) = u_{2}
\end{displaymath}

nach $\xi$ auf. $\xi$ ist dann eine Veränderliche der Dichtefunktion $p_{2}(x)$.

Verwerfungsmethoden Bei der Verwerfungsmethode stellen wir die gesuchte Dichtefunktion $q(x)$ in der Form

\begin{displaymath}
q(x) = C h(x) G(x)
\end{displaymath} (36)

dar. Dazu schlagen wir folgenden Weg ein. Wir beginnen mit einer zweidimensionalen Dichtefunktion in der üblichen Darstellung

\begin{displaymath}
p(x_{1},x_{2}) = p_{1}(x_{1}) p_{2}(x_{2}\vert x_{1}).
\end{displaymath}

Das Integral über $x_{2}$ in den Grenzen von $-\infty$ bis $x_{1}$ kann geschrieben werden als
\begin{displaymath}
\int_{-\infty}^{x_{1}} dx_{2} p(x_{1},x_{2}) = p_{1}(x_{1}) ...
...{2}(x_{2}\vert x_{1}) = p_{1}(x_{1})
P_{2}(x_{1}\vert x_{1}).
\end{displaymath} (37)

Die rechts stehende Wahrscheinlichkeit $P_{2}$ lautet ausführlich geschrieben:
\begin{displaymath}
P_{2}(x_{1}\vert x_{1}) \equiv P_{2}(x_{2} \leq x_{1}\vert x_{1}).
\end{displaymath} (38)

Die linke Seite von (37) ist nun eine Dichtefunktion der Veränderlichen $x_{1}$, die aber im allgemeinen nicht auf 1 normiert ist. Wir setzen daher

\begin{displaymath}
q(x_{1}) = C \int_{-\infty}^{x_{1}} dx_{2} p(x_{1},x_{2})
\end{displaymath}

und erhalten
\begin{displaymath}
q(x_{1}) = C p_{1}(x_{1}) P_{2}(x_{1}\vert x_{1}).
\end{displaymath} (39)

Ein Vergleich mit (36) zeigt, daß
$\displaystyle h(x)$ $\textstyle \equiv$ $\displaystyle p_{1}(x),$ (40)
$\displaystyle G(x)$ $\textstyle \equiv$ $\displaystyle P_{2}(x\vert x).$ (41)

Aus dieser Identifikation ergibt sich, daß für $h(x)$, $G(x)$ und $C$ die folgenden Bedingungen erfüllt sein müssen:
$\displaystyle \int_{-\infty}^{\infty} dx h(x)$ $\textstyle =$ $\displaystyle 1,$  
$\displaystyle max \{ G(x) \}$ $\textstyle =$ $\displaystyle 1,$ (42)
$\displaystyle C$ $\textstyle >$ $\displaystyle 1.$  

Wir hatten die integrale bedingte Verteilungsfunktion $P_{2}(\xi_{2}\vert\xi_{1})$ definiert als Wahrscheinlichkeit dafür, daß die Veränderliche $x_{2} \leq \xi_{2}$, aber unter der Vorraussetzung, daß die Veränderliche $x_{1}$ einen festen Wert $x_{1}=\xi_{1}$ annimmt. Die Funktion $P_{2}(\xi_{1}\vert\xi_{1})$ gibt dann die Wahrscheinlichkeit an, daß die Veränderliche $x_{2}$ kleiner als der Wert $\xi_{2} = \xi_{1}$ sein soll, unter der Vorraussetzung, daß der Wert für $x_{1}=\xi_{1}$ bereits festliegt. Offensichtlich bedeutet dieses, daß $\xi_{1}$ nur dann eine Veränderliche der Dichtefunktion $p(x_{1},x_{2})$ sein kann, wenn die Bedingung
\begin{displaymath}
u_{2} \leq P_{2}(\xi_{1}\vert\xi_{1})
\end{displaymath} (43)

mit einer zweiten Zufallszahl $u_{2}\in[0,1]$ erfüllt ist.

Zusammengefaßt erhalten wir folgenden Algorithmus: Erzeuge zwei Zufallszahlen $u_{1}, u_{2} \in [0,1]$, löse die Gleichung

\begin{displaymath}
H(\xi) = \int_{-\infty}^{\xi} dx h(x) = u_{1}
\end{displaymath} (44)

nach $\xi$ auf und prüfe, ob
\begin{displaymath}
u_{2} \leq G(\xi).
\end{displaymath} (45)

Wenn diese Bedingung nicht erfüllt ist, verwerfen wir $\xi$ und beginnen von vorne.

Eine wichtige Größe bei dieser Methode ist die Zahl $C$. Zunächst ist klar, daß $C > 1$ ist (siehe (42)). Wie man sich leicht klarmachen kann, ist $C$ die mittlere Anzahl der Versuche, bis zu der die Ungleichung (45) erfüllt ist. Die Größe $1/C$ nennt man daher auch die Erfolgswahrscheinlichkeit oder Effizienz des Verfahrens. Je größer die Effizienz, desto schneller ist das Verwerfungsverfahren.

Der optimale Wert für $C$ wäre eigentlich $C=1$. Das ist natürlich nicht möglich. $C$ erreicht dagegen umso näher den Wert 1, je größer die Funktion $G(x)$ ist. Man muß also immer versuchen, die Funktion $G(x)$ maximal zu wählen, aber unter Einhaltung der Nebenbedingung $max \{ G(x) \} \equiv G_{max} = 1.$

Beispiel. Ein Beispiel, das auf die allgemeine Verwerfungsmethode zurückgeht, ist das folgende. Gesucht ist ein Simulationsalgorithmus der Dichtefunktion

\begin{displaymath}
q(x) = \frac{1}{\Gamma(\alpha)} x^{\alpha-1} e^{-x}, \; \; \;
0 < \alpha < 1, \; x \geq 0.
\end{displaymath}

Wir setzen

\begin{displaymath}
h(x) = \{ \begin{array}{ll} \frac{\alpha e}{\alpha +e}
x^{\...
... e}{\alpha +e} e^{-x}, \; \; \; & 1 < x < \infty,
\end{array} \end{displaymath}


\begin{displaymath}
G(x) = \{ \begin{array}{ll} e^{-x},
\; \; \; & 0 \leq x \leq 1, \\ x^{\alpha-1}, \; \; \; & 1 < x <
\infty, \end{array} \end{displaymath}


\begin{displaymath}
C = \frac{1}{\Gamma(\alpha)} \frac{\alpha + e}{\alpha e}.
\end{displaymath}

Der Grund für die gewählte Aufteilung der Funktion $q(x)$ in die Faktoren $h(x)$, $G(x)$ und $C$ folgt aus unseren obigen Überlegungen. Die Wahl der Funktion $h(x)$ ergibt sich aus der Normierung

\begin{displaymath}
\int_{0}^{\infty} dx h(x) = \frac{\alpha e}{\alpha +e}
\int...
... e^{-x} = \frac{e}{\alpha +e} +
\frac{\alpha}{\alpha +e} = 1.
\end{displaymath}

Für $G(x)$ ist die Bedingung

\begin{displaymath}
max \{ G(x) \} = G_{max} = 1
\end{displaymath}

offensichtlich für $x=0$ und $x=1$ erfüllt. Der Ausdruck für $C$ folgt dann aus

\begin{displaymath}
C = \frac{q(x)}{h(x) G(x)}.
\end{displaymath}

Die integralen Verteilungsfunktionen sind

\begin{displaymath}
H(\xi) = \{ \begin{array}{ll} \frac{e}{\alpha +e} \xi^{\alph...
...{\alpha +e}
e^{1-\xi}, \; \; \; & 1 < \xi < \infty, \end{array}\end{displaymath}


\begin{displaymath}
G(\xi) = \{ \begin{array}{ll} e^{-\xi},
\; \; \; & 0 \leq \x...
...1, \\ \xi^{\alpha -1}, \; \; \; &
1 < \xi < \infty. \end{array}\end{displaymath}

Auf diesen Ergebnissen aufbauend, können wir folgenden Algorithmus entwerfen: Erzeuge zwei Zufallszahlen $u_{1}, u_{2} \in [0,1]$. Wenn

\begin{displaymath}
\xi = \left( \frac{\alpha +e}{e} u_{1} \right)^{1/\alpha} \leq 1,
\end{displaymath}

dann prüfe, ob
\begin{displaymath}
u_{2} \leq e^{-\xi}.
\end{displaymath} (46)

Falls dagegen $\xi > 1$, dann ersetze $\xi$ durch

\begin{displaymath}
\xi = 1 - ln \left( \frac{\alpha +e}{\alpha} (1 -u_{1}) \right)
\end{displaymath}

und prüfe, ob
\begin{displaymath}
u_{2} \leq \xi^{\alpha -1}.
\end{displaymath} (47)

Wenn die Bedingung (46) bzw (47) nicht erfüllt ist, beginne von vorne. Dieses Beispiel finden Sie in dem folgenden Applet unter der Bezeichnung Gamma.Unter dem weiteren Menupunkt BreitWigner finden Sie eine Simulation von BreitWigner- Verteilungen mit einem speziellen Verfahren, das wir im folgenden diskutieren werden.

Das von Neumann'sche Verfahren. Der Mathematiker von Neumann hat das Verwerfungsverfahren in der folgenden Form vorgeschlagen. Sei $q(x)$ eine im Intervall $a \leq x \leq b$ definierte Dichtefunktion, für die wir einen Simulationsalgorithmus suchen. Wir setzen für $h(x)$ die spezielle Gleichverteilung

\begin{displaymath}
h(x) = \frac{1}{b-a}, \; \; \; a \leq x \leq b.
\end{displaymath} (48)

Dann können wir $G(x)$ durch die vorgegebene Dichtefunktion $q(x)$ ausdrücken. Wegen
\begin{displaymath}
q(x) = C h(x) G(x)
\end{displaymath} (49)

erhalten wir
\begin{displaymath}
G(x) = \frac{b-a}{C} q(x).
\end{displaymath} (50)

Die Zahl $C$ muß hierbei so gewählt werden, daß $max \{ G(x) \} = 1$ für $x \in [a,b]$, d.h.

\begin{displaymath}
\frac{b-a}{C} q_{max} = 1,
\end{displaymath}

oder
\begin{displaymath}
C = (b-a) q_{max}.
\end{displaymath} (51)

Hierbei ist $q_{max}$ das Maximum der Dichtefunktion $q(x)$. Wir können dann schreiben:
\begin{displaymath}
G(x) = \frac{q(x)}{q_{max}}.
\end{displaymath} (52)

Wir formulieren das Verfahren: Erzeuge zwei Zufallszahlen $u_{1}, u_{2} \in [0,1]$ und berechne
\begin{displaymath}
\xi = a + (b-a) u_{1}.
\end{displaymath} (53)

Wenn dann
\begin{displaymath}
u_{2} \leq \frac{q(\xi)}{q_{max}},
\end{displaymath} (54)

ist $\xi$ eine Veränderliche der Dichtefunktion $q(x)$, sonst beginne von vorne.

Das besondere an dem Verfahren von v. Neumann ist offensichtlich, daß keine inverse Funktion berechnet werden muß. Der Algorithmus ist auch für die kompliziertesten Dichtefunktionen $q(x)$ universell anwendbar. Der Nachteil des Verfahrens ist, daß für große Intervalle $[a,b]$ die Erfolgswahrscheinlichkeit $1/C$ klein wird.

Beispiel. Wir diskutieren das v. Neumannsche Verfahren an dem einfachen Beispiel

\begin{displaymath}
q(x) = \frac{2}{\pi R^{2}} \sqrt{R^{2} - x^{2}}, \; \; \;
-R \leq x \leq R.
\end{displaymath}

Das Maximum dieser Funktion wird offensichtlich für $x=0$ angenommen,

\begin{displaymath}
q_{max} = \frac{2}{\pi R}.
\end{displaymath}

Mit $a=-R$ und $b=+R$ erhalten wir
$\displaystyle h(x)$ $\textstyle =$ $\displaystyle \frac{1}{2 R},$  
$\displaystyle G(x)$ $\textstyle =$ $\displaystyle \frac{1}{R} \sqrt{R^{2}-x^{2}}.$  

Das Verfahren lautet also: Erzeuge $u_{1}, u_{2} \in [0,1]$, berechne

\begin{displaymath}
\xi = -R + 2 R u_{1},
\end{displaymath}

und prüfe, ob

\begin{displaymath}
u_{2} \leq \frac{1}{R} \sqrt{R^{2}-\xi^{2}}.
\end{displaymath}

Wenn diese Bedingung erfüllt ist, ist $\xi$ eine Veränderliche der Dichtefunktion $q(x)$. Wenn nicht, verwerfe $\xi$ und beginne von vorne.

Beispiel Die Verwerfungsmethode von Neumann wird im folgenden Applet an einer pathologischen Dichtefunktionen erläutert. Wir hatten oben in diesem Kapitel bereits eine Simulation der Cauchy- Verteilung

\begin{displaymath}
p(x) = \frac{1}{\pi} \frac{1}{(1 + x^{2})}
\end{displaymath}

diskutiert. Diese Vertelung ist im Bereich von $-\infty$ bis $+\infty$ auf eins normiert,

\begin{displaymath}
\int_{-\infty}^{+\infty} dx \; p(x) = 1.
\end{displaymath}

Das merkwürdige ist allerdings, daß man keine höheren Momente berechnen kann, d.h.

\begin{displaymath}
\int_{-\infty}^{+\infty} dx \; x^{k} p(x) \rightarrow \infty \; \; \; \; \; fuer \; k > 0.
\end{displaymath}

Man benötigt also einen Konvergenz erzeugenden Multiplikator. Die Chauchy- Verteilung kommt hauptsächlichst in der Teilchenphysik zur Beschreibung von Resonanzen zum Einsatz. In diesem Fall ist der Multiplikator bereits von der Physik her vorgegeben, und zwar der Phasenraum- Faktor, der für die Energie- und Impulserhaltung sorgt. Man nennt die Verteilung dann auch die Breit- Wigner- Verteilung. Mit der Transformation

\begin{displaymath}
x = \frac{M - M_{R}}{\Gamma/2}
\end{displaymath}

erhält man

\begin{displaymath}
p(M) = \frac{1}{\pi} \; \frac{\Gamma/2}{(M - M_{R})^{2} + (\Gamma/2)^{2}}
\end{displaymath}

Der Phasenraumfaktor kann vereinfacht geschrieben werden als
$\displaystyle X(M)$ $\textstyle =$ $\displaystyle \sqrt{(M- M_{0})(M_{max}-M)} \; \; \; \; \; fuer \; M_{0} < M < M_{max}$  
  $\textstyle =$ $\displaystyle 0 \; \; \; \; \; fuer \; M < M_{0} \; \; \; \; \; und \; M > M_{max}.$  

und die Gesamtverteilung ist

\begin{displaymath}
p(M) = \frac{1}{\pi} \; \frac{(\Gamma/2) X(M)}{(M - M_{R})^{2} + (\Gamma/2)^{2}}
\end{displaymath}

In dem Applet studieren wir die Summe dreier Resonanzen. Sie werden bemerken, daß das Verwerfungsverfahren kein besonders effektiver Algorithmus mit einer Effizienz von nur wenigen Prozenten ist und daher auch nur im Notfall eingesetzt werden sollte.

In diesem und in allen folgenden Applets dieses Kapitels ist die Bedienung immer gleich. Im Menu Generator wählen wir zunächst einen bestimmten Generator aus. Es erscheint ein weiteres kleines Fenster, in dem Sie die Parameter der Verteilung ändern können. Auf jeden Fall müssen Sie dieses Fenster mit OK quittieren. Im Menu Plots können dann mehrere Fenster geöffnet werden, wie z.B. die Visualisierung der erzeugten Verteilung und die exakte Kurve der mathematischen Funktion der Verteilung. Bei Anklicken des Source- Buttons wird ein Fenster mit dem Source- Code des Algorithmus aufgeklappt. Bei Start beginnen wir die Simulation, bei Stop wird sie abgebrochen.

Die Methode von Forsythe
Eine etwas komplizierte Methode ist von Forsythe entwickelt worden. Wir behandeln dieses Verfahren etwas ausführlicher, weil es insbeondere gestattet, für bestimmte Lösungen des Sattelpunktverfahrens (siehe Kap.3.4) Simulationsprogramme zu entwickeln. Die Methode ist anwendbar für irgendeine Dichtefunktion in der Form

\begin{displaymath}
p(x) = C e^{-h(x)},
\end{displaymath} (55)

wobei $h(x)$ eine stetig anwachsende Funktion von $x$ im Bereich $[0,\infty]$ ist. Wir unterteilen die positive reelle Achse in $K$ Intervalle zwischen den Stützstellen $\xi^{(0)}=0,\xi^{(1)},\xi^{(2)},...,\xi^{(K)}$ und berechnen
\begin{displaymath}
P(\xi^{(k)}) = \int_{0}^{\xi^{(k)}} dx p(x), \; \; \; k=1,2,...,K
\end{displaymath} (56)

und die Intervallängen
\begin{displaymath}
d_{k} = \xi^{(k)} - \xi^{(k-1)}.
\end{displaymath} (57)

Wählt man die Stützstellen $\xi^{(k)}$ nun so, daß stets
\begin{displaymath}
g_{k}(x) = h(x) - h(\xi^{(k-1)}) \leq 1 \; \; \;
\forall \; x \in [\xi^{(k-1)},\xi^{(k)}],
\end{displaymath} (58)

so führt der folgende Algorithmus auf ein Simulationsprogramm für die Dichtefunktion $p(x)$: Erzeuge zwei Zufallszahlen $u_{-1},u_{0} \in [0,1]$. Bestimme $\kappa$ so, daß
\begin{displaymath}
P(\xi^{(\kappa -1)}) < u_{-1} \leq P(\xi^{(\kappa )}),
\end{displaymath} (59)

und wähle einen Wert der Veränderlichen $x$ im $\kappa$-ten Intervall gemäß
\begin{displaymath}
\xi = \xi^{(\kappa -1)} + u_{0} d_{\kappa }
\end{displaymath} (60)

Erzeuge solange weitere Zufallszahlen $u_{\nu} \in [0,1]$, $\nu=1,2,...,$ bis die Bedingung
\begin{displaymath}
u_{n-1} < g_{\kappa }(\xi ) \leq u_{n}
\end{displaymath} (61)

erfüllt ist. Wenn $n$ ungerade ist, akzeptiere $\xi$ als Veränderliche der Dichtefunktion $p(x)$. Wenn dagegen $n$ gerade ist, verwerfe $\xi$ und beginne von vorne.

Die Forsythe- Methode erscheint auf den ersten Blick ziemlich umständlich und zeitraubend. Der große Vorteil liegt jedoch darin, daß die Exponentialfunktion nur in der Initialisierungsphase berechnet werden muß, ähnlich wie in der Tabellen- Darstellung. Gegenüber der Tabellen- Methode liefert die Forsythe- Methode jedoch eine exakte Simulation der zufälligen Veränderlichen

Beispiel. Als erstes Beispiel behandeln wir eine Simulation der normalisierten Exponentialfunktion

\begin{displaymath}
p(x) = e^{-x},
\end{displaymath}

d.h.

\begin{displaymath}
h(x) = x.
\end{displaymath}

Bei der folgenden Wahl der Stützstellen,

\begin{displaymath}
\xi^{(k)} = k, \; \; \; k=0,1,2,...
\end{displaymath}

gilt
$\displaystyle d_{k}$ $\textstyle =$ $\displaystyle 1, \; \; \; k=1,2,3,....$  
$\displaystyle g_{k}(x)$ $\textstyle =$ $\displaystyle x-(k-1) \; \leq 1 \; \forall x \in [k-1,k]$  

und

\begin{displaymath}
P(k) = 1 - e^{-k}.
\end{displaymath}

Ersichtlich genügen etwa 10 Stützstellen $\xi^{(k)}, k=1,2,...,10$. Das Verfahren lautet also im einzelnen: 1. Berechne die Größen
$\displaystyle P(0)$ $\textstyle =$ $\displaystyle 0,$  
$\displaystyle P(k)$ $\textstyle =$ $\displaystyle 1 - e^{-k}, \; \; \; k=1,2,...,9,$  
$\displaystyle P(10)$ $\textstyle =$ $\displaystyle 1$  

in einem externen Initialisierungsprogram. 2. Erzeuge zwei Zufallszahlen $u_{-1},u_{0} \in [0,1]$, bestimme $\kappa$ gemäß

\begin{displaymath}
P(\kappa-1) < u_{-1} \leq P(\kappa)
\end{displaymath}

und $\xi$ gemäß

\begin{displaymath}
\xi = (\kappa -1) + u_{0}.
\end{displaymath}

Erzeuge solange weitere Zufallszahlen $u_{1}, u_{2},...,u_{n} \in [0,1],$ bis die Bedingung

\begin{displaymath}
u_{n-1} < \xi - (\kappa -1) \leq u_{n}
\end{displaymath}

erfüllt ist. Falls $n$ ungerade ist, akzeptiere $\xi$ als zufällige Veränderliche der Dichtefunktion $p(x)$, sonst beginne von vorne bei Punkt 2.

Beispiel. Als zweites Beispiel behandeln wir die Dichtefunktion

\begin{displaymath}
p(x) = \sqrt{\frac{2}{\pi}} e^{-x^{2}/2}, \; \; \; x \geq 0,
\end{displaymath}

d.h. die normalisierte rechte Hälfte der Standard- Normalverteilung. Jetzt ist

\begin{displaymath}
h(x) = \frac{1}{2} x^{2}
\end{displaymath}

und die folgende Wahl der Stützstellen,
$\displaystyle \xi^{(0)}$ $\textstyle =$ $\displaystyle 0,$  
$\displaystyle \xi^{(1)}$ $\textstyle =$ $\displaystyle 1,$  
$\displaystyle \xi^{(k)}$ $\textstyle =$ $\displaystyle \sqrt{2 k -1}, \; \; \; k \geq 2$  

erfüllt die Bedingungen der Forsythe- Methode. Wir erhalten
$\displaystyle d_{1}$ $\textstyle =$ $\displaystyle 1,$  
$\displaystyle d_{k}$ $\textstyle =$ $\displaystyle \sqrt{2k-1} - \sqrt{2k-3}, \; \; \; k \geq 2$  

und
$\displaystyle g_{1}(x)$ $\textstyle =$ $\displaystyle \frac{1}{2} x^{2}, \; \; \; \forall x \in [0,1],$  
$\displaystyle g_{k}(x)$ $\textstyle =$ $\displaystyle \frac{1}{2} [x^{2} - 2k +3], \; \; \; \forall x \in
[\sqrt{2k-3}, \sqrt{2k-1} ], \; \; \; k \geq 2.$ (62)

Die Tabellenwerte

\begin{displaymath}
P(\xi^{(k)}) = \sqrt{\frac{2}{\pi}} \int_{0}^{\sqrt{2k-1}} dx e^{-x^{2}/2}
\end{displaymath}

müssen wiederum extern berechnet werden. Ersichtlich genügen in diesem Beispiel ungefähr 5 Stützstellen, sodaß der Algorithmus folgendermaßen formuliert werden kann:
1. Setze $P(\xi^{(0)}) = 0, P(\xi^{(5)}) = 1,
\xi^{(0)} = 0, \xi^{(1)} = 1, d_{1} = 1$ und berechne in einem externen Programm

$\displaystyle \xi^{(k)}$ $\textstyle =$ $\displaystyle \sqrt{2k-1}, \; \; \; k \geq 2,$  
$\displaystyle d_{k}$ $\textstyle =$ $\displaystyle \xi^{(k)} - \xi^{(k-1)}, \; \; \; k \geq 2,$  
$\displaystyle P(\xi^{(k)})$ $\textstyle =$ $\displaystyle \sqrt{\frac{2}{\pi}} \int_{0}^{\sqrt{2k-1}}
dx e^{-x^{2}/2}, \; \; \; k=1,2,3,4.$  

2. Erzeuge zwei Zufallszahlen $u_{-1},u_{0} \in [0,1]$, bestimme $\kappa$ gemäß

\begin{displaymath}
P(\xi^{(\kappa-1)}) < u_{-1} \leq P(\xi^{(\kappa)})
\end{displaymath}

und $\xi$ gemäß

\begin{displaymath}
\xi = \xi^{(\kappa-1)} + u_{0} d_{\kappa}.
\end{displaymath}

Erzeuge solange weitere Zufallszahlen $u_{\nu} \in [0,1], \nu = 1,2,3,...$, bis die Bedingung

\begin{displaymath}
u_{n-1} < \frac{1}{2} [\xi^{2} - 2 \kappa + 3] \leq u_{n}
\end{displaymath}

erfüllt ist. Falls $n$ ungerade ist, akzeptiere $\xi$ als Veränderliche der Dichtefunktion $p(x)$, sonst beginne von vorne bei Punkt 2.



Harm Fesefeldt
2006-07-10