26

Das CG-Verfahren - math.tu-berlin.de · Das Energiefunktional Sei 0 A = AT 2 R n; n eine symmetrische und positiv-definite Matrix. Sei b 2 R n. Dann ist das CG-Verfahren (angewendet

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Das CG-Verfahren - math.tu-berlin.de · Das Energiefunktional Sei 0 A = AT 2 R n; n eine symmetrische und positiv-definite Matrix. Sei b 2 R n. Dann ist das CG-Verfahren (angewendet
Page 2: Das CG-Verfahren - math.tu-berlin.de · Das Energiefunktional Sei 0 A = AT 2 R n; n eine symmetrische und positiv-definite Matrix. Sei b 2 R n. Dann ist das CG-Verfahren (angewendet

Das CG-Verfahren

Numerische Mathematik 1WS 2011/12

2/26

Page 3: Das CG-Verfahren - math.tu-berlin.de · Das Energiefunktional Sei 0 A = AT 2 R n; n eine symmetrische und positiv-definite Matrix. Sei b 2 R n. Dann ist das CG-Verfahren (angewendet

Das Energiefunktional

Sei 0 � A = AT 2 Rn;n eine symmetrische und positiv-definiteMatrix. Sei b 2 Rn.

Dann ist das CG-Verfahren (angewendet auf A und b) engverbunden mit dem Energiefunktional f : Rn ! R gegebendurch

f (x) := 12xT Ax � bT x fur alle x 2 Rn:

3/26

Page 4: Das CG-Verfahren - math.tu-berlin.de · Das Energiefunktional Sei 0 A = AT 2 R n; n eine symmetrische und positiv-definite Matrix. Sei b 2 R n. Dann ist das CG-Verfahren (angewendet

Hinreichende OptimalitatsbedingungAnalysis II: Eine Funktion f : Rn ! R hat in x� ein lokalesExtremum, falls

rf (x�) = 0

und

D2f (x�) � 0:

Bei obigem Energiefunktional ist

rf (x) = Ax � b

undD2f (x) = A � 0;

d.h. die Losung x� des linearen Gleichungssystems Ax� = b istdas eindeutige (sogar globale) Extremum von f .

4/26

Page 5: Das CG-Verfahren - math.tu-berlin.de · Das Energiefunktional Sei 0 A = AT 2 R n; n eine symmetrische und positiv-definite Matrix. Sei b 2 R n. Dann ist das CG-Verfahren (angewendet

Das Residuum

Somit ist der Gradient and der Stelle x 2 Rn gleich demResiduum:

rf (x) = Ax � b =: r

5/26

Page 6: Das CG-Verfahren - math.tu-berlin.de · Das Energiefunktional Sei 0 A = AT 2 R n; n eine symmetrische und positiv-definite Matrix. Sei b 2 R n. Dann ist das CG-Verfahren (angewendet

Die Kondition

Ist 0 � A = AT 2 Rn;n so gibt es orthogonales U 2 Rn;n, sodass

UT AU =

264�1

. . .�n

375

die Diagonalmatrix der Eigenwerte �1 � : : : � �n > 0 ist.

Dies ist gleichzeitig eine Singularwertzerlegung.

Damit ist

�2(A) = kAk2 � kA�1k2 = �1 �1�n

=�1

�n:

6/26

Page 7: Das CG-Verfahren - math.tu-berlin.de · Das Energiefunktional Sei 0 A = AT 2 R n; n eine symmetrische und positiv-definite Matrix. Sei b 2 R n. Dann ist das CG-Verfahren (angewendet

Matlab-Codefunction plot_energy_functional(A, b)

H = 1.5; h = 0.04; x1 = -H:h:H; x2 = -H:h:H;

[X1, X2] = meshgrid(x1, x2);

for i=1: length(x1)

for j=1: length(x2)

x = [X1(i,j); X2(i,j)];

Z(i,j) = (1/2)*(x'*A*x) - b'*x;

if( Z(i,j)>3 )

Z(i,j) = inf;

end

end

end

surfc(X1, X2 , Z); % und dann contour statt surfc7/26

Page 8: Das CG-Verfahren - math.tu-berlin.de · Das Energiefunktional Sei 0 A = AT 2 R n; n eine symmetrische und positiv-definite Matrix. Sei b 2 R n. Dann ist das CG-Verfahren (angewendet

gut konditioniertes Beispiel>> plot energy functional(A, b) fur

A =

�2

1:9

�; b =

�00

−1

−0.5

0

0.5

1

−1

−0.5

0

0.5

1

0

0.5

1

1.5

2

8/26

Page 9: Das CG-Verfahren - math.tu-berlin.de · Das Energiefunktional Sei 0 A = AT 2 R n; n eine symmetrische und positiv-definite Matrix. Sei b 2 R n. Dann ist das CG-Verfahren (angewendet

schlecht konditioniertes Beispiel>> plot energy functional(A, b) fur

A =

�7

1

�; b =

�00

−1

−0.5

0

0.5

1

−1

−0.5

0

0.5

1

0

0.5

1

1.5

2

2.5

3

3.5

4

9/26

Page 10: Das CG-Verfahren - math.tu-berlin.de · Das Energiefunktional Sei 0 A = AT 2 R n; n eine symmetrische und positiv-definite Matrix. Sei b 2 R n. Dann ist das CG-Verfahren (angewendet

Contour-Plot>> plot energy functional(A, b) fur

A =

�7

1

�; b =

�00

−1.5 −1 −0.5 0 0.5 1 1.5−1.5

−1

−0.5

0

0.5

1

1.5

10/26

Page 11: Das CG-Verfahren - math.tu-berlin.de · Das Energiefunktional Sei 0 A = AT 2 R n; n eine symmetrische und positiv-definite Matrix. Sei b 2 R n. Dann ist das CG-Verfahren (angewendet

Contour-Plot>> plot energy functional(A, b) fur

A =

�4 33 4

��

�7

1

�; b =

�00

−1.5 −1 −0.5 0 0.5 1 1.5−1.5

−1

−0.5

0

0.5

1

1.5

11/26

Page 12: Das CG-Verfahren - math.tu-berlin.de · Das Energiefunktional Sei 0 A = AT 2 R n; n eine symmetrische und positiv-definite Matrix. Sei b 2 R n. Dann ist das CG-Verfahren (angewendet

Contour-Plot>> plot energy functional(A, b) fur

A =

�4 33 4

��

�7

1

�; b =

�54

−1.5 −1 −0.5 0 0.5 1 1.5−1.5

−1

−0.5

0

0.5

1

1.5

12/26

Page 13: Das CG-Verfahren - math.tu-berlin.de · Das Energiefunktional Sei 0 A = AT 2 R n; n eine symmetrische und positiv-definite Matrix. Sei b 2 R n. Dann ist das CG-Verfahren (angewendet

Verfahren des steilsten AbstiegsAusgehend von der aktuellen Position xk bewegt man sich indie Richtung des steilsten Abstiegs:

�rf (xk ) = �(Axk � b)

xk

−1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8−1

−0.8

−0.6

−0.4

−0.2

0

0.2

0.4

0.6

0.8

13/26

Page 14: Das CG-Verfahren - math.tu-berlin.de · Das Energiefunktional Sei 0 A = AT 2 R n; n eine symmetrische und positiv-definite Matrix. Sei b 2 R n. Dann ist das CG-Verfahren (angewendet

Verfahren des steilsten AbstiegsMit der Notation

rk := rf (xk ) = Axk � b

sucht man also die nachste Iterierte in der Form

xk+1 = xk + �k rk :

xk

−1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8−1

−0.8

−0.6

−0.4

−0.2

0

0.2

0.4

0.6

0.8

14/26

Page 15: Das CG-Verfahren - math.tu-berlin.de · Das Energiefunktional Sei 0 A = AT 2 R n; n eine symmetrische und positiv-definite Matrix. Sei b 2 R n. Dann ist das CG-Verfahren (angewendet

Verfahren des steilsten Abstiegs

Um ein xk+1 zu finden, sodass f (xk+1) moglichst klein wirdmuss dann

0 = rTk+1rk

= (Axk+1 � b)T rk

= (Axk + �kArk � b)T rk

= (rk + �kArk )T rk = krkk

22 + �k rT

k Ark

sein, d.h. es muss

�k = �krkk

22

rTk Ark

sein.

15/26

Page 16: Das CG-Verfahren - math.tu-berlin.de · Das Energiefunktional Sei 0 A = AT 2 R n; n eine symmetrische und positiv-definite Matrix. Sei b 2 R n. Dann ist das CG-Verfahren (angewendet

Verfahren des steilsten AbstiegsMan fuhrt also den Schritt

xk+1 = xk + �k rk ; mit �k = �krkk

22

rTk Ark

:

xk

xk+1

−1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8−1

−0.8

−0.6

−0.4

−0.2

0

0.2

0.4

0.6

0.8

16/26

Page 17: Das CG-Verfahren - math.tu-berlin.de · Das Energiefunktional Sei 0 A = AT 2 R n; n eine symmetrische und positiv-definite Matrix. Sei b 2 R n. Dann ist das CG-Verfahren (angewendet

Verfahren des steilsten AbstiegsDas Verfahren des steilsten Abstiegs:

xk+1 = xk + �k rk ; mit �k = �krkk

22

rTk Ark

:

−1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8−1

−0.8

−0.6

−0.4

−0.2

0

0.2

0.4

0.6

0.8

17/26

Page 18: Das CG-Verfahren - math.tu-berlin.de · Das Energiefunktional Sei 0 A = AT 2 R n; n eine symmetrische und positiv-definite Matrix. Sei b 2 R n. Dann ist das CG-Verfahren (angewendet

Verfahren des steilsten AbstiegsMit großerer Konditionszahl von A

−1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8−1

−0.8

−0.6

−0.4

−0.2

0

0.2

0.4

0.6

0.8

ungewolltes Zick-Zack-Verhalten18/26

Page 19: Das CG-Verfahren - math.tu-berlin.de · Das Energiefunktional Sei 0 A = AT 2 R n; n eine symmetrische und positiv-definite Matrix. Sei b 2 R n. Dann ist das CG-Verfahren (angewendet

Verfahren des steilsten AbstiegsBei noch großerer Konditionszahl von A

−1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8−1

−0.8

−0.6

−0.4

−0.2

0

0.2

0.4

0.6

0.8

ungewolltes Zick-Zack-Verhalten19/26

Page 20: Das CG-Verfahren - math.tu-berlin.de · Das Energiefunktional Sei 0 A = AT 2 R n; n eine symmetrische und positiv-definite Matrix. Sei b 2 R n. Dann ist das CG-Verfahren (angewendet

Fehlerabschatzung

Fur das Verfahren des steilsten Abstiegs gilt dieFehlerabschatzung:

kxk � x�kA �

��2(A)� 1�2(A) + 1

�k

kx0 � x�kA

20/26

Page 21: Das CG-Verfahren - math.tu-berlin.de · Das Energiefunktional Sei 0 A = AT 2 R n; n eine symmetrische und positiv-definite Matrix. Sei b 2 R n. Dann ist das CG-Verfahren (angewendet

Abhilfe: CG-VerfahrenWahle Suchrichtungen dk fur die Iteration

xk+1 = xk + �kdk ;

die A-konjugiert sind, d.h.

dTk Adj = 0;

fur alle k 6= j .

Auch vom Fehlerek := xk � x�;

wobei x� := A�1b die Losung von Ax = b (d.h. das Minimumvon f ) ist fordert man A-Konjugiertheit zur vorherigenSuchrichtung

dTk Aek+1 = 0:

21/26

Page 22: Das CG-Verfahren - math.tu-berlin.de · Das Energiefunktional Sei 0 A = AT 2 R n; n eine symmetrische und positiv-definite Matrix. Sei b 2 R n. Dann ist das CG-Verfahren (angewendet

Herleitung des CG-Verfahrens

... jede Menge komplizierte Formeln ...

wie in der Vorlesung, vgl. auch[Jonathan Richard Shewchuk, An Introduction to the ConjugateGradient Method Without the Agonizing Pain]

22/26

Page 23: Das CG-Verfahren - math.tu-berlin.de · Das Energiefunktional Sei 0 A = AT 2 R n; n eine symmetrische und positiv-definite Matrix. Sei b 2 R n. Dann ist das CG-Verfahren (angewendet

CG-VerfahrenDer Algorithmus zu 0 � A = AT 2 Rn;n und b 2 Rn:

Setze r0 := �b, x0 := 0 und k := 0(a) Wenn krkk2 � maxres, so Abbruch(b) Wenn krkk2 > maxres

� dk :=

(�rk + �k�1dk�1; mit �k�1 :=

krkk22

krk�1k22

wenn k � 1

�r0; wenn k = 0

� xk+1 := xk + �k dk mit �k :=krkk

22

dTk Adk

� rk+1 := rk + �k Adk

� k := k + 1

� Gehe zu (a)

aus [Plato, Numerische Mathematik kompakt]

23/26

Page 24: Das CG-Verfahren - math.tu-berlin.de · Das Energiefunktional Sei 0 A = AT 2 R n; n eine symmetrische und positiv-definite Matrix. Sei b 2 R n. Dann ist das CG-Verfahren (angewendet

CG-Verfahren

−1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8−1

−0.8

−0.6

−0.4

−0.2

0

0.2

0.4

0.6

0.8

24/26

Page 25: Das CG-Verfahren - math.tu-berlin.de · Das Energiefunktional Sei 0 A = AT 2 R n; n eine symmetrische und positiv-definite Matrix. Sei b 2 R n. Dann ist das CG-Verfahren (angewendet

Fehlerabschatzung

Fur das CG-Verfahren gilt die Fehlerabschatzung:

kxk � x�kA � 2

p�2(A)� 1p�2(A) + 1

!k

kx0 � x�kA

25/26

Page 26: Das CG-Verfahren - math.tu-berlin.de · Das Energiefunktional Sei 0 A = AT 2 R n; n eine symmetrische und positiv-definite Matrix. Sei b 2 R n. Dann ist das CG-Verfahren (angewendet

Abschließende Bemerkungen

� Das CG-Verfahren ermoglicht eine sog. kurze Rekursion,d.h. jeder Schritt k ist gleich teuer. Bei GMRES ist dasnicht der Fall.

� Die A-orthogonalitat der Suchrichtungen geht durchRundungsfehler verloren.

26/26