profil:klasse10:abschnitt-10-1-2
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
profil:klasse10:abschnitt-10-1-2 [2022/01/22 16:14] – [Monte-Carlo-Methode] lutz | profil:klasse10:abschnitt-10-1-2 [2022/01/28 10:18] (aktuell) – [Regula Falsi] lutz | ||
---|---|---|---|
Zeile 36: | Zeile 36: | ||
<WRAP box round> | <WRAP box round> | ||
* Eingabe Intervallgrenzen $a$ und $b$ mit $f(a) \cdot f(b) < 0$ | * Eingabe Intervallgrenzen $a$ und $b$ mit $f(a) \cdot f(b) < 0$ | ||
- | * Eingabe minimale | + | * Eingabe minimale |
* Solange $\vert a-b \vert > l$ ist: | * Solange $\vert a-b \vert > l$ ist: | ||
* $m = \dfrac{a+b}{2}$ | * $m = \dfrac{a+b}{2}$ | ||
Zeile 142: | Zeile 142: | ||
<WRAP box round> | <WRAP box round> | ||
* Eingabe Intervallgrenzen $a$ und $b$ mit $f(a) \cdot f(b) < 0$ | * Eingabe Intervallgrenzen $a$ und $b$ mit $f(a) \cdot f(b) < 0$ | ||
- | * Eingabe minimale | + | * Eingabe minimale |
* Solange $\vert a-b \vert > l$ ist: | * Solange $\vert a-b \vert > l$ ist: | ||
* $x_f = a - \dfrac{f(a) \cdot (b-a) }{f(b)-f(a)}$ | * $x_f = a - \dfrac{f(a) \cdot (b-a) }{f(b)-f(a)}$ | ||
Zeile 301: | Zeile 301: | ||
$$\dfrac{A_K}{A_Q} = \dfrac{\pi}{4}$$ | $$\dfrac{A_K}{A_Q} = \dfrac{\pi}{4}$$ | ||
+ | Um nun einen Näherungswert für π zu ermitteln erzeugt man Punkte mit zufälligen Koordinaten, | ||
+ | Das folgende Pythonprogramm ermittelt nach Eingabe der Anzahl der Punkte einen Näherungswert für $\pi$: | ||
+ | |||
+ | <code python montecarlo.py> | ||
+ | # Modul random importieren | ||
+ | import random | ||
+ | |||
+ | # Zufallszahlengenerator initialisieren | ||
+ | random.seed() | ||
+ | |||
+ | # erzeugt eine Koordinate im Bereich von -1 bis 1 | ||
+ | def koordinate(): | ||
+ | # random.random() erzeugt Zufallszahl im Bereich von 0 bis 1 | ||
+ | test = random.random() | ||
+ | if test > 0.5: | ||
+ | return random.random() | ||
+ | else: | ||
+ | return -random.random() | ||
+ | |||
+ | while True: | ||
+ | print() | ||
+ | print(" | ||
+ | print(" | ||
+ | print() | ||
+ | p = int(input(" | ||
+ | t = 0 | ||
+ | for i in range(p): | ||
+ | x = koordinate() | ||
+ | y = koordinate() | ||
+ | if (x**2+y**2)**(1/ | ||
+ | t += 1 | ||
+ | print(" | ||
+ | print() | ||
+ | if input(" | ||
+ | break | ||
+ | </ | ||
+ | |||
+ | **Aufgabe 26** | ||
+ | |||
+ | Teste das Programm. Versuche es zu verstehen und setze die entsprechenden Kommentare im Quelltext. | ||
+ | |||
+ | **Aufgabe 27** | ||
+ | |||
+ | Ermittle π für 10, 100, 1000, 10000, 100000, 1000000, 10000000, 100000000 Punkte und berechne die Abweichung vom tatsächlichen Wert von π. Nutze dazu ein Tabellenkalkulationsprogramm. |
profil/klasse10/abschnitt-10-1-2.1642864449.txt.gz · Zuletzt geändert: von lutz