22.12.2012 Aufrufe

GAMM Rundbrief 2007/Heft 1

GAMM Rundbrief 2007/Heft 1

GAMM Rundbrief 2007/Heft 1

MEHR ANZEIGEN
WENIGER ANZEIGEN

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.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!