www.vorkurse.de
Ein Projekt von vorhilfe.de
Die Online-Kurse der Vorhilfe

E-Learning leicht gemacht.
Hallo Gast!einloggen | registrieren ]
Startseite · Mitglieder · Teams · Forum · Wissen · Kurse · Impressum
Forenbaum
^ Forenbaum
Status Mathe-Vorkurse
  Status Organisatorisches
  Status Schule
    Status Wiederholung Algebra
    Status Einführung Analysis
    Status Einführung Analytisc
    Status VK 21: Mathematik 6.
    Status VK 37: Kurvendiskussionen
    Status VK Abivorbereitungen
  Status Universität
    Status Lerngruppe LinAlg
    Status VK 13 Analysis I FH
    Status Algebra 2006
    Status VK 22: Algebra 2007
    Status GruMiHH 06
    Status VK 58: Algebra 1
    Status VK 59: Lineare Algebra
    Status VK 60: Analysis
    Status Wahrscheinlichkeitst

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
Forum "Numerik linearer Gleichungssysteme" - Gradientenverfahren
Gradientenverfahren < Lin. Gleich.-systeme < Numerik < Hochschule < Mathe < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Numerik linearer Gleichungssysteme"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Gradientenverfahren: Algorithmus
Status: (Frage) beantwortet Status 
Datum: 12:50 Fr 27.02.2009
Autor: Pacapear

Hallo zusammen!

Ich denke, dass ich das Prinzip des Gradientenverfahren jetzt verstanden habe *puh*
Jetzt hab ich nur noch eine kurze Frage zum Algorithmus.
Bei mir lautet er wie folgt:

[mm] x^0 [/mm] Startvektor

[mm] x^{k+1}=x^k+\lambda(x^k,r^k) [/mm] mit [mm] r^k=b-Ax^k [/mm] Startresiduum

[mm] \lambda(x^k,r^k)=\bruch{r^k*r^k}{Ar^k*r^k} [/mm]

[mm] r^{k+1}=r^k-\lambda(x^k,r^k)Ar^k [/mm] neues Resisuum

Mögliches Abbruchkriterium: [mm] ||r||<\epsilon [/mm]

Meine Frage bezieht sich auf das [mm] \ r[/mm].
Ähm, also im Fall des Startresisuums ist das Residuum ja gleichzeitig der Gradient des Funtkionals [mm] F(x)=\bruch{1}{2}\cdot{}-. [/mm]
Warum habe ich denn zwei Formeln für r?
Wann muss ich welche nehmen und warum?

Meine Überlegung ist folgende:
In jeder Iteration nehme ich für [mm] \ r[/mm] die Formel [mm] r^k=b-Ax^k [/mm] (weil ich ja den Gradienten brauche).
Die zweite Formel [mm] r^{k+1}=r^k-\lambda(x^k,r^k)Ar^k [/mm] ist für die Iteration irrelevant, ich benutze sie nur, um den Fehlerunterschied zu berechnen.
Könnte das irgendwie so sein?

Danke für eure Hilfe.
LG, Nadine

        
Bezug
Gradientenverfahren: Okay
Status: (Antwort) fertig Status 
Datum: 17:17 Fr 27.02.2009
Autor: Infinit

Hallo Nadine,
ja, Deine Überlegungen sind okay. Das eine Residuum dient dazu, einen neuen Startwert zu generieren, das andere zur Fehlerabschätzung.
Viele Grüße,
Infinit

Bezug
                
Bezug
Gradientenverfahren: Pseudo-Code
Status: (Frage) beantwortet Status 
Datum: 12:29 Sa 28.02.2009
Autor: Pacapear

Hallo Infinit!

> Hallo Nadine,
> ja, Deine Überlegungen sind okay. Das eine Residuum dient
> dazu, einen neuen Startwert zu generieren, das andere zur
> Fehlerabschätzung.
> Viele Grüße,
> Infinit

Vielen Dank für deine Antwort!
Das freut mich ja voll, dass meine Überlegungen richtig waren, denn ich hänge schon seit über einer Woche an diesem Thema :-)
Was genau meinst du aber mit "Das eine Residuum dient dazu, einen neuen Startwert zu generieren"?
Meinst du mit neuem Startwert das neue [mm] x^{k+1} [/mm] ?
Weil man hat ja eigentlich nur einmal einen Startwert, nämlich das [mm] x_0 [/mm] , oder?

Allerdings habe ich mir gerade den Pseudo-Code zu dem Verfahren in unserem Skript angeschaut, und das wirft wieder alles um [grummel]
Demnach wird nämlich die Formel [mm] r^k=b-Ax^k [/mm] nur ein einziges Mal verwendet.
Alle anderen [mm]\ r[/mm] werden dann mit der Formel berechnet, wo wir gesagt haben, dass sie nur für den Fehler dient [haee]

Hier mal der Code:

Steepert Descant (x) {
   r = b - Ax;
   while ( [mm] \neg [/mm] Abbruchkriterium ) {
      h = A * r;
      [mm] \lambda [/mm] = (r * r) / (h * r);
      x = x + [mm] \lambda [/mm] * r;
      r = r + [mm] \lambda [/mm] * h
   }
}

Nun bin ich doch wieder total verwirrt [haee]
Ist da im Pseudo-Code vielleicht ein Fehler oder mach ich vielleicht irgendwo einen Denkfehler?

LG, Nadine

Bezug
                        
Bezug
Gradientenverfahren: Iteration
Status: (Antwort) fertig Status 
Datum: 11:01 So 01.03.2009
Autor: Infinit

Hallo Nadine,
das ganze Verfahren arbeitet doch mit Iterationen. Das Startresiduum gibt Dir für den Start, aber auch für jeden Iterationsschritt die Abweichung Deiner Iteration vom Optimalwert an, die Bezeichnung mit dem Laufindex k ist hier etwas gewöhnungsbedürftig. Okay, wenn Du nun eine Iteration durchgeführt hast, stellt sich die Frage, in welcher Richtung Du weitersuchen solltest. Diese neue Richtung ergibt sich aus Deiner zweiten Gleichung, die Du angegeben hast. Tja, und so geht das Spielchen immer weiter, bis das Abbruchkriterium zuschlägt.
Viele Grüße,
Infinit

Bezug
                                
Bezug
Gradientenverfahren: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 11:19 So 01.03.2009
Autor: Pacapear

Hallo Infinit!

Grrr, ich hasse dieses Thema [grummel]



> das ganze Verfahren arbeitet doch mit Iterationen.

Ja, das ist mir klar.
In jedem Schritt nähere ich mich meiner optimalen Lösung [mm] x^{opt} [/mm] immer weiter an, bis ich sie irgendwann erreicht habe.



> Das Startresiduum gibt Dir für den Start, aber auch für jeden
> Iterationsschritt die Abweichung Deiner Iteration vom
> Optimalwert an, die Bezeichnung mit dem Laufindex k ist
> hier etwas gewöhnungsbedürftig.

Also das Startresiduum ist ja [mm] r^k=b-Ax^k [/mm] .
Und das ist das Residuum, welches ich für die ständige Bestimmung des Unterschiedes zwischen [mm] Ax^k [/mm] und [mm] b^k [/mm] verwende?
Aber im ersten Schritt gibt es mir doch auch die Richtung an, in die ich laufen soll, oder?
Weil [mm] r^k=b-Ax^k [/mm] ist doch genau der Gradient vom Funktional, und ich soll ja in Richtung des Gradienten laufen, oder?



> Okay, wenn Du nun eine
> Iteration durchgeführt hast, stellt sich die Frage, in
> welcher Richtung Du weitersuchen solltest. Diese neue
> Richtung ergibt sich aus Deiner zweiten Gleichung, die Du
> angegeben hast.

Das ist glaub ich genau der Punkt, den ich überehaupt nicht verstehe.
So wie ich das bisher verstanden habe, soll die Richtung, in die ich gehe, immer die Richtung des steilsten Abstiegs sein.
Das heißt also in Richtung Gradient (der ja an jedem neuen [mm] x^{k+1} [/mm] immer in eine andere Richtung zeigt).
Deshalb würde ich hier wieder die Formel [mm] r^k=b-Ax^k [/mm] nehmen wollen, weil mein Funktional auf dem ich laufe, hat sich ja nicht verändert.
Warum sollte sich dann die Formel für den Gradienten ändern?
Oder laufe ich nach dem ersten Schritt gar nicht mehr in Richtung des steilsten Abstiegs/Gradienten?



> Tja, und so geht das Spielchen immer
> weiter, bis das Abbruchkriterium zuschlägt.

Ja, das auch wieder klar.



LG, Nadine



::edit:: Hat sich erledigt, ich habs jetzt endlich verstanden :-)

Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Numerik linearer Gleichungssysteme"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.vorkurse.de
[ Startseite | Mitglieder | Teams | Forum | Wissen | Kurse | Impressum ]