Numerische Mathematik Einführende Beispiele, Gleitpunktarithmetik

Werbung
Fakultät für Mathematik und Informatik
TU Bergakademie Freiberg
W. Queck
14. Oktober 2015
Numerische Mathematik
Einführende Beispiele, Gleitpunktarithmetik
============
Teil B – Hauptteil
=========================
Aufgabe 1
Gegeben sind die Zahlen x = 40545 und y = 70226. Berechnen Sie mit einem Taschenrechner
oder auf einem PC den Ausdruck z1 = 9x4 − y 4 + 2y 2 . Benutzen Sie, falls möglich, verschiedene
Rechner. Gibt es Unterschiede? Wenn ja, geben Sie eine Begründung!
Geben Sie einen mathematisch äquivalenten Ausdruck z2 zur Berechnung von 9x4 − y 4 + 2y 2 an
und wiederholen Sie dafür Ihre Experimente. Falls es Unterschiede gibt, versuchen Sie, diese zu
begründen.
Aufgabe 2
Für die erste Ableitung der Funktion y = f (x) = ex an den Stellen x = 0 und x = 1 berechne
man Näherungen über einen vorderen Differenzenquotienten
δv f (x, h) =
f (x + h) − f (x)
h
und einen zentralen Differenzenquotienten
δz f (x, h) =
f (x + h) − f (x − h)
2h
mit verschiedenen Schrittweiten h (h = 10−1 , 10−2 , . . . , 10−16 ) und vergleiche mit den exakten
Werten f 0 (0) = 1 und f 0 (1) = e.
Aufgabe 3
Beweisen Sie mit Hilfe einer Taylor-Entwicklung die folgenden Aussagen:
a) Ist f in I := [a, b] ⊂ R zweimal stetig differenzierbar, so gilt
f (x0 + h) − f (x0 )
= f 0 (x0 ) + Ch
h
mit |C| ≤
1
2
maxx∈I |f 00 (x)|.
b) Ist f in I := [a, b] ⊂ R dreimal stetig differenzierbar, so gilt
f (x0 + h) − f (x0 − h)
= f 0 (x0 ) + Ch2
2h
mit |C| ≤
1
6
maxx∈I |f 000 (x)|.
c) Ist f in I viermal stetig differenzierbar, so gilt
f (x0 + h) − 2f (x0 ) + f (x0 − h)
= f 00 (x0 ) + Ch2
h2
mit |C| ≤
1
12
maxx∈I |f (4) (x)|.
(Natürlich wird hier immer vorausgesetzt, dass die auftretenden Argumente von f im Intervall I
enthalten sind.)
Numerische Effekte
============
2
Programmieraufgaben
======================
Aufgabe 4
Ein auf Archimedes (250 v. Chr.) zurückgehender Algorithmus berechnet Näherungen für die
Kreiszahl π durch Approximation des Umfangs eines Kreises vom Radius r = 1/2 durch den
Umfang Un einbeschriebener regelmäßiger n-Ecke.
Setzt man An := U2n , so gilt die Rekursionsformel
v 

s
u
2
u
An 
u
.
An+1 = 2n t2 1 − 1 −
2n
Dabei gilt die Fehlerabschätzung
π3
.
6 · 4n
a) Bestimmen Sie, wieviele Rekursionsschritte n durchgeführt werden müssen, um eine vorgegebene Genauigkeit für |An − π| zu erreichen.
|An − π| ≤
b) Schreiben Sie ein m-File, welches diese Rekursion realisiert und überprüfen Sie dabei, ob die
Fehlerabschätzung erfüllt ist.
c) Schreiben Sie ein weiteres m-File, in dem die Rekursion ”stabilisiert” wurde (siehe NumerikVorlesung) und überprüfen Sie erneut die Gültigkeit der Fehlerabschätzung.
Aufgabe 5
Laden Sie das m-File floatgui2.m herunter, welches die positiven Zahlen eines Gleitpunktsystems
zur Basis 2 mit den Kenngrößen Mantissenlänge t, kleinster Exponent emin, größter Exponent
emax graphisch darstellt..
a) Starten Sie floatgui2 und experimentieren Sie mit dem Programm. Reproduzieren Sie das
”Spielzeugbeispiel” der Vorlesung.
b) Modifizieren Sie floatgui2.m, indem Sie die Aufgabe am Ende des m-Files lösen (letzte
Zeile auskommentieren und ??? durch einen korrekten Ausdruck ersetzen).
c) Wieviele normalisierte bzw. denormalisierte enthält ein Gleitpunktsystem?
Wie lauten die Zahlen für die Formate IEEE Single und IEEE Double?
d) Wieviele Gleitpunktzahlen vom Format IEEE Double liegen zwischen zwei benachbarten
Gleitpunktzahlen vom Format IEEE Single?
Aufgabe 6
a) Informieren Sie sich über die vordefinierten Matlab-Konstanten
eps
eps(’double’)
realmax
realmax(’double’)
realmin
realmin(’double’)
intmax(typ )
intmin(typ )
eps(’single’)
realmax(’single’)
realmin(’single’)
wobei für typ die Strings ’int8’, ’int16’, ’int32’, ’int64’, ’uint8’, ’uint16’,
’uint32’, ’uint64’ stehen können.
b) Was leisten die folgenden Programsequenzen? Wie viele Ausgabezeilen werden produziert?
Welches sind die beiden letzten Werte, die für x ausgegeben werden?
x=1; while 1+x > 1, x = x/2, pause(0.2), end
x=1; while x+x > x, x = 2*x, pause(0.2), end
x=1; while x+x > x, x = x/2, pause(0.2), end
Herunterladen