Programming lesson
Monte-Carlo-Simulationen in MATLAB: Ein Leitfaden zur ECMT2160 Computational Assignment
Lerne, wie du Monte-Carlo-Simulationen in MATLAB effektiv umsetzt – mit praxisnahen Beispielen und Tipps für die ECMT2160 Computational Assignment.
Einführung in Monte-Carlo-Simulationen mit MATLAB
Monte-Carlo-Simulationen sind ein mächtiges Werkzeug in der Computergestützten Statistik. Sie helfen, komplexe Wahrscheinlichkeitsprobleme zu lösen, indem sie Zufallsstichproben wiederholt simulieren. In diesem Tutorial konzentrieren wir uns auf die Anwendung in MATLAB, speziell im Kontext der ECMT2160 Computational Assignment. Du wirst lernen, wie du Zufallszahlen generierst, Wahrscheinlichkeitsverteilungen berechnest und Ergebnisse visualisierst – alles mit Blick auf die typischen Anforderungen einer solchen Aufgabe.
Stell dir vor, du analysierst die Gewinnchancen eines neuen Mobile Games: Mit Monte-Carlo-Simulationen könntest du die Wahrscheinlichkeit bestimmter Ereignisse modellieren, ohne aufwendige mathematische Formeln. Genau diesen Ansatz nutzt die Aufgabe, um Konzepte wie gemeinsame und marginale Wahrscheinlichkeitsfunktionen zu veranschaulichen.
Grundlagen der Zufallszahlengenerierung in MATLAB
Bevor du mit der Simulation beginnst, musst du den Zufallszahlengenerator initialisieren. In der ECMT2160 Aufgabe wird dazu der Befehl rng(STUDENTID) verwendet. Damit stellst du sicher, dass deine Ergebnisse reproduzierbar sind – ein wichtiger Aspekt in der wissenschaftlichen Programmierung. Verwende deine eigene 9-stellige Studenten-ID, um den Startwert festzulegen.
MATLAB bietet viele Funktionen zur Erzeugung von Zufallszahlen. Für diskrete gleichverteilte Zufallszahlen (wie bei einem Würfel) eignet sich randi. Für kontinuierliche Verteilungen wie die Standardnormalverteilung nutzt du randn. Diese Funktionen sind die Grundlage für deine Monte-Carlo-Simulation.
Gemeinsame Wahrscheinlichkeitsfunktion von zwei Würfeln
In der ersten Aufgabe der Assignment geht es um zwei faire sechsseitige Würfel. Du definierst zwei Zufallsvariablen: Y1 als Summe der Augenzahlen und Y2 als Maximum. Die gemeinsame Wahrscheinlichkeitsfunktion P(Y1 = y1, Y2 = y2) kannst du in einer 11×6-Matrix speichern – jede Zeile steht für eine mögliche Summe (2 bis 12) und jede Spalte für ein Maximum (1 bis 6).
Erstelle diese Matrix durch Schleifen oder vektorisierte Operationen. Ein dreidimensionaler Balkendiagramm (bar3) visualisiert die gemeinsame Verteilung. Achte darauf, dass die Achsen korrekt beschriftet sind, um die Lesbarkeit zu erhöhen.
Marginale Wahrscheinlichkeitsfunktion des Maximums
Die marginale Wahrscheinlichkeit P(Y2 = y2) erhältst du durch Summieren über alle möglichen Summen. Das Ergebnis ist ein Vektor der Länge 6. Ein zweidimensionales Balkendiagramm (bar) zeigt die Verteilung des Maximums. Diese Darstellung hilft, die Wahrscheinlichkeit jedes Maximums intuitiv zu verstehen.
Bedingte Wahrscheinlichkeiten und Erwartungswerte
Die bedingte Wahrscheinlichkeit P(Y1 = y1 | Y2 = y2) berechnest du, indem du die gemeinsame Wahrscheinlichkeit durch die marginale Wahrscheinlichkeit des Maximums teilst. Das Ergebnis ist eine 11×6-Matrix. Für jedes Maximum (1 bis 6) erstellst du ein separates Balkendiagramm – so siehst du, wie sich die Verteilung der Summe ändert, wenn das Maximum bekannt ist.
Anschließend simulst du 10.000 Iterationen: Generiere einen Wert für Y2 gemäß seiner marginalen Verteilung, berechne die bedingte Erwartung E(Y1 | Y2 = y2) und mittel diese über alle Iterationen. Dieser Durchschnitt sollte nahe am theoretischen Wert E(Y1) = 7 liegen – eine Bestätigung des Gesetzes der iterierten Erwartungen.
Kontinuierliche Zufallsvariablen und Copulas
In der zweiten Aufgabe der Assignment arbeitest du mit der Standardnormalverteilung und einer Copula-Funktion. Die gemeinsame Dichte von X1 und X2 wird durch die Transformation (Φ(X1), Φ(X2)) definiert, wobei Φ die Verteilungsfunktion der Standardnormalverteilung ist. Diese Methode wird oft in der Finanzmathematik verwendet, um Abhängigkeiten zwischen Aktienrenditen zu modellieren – ein Thema, das aktuell durch KI-gestützte Handelsalgorithmen an Bedeutung gewinnt.
Erstelle ein 3D-Diagramm der gemeinsamen Dichte für X1 und X2 im Bereich von -3 bis 3. Die marginalen Dichten von X1 und X2 sollten mit der Standardnormalverteilung übereinstimmen – zeichne sie als Liniendiagramme und vergleiche sie mit der theoretischen Kurve.
Ist die gemeinsame Verteilung multivariat normal?
Basierend auf den Diagrammen kannst du beurteilen, ob die gemeinsame Verteilung multivariat normal ist. Bei einer multivariaten Normalverteilung wären die Höhenlinien elliptisch. In diesem Fall führt die Copula-Transformation jedoch zu einer nicht-normalen Abhängigkeitsstruktur – die Dichte ist nicht elliptisch, daher ist die Verteilung nicht multivariat normal. Diese Erkenntnis ist wichtig für das Verständnis von Copulas in der Risikomodellierung.
Tipps für die Abgabe der ECMT2160 Assignment
Deine Lösung sollte als MATLAB Live Script (.mlx) eingereicht werden, zusammen mit einer exportierten HTML-Version. Achte auf eine klare Struktur: Verwende Textabschnitte für Erklärungen, Codeblöcke für MATLAB-Befehle und füge Grafiken ein. Vermeide Tippfehler und sorge für eine ansprechende Formatierung. Arbeite in Paaren, aber reiche individuelle Lösungen ein – kennzeichne deinen Partner mit der Studenten-ID.
Mit diesem Leitfaden bist du gut gerüstet, um die Monte-Carlo-Simulationen in MATLAB erfolgreich umzusetzen. Nutze die Beispiele als Inspiration, aber passe sie an deine spezifische Aufgabenstellung an. Viel Erfolg!