Iteration < Java < Programmiersprachen < Praxis < Informatik < Vorhilfe
|
Aufgabe | Folgende Reihe nähert PI an.
PI = 3 + 4/(2*3*4) - 4/(4*5*6) + 4/(6*7*8) - 4/(8*9*10) + ...
Bei Näherungen durch unendliche Reihen hat die Geschwindigkeit der Konvergenz eine große Bedeutung. Um das zu untersuchen, schreiben Sie ein Programm welches eine ganze Zahl N einliest und mit obiger Formel PI annähert, sodass der Fehler kleiner als 10-N ist. Zur Berechnung des Fehlers verwenden Sie als Referenzwert die Konstante Math.PI. Zählen Sie mit wieviele Iterationen nötig sind, um diese Genauigkeit zu erreichenr.
Als eine Iteration zählt jede Addition bzw. Subtraktion in der obigen Formel wobei der Startwert 3 als Iteration 0 zu zählen ist.
Eine weitere Näherung für PI ist die Fläche eines Kreises mit bekanntem Radius zu bestimmen, dann kann aus der Flächenformel PI ausgerechnet werden. Zum bestimmen der Fläche benützen wir eine sogenannte Monte Carlo Methode, dabei werden in einem Quadrat zufällige Punkte bestimmt und mitgezählt ob die Punkte auch im Kreis liegen (einfach mit Hilfe des Satzes von Pythagoras). Das Verhältnis der Anzahl aller Punkte zur Anzahl der Punkte im Kreis ist gleich dem Verhältnis der Fläche des Quadrates zur Fläche des Kreises.
Führen sie nach der Näherung mit der Reihe die Näherung mit der Monte Carlo Methode durch, wobei Sie soviele Punkte verwenden sollen wie die Näherung mittels Reihe an Iterationen benötigt hat.
Geben Sie folgendes aus: Die Anzahl der Iterationen, Math.PI, Näherung von PI mittels der Reihe, den Fehler der Reihennäherung, Näherung von PI mittels Kreisfläche, Anzahl der Punkte im Kreis und den Fehler der Näherung mittels Kreisfläche. Die Ausgabe ist so zu formatieren wie im Beispiel angegeben.
Hinweis: Der Befehl Math.random() liefert einen double Wert zurück der eine zufällige Zahl zwischen 0 und 1 enthält. Es bietet sich also an ein Quadrat mit Seitenlänge 1 zu verwenden. Wenn Sie in das Quadrat nur einen Viertelkreis einschreiben ist die Abfrage ob ein Punkt im Kreis liegt einfacher.
Wichtig: Implementieren Sie alle Berechnungen selbst ohne Zuhilfenahme des Math packages mit Ausnahme von Math.PI und Math.random()! |
Hallo
Weiß leider nicht wie ich das mit der Iteration hinbekommen soll.
Hat jemand einen Ansatz wie man das ungefähr macht?
Vielen Dank!
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 21:10 Do 15.11.2012 | Autor: | chrisno |
Kannst Du ein Beispiel irgendeiner Iteration hier hinschreiben? Das lässt sich dann ja um- und ausbauen.
|
|
|
|