Schlecht kondition. Matrizen < Lin. Gleich.-systeme < Numerik < Hochschule < Mathe < Vorhilfe
|
Aufgabe | Gegeben ist [m] \begin{pmatrix}
\bruch{1}{8} & \bruch{1}{9} \\
\bruch{1}{9} & \bruch{1}{10}
\end{pmatrix} \vec x = \begin{pmatrix} 1 \\ 1 \end{pmatrix} [/m]
a) Lösen Sie das System exakt, d.h. ohne Umrechnung der Brüche.
b) Lösen Sie das System nun mit 3-stelliger Gleitpunktarithmetik (d.h. Sie rechnen nur
mit 3-stelligen Gleitpunktzahlen, nach jeder Operation runden Sie auf 3 Stellen und
rechnen mit dem 3-stelligen Ergebnis weiter) und vergleichen Sie die Ergebnisse.
c) Die Lösung des Systems lässt sich als Schnittpunkt zweier Geraden im [mm] \IR^2 [/mm] ansehen.
Versuchen Sie den Schnittpunkt graphisch zu bestimmen.
d) Versuchen Sie der Ursache des Problems auf die Spur zu kommen, indem Sie die rechte
Seite des System variieren. Wenn sich eine andere rechte Seite von der obigen in jeder
Komponente um max. 0.01 unterscheidet, um wieviel unterscheidet sich dann die
Lösung in jeder Komponent maximal? Anders ausgedrückt: wenn der absolute Fehler
der rechten Seite komponentenweise max. 0.01 ist, wie groß ist dann der absolute
Fehler der Lösung komponentenweise maximal? Hierzu dürfen Sie ausnahmsweise
einmal die inverse Matrix zu Hilfe nehmen. Vergleichen Sie mit dem Ergebnis, das
Sie mit der Fehlerformel aus der Vorlesung erhalten. |
Hallo zusammen,
bei a forme ich das System auf eine rechts obere Dreiecksmatrix, um es mit dem Gauß-Algorithmus zu lösen.
Meine Ergebnisse für [mm] x_1 [/mm] = -712, [mm] x_2 [/mm] = 810
Lasse ich das System aber mit MATLAB lösen, bekomme ich als Lösungsvektor [m]\vec x = \begin{pmatrix} -72 \\ 90 \end{pmatrix}[/m] raus.
Bevor ich mit b), c) und d) fortfahre, möchte ich a) erstmal korrekt gelöst haben.
Hat jemand einen Tipp für mich?
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 14:36 So 08.06.2014 | Autor: | hippias |
Tipp: Keine Rechenfehler machen. Nichts zu danken!
|
|
|
|
|
Lach... ja, die rechte Seite [mm] \vec [/mm] habe ich nicht mit beachtet, dummer Fehler!
Jetzt habe ich den Lösungsvektor [m]\vec x[/m] mit [m]\vec x = \begin{pmatrix} -72 \\ 90 \end{pmatrix}[/m] ermitteln können.
Bei b) soll mit 3-stelligen Gleitpunktzahlen gerechnet werden. Also muss man m.E. die Komponenten der Matrix [m]A[/m] vorab auf 3 Stellen abrunden.
Für [m]\bruch{1}{8}[/m] erhalte ich [m]0.125[/m], für [m]\bruch{1}{9}[/m] erhalte ich jeweils [m]0.111[/m] und für [m]\bruch{1}{10}[/m] letztlich [m]0.1[/m]. Ist das soweit korrekt oder muss bei [m]\bruch{1}{9}[/m] mit [m]0.11[/m] und bei [m]\bruch{1}{8}[/m] mit 0.13 beginnen?
Wie bestimmt man die Anzahl der Ziffern einer Gleitpunktzahl, wenn die Ziffer vor dem Komma [m]1[/m] ist, kann man sich das denken (bspw. [m]1.22[/m]), aber wie sieht es mit Gleitpunktzahlen aus, die eine [m]0[/m] als erste Ziffer haben, wird diese dann mitgezählt?
Bevor ich weiterrechne, würde ich gerne hierzu einen Tipp haben?
Vielen Dank!
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 16:11 So 08.06.2014 | Autor: | hippias |
> Lach... ja, die rechte Seite [mm]\vec[/mm] habe ich nicht mit
> beachtet, dummer Fehler!
> Jetzt habe ich den Lösungsvektor [m]\vec x[/m] mit [m]\vec x = \begin{pmatrix} -72 \\ 90 \end{pmatrix}[/m]
> ermitteln können.
>
> Bei b) soll mit 3-stelligen Gleitpunktzahlen gerechnet
> werden. Also muss man m.E. die Komponenten der Matrix [m]A[/m]
> vorab auf 3 Stellen abrunden.
>
> Für [m]\bruch{1}{8}[/m] erhalte ich [m]0.125[/m], für [m]\bruch{1}{9}[/m]
> erhalte ich jeweils [m]0.111[/m] und für [m]\bruch{1}{10}[/m] letztlich
> [m]0.1[/m]. Ist das soweit korrekt oder muss bei [m]\bruch{1}{9}[/m] mit
> [m]0.11[/m] und bei [m]\bruch{1}{8}[/m] mit 0.13 beginnen?
>
> Wie bestimmt man die Anzahl der Ziffern einer
> Gleitpunktzahl, wenn die Ziffer vor dem Komma [m]1[/m] ist, kann
> man sich das denken (bspw. [m]1.22[/m]), aber wie sieht es mit
> Gleitpunktzahlen aus, die eine [m]0[/m] als erste Ziffer haben,
> wird diese dann mitgezählt?
Der Terminus technicus "Gleitpunktzahl" wurde zweifellos in deiner Vorlesung definiert. Steht sicher auch in jedem Lehrbuch zur Numerik.
>
> Bevor ich weiterrechne, würde ich gerne hierzu einen Tipp
> haben?
Ja.
>
> Vielen Dank!
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 16:36 So 08.06.2014 | Autor: | gummibaum |
Wenn ich es auf Anhieb gewusst hätte, würde ich nicht fragen.
Tolle Antwort!
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 18:47 So 08.06.2014 | Autor: | DieAcht |
Hallo,
> Lach... ja, die rechte Seite [mm]\vec[/mm] habe ich nicht mit
> beachtet, dummer Fehler!
> Jetzt habe ich den Lösungsvektor [m]\vec x[/m] mit [m]\vec x = \begin{pmatrix} -72 \\ 90 \end{pmatrix}[/m]
> ermitteln können.
Okay.
> Bei b) soll mit 3-stelligen Gleitpunktzahlen gerechnet
> werden. Also muss man m.E. die Komponenten der Matrix [m]A[/m]
> vorab auf 3 Stellen abrunden.
Annahme: Es geht um das normalisierte Gleitpunktzahlsystem.
Zu einem gegebenen Gleitpunktzahlsystem [mm] F(b,t,e_{\text{min}},e_{\text{max}}) [/mm] mit gerader
Basis [mm] $b\$ [/mm] ist die Abbildung
[mm] rd:\{x\in\IR:x_{\text{min}}\le|x|\le x_{\text{max}}\}\to\IR [/mm]
durch
[mm] rd(x)=\begin{cases} \sigma*(\sum_{k=1}^{t}a_k*b^{-k})b^{e}, & \mbox{falls } a_{t+1}\le\frac{1}{2}b-1 \\ \sigma*(\sum_{k=1}^{t}a_k*b^{-k}+b^{-t})b^{e}, & \mbox{falls } a_{t+1}\ge\frac{1}{2}b \end{cases} [/mm]
für
[mm] x=\sigma*(\sum_{k=1}^{\infty}a_k*b^{-k})b^{e} [/mm]
erklärt.
Dabei heißt [mm] $rd(x)\$ [/mm] der auf [mm] $t\$ [/mm] Stellen gerundeter Wert von [mm] $x\$. [/mm]
Annahme: Zehnerbasis.
Bei dir ist die Basis [mm] $10\$, [/mm] also sollte für
[mm] $a_{t+1}\le [/mm] 4$
abgerundet und analog für
[mm] $a_{t+1}\ge [/mm] 5$
aufgerundet werden.
> Für [m]\bruch{1}{8}[/m] erhalte ich [m]0.125[/m], für [m]\bruch{1}{9}[/m]
> erhalte ich jeweils [m]0.111[/m] und für [m]\bruch{1}{10}[/m] letztlich
> [m]0.1[/m]. Ist das soweit korrekt
Ja, soweit meine Annahmen zutreffen.
> oder muss bei [m]\bruch{1}{9}[/m] mit
> [m]0.11[/m] und bei [m]\bruch{1}{8}[/m] mit 0.13 beginnen?
Nein. Du hast [mm] x\in\IR [/mm] und willst in einem vorgegebenen
Gleitpunktzahlsystem [mm] $F\$rechnen. [/mm] Dazu wird genau genom-
men die obigen Abbildung benutzt. Vorteil: Das Runden
ermöglicht die Abgeschlossenheit bezüglich der Rechen-
operationen in [mm] $F\$.
[/mm]
> Wie bestimmt man die Anzahl der Ziffern einer
> Gleitpunktzahl, wenn die Ziffer vor dem Komma [m]1[/m] ist, kann
> man sich das denken (bspw. [m]1.22[/m]), aber wie sieht es mit
> Gleitpunktzahlen aus, die eine [m]0[/m] als erste Ziffer haben,
> wird diese dann mitgezählt?
Ein einfaches Beispiel zu obigen Annahmen:
[mm] rd(2,115)=rd(0,2115*10)\overset{t=3}{=}0,212*10.
[/mm]
Die erste Ziffer im normalisierten Gleitpunktzahlsystem
ist immer die Null mit einem Komma. Die Null selbst kommt
als Vereinigung dazu, aber das ist hier nicht wichtig.
> Bevor ich weiterrechne, würde ich gerne hierzu einen Tipp
> haben?
>
> Vielen Dank!
Gruß
DieAcht
|
|
|
|