Programmieren I für Mathematiker

SS 2016
MATHEMATISCHES INSTITUT
DER UNIVERSITÄT MÜNCHEN
Dr. W. Spann
Programmieren I für Mathematiker
Aufgabe 2
Der Umfang eines Kreises mit Radius 12 kann durch die Umfänge un und Un des einbeschriebenen bzw. umbeschriebenen regulären 2n –Ecks (n = 2, 3, 4, . . .) eingeschlossen werden. Die
Seitenlänge sn des einbeschriebenen regulären 2n –Ecks kann durch die folgende Rekursionsformel bestimmt werden:
s
√
p
2
1 − 1 − s2n
s2 =
, sn+1 =
.
2
2
Daraus ergeben sich die Umfänge
un = 2n sn
2n sn
und Un = p
.
1 − s2n
Berechnen Sie für n = 2, 3, . . . Näherungen an π und geben Sie diese in einer Tabelle aus (siehe
unten). Brechen Sie dabei die Iteration ab, wenn s2n kleiner als die Maschinengenauigkeit“ des
”
verwendeten Gleitpunktdatentyps ist.
Bei der Berechnung von 2n soll die Funktion ldexp und nicht die Funktion pow zum Einsatz
kommen. (Anmerkung: ldexp(x,n) liefert x · 2n .)
Führen Sie das obige Verfahren auch mit der mathematisch äquivalenten, aber numerisch stabileren Rekursionsformel
sn
sn+1 = q
p
2(1 + 1 − s2n )
durch.
Drucken Sie tabellarisch für beide Methoden n, die Eckenzahl, die Seitenlänge sn im Exponentialformat und die berechneten Umfänge in einem der Genauigkeit gut angepassten Festpunktformat (n = 2, 3, . . .).
Achten Sie bei der Programmierung auf möglichst hohe Portabilität.
Abzugeben sind der Programmtext und ein Ausdruck der Ergebnisse. Bitte senden Sie die Programmquelle zusätzlich per Email an die Adresse [email protected].
Geben Sie im Betreff Ihren Vornamen, Nachnamen und die Aufgabennummer an und benennen
Sie die Programmquelle nach folgendem Schema: Vorname Nachname Aufgabennummer.cpp
Abgabetermin: Donnerstag, 19.05.2016, 1400
Übungskasten vor der Bibliothek im 1. Stock