Monte-Carlo Algorithmen sind Algorithmen, die von Zufallszahlen Gebrauch machen und in Naturwissenschaft und Technik einen
breiten Anwendungsbereich finden. Mit ihrer Hilfe können Simulationen durchgeführt und Größen angenähert werden, die sonst
nur mit sehr viel höherem Aufwand berechenbar wären. Sie sollen in dieser Aufgabe einmal diesen Ansatz ausprobieren und ihn
benutzen um die Kreiszahl π anzunähern.
1. Schreiben Sie ein Unterprogramm random_list(n, a, b), das eine Liste mit n (float)
Zufallszahlen zurück gibt, die in dem Intervall [a, b) gleichverteilt sind.
2. Schreiben Sie ein Unterprogramm mc_approxPi(n), das n Paare von Zahlen
(xi, yi), xi, yi ∈ [0, 1) (also 2D Punkte) erzeugt, die jeweils im Interval [0,1) gleichverteilt sind (also sind die Koordinaten der
Punkte gleichverteilt im Quadrat [0, 1) × [0, 1) ). Prüfen Sie, wie viele dieser Paare die
Bedingung
x 2i + y i2 ≤ 1
erfüllen. Teilen Sie diese Anzahl durch die Zahl n/4, um eine Schätzung für den Wert von π zu erhalten und geben Sie diesen zurück. Benutzen Sie Ihr Unterprogramm um eine
Schätzung für π mit n = 10000 auf der Konsole auszugeben.
3. Erklären Sie, warum wir in Aufgabenteil 2 eine Schätzung für π erhalten.
4. Schreiben Sie ein Unterprogramm mc_error(m), das m solcher Schätzungen durchführt.
Hierbei soll die erste Schätzung mit n = 25 Zahlenpaaren durchgeführt werden und die
Anzahl der Zahlenpaare bei den darauffolgenden Schätzungen jeweils vervierfacht werden.
Berechnen Sie bei jeder Schätzung den Fehler, also die Abweichung zum wahren Wert von
π. Geben Sie die so berechneten Fehler in einer n-elementigen Liste zurück. Können Sie
in der Liste (z.B. für m = 6) das (ungefähre) Verhalten des Fehlers erkennen ?