Numerische Mathematik fur LAK - imsc.uni-graz.at · PDF fileNumerische Mathematik fur LAK...

download Numerische Mathematik fur LAK - imsc.uni-graz.at · PDF fileNumerische Mathematik fur LAK Musterl osungen f ur teilweise gerechnete Beispiele Thema: Logisches Verst andnis Aufgabe

If you can't read please download the document

Transcript of Numerische Mathematik fur LAK - imsc.uni-graz.at · PDF fileNumerische Mathematik fur LAK...

  • Numerische Mathematik fur LAK

    Musterlosungen fur teilweise gerechnete Beispiele

    Thema: Logisches Verstandnis

    Aufgabe 3

    Sei x R im Bereich der normalisierten Gleitkommazahlen und die Maschinengenauig-keit1, vgl. Schwarz, Numerische Mathematik: Kapitel 1.2. Beweisen Sie:

    a) Es gibt ein R mit || , sodass gilt

    rd(x ) = x (1 + )

    b) Die Maschinengenauigkeit ist die kleinste positive Zahl x R fur die gilt2

    rd(1 + x ) > 1

    Losung:

    a) Sei R sodass rd(x ) = x + x gilt. Wir mussen zeigen, dass || gilt (wobei = E

    1k

    2 die Maschinengenauigkeit ist; vgl. VO Bredies letzte Aussage vor KapitelI.2 Fehleranalyse; oder Numerische Mathematik / Schwarz Kockler)

    0 | x | = || |x | = |rd(x ) x |

    und damit erhalten wir (mit VO Bredies, bzw. Numerische Mathematik / SchwarzKockler)

    0 || |rd(x ) x ||x |

    b) Nun zur zweiten Aussage. Hierfur betrachten wir die Reduktionsabbildung:

    rd(x ) =

    (m

    j=1 aj Ej) E l falls am+1 < E2(m

    j=1 aj Ej + Em

    ) E l falls am+1 E2

    Sei nun 0 < . Es gibt daher ein > 0 sodass = E2 Ek .

    Wir erhalten damit

    1 rd(1 + ) = rd(E 0 +

    E 2

    Ek)

    = rd

    ((E1 +

    E 2

    Ek+1)E 1)

    = E1 E 1 = E 0 = 1

    1Sie haben die Maschinengenauigkeit im Rahmen des Runden von Binarzahlen besprochen.2Die Beschreibung in Numerische Mathematik / Schwarz Kockler ist fur dieses Beispiel et-

    was luckenhaft. Sie durfen die Definition einer gerundeten Zahl aus https://www.igpm.rwth-aachen.de/Download/ws1112/numrech/NumRech WS11 V3.pdf, Folie 98 Reduktionsabbildung, verwenden.

    1

    https://www.igpm.rwth-aachen.de/Download/ws1112/numrech/NumRech_WS11_V3.pdfhttps://www.igpm.rwth-aachen.de/Download/ws1112/numrech/NumRech_WS11_V3.pdf

  • Somit wissen wir, dass jede Zahl kleiner als abgerundet wird. Nun mussen wir nochzeigen, dass aufgerundet wird (was den Beweis vollstandig macht):

    rd(1 + ) = rd

    (E 0 +

    E 1k

    2

    )= rd(

    ((E1 +

    E

    2E(k+1)

    )E 1)> rd(E 0) = 1

    Thema: Numerisches Berechnen und Programmieraufgaben

    Aufgabe 6

    Bei der Subtraktion zweier Maschinenzahlen kann es zu einem Genauigkeitsverlust kom-men. Dies passiert wenn sich fuhrende Mantissenstellen annullieren.3

    a) Demonstrieren Sie den Verlust an Genauigkeit an einem Beispiel in M(10, 5,3, 3).4

    b) Visualisieren Sie die Genauigkeit auf dem Zahlstrahl, und erklaren Sie was man mitGenauigkeitsverlust meint.5

    c) Offensichtlich gilt fur x 6= 0 die Gleichung ((1/x )/10 + 1) x x = 1/10. Schreiben Sieein Matlab Programm, welches die Werte ((1/x )/10+1) xx1/10 fur verschiedeneBelegungen von x visualisiert. Es soll insbesondere die Entwicklung in den kritischenBereich(en) gut erkennbar sein.6

    Losung:

    a) Wir suchen also zwei Zahlen in M(10, 5,3, 3), die bei einer Subtraktion einen Ge-nauigkeitsverlust produzieren. Die Mantisse is 5 und k soll zwischen 3 und 3 liegen.Also wahlen wir mal zwei Zahlen (die mithilfe des Tipps am Anfang gleich sind):

    x = 0, 23467 100 y = 0, 23456 100

    Man beachte, dass diese Zahlen nach der 5. Stelle abbrechen, also einen Fehler in der6. Stelle aufweisen. Jetzt betrachten wir die Differenz:

    x y = 0, 00011 100 = 0, 11000 103

    Jetzt haben wir einen Fehler in der 3. Stelle (wir haben Nullen nachgeschoben)! DerAbsolute Fehler bleibt zwar gleich, aber die Maschine konnte genauer rechnen.Das meint man mit einem Genauigkeitsverlust.

    b) Dafur gibt es eine schone Skizze in Numerische Mathematik / Schwarz Kockler aufSeite 16, die die Rechnung von a) visualisiert. (Sie konnen in der letzten Einheitnochmals fragen, wenn Sie wollen.)

    c) Die Musterlosung ist online auf meiner Homepage.

    3Wem diese Beschriebung zu kurz ist, der kann im Buch Schwarz Numerische Mathematik (als E-Bookuber die Uni Bibliothek erhaltlich) auf Seiten 18-19 nachlesen.

    4Tipp: Die ersten Zahlen der Mantisse sollten bei der Wahl ihres Beispiels verschwinden.5Tipp: Im Buch von Schwarz finden Sie eine Visualisierung der Verteilung von Gleitkomma Zahlen. Eine

    ahnliche Darstellung kann auch hier nutzlich sein.6Spielen Sie sich mit logarithmischer Achsen Skalierung.

    2

  • Thema: Schulbezug und Programmieraufgaben

    Aufgabe 10

    Wir untersuchen die Berechnung von (p, q) := p +p2 + q durch zwei verschiedene

    Algorithmen.

    Algorihmus 1: s = p2 t = s + q u =t y = p + u

    Algorihmus 2: s = p2 t = s + q u =t v = p + u y = q/v

    a) Analysieren Sie welcher Algorithmus besser ist!7

    b) Schreiben Sie ein Matlabprogam, welches die Algorithmen 1 und 2 vergleicht. Essoll fur SEHR viele unterschiedliche Werte p und q die Resulate vergleichen und dieFehlerentwicklung visualisieren.

    c) Formulieren Sie selbst ein Schulbeispiel (Beschreibungslange maximal eine Zeile), beidem es einen Unterschied machen wurde, wie man die Gleichung berechnet!8 ErklarenSie das Problem so, dass Laien den Unterschied verstehen konnen.

    Losung:

    a) Die Algorithmen sind bis auf die letzten Schritte gleich, daher brauchen wir nur diesezu betrachten. Um zu analysieren welcher Algorithmus besser ist, konnen wir dieKonditionszahlen berechenen. Hierfur definieren wir 2 Abbildungen 1 = p + u,2 = p + u

    Fur den Algorithmus 1 bekommen wir

    1,p =1(p, u)

    p p1(p, u)

    = pp + u

    1,u =1(p, u)

    u u1(p, u)

    =u

    p + u

    Nun gilt, falls p q und p > 0 gilt, dass |u| p gilt und somit 1 .

    Fur den Algorithmus 2 bekommen wir

    2,p =2(p, u)

    p p2(p, u)

    =p

    p + u

    2,u =2(p, u)

    u u2(p, u)

    =u

    p + u

    Nun gilt, falls p q und p < 0 gilt, dass |u| p gilt und somit 2 .

    Damit erhalten wir, dass

    falls p q und p > 0 gilt, folgt Algorithmus 2 ist besser.

    falls p q und p < 0 gilt, folgt Algorithmus 1 ist besser.7Achtung: Die Wahl des Algorithmus kann von p und q abhangen.8Falls Sie mal auf die Idee kommen sollten, selbst Schulbeispiele zu schreiben.

    3

  • b) Musterlosung ist online auf meiner Homepage.

    c) Sie geben zur Schularbeit eine quadratische Gleichung zu losen:

    x 2 (2 15269) x 2 = 0

    Naturlich losen Sie die Aufgabe um zu sehen ob das klappt :

    x = 15269 +

    152692 + 2 = 30538.000065492

    Klein Maxl hat im Internet gesehen, dass man die Rechnung mit Algorithmus 2losen kann, und bekommt ein Problem (ein Beispiel wos umgekehrt ist steht unten,bei Algorithmus 2 entsteht der Fehler bereits bei kleineren Zahlen):

    s = (15269)2 = 233142361

    t = s + q = 233142361 + 2 = 233142363

    u =t =

    233142363 = 15269, 000065492

    Nun gibts zwei Wege:

    Alg. 1 y = p + u = 15269 + 15269, 000065492 = 30538, 000065492

    Alg. 2 v = p+u = 15269+15269, 000065492 = 0, 000065492 und damit y = q/v =2/0, 000065492 = 30538, 080986991

    Probe:

    Alg. 1 x 2 (2 15269) x 2 = 0, 0000053

    Alg. 2 x 2 (2 15269) x 2 = 2471, 18729

    Und damit muss klein Maxl die restliche Zeit der Schularbeit damit verbringen,rauszubekommen was da falsch is . . . . . . Als Lehrer mussen Sie aufpassen was Sie zurSchularbeit geben ......!!!!!

    Schauen wir uns noch den umgekehrten Fall an (zu Ihrem Gluck tritt der Fehler furAlg 1 erst bei viel groeren Zahlen auf):

    x 2 + (2 92698690) x 2 = 0

    Klein Maxl rechnet wieder:

    s = (92698690)2 = 8, 593047128 1015

    t = 8.593047128 1015 + q = 8, 593047128 1015 + 2 = 8.593047127716102 1015

    u =t =

    8, 593047128 1015 = 9.269869000000001 107

    Nun gibts wieder zwei Wege:

    Alg. 1 y = p + u = 92698690 + 92698690.000000011 = 1.490116119384766 108

    Alg. 2 v = p + u = 92698690 + 92698690.000000011 = 185397380 und damit y =q/v = 2/185397380.000000011 = 1.078763896231975 108

    Probe:

    4

  • Alg. 1 x 2 (2 15269) x 2 = 0.762636244297028

    Alg. 2 x 2 (2 15269) x 2 = 0

    + Die hier demonstrierten Rechenfehler basieren auf die Rechengenauigkeitdes verwendeten Computer-Systems (Matlab). Es gibt Systeme die eineQuadratische Gleichung erkennen, und optimierte Algorithmen zum Losenverwenden.Fur einen Lehrer ist die Rechnung insbesondere von Bedeutung, da sichder Effekt markant verstarkt, wenn Sie Ihren Schulern Runden erlauben.

    Thema: Logisches Verstandnis

    Aufgabe 33

    Beweisen Sie, dass die Koeffizienten des Newton-Interpolationspolynoms9

    Pk ,k+1,...,k+j (x ) = c[k ]+c[k ,k+1](x xk )+ . . . c[k ,k+1,...,k+j ](x xk )(x xk+1) . . . (x xk+j1)

    gegeben sind durch die rekursive Vorschrift:

    c[k ] = yk

    c[k ,k+1] =c[k+1] c[k ]xk+1 xk

    c[k ,k+1,...,k+j ] =c[k+1,...,k+j ] c[k ,...,k+j1]

    xk+j xk.

    Tipp: Um die Koeffizienten zu bestimmen, mussen (sollten) Sie uber den Grad des Polynoms induktiv aufden nachsten Koeffizienten im Polynom schlieen indem Sie einen Koeffizientenvergleich mit der Aussageaus Satz 4 machen, also mit der Formulierung

    Pk,k+1,...,k+j (x ) =(x xk )Pk+1,...,k+j (x ) (x xk+1)Pk,k+1,...,k+j1(x )

    xk+jxk.

    Sie sollten jeweils mit dem hochsten Koeffizienten des Polynoms Pk,k+1,...,k+j (x ) in Monombasis (d.h. bzgl.

    der Basis {1, x , . . . x j}) vergleichen.

    Losung:Wir betrachten das Newton-Interpolationspolynom:

    Pk ,k+1,...,k+j (x ) = c[k ] + c[k ,k+1](x xk ) + . . .+ c[k ,k+1,...,k+j ]k+j1i=k

    (x xi)

    Die Wahl des Interpolationspolynoms (man wahlt das Polynom so, dass es an den Stutz-stellen die Interpolationsbedingung erfullt) liefert

    yk = Pk (xk ) = c[k ]

    yk+1 = Pk ,k+1(xk+1) = c[k ] + c[k ,k+1](xk+1 xk ) c[k ,k+1] =

    yk+1 ykxk+1 xk

    =c[k+1] c[k ]xk+1 xk

    9Falls Unklarheiten bzgl. der Notation und Beschreibung auftreten, so mochte ich Sie auf die VO vonProf. Bredies Satz 4, oder dem