GAMM Rundbrief 2007/Heft 1
GAMM Rundbrief 2007/Heft 1
GAMM Rundbrief 2007/Heft 1
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
28<br />
Krämer<br />
Figure 1. Simulationsergebnisse in single-precision (links) und double-precision (rechts).<br />
Die Abfolge der mathematischen Operationen ist in beiden Fällen identisch.<br />
Sind nun A und R Gleitkommamatrizen, so kann die hinreichende<br />
Bedingung (1) unter Verwendung von gerichtet<br />
gerundeten Gleitkommaoperationen wie folgt nachgewiesen<br />
werden:<br />
setround(down); //Rdg nach unten<br />
C1= R*A-I;<br />
setround(up); //Rdg nach oben<br />
C2= R*A-I;<br />
C= max(abs(C1), abs(C2));<br />
x= allone; //alle x[i]=1<br />
w= (C*x < x) //Rdg nach oben<br />
Hat nun w den Wahrheitswert wahr so ist Bedingung (1)<br />
sicher erfüllt, d. h. die Matrix A ist dann bewiesenermaßen<br />
regulär. Sinnvollerweise sollte der Präkonditionierer R dabei<br />
als Näherung an A -1 gewählt werden.<br />
Bestimmt man C1, C2 und C wie gerade angegeben, so<br />
gilt C1 � RA – I � C2 und damit 0 � |RA – I| = |I – RA|<br />
� C, so dass aus Cx < x erst recht |I – RA| x < x folgt. Es<br />
ist dabei zu beachten, dass eine Umschaltung des Rundungsmodus<br />
mit setround solange wirksam bleibt, bis sie<br />
durch eine erneute Umschaltung modifiziert wird. Dabei<br />
beeinflusst der gewählte Rundungsmodus alle arithmetischen<br />
Grundoperationen. setround(up) bewirkt die Rundung<br />
in Richtung ��, wohingegen setround(down) die<br />
Rundung Richtung �� erzwingt.<br />
<strong>Rundbrief</strong> 1/<strong>2007</strong><br />
Es ist bemerkenswert, dass mit<br />
setround(down)<br />
C1= I- R*A;<br />
setround(up);<br />
C2= I- R*A;<br />
im Allgemeinen weder C1 � I – RA � C2 noch C2 � I –<br />
RA � C1 gelten. Wählt man z.B.<br />
R = ⎛2 0⎞ , A = ⎛6 -7⎞ ,<br />
⎝0 1⎠ ⎝0 20⎠<br />
so berechnet sich C1 und C2 mit einer einstelligen Dezimalarithmetik<br />
(der Leser sollte dies zur Übung einmal per<br />
Hand nachrechnen) zu<br />
C1 = ⎛-9 20⎞ , C2 = ⎛-10 10⎞ .<br />
⎝ 0 -20⎠ ⎝ 0 -10⎠<br />
Offensichtlich ist weder C1 noch C2 mit<br />
I – R · A =<br />
⎛-11 14⎞<br />
⎝ 0 -19⎠<br />
vegleichbar. Das Element C1 12 berechnet sich z.B. zu<br />
down(0-down(2*(-7))=down(0-down(-14))=down<br />
(0-(-20))=down(20)=20. Dabei soll down( ) bedeuten,<br />
dass das exakte (Zwischen-)Ergebnis auf eine Dezimale<br />
nach unten gerichtet gerundet wird, z.B. down(-12)=-20,<br />
down(-300)=-300, down(13)=10, usw.