Tools
Mathematik: Das Konjugierte-Gradienten-Verfahren (1. Teil)
Released by matroid on Mi. 11. März 2009 18:52:26 [Statistics] [Comments]
Written by gaussmath - 23191 x read [Outline] Printable version Printer-friendly version -  Choose language   
Mathematik

\(\begingroup\)

Das Konjugierte-Gradienten-Verfahren
mit exakter Arithmetik
bei quadratischen Zielfunktionen

Bild

1 Einleitung

Das Konjugierte-Gradienten-Verfahren (kurz: cg-Verfahren, cg Abk. für conjugated gradients) ist zunächst ein Abstiegsverfahren zur Minimierung konvexer, quadratischer Funktionen. Dieses zeigt eine deutliche Verbesserung gegenüber dem Gradientenverfahren, weil es, zumindest für quadratische Zielfunktionen, in endlich vielen Schritten zum Minimalpunkt gelangt. Unter zur Hilfenahme von Präkonditionierungstechniken (auch: Vorkonditionierung genannt) ist das cg-Verfahren auch auf dünn besetzte, lineare Gleichungssysteme mit symmetrisch, positiv definiten Matrizen anwendbar. Darauf möchte ich jedoch erst im zweiten Teil der Artikelreihe eingehen. Das cg-Verfahren gehört zur Klasse der Krylow-Unterraum-Verfahren. Es wurde von Hestenes und Stiefel (1952) veröffentlicht. Allerdings ist das Verfahren als direkter Löser aufgrund von Instabilität bei Rundungsfehlern ungeeignet. Anfang der 70er Jahre des letzten Jahrhunderts hat Reid Präkonditionierungstechniken entwickelt, um die Stabilität des Verfahrens zu verbessern, was dazu führte, dass das cg-Verfahren als iteratives Lösungsverfahren wieder interessant wurde.

Ich möchte nicht nur die Theorie mit den entsprechenden Sätzen und Beweisen vorstellen, sondern auch am Ende des Artikels ein Beispiel durchrechnen. Diesbezüglich werde ich insbesondere auf zwei für numerische Rechnungen nützliche Formeln eingehen. Im zweiten Teil der Artikelreihe werde ich dann das Konvergenzverhalten des Verfahrens bei Rundungsfehlern diskutieren und die sog. Präkonditionierungstechniken erläutern.

2 Die Idee des Verfahrens

Die Idee des Verfahrens besteht darin, dass das Optimieren einer quadratischen Funktion äquivalent damit ist, ein lineares Gleichungssystem mit einer symmetrisch, positiv definiten Matrix zu lösen. Sei f(x) =1/2*x^T*A*x-b*x+c, A \el \IR^(n\cross n) symmetrisch, positiv definit. Der Gradient der partiell differenzierbaren Funktion f ist somit grad(f(x))=A*x-b. Der Ansatz grad(f(x))=0 zur Bestimmung der Extremstelle führt unmittelbar zu dem LGS A*x=b.

3 Die konjugierten Richtungen

Die konjugierten Richtungen sind entscheidend dafür, dass das cg-Verfahren im Vergleich mit dem Gradientenverfahren nach n Iterationsschritten den Minimalpunkt einer quadratischen Funktion erreicht. Um dies für einen beliebigen Startwert zu erreichen, ist es unabdingbar, dass die konjugierten Richtungen allesamt linear unabhängig sind. Definieren wir nun zuvor die Eigenschaft zweier Vektoren v und w, welche konjugiert bezüglich einer symmetrisch, positiv definiten Matrix A sind. \ Definition__: v,w!=0 \el \IR^n heißen konjugiert bzgl. einer symmetrisch, positiv definiten Matrix A \el \IR^(n\cross n), wenn v^T*A*w=0. Man nennt dies auch kurz A-konjugiert. Wenn A die Einheitsmatrix ist, spricht man von orthogonalen Vektoren. Insofern liegt hier eine Verallgemeinerung des Begriffs der Orthogonalität vor. Wie bei orthogonalen Vektoren gilt die lineare Unabhängigkeit. \ Lemma__: Seien menge(r_0,...,r_k) \el \IR^n, k<=n-1 paarweise A\-konjugiert und A symmetrisch, positiv definit, dann ist menge(r_0,...,r_k) linear unabhängig. Beweis__: Aus summe(\a_i*r_i,i=0,k)=0 erhält man für ein beliebiges l mit 0<=l<=k die Gleichung 0=r_l^T*A*summe(\a_i*r_i,i=0,k)=r_l^T*A*\a_l*r_l=\a_l*r_l^T*A*r_l. Da aber r_l^T*A*r_l>0 => \a_l=0. Desweiteren wurde l beliebig gewählt, somit folgt die Behauptung. Die konjugierten Richtungen, deren Bedeutung erst dann richtig klar wird, wenn wir im folgenden Kapitel den eigentlichen Algorithmus besprechen, werden rekursiv berechnet. \ Satz__: Sei f(x) =1/2*x^T*A*x-b*x, A positiv definit und x_(k+1)=x_k+\alpha_k*r_k, wobei \a_k=-(A*x_k-b)^T*r_k/norm(r_(k))_A^2 . Wir setzen norm(r_(k))_A^2 :=r_k^T*A*r_k. Mit dem Startwert r_0:=-grad(f(x_0)) definieren wir rekursiv für k=1,...,n-1 mit r_k := -grad(f(x_k))+\b_(k-1)*r_(k-1), wobei \b_(k-1)=(grad(f(x_k))*A*r_(k-1))/norm(r_(k-1))_A^2 . Dann gilt: (1) span{ grad(f(x_0)),..., grad(f(x_k)) } = span{ r_0,...,r_k } für k=0,...,n-1. (2) { r_0,...,r_k } sind paarweise A\-konjugiert. Beweis__: Der Beweis erfolgt jeweils durch vollständige Induktion nach k=0,...,n-1. (1) Es ist offensichtlich span{ grad(f(x_0)) } = span{ r_0 } und somit die Behauptung für k = 0 wahr. Die Behauptung sei wahr für k^\* = 0,...,k. Wir rechnen nach, dass sie dann auch für k^\*= k+1 gilt: span{ grad(f(x_0)),..., grad(f(x_(k+1))) } = span{ r_0,..., r_k, grad(f(x_(k+1))) } = span{r_0,...,r_k, -r_(k+1)+\b_k*r_k } = span{r_0,...,r_(k+1) }. (2) Für k = 0 ist nichts zu zeigen. Seien { r_0,...,r_k } paarweise A\-konjugiert (Induktionsvoraussetzung). Zu zeigen ist: r_(k+1)^T*A*r_j=0 für alle j=0,..,k. Für j=k gilt r_(k+1)^T*A*r_k=(-grad(f(x_(k+1)))+\b_k*r_k)^T*A*r_k \ \=-grad(f(x_(k+1)))*A*r_k+\b_k*norm(r_(k-1))_A^2 \ \=-grad(f(x_(k+1)))*A*r_k+grad(f(x_(k+1)))*A*r_k=0. Für 0<=j

4 Konvergenz des Verfahrens mit exakter Arithmetik

Nun folgt ein wichtiger Satz über das Konvergenzverhalten des cg-Verfahrens. Dieser Satz bildet den Kern des Artikels. Ich möchte im Folgenden auch einen Beweis dazu liefern. Der Satz besagt, dass das Verfahren nach einer endlichen Anzahl von Schritten, nämlich höchstens n, das Minimum einer quadratischen Funktion erreicht. Ich finde das bemerkenswert, dass eine geschickte Anpassung der Richtungen in jedem Schritt genau das bewirkt. Wir haben es also im direkten Vergleich mit dem (Standard-) Gradientenverfahren mit einem exakten Verfahren zu tun, wenn die Arithmetik exakt ist. \ Satz__: Sei f(x) =1/2*x^T*A*x-b*x, A \el \IR^(n\cross n) symmetrisch, positiv definit, und menge(r_0,...,r_(n-1)) seien paarweise bezüglich A konjugiert. Sei x_0 der Startpunkt der Iteration \ \ x_(k+1)=x_k+\alpha_k*r_k, wobei \a_k=-(A*x_k-b)^T*r_k/norm(r_(k))_A^2 \die exakte Schrittweite ist. Dann ist nach n Iterationsschritten der Minimalpunkt x^\* von f erreicht. Beweis__: In Kapitel 2 haben wir gezeigt, dass die konjugierten Richtungen r_k linear unabhängig sind. Ein beliebiger Startvektor x_0 kann somit als Linearkombination der Vektoren r_k für k=0,...,n-1 dargestellt werden: x_0=summe(\gamma_k*r_k,k=0,n-1) mit \gamma_k=x_0^T*A*r_k/norm(r_k)_A^2 und x_1=x_0+\alpha_0*r_0 x_2=x_1+\alpha_1*r_1=x_0+\alpha_0*r_0+\alpha_1*r_1 ... x_n=x_0+summe(\a_k*r_k,k=0,n-1)=summe((\gamma_k+\a_k)*r_k,k=0,n-1) Nun setzt man \gamma_k und \alpha_k in die Summe ein: x_n=summe((x_0^T*A*r_k/norm(r_k)_A^2-(A*x_k-b)^T*r_k/norm(r_(k))_A^2)*r_k,k=0,n-1) \ =summe(1/norm(r_k)_A^2*(x_0^T*A*r_k-(A*x_k-b)^T*r_k)*r_k,k=0,n-1) \ =summe(1/norm(r_k)_A^2*(x_0^T*A*r_k-x_k^T*A*r_k+b^T*r_k)*r_k,k=0,n-1) \ =summe(1/norm(r_k)_A^2*((x_0-x_k)^T*A*r_k+b^T*r_k)*r_k,k=0,n-1) \ =summe(1/norm(r_k)_A^2*((summe(\a_j*r_j,j=0,k-1))^T*A*r_k+b^T*r_k)*r_k,k=0,n-1) \ =summe(1/norm(r_k)_A^2*(b^T*r_k)*r_k,k=0,n-1) Es gilt jedoch A*x^\*=b <=> x^\*^T*A=b^T und somit \ =summe((x^\*^T*A*r_k)/norm(r_k)_A^2*r_k,k=0,n-1) (x^\*^T*A*r_k)/norm(r_k)_A^2 sind aber gerade die Koordinaten von x^\* bzgl. der Basis menge(r_k). Daher gilt x_n=x^\*. Bemerkungen__: (a) \alpha_k=arg min{ f(x_k+\a*r_k) \|\a \el \IR } Man zeige, dass r_k^T*grad(f(x_(k+1)))=r_k^T*grad(f(x_k-((A*x_k-b)^T*r_k/norm(r_(k))_A^2)*r_k))=0. (b) x_(k+1)=arg min{ f(x) \| x \el x_0+span{r_0,...,r_k }} (c) grad(f(x_(k+1))) \senkrechtauf span{r_0,...,r_k } Die entsprechenden Beweise bleiben dem Leser überlassen.

5 Algorithmus und ein Beispiel

An dieser Stelle möchte ich die einzelnen Schritte aufführen, welche zur Berechnung des Minimums einer quadratischen Funktion mithilfe des cg-Verfahrens notwendig sind. Dabei geht es mir darum, einen kompakten und praktikablen Überblick zu liefern und für numerische Rechnungen nützliche Formeln anzugeben. \ Voraussetzungen__: Sei f(x)=1/2*x^T*A*x-b*x+c, A \el \IR^(n\cross n) spd und g(x):=A*x-b=grad(f(x)). Start__: Wähle x_0 \el \IR^n und setze g_0:=g(x_0), r_0:=-g_0. (1. Schritt)__: Falls g_k=g(x_k)=0, STOP: x_k ist Minimum von f. (2. Schritt)__: Sonst setze x_(k+1):=x_k+\a_k*r_k, wobei \a_k=norm(grad(f(x_k)))^2/norm(r_(k))_A^2 . (3. Schritt)__: Berechne r_(k+1)=-grad(f(x_(k+1)))+\beta_k*r_k, wobei \beta_k=norm(grad(f(x_(k+1))))^2/norm(grad(f(x_k)))^2 . (4. Schritt)__: Gehe zu Schritt 1. Die Umformungen ergeben sich wie folgt: \ \a_k=-(A*x_k-b)^T*r_k/norm(r_(k))_A^2=-grad(f(x_k)*r_k/norm(r_(k))_A^2=-grad(f(x_k)*(-grad(f(x_k))+\beta_(k-1)*r_(k-1))/norm(r_(k))_A^2=norm(grad(f(x_k)))^2/norm(r_(k))_A^2 \beta_k=(grad(f(x_(k+1)))*A*r_k)/norm(r_k)_A^2=(grad(f(x_(k+1)))*1/\a_k*(grad(f(x_k))-grad(f(x_(k+1)))))/norm(r_k)_A^2=-norm(grad(f(x_(k+1))))^2/(norm(r_(k))_A^2*\a_k)=norm(grad(f(x_(k+1))))^2/norm(grad(f(x_k)))^2 Nun möchte ich ein Beispiel durchrechnen. \ Sei f(x)=1/2*x^T*(6,1,2;1,1,-2;2,-2,8)*x-(-2,1,2)*x+c und grad(f(x))=(6,1,2;1,1,-2;2,-2,8)*x-(-2;1;2). A ist offenbar symmetrisch. Es lässt sich leicht nachprüfen, dass A positiv definit ist. Das Minimum liegt bei x^\*=(-7,24,8)^T . Startwerte__: x_0=(1,0,0)^T und r_0=-grad(f(x_0))=(-8,0,0) (1. Iteration (x_1 und r_1))__: x_1=(1,0,0)^T+\a_0*(-8,0,0)^T, \a_0=64/384=1/6 x_1=(1,0,0)^T+1/6*(-8,0,0)^T=(-1/3 ,0,0)^T r_1=-(0,-4/3 ,-8/3)^T+\beta_0*(-8,0,0)^T, \beta_0=5/36 r_1=(0, 4/3 , 8/3)^T+5/36*(-8,0,0)^T=(-10/9 , 4/3 , 8/3)^T (2. Iteration (x_2 und r_2))__: x_2=(-1/3 ,0,0)^T+\alpha_1*(-10/9 , 4/3 , 8/3)^T, \alpha_1=(80/9)/(1000/27)=6/25 x_2=(-1/3 ,0,0)^T+6/25*(-10/9 , 4/3 , 8/3)^T=(- 3/5, 8/25, 16/25)^T r_2=-(0, - 64/25, 32/25)^T+\b_1*(-10/9 , 4/3 , 8/3)^T, \b_1=576/625 r_2=(0, 64/25, -32/25)^T+576/625*(-10/9 , 4/3 , 8/3)^T=(- 128/125 , 2368/625 , 736/625)^T (3. Iteration (x_3 und r_3))__: x_3=(- 3/5, 8/25, 16/25)^T+\a_2*(- 128/125 , 2368/625 , 736/625)^T, \a_2=25/4 x_3=(- 3/5, 8/25, 16/25)^T+25/4*(- 128/125 , 2368/625 , 736/625)^T=(-7,24,8)^T=x^\* Da es zum \IR^3 genau 3 linear unabhängige Basisvektoren gibt, ist zu erwarten, dass r_3=0. Die Vektoren r_0 ,r_1 ,r_2 bilden eine A-orthogonale Basis des \IR^3. r_3=-grad(f(x^\*))+\beta_2*r_2 Da aber \beta_2=norm(grad(f(x_3)))^2/norm(grad(f(x_2)))^2 und grad(f(x_3))=grad(f(x^\*))=0, folgt, dass r_3=0. Es ist natürlich für eine schriftliche Rechnung geschickter, den Startwert x0=0 zu wählen. Ich wollte demonstrieren, dass man einen beliebigen Startwert wählen kann.

6 Schlusswort

Ich hoffe, dass euch der Artikel gefallen hat. Wie in der Einleitung erwähnt, wird ein zweiter Teil folgen. Ich werde dann den Satz über die Konvergenzgeschwindigkeit des Verfahrens beweisen. Man führt das Verfahren bei Rundungsfehlern über n hinaus durch. Es ist interessant zu untersuchen, wie schnell sich dann das Verfahren der Lösung nähert. Der Beweis hätte den von mir angestrebten Rahmen des Artikels gesprengt, da dieser relativ kompliziert ist und ausführlich vorgestellt werden sollte. Ich werde auch insbesondere auf den Einsatz der Verfahrens beim Lösen von linearen Gleichungssystemen eingehen. Wie ihr wisst, lieben Numeriker lineare Gleichungssysteme... :-) Über konstruktive Kritik freue ich mich jederzeit. Falls ihr Fehler findet oder Verbesserungsvorschläge habt, korrigiere ich das bzw. setze das gerne um. Quellen: (1) Prof. Bachmann, Prof. Kruse, Prof. Walden - Vorlesungsskript: Optimierung (2) Stoer/Bulirsch - Numerische Mathematik 2 (3) Jarre/Stoer - Optimierung (4) wikipedia.de Einen ganz herzlichen Dank an die kompetenten und hilfsbereiten Korrekturleser: Gockel, Marco_D und rlk! Die Grafik in der Einleitung stammt, wie man das natürlich vermuten würde, von viertel. Vielen Dank an dieser Stelle auch an dich! Beste Grüße Marc
\(\endgroup\)
Get link to this article Get link to this article  Printable version Printer-friendly version -  Choose language     Kommentare zeigen Comments  
pdfpdf-Datei zum Artikel öffnen, 192 KB, vom 13.03.2009 10:10:20, bisher 15936 Downloads


Write a comment

Arbeitsgruppe Alexandria Dieser Artikel ist im Verzeichnis der Arbeitsgruppe Alexandria eingetragen:
: Mathematik :: automatisch eingefügt und unbearbeitet :
Das Konjugierte-Gradienten-Verfahren (1. Teil) [von gaussmath]  
Das Konjugierte-Gradienten-Verfahren mit exakter Arithmetikbei quadratischen Zielfunktionen 1 Einleitung Das Konjugierte-Gradienten-Verfahren (kurz: cg-Verfahren, cg Abk. für conjugated gradients) ist zunächst ein Abstiegsverfahren zur Minimierung konvexer, quadratischer Funktionen. Die
[Die Arbeitsgruppe Alexandria katalogisiert die Artikel auf dem Matheplaneten]
 


 
 
Aufrufzähler 23191
 
Aufrufstatistik des Artikels
Insgesamt 7052 externe Seitenaufrufe zwischen 2012.01 und 2023.10 [Anzeigen]
DomainAnzahlProz
https://matheplanet.com701%1 %
https://google.com400.6%0.6 %
https://www.bing.com741%1 %
https://google.de128018.2%18.2 %
http://google.de402857.1%57.1 %
http://google.si4045.7%5.7 %
http://google.li2153%3 %
http://google.pl1802.6%2.6 %
http://google.ru1802.6%2.6 %
https://google.it1061.5%1.5 %
http://google.gr971.4%1.4 %
https://google.lu951.3%1.3 %
https://google.hr701%1 %
http://r.duckduckgo.com300.4%0.4 %
https://www.ecosia.org280.4%0.4 %
https://duckduckgo.com290.4%0.4 %
https://www.startpage.com210.3%0.3 %
http://search.conduit.com150.2%0.2 %
http://google.com80.1%0.1 %
http://www.bing.com440.6%0.6 %
https://yandex.ru30%0 %
https://metager.de20%0 %
https://startpage.com20%0 %
http://isearch.avg.com70.1%0.1 %
http://suche.t-online.de10%0 %
http://ecosia.org10%0 %
http://suche.gmx.net10%0 %
http://www1.delta-search.com10%0 %
http://search.tb.ask.com10%0 %
http://search.sweetim.com30%0 %
http://suche.web.de10%0 %
http://adguard.com10%0 %
http://search.zonealarm.com10%0 %
http://de.search.yahoo.com30%0 %
https://search.brave.com10%0 %
http://www.c-plusplus.de10%0 %
http://de.search-results.com10%0 %
http://www.ecosia.org20%0 %
http://images.google.de10%0 %
http://www.dogpile.com10%0 %
http://www2.delta-search.com10%0 %
http://search.fbdownloader.com10%0 %
https://de.search.yahoo.com10%0 %

Aufrufer der letzten 5 Tage im Einzelnen
Insgesamt 88 Aufrufe in den letzten 5 Tagen. [Anzeigen]
DatumAufrufer-URL
2023.09.01-2023.10.02 (68x)https://matheplanet.com/
2023.09.04-2023.09.29 (20x)https://google.com/

Häufige Aufrufer in früheren Monaten
Insgesamt 6852 häufige Aufrufer [Anzeigen]
DatumAufrufer-URL
2020-2023 (1204x)https://google.de/
2014-2020 (430x)http://google.de/url?sa=t&rct=j&q=
201205-05 (247x)http://google.de/url?sa=t&rct=j&q=zeigen dass cg verfahren nach h;chstens 3 s...
201206-06 (217x)http://google.si/url?sa=t&rct=j&q=
201307-07 (215x)http://google.li/url?sa=t&rct=j&q=cg-verfahren beispiel
201207-07 (207x)http://google.de/url?sa=t&rct=j&q=zeigen sie, dass das cg-verfahren nach maxi...
201201-01 (187x)http://google.si/url?sa=t&rct=j&q=gradientenverfahren beispiel
201401-01 (186x)http://google.de/url?sa=t&rct=j&q=verfahren der konjugierten gradienten beisp...
201407-07 (180x)http://google.pl/url?sa=t&rct=j&q=
201405-12 (180x)http://google.ru/url?sa=t&rct=j&q=
201406-06 (168x)http://google.de/url?sa=t&source=web&cd=1&ved=0CCQQFjAA
201202-02 (166x)http://google.de/webhp?
201301-01 (153x)http://google.de/url?sa=t&rct=j&q=vollständige induktion für gradienten...
201302-02 (150x)http://google.de/url?sa=t&rct=j&q=was ist ein konjugierter gradient
201306-06 (148x)http://google.de/url?sa=t&rct=j&q=wann eignet sich gradientenverfahren
201212-12 (130x)http://google.de/url?sa=t&rct=j&q=verfahren der konjugierten richtungen
201204-04 (121x)http://google.de/url?sa=t&rct=j&q=zeigen sie dass startvektor gradientenverfa...
201402-02 (118x)http://google.de/url?sa=t&rct=j&q=verfahren des konjugierten gradienten
201503-05 (118x)http://google.de/url?sa=t&source=web&cd=2&ved=0CB8QFjAB
201211-11 (116x)http://google.de/webhp?ix=sea&ion=1
201209-09 (112x)http://google.de/url?sa=t&rct=j&q=vorkonditierung konjugierte gradienten
201501-01 (110x)http://google.de/url?sa=t&source=web&cd=4&ved=0CCMQFjAD
202201-06 (106x)https://google.it/
201502-02 (103x)http://google.de/url?sa=t&rct=j&q=gradientenverfahren
201305-05 (100x)http://google.de/url?sa=t&rct=j&q=wann sind zwei vektoren konjugiert zueinand...
201311-11 (97x)http://google.gr/url?sa=t&rct=j&q=
201411-11 (95x)http://google.de/url?sa=t&rct=j&q=konjugierte gradientenverfahren beispiel
202012-12 (95x)https://google.lu
201304-04 (93x)http://google.de/url?sa=t&rct=j&q=verfahren konjugierter gradienten
201203-03 (92x)http://google.de/url?sa=t&rct=j&q=wie berechnet man konjugierte richtung bei ...
201404-04 (92x)http://google.de/url?sa=t&source=web&cd=1&ved=0CCkQFjAA
201210-10 (82x)http://google.de/url?sa=t&rct=j&q=verfahren konjungiert gradienten
201208-08 (77x)http://google.de/url?sa=t&rct=j&q=verfahren konjugierte gradient
202205-05 (70x)https://google.hr/
201303-03 (69x)http://google.de/url?sa=t&rct=j&q=warum verfahren der konjugierten richtungen...
201403-03 (66x)http://google.de/url?sa=t&rct=j&q=beispiel cg verfahren
2020-2023 (63x)https://www.bing.com/
201308-08 (62x)http://google.de/url?sa=t&rct=j&q=unterschiede gradientenverfahren und cg ver...
202107-07 (62x)https://google.de/url?sa=t
201507-07 (62x)http://google.de/url?sa=t&rct=j&q=conjugierte gradientenverfahren
201408-08 (57x)http://google.de/url?sa=t&rct=j&q=konjugiertes gradientenverfahren gegen grad...
201312-12 (57x)http://google.de/url?sa=t&rct=j&q=voraussetzungen für konjugiertes gradien...
201309-09 (56x)http://google.de/url?sa=t&rct=j&q=konjugiertes gradienten
201504-04 (45x)http://google.de/url?sa=t&source=web&cd=1&ved=0CBwQFjAA
201310-10 (45x)http://google.de/url?sa=t&rct=j&q=erklären konjugierte gradienten
2013-2017 (29x)http://r.duckduckgo.com/l/?kh=-1
2020-2022 (27x)https://www.ecosia.org/
2020-2022 (25x)https://duckduckgo.com/
2020-2023 (21x)https://www.startpage.com/
202109-10 (20x)https://google.com/
201601-01 (20x)http://google.de/url?sa=t&source=web&cd=3&rct=j&q=konjugiertes gradientenverf...
201510-10 (19x)http://google.de/url?sa=t&source=web&cd=4&rct=j&q=vergleich gradientenverfahr...
201511-11 (18x)http://google.de/url?sa=t&source=web&cd=2&rct=j&q=unterschied gradientenverfa...
201512-12 (17x)http://google.de/url?sa=t&source=web&cd=3&rct=j&q=cg verfahren beweis
202010-10 (14x)https://google.de
201604-04 (8x)http://google.de/url?sa=t&source=web&cd=17&rct=j&q=quadratische funktion exak...
201301-02 (7x)http://search.conduit.com/results.aspx?q=konjugierte gradienten&Suggest=&styp...
201606-06 (6x)http://google.de/url?sa=t&source=web&cd=1&rct=j&q=verfahren der konjugierten ...
201804-04 (4x)http://google.com/search?ei=FPzmWvLXJImzUeXnotAG&q=cg verfahren rechen Beispi...
2020-2021 (4x)https://duckduckgo.com
201806-06 (4x)http://google.com/


[Top of page]



"Mathematik: Das Konjugierte-Gradienten-Verfahren (1. Teil)" | 19 Comments
The authors of the comments are responsible for the content.

Re: Das Konjugierte-Gradienten-Verfahren (1. Teil)
von: gaussmath am: Do. 12. März 2009 13:40:41
\(\begingroup\)Um die Inkonsistenzen beim Transponieren werde ich mich noch kümmern. ;) Marco hat eine pdf-Version mit Latex gebaut. Ich werde diese alsbald hochladen. Grüße, Marc \(\endgroup\)
 

Re: Das Konjugierte-Gradienten-Verfahren (1. Teil)
von: Realshaggy am: Do. 12. März 2009 14:17:25
\(\begingroup\)Hallo, das soll keine Kritik sein, aber ich sehe den Vorteil irgendwo noch nicht. Die Probleme I) x^T Ax - bx -> min! und II) Löse Ax=b sind für positiv definites A äquivalent. Man kann das also als eine Methode zur Lösung eines bestimmten Typs linearer GLS ansehen. Ist der Algorithmus denn irgendwie besser als andere vergleichbare Algorithmen, zum Beispiel hinsichtlich der Geschwindigkeit? Man hat ja immer noch in jedem Schritt mehrere Matrix-Vektor-Produkte, besonders bei der Bestimmung der Norm von r_k. Die Erkenntnis allein, dass es Iterationen gibt, die ein nxn-GLS in n Schritten exakt lösen ist noch nicht sonderlich spannend.\(\endgroup\)
 

Re: Das Konjugierte-Gradienten-Verfahren (1. Teil)
von: gaussmath am: Do. 12. März 2009 15:14:32
\(\begingroup\)So, die pdf-Version (Version 1) steht nun auch. Vielen Dank an Marco! 😄 @Realshaggy: Was meinst du mit "Darunter auch welche, die aus einer dünnbesetzten Matrix plötzlich eine voll besetzte machen..." ? Ansonsten wollte ich auf deine Fragestellungen im nächsten Teil eingehen. Wann lohnt sich das Verfahren? Wie sieht es mit Cholesky-Zerlegung vs. cg-Verfahren aus? usw. Bei sehr großen dünn besetzten Matrizen, welche spd sind, lohnt sich das schon. 😄 Grüße, Marc\(\endgroup\)
 

Re: Das Konjugierte-Gradienten-Verfahren (1. Teil)
von: Realshaggy am: Do. 12. März 2009 15:26:22
\(\begingroup\)Sorry, das war ein total peinlicher Denkfehler, ich sage lieber nichts mehr.\(\endgroup\)
 

Re: Das Konjugierte-Gradienten-Verfahren (1. Teil)
von: clausthaler am: Do. 12. März 2009 16:21:22
\(\begingroup\)Die Tatsache, dass das cg-Verfahren bei exakter Rechnung nach höchstens n (Dimension) Schritten die eindeutige Lösung findet (also als direktes Verfahren interpretiert werden kann), ist zwar hübsch, aber praktisch bedeutungslos. Wichtig ist, dass das Verfahren nur die Realisierung von Matrix-Vektor-Multiplikation benötigt und meistens in viel weniger als n Schritten gute Näherungen liefert, sich also ideal für große schwach besetzte Systeme eignet. Durch Vorkonditionierung kann die Konvergenz noch entscheidend verbessert werden. Für tieferen Einstieg sei dieses hier empfohlen. Gruß cth\(\endgroup\)
 

Re: Das Konjugierte-Gradienten-Verfahren (1. Teil)
von: gaussmath am: Do. 12. März 2009 16:51:19
\(\begingroup\)Hallo clausthaler, ich habe ja explizit auf die exakte Arithmetik hingewiesen. Das diente lediglich als Einstieg. Vorkonditionierung, Konvergenzverhalten (bei Rundungsfehlern) usw. kommt ja noch und zwar im zweiten Teil. Grüße gm\(\endgroup\)
 

Re: Das Konjugierte-Gradienten-Verfahren (1. Teil)
von: isotomion am: Do. 12. März 2009 18:03:32
\(\begingroup\)Hi, das soll ebenfalls keine Kritik sein, aber es wäre ganz gut, wenn der Algorithmus nicht nur in Formeln, sondern auch etwas intuitiver erklärt werden würde. Ich habe sehr oft gerade in der angewandten Mathematik den Eindruck, dass die Anschauung hinter den Rechenmethoden zu kurz kommt. Das Verfahren hier würde ich beispielsweise folgendermaßen anschaulich beschreiben: Abschnitt 3: Die positiv definite Matrix A induziert ein euklidisches Skalarprodukt auf \IR^n . Zwei Vektoren sind A-konjugiert, wenn sie bezüglich diesem Skalarprodukt zueinander orthogonal sind. Nach dem Gram-Schmidt-Verfahren bauen wir uns rekursiv eine Orthogonalbasis menge(r_0,...,r_(n-1)) des \IR^n bezüglich diesem Skalarprodukt zusammen. Abschnitt 4: Jetzt kommt der eigentliche Algorithmus. Wir wollen das Gleichungssystem Ax = b lösen. Dazu starten wir mit einem beliebigen Vektor x_0. Jetzt konstruieren wir ausgehend von x_0 rekursiv eine Folge (x_0, x_1, ..., x_n) von Vektoren, bei der jeder Vektor x_(k+1) die orthogonale Projektion des vorherigen Vektors x_k auf den affinen Unterraum A^(-1) b + span(menge(r_(k+1) , r_(k+2) , ... , r_(n-1))) des \IR^n ist. "Orthogonal" heißt dabei "orthogonal bezüglich des von A induzierten Skalarproduktes". So gesehen ist es völlig klar, warum x_n = A^(-1) b ist. Das einzige, was bei diesem Zugang nicht gleich offensichtlich ist, ist, wie man x_(k+1) aus x_k ausrechnet - aber man weiß ja per Induktion, daß x_k schon in A^(-1) b + span(menge(r_k, r_(k+1) , r_(k+2) , ... , r_(n-1))) liegt, weshalb man x_k nur noch "in Richtung r_k " kalibrieren muß, d. h. man kann x_(k+1) = x_k + \alpha_k r_k setzen, und dieses \alpha_k zu berechnen ist eine lineare Gleichung in 1 Variablen. Auflösen ergibt die von gaussmath gegebene Formel. gaussmath, leider scheinst du dich wirklich mit den Transpositionen vertan zu haben. x^T A x ist (für x Vektor und A Matrix) ein Skalar; da du x^T A x - b * x + c schreibst, muß auch b * x ein Skalar sein, also b ein Kovektor (Zeilenvektor), aber dann macht Ax = b keinen Sinn. Viele Grüße, Darij\(\endgroup\)
 

Re: Das Konjugierte-Gradienten-Verfahren (1. Teil)
von: gaussmath am: Do. 12. März 2009 18:42:22
\(\begingroup\)Hey Darij, danke für deine Erläuterungen! Mir ist die Anschaulichkeit ebenfalls wichtig. Klar, in meinem Artikel fehlen die geometrischen Interpretationen an vielen Stellen. Ich wollte die von dir erwähnten Punkte so oder ähnlich noch hinzufügen. Aus zeitlichen Gründen musste ich da erstmal passen. Ich habe den Artikel dennoch "raus gehauen", da das Grundgerüst stand. Die Theorie ist meiner Meinung nach genügend ausführlich formuliert. Mit den Begriffen "Euklidisches Skalarprodukt" und "Gram-Schmidt-Verfahren" wäre ich aber vorsichtig. Die Theorie hinter dem cg-Verfahren baut auf einer Verallgemeinerung dessen auf. Mir bereitet es Unbehagen, orthogonal und A-orthogonal als dasselbe zu bezeichnen. Rein numerisch besteht da doch schon ein großer Unterschied. Vielleicht fehlt mir einfach dieses generalisierende Denken dafür. 😄 Interessant ist auch grad(f(x_(k+1))) \senkrechtauf span{r_0,...,r_k }. Da sollte man auch mal eine geometrische Interpretation wagen... Wenn es dir nichts ausmacht, würde ich gerne deine Erläuterungen in den Artikel mit einbauen. Bitte mehr solcher Kommentare! 😁 Grüße gaussmath\(\endgroup\)
 

Re: Das Konjugierte-Gradienten-Verfahren (1. Teil)
von: isotomion am: Do. 12. März 2009 19:33:29
\(\begingroup\)Hi gaussmath, Orthogonalität ist in der linearen Algebra immer an ein Skalarprodukt gebunden, und das Skalarprodukt muß nicht das Standardskalarprodukt (<(x_1 , x_2 , ... , x_n),(y_1 , y_2 , ... , y_n)> = summe(x_i y_i,i=1,n)) sein. Notfalls kannst du dich durch Basiswechsel davon überzeugen, daß für alle positiv definiten Matrizen A sich die von A induzierten Skalarprodukte "gleich verhalten". Die Gleichung grad(f(x_(k+1))) \senkrechtauf span{r_0,...,r_k } \(wobei hier \senkrechtauf Orthogonalität bezüglich Standardskalarprodukt meint\) ist recht klar. In der Tat ist grad(f(x_(k+1))) = Ax_(k+1) - b \(wenn man b als Vektor ansieht; sonst bitte b^T statt b überall in meinen Posts lesen\); damit ist grad(f(x_(k+1))) \senkrechtauf span{r_0,...,r_k } äquivalent zu r_i^T (Ax_(k+1) - b) = 0 für alle i \in {0,1,...,k}, also zu r_i^T A (x_(k+1) - A^(-1) b) = 0 für alle i \in {0,1,...,k}. Und dies heißt nichts anderes, als dass der Vektor x_(k+1) - A^(-1) b orthogonal bezüglich dem von A induzierten Skalarprodukt zu allen r_i für alle i \in {0,1,...,k} ist. Was aber sofort aus der Definition von x_(k+1) als orthogonale Projektion von x_k auf den affinen Unterraum A^(-1) b + span(menge(r_(k+1) , r_(k+2) , ... , r_(n-1))) folgt, denn dieser Raum ist orthogonal zu allen r_i für alle i \in {0,1,...,k}. Wohlgemerkt, ich musste erst ein wenig algebraisch umformen, bis ich die geometrische Deutung geben konnte - denn in deiner Behauptung kam eine Orthogonalität bezüglich dem Standardskalarprodukt vor, während mein geometrisches Modell das A-Skalarprodukt benutzt, und geometrisch kann man immer nur ein Skalarprodukt gleichzeitig "sehen". Vermutlich gibt es auch eine geometrische Deutung mit dem Standardskalarprodukt, aber ich fand meine einfacher. Kannst das gerne alles in deinen Artikel übernehmen. Wie schon gesagt, ich halte die fehlende geometrische Anschauung für ein Problem vieler Numeriktexte. Grüße, Darij\(\endgroup\)
 

Re: Das Konjugierte-Gradienten-Verfahren (1. Teil)
von: Moby am: Fr. 13. März 2009 08:38:52
\(\begingroup\)Ich kann das Buch von Andreas Meister - Numerik linearer Gleichungssysteme dazu sehr ans Herz legen.\(\endgroup\)
 

Re: Das Konjugierte-Gradienten-Verfahren (1. Teil)
von: elmio am: Sa. 14. März 2009 01:57:45
\(\begingroup\)Danke fuer den Artikel! Obwohl ich leider noch immer nicht so richtig durchschaut habe, was da nun eigentlich läuft, finde ich die Methode einfach wunderschön. Hier noch eine zusätzliche (ausschweifende) Lektüre dazu: Jonathan Richard Shewchuk, An Introduction to the Conjugate Gradient Method Without the Agonizing Pain, Edition 1 1/4, Technical Report\(\endgroup\)
 

Re: Das Konjugierte-Gradienten-Verfahren (1. Teil)
von: Realshaggy am: Sa. 14. März 2009 02:05:32
\(\begingroup\)Hallo, das hat clausthaler weiter oben schon empfohlen. Ich habe es heute nur mal quergelesen, und es scheint wirklich ein gutes Skript zu sein, dass ich mir nächste Woche wohl mal genauer durchlesen werde.\(\endgroup\)
 

Re: Das Konjugierte-Gradienten-Verfahren (1. Teil)
von: gaussmath am: Sa. 14. März 2009 10:04:00
\(\begingroup\)Hallo, die Lektüre ist wirklich sehr gut! Ich kann das nur empfehlen. Es wird auch insbesondere auf den tieferen Zusammenhang mit den Eigenwerten eingegangen. Allerdings braucht man schon ein wenig Zeit dafür. Grüße gaussmath \(\endgroup\)
 

Re: Das Konjugierte-Gradienten-Verfahren (1. Teil)
von: Ex_Mitglied_40174 am: Fr. 28. Januar 2011 12:13:47
\(\begingroup\)Hi, erstens wollte ich hier mal posten, das du super Arbeit gemacht hast und das auch sehr gut erklärt hast. Nun da ich das verstanden habe, wollte ich auch dein Beispiel durchrechnen, um das was ich gelernt habe auch benutzen zu können. Aber irgendwie komme ich da nicht weiter bei der Berechnung von "beta 1". Denn ich habe da ein ganz anderes Ergebnis raus als was du da hast. Kannst du das nochmal nachrechnen und verifizieren das das Ergebnis von beta 1 doch richtig ist. Schöne Grüße simco407\(\endgroup\)
 

Re: Das Konjugierte-Gradienten-Verfahren (1. Teil)
von: Ex_Mitglied_40174 am: Fr. 28. Januar 2011 12:15:31
\(\begingroup\)Oh ich habe mich verschrieben eben, ich meine "beta 0" simco407\(\endgroup\)
 

Re: Das Konjugierte-Gradienten-Verfahren (1. Teil)
von: Ex_Mitglied_40174 am: Di. 12. Juli 2011 13:31:45
\(\begingroup\)Gute Anleitung für das CG-Verfahrem. Vorallem mit nachvollziehbarem Beispiel. 😄 \(\endgroup\)
 

Re: Das Konjugierte-Gradienten-Verfahren (1. Teil)
von: Ex_Mitglied_40174 am: Di. 12. Juli 2011 13:37:26
\(\begingroup\)beta 0 ist richtig. Rechnung: (sqrt((4/3)^2+(-8/3)^2))^2 / (sqrt(8)^2)^2 = (80/9) / 64 = 5/36 \(\endgroup\)
 

Re: Das Konjugierte-Gradienten-Verfahren (1. Teil)
von: Ex_Mitglied_40174 am: Fr. 12. Oktober 2012 22:53:41
\(\begingroup\)Ich beschäftige ich mich mit finiten Elementen und möchte dazu gern den hier veröffentlichten Algorithmus für das Konjugierte-Gradienten-Verfahren benutzen.   Weil ich mit der Syntax der Matrizenrechnung nicht vertraut bin, habe ich im Abschnitt 5,  3. Schritt, die Formel für den Faktor Beta nicht verstanden:                      || Gradient f(X_k+1) ||²     Beta_k =   -------------------------------                        || Gradient f (X_k) ||²   Ich wäre Ihnen sehr dankbar, wenn Sie mir die Ausrechnung dieser Formel, die bei der ersten Iteration Beta_0 = 5/36 ergibt, schrittweise erläutern könnten.   Mit Dank im Voraus für Ihre Mühe und freundlichen Grüßen   Klaus [Nachname verborgen]\(\endgroup\)
 

Re: Das Konjugierte-Gradienten-Verfahren (1. Teil)
von: gaussmath am: Fr. 16. November 2012 12:17:35
\(\begingroup\)Hallo Klaus, wir bleiben beim Du?! Ich bin mir nicht ganz sicher, was du meinst. Geht es dir um die Herleitung des Quotienten, oder um das konkrete Zahlenbeispiel? Grüße, Marc\(\endgroup\)
 

 
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2023 by Matroids Matheplanet
This web site was originally made with PHP-Nuke, a former web portal system written in PHP that seems no longer to be maintained nor supported. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen.
Lesen Sie die Nutzungsbedingungen, die Distanzierung, die Datenschutzerklärung und das Impressum.
[Seitenanfang]