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

30 Lineare und nichtlineare Gleichungen • Cholesky-Zerlegung: Sei A ∈ R n×n symmetrisch und positiv definit. Wie wir zeigen werden, besitzt A dann eine Cholesky-Zerlegung, es existiert also eine untere Dreiecksmatrix L ∈ R n×n mit positiven Diagonalelementen derart, dass A = LL T .Umgekehrtgiltnatürlich:IstA = LL T mit einer nichtsingulären Matrix L ∈ R n×n ,soistA symmetrisch und positiv definit. Ist eine Cholesky- Zerlegung A = LL T der symmetrischen, positiv definiten Matrix A bekannt, so kann ein lineares Gleichungssystem Ax = b wieder durch Vorwärts- und Rückwärtseinsetzen gelöst werden: Zunächst man y = L T x aus Ly = b durch Vorwärtseinsetzen, danach die gesuchte Lösung x aus L T x = y durch Rückwärtseinsetzen. Jetzt wollen wir kurz auf die Möglichkeiten von Maple und MATLAB zur Berechnung dieser Zerlegungen eingehen. • LU-Zerlegung: Im Package LinearAlgebra von Maple gibt es zur LU-Zerlegung die Funktion LUDecomposition, in MATLAB die Funktion lu. Hilfenzudiesen Funktionen erhält man durch ?LUDecomposition bzw. help lu. Es ist wichtig sich zu informieren, weil der Gebrauch des Begiffes LU-Zerlegung nicht ganz einheitlich ist. In Maple werden z. B. durch (P,L,U)=LinearAlgebra[LUDecomposition](A); eine Permutationsmatrix P ,eineuntereDreiecksmatrixL mit Einsen in der Diagonalen und eine obere Dreiecksmatrix U mit PLU = A berechnet, in MATLAB erhält man durch [L,U,P]=lu(A) eine Zerlegung PA = LU mit Matrizen P, L, U, die die üblichen Eigenschaften haben. Beispiel: Sei A := ⎛ ⎜ ⎝ 0 1 1 −3 −2 3 1 4 0 0 0 1 3 1 0 0 ⎞ ⎟ ⎠ . Zu berechnen sei eine LU-Zerlegung. Zunächst verwenden wir Maple: > with(LinearAlgebra): > A:=Matrix([[0,1,1,-3],[-2,3,1,4],[0,0,0,1],[3,1,0,0]]): > (P,L,U):=LUDecomposition(A); ⎡ ⎤ ⎡ ⎡ ⎤ 1 0 0 0 0 1 0 0 P, L, U := ⎢ 1 0 0 0 ⎥ ⎣ 0 0 0 1 ⎦ , 0 1 0 0 −3 11 ⎢ 1 0 ⎥ ⎣ 2 2 ⎦ , ⎢ ⎣ 0 0 1 0 0 0 0 1 > P:=Transpose(P): −2 3 1 4 0 1 1 −3 0 0 −4 45 2 0 0 0 1 ⎤ ⎥ ⎦

2.1 Lineare Gleichungssysteme 31 > Defect:=P.A-L.U; Und nun noch MATLAB: Defect := ⎡ ⎢ ⎣ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 A=[0,1,1,-3;-2,3,1,4;0,0,0,1;3,1,0,0]; format long; [L,U,P]=lu(A) ergibt ⎛ L = ⎜ ⎝ ferner ⎛ U = und ⎜ ⎝ 1.00000000000000 0 0 0 −0.66666666666667 1.00000000000000 0 0 0 0.27272727272727 1.00000000000000 0 0 0 0 1.00000000000000 3.00000000000000 1.00000000000000 0 0 0 3.66666666666667 1.00000000000000 4.00000000000000 0 0 0.72727272727273 −4.09090909090909 0 0 0 1.00000000000000 P = ⎛ ⎜ ⎝ 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 ehält man durch P*A-L*U die Nullmatrix. An diesem Beispiel erkennt man auch, dass P, L, U keineswegs eindeutig bestimmt sind. ✷ • QR-Zerlegung: Im Package LinearAlgebra von Maple gibt es zur QR-Zerlegung die Funktion QRDecomposition, in MATLAB die Funktion qr. Wiedersollteman sich durch die entsprechenden Fragen über den Gebrauch und die Optionen der Funktionen informieren. Beispiel: Sei ⎛ A := ⎝ 1 −8 2 −1 2 14 Zu berechnen sei eine QR-Zerlegung. Zunächst verwenden wir Maple: > with(LinearAlgebra): > A:=Matrix([[1,-8],[2,-1],[2,14]]): > (Qhat,Rhat):=QRDecomposition(A); ⎤ ⎥ ⎦ ⎞ ⎟ ⎠ . ⎞ ⎠ . ⎞ ⎟ ⎠ , ⎞ ⎟ ⎠

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

> Defect:=P.A-L.U;<br />

Und nun noch MATLAB:<br />

Defect :=<br />

⎡<br />

⎢<br />

⎣<br />

0 0 0 0<br />

0 0 0 0<br />

0 0 0 0<br />

0 0 0 0<br />

A=[0,1,1,-3;-2,3,1,4;0,0,0,1;3,1,0,0];<br />

format long;<br />

[L,U,P]=lu(A)<br />

ergibt<br />

⎛<br />

L =<br />

⎜<br />

⎝<br />

ferner<br />

⎛<br />

U =<br />

<strong>und</strong><br />

⎜<br />

⎝<br />

1.00000000000000 0 0 0<br />

−0.66666666666667 1.00000000000000 0 0<br />

0 0.27272727272727 1.00000000000000 0<br />

0 0 0 1.00000000000000<br />

3.00000000000000 1.00000000000000 0 0<br />

0 3.66666666666667 1.00000000000000 4.00000000000000<br />

0 0 0.72727272727273 −4.09090909090909<br />

0 0 0 1.00000000000000<br />

P =<br />

⎛<br />

⎜<br />

⎝<br />

0 0 0 1<br />

0 1 0 0<br />

1 0 0 0<br />

0 0 1 0<br />

ehält man durch P*A-L*U die Nullmatrix. An diesem Beispiel erkennt man auch,<br />

dass P, L, U keineswegs eindeutig bestimmt sind.<br />

✷<br />

• QR-Zerlegung: Im Package LinearAlgebra von Maple gibt es zur QR-Zerlegung<br />

die Funktion QRDecomposition, in MATLAB die Funktion qr. Wiedersollteman<br />

sich durch die entsprechenden Fragen über den Gebrauch <strong>und</strong> die Optionen der<br />

Funktionen informieren.<br />

Beispiel: Sei<br />

⎛<br />

A := ⎝<br />

1 −8<br />

2 −1<br />

2 14<br />

Zu berechnen sei eine QR-Zerlegung. Zunächst verwenden wir Maple:<br />

> with(LinearAlgebra):<br />

> A:=Matrix([[1,-8],[2,-1],[2,14]]):<br />

> (Qhat,Rhat):=QRDecomposition(A);<br />

⎤<br />

⎥<br />

⎦<br />

⎞<br />

⎟<br />

⎠ .<br />

⎞<br />

⎠ .<br />

⎞<br />

⎟<br />

⎠ ,<br />

⎞<br />

⎟<br />

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!