Kapitel 2 Lineare und nichtlineare Gleichungen - Institut für ...

Kapitel 2 Lineare und nichtlineare Gleichungen - Institut für ... Kapitel 2 Lineare und nichtlineare Gleichungen - Institut für ...

num.math.uni.goettingen.de
von num.math.uni.goettingen.de Mehr von diesem Publisher
28.02.2014 Aufrufe

32 Lineare und nichtlineare Gleichungen ⎡ ⎤ 1 −2 3 3 Qhat, Rhat := 2 −1 ⎢ 3 3 , ⎥ ⎣ 2 2 ⎦ 3 3 > Equal(Qhat.Rhat,A); true 3 6 0 15 > (Q,R):=QRDecomposition(A,fullspan); ⎡ ⎤ 1 −2 2 3 3 3 ⎡ Q, R := 2 −1 −2 3 6 ⎢ 3 3 3 , ⎣ 0 15 ⎥ ⎣ 2 2 1 ⎦ 0 0 3 3 3 > Equal(Q.R,A); true Im ersten Fall wird die sogenannte reduzierte QR-Zerlegung berechnet, also eine Matrix ˆQ ∈ R m×n (in unserem Beispiel ist m =3und n =2), deren Spalten ein Orthonormalsystem im R m bilden, für die also ˆQ T ˆQ = I, sowie eine obere Dreiecksmatrix ˆR ∈ R n×n mit A = ˆQ ˆR. Im zweiten Fall wird die oben beschriebene volle QR-Zerlegung berechnet. Allerdings ist dies nicht möglich, wenn A Gleitkommazahlen enthält. Und nun noch die entsprechenden Resultate mit MATLAB: A=[1,-8;2,-1;2,14]; format long; [Q,R]=qr(A) liefert eine volle QR-Zerlegung: ⎛ −0.33333333333333 0.66666666666667 0.66666666666667 ⎞ Q = ⎝ −0.66666666666667 0.33333333333333 −0.66666666666667 ⎠ −0.66666666666667 −0.66666666666667 0.33333333333333 und ⎛ −3 −6 ⎞ R = ⎝ 0 −15 ⎠ . 0 0 Eine reduzierte (economy size) QR-Zerlegung erhält man durch [Qhat,Rhat]=qr(A,0) nämlich ⎛ ˆQ = ⎝ −0.33333333333333 0.66666666666667 −0.66666666666667 0.33333333333333 −0.66666666666667 −0.66666666666667 ⎞ ⎤ ⎦ ⎠ , ˆR = −3 −6 0 −15 .

2.1 Lineare Gleichungssysteme 33 Es gibt diverse andere Optionen, auf die aber nicht eingegangen werden soll. Übrigens erkennt man, dass auch eine QR-Zerlegung nicht eindeutig bestimmt ist. Dies ist erst dann der Fall, wenn man die Vorzeichen der Diagonalelemente von R vorschreibt. ✷ • Cholesky-Zerlegung: In Maple kann man mit der Funktion LUDecomposition und einer speziellen Option die Cholesky-Zerlegung einer symmetrischen, positiv definiten Matrix bestimmen. In MATLAB gibt es die Funktion chol. Wirgeben ein Beispiel. Beispiel: Sei ⎛ A := ⎝ Zunächst gehen wir auf Maple ein: > with(LinearAlgebra): 4 −10 2 −10 34 −17 2 −17 18 ⎞ ⎠ . > A:=Matrix([[4,-10,2],[-10,34,-17],[2,-17,18]]): > L:=LUDecomposition(A,method=Cholesky); ⎡ ⎤ 2 0 0 L := ⎣ −5 3 0 ⎦ 1 −4 1 > Equal(L.Transpose(L),A); true Bei der Anwendung der Funktion chol in MATLAB muss man beachten, dass R=chol(A) eine obere Dreiecksmatrix mit R T R = A liefert. Durch A=[4,-10,2;-10,34,-17;2,-17,18];format long; L=chol(A)’ erhält man dieselbe Matrix L wie oben. Das ist auch kein Wunder, denn die Cholesky-Zerlegung ist eindeutig bestimmt. ✷ 2.1.3 LU-, QR- und Cholesky-Zerlegung: Existenz und numerische Berechnung Sei A ∈ R n×n nichtsingulär. Die Idee des Gaußschen Eliminationsverfahrens ohne Spaltenpivotsuche (welches nicht immer durchführbar ist!) zur Berechnung einer Zerlegung A = LU mit einer unteren Dreiecksmatrix L ∈ R n×n mit Einsen in der Diagonalen und einer oberen Dreiecksmatrix U ∈ R n×n besteht einfach darin, dass A in n − 1 Schritten durch Multiplikation mit sogenannten Gaußschen Matrizen in eine obere Dreiecksmatrix transformiert wird. Diese wohlbekannte Idee wollen wir an einem Beispiel demonstrieren.

2.1 <strong>Lineare</strong> Gleichungssysteme 33<br />

Es gibt diverse andere Optionen, auf die aber nicht eingegangen werden soll.<br />

Übrigens erkennt man, dass auch eine QR-Zerlegung nicht eindeutig bestimmt<br />

ist. Dies ist erst dann der Fall, wenn man die Vorzeichen der Diagonalelemente<br />

von R vorschreibt.<br />

✷<br />

• Cholesky-Zerlegung: In Maple kann man mit der Funktion LUDecomposition<br />

<strong>und</strong> einer speziellen Option die Cholesky-Zerlegung einer symmetrischen, positiv<br />

definiten Matrix bestimmen. In MATLAB gibt es die Funktion chol. Wirgeben<br />

ein Beispiel.<br />

Beispiel: Sei<br />

⎛<br />

A := ⎝<br />

Zunächst gehen wir auf Maple ein:<br />

> with(LinearAlgebra):<br />

4 −10 2<br />

−10 34 −17<br />

2 −17 18<br />

⎞<br />

⎠ .<br />

> A:=Matrix([[4,-10,2],[-10,34,-17],[2,-17,18]]):<br />

> L:=LUDecomposition(A,method=Cholesky);<br />

⎡<br />

⎤<br />

2 0 0<br />

L := ⎣ −5 3 0 ⎦<br />

1 −4 1<br />

> Equal(L.Transpose(L),A);<br />

true<br />

Bei der Anwendung der Funktion chol in MATLAB muss man beachten, dass<br />

R=chol(A) eine obere Dreiecksmatrix mit R T R = A liefert. Durch<br />

A=[4,-10,2;-10,34,-17;2,-17,18];format long;<br />

L=chol(A)’<br />

erhält man dieselbe Matrix L wie oben. Das ist auch kein W<strong>und</strong>er, denn die<br />

Cholesky-Zerlegung ist eindeutig bestimmt.<br />

✷<br />

2.1.3 LU-, QR- <strong>und</strong> Cholesky-Zerlegung: Existenz <strong>und</strong> numerische<br />

Berechnung<br />

Sei A ∈ R n×n nichtsingulär. Die Idee des Gaußschen Eliminationsverfahrens ohne Spaltenpivotsuche<br />

(welches nicht immer durchführbar ist!) zur Berechnung einer Zerlegung<br />

A = LU mit einer unteren Dreiecksmatrix L ∈ R n×n mit Einsen in der Diagonalen <strong>und</strong><br />

einer oberen Dreiecksmatrix U ∈ R n×n besteht einfach darin, dass A in n − 1 Schritten<br />

durch Multiplikation mit sogenannten Gaußschen Matrizen in eine obere Dreiecksmatrix<br />

transformiert wird. Diese wohlbekannte Idee wollen wir an einem Beispiel demonstrieren.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!