WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Gauß Seidel

 

Avernus
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 19
Anmeldedatum: 08.05.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.05.2012, 17:29     Titel:
  Antworten mit Zitat      
Du hast also die diagonal Elemente von A als Diagonale matrix geschrieben, darauf deine Formel angewendet und dann den max Eigenwert des Ergebnisses gesucht.

kannst du mir einen Link zu der Formel geben? Ich dachte bisher der Spektralradius ist der betragsmäßig größte EW von A.
Private Nachricht senden Benutzer-Profile anzeigen


MaFam
Forum-Meister

Forum-Meister


Beiträge: 799
Anmeldedatum: 02.05.12
Wohnort: ---
Version: R2009b
     Beitrag Verfasst am: 09.05.2012, 17:36     Titel:
  Antworten mit Zitat      
Das stimmt auch. Nur berechnet man ja hier den Spektralradius der Iterationsmatrix, die wiederum aus A gebildet wird. Das steht aber auch in dem Link.

Ich bin übrigens fast überzeugt davon, dass es doch das Gauß-Seidel-Verfahren ist, wenngleich ich es noch nicht verstehe... Aber der Tag war auch lang und mein Kopf braucht eine Pause.
Private Nachricht senden Benutzer-Profile anzeigen
 
Avernus
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 19
Anmeldedatum: 08.05.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.05.2012, 17:54     Titel:
  Antworten mit Zitat      
jo. ich habe mich nur über deine Berechnung der Diagonalmatrix gewundert.

ich hätte die eigenwerte der Matrix auf die Diagonale geschrieben.

Wie bist du auf diese Berechnungsweise gekommen? Ich verstehe nicht ganz zwischen deiner Variante und der Wikipedia Erklärung.


Edit: Ich denke ich setze dem Ganzen eine Konvergenz Untersuchung bzgl. der Diagonaldominanz voraus. Aber deine Variante interessiert mich trotzdem. Kannst du mir bitte kurz erklären wie du darauf kommst?

Edit2: obwohl ich sehe gerade dass das mit der diagonaldominaz nicht eindeutig ist. also wäre eine Erklärung wirklich sehr Hilfreich. Da ich hierfür nicht extra eine untere Dreieicksmatrix bilden möchte, wie es bei Wikipedia steht.

Tausend Dank.
Private Nachricht senden Benutzer-Profile anzeigen
 
MaFam
Forum-Meister

Forum-Meister


Beiträge: 799
Anmeldedatum: 02.05.12
Wohnort: ---
Version: R2009b
     Beitrag Verfasst am: 09.05.2012, 20:26     Titel:
  Antworten mit Zitat      
So, dann lass uns das mit Iterationsmatrix klären. Zunächst greifen wir zu der korrekten Matrix zum Gauß-Seidel-Verfahren.

Aus dem Artikel lässt sich entnehmen: T=-(D+L)^{-1}U. Nun untersucht man den Spektralradius dieser Matrix, denn T ist für das Konvergenzverhalten des Verfahrens verantwortlich.

D erfasst die Diagonalelemente der Matrix A. Man setzt daher D=diag(diag(A)). L ist die untere Dreiecksmatrix von A. Daher gilt L=tril(A)-D und U=triu(A)-D. Insgesamt gilt die Zerlegung A=L+D+U.

Der Spektralradius von T ist aber gerade der betragsmäßig größte Eigenwert von T. Somit erhalten wir Spektralradius=max(abs(eig(T))).

Und nun lass mich nicht im Regen stehen mit meinem Unverständnis darüber, welches Verfahren du nun tatsächlich umgesetzt hast.

Schau' dir beide Summenschreibweisen nochmal an:

1. Gauß-Seidel: http://de.wikipedia.org/wiki/Gau%C3.....eschreibung_des_Verfahren
2. Jacobi-Verfahren: http://de.wikipedia.org/wiki/Jacobi.....schreibung_des_Verfahrens

Ich sehe nicht, wie dein Code das Gauß-Seidel-Verfahren implementiert. Für mich sieht das nach Jacobi aus.
Mathematisch ist mir der Unterschied klar, aber der Code... ich habe ein Brett vor dem Kopf.
Private Nachricht senden Benutzer-Profile anzeigen
 
Avernus
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 19
Anmeldedatum: 08.05.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.05.2012, 21:44     Titel:
  Antworten mit Zitat      
Okay vielen Dank für deine ausdauernde Hilfe.



Also das Jacobiverfahren würde nicht viel anderst aussehen als das Gausseidelverfahren. Nur das während der Iteration keine Aktualisierung des Lösungsvektors vorliegt. Also ich habe statts den neuen Werten immer das x aus der vorherigen Iteration.

Jacobi:

Code:
while (absr >e)
 
    for j=1:n
 
        x(j)=(b(j)-A(j,1:j-1)* temp(1:j-1)-A(j,j+1:n)* temp(j+1:n))/A(j,j);
   
    end
 
 
   temp=x;
 

    absr = norm(A*x-b);




Gausseidel: Nach jedem durchlauf für ein j wird der alte Wert im x Vektor mit dem neuen überschrieben. So steht er auch schon während der Rechnung zur Verfügung.

Schau dir in dem Link mal die Summen an. Die Linke Summe verwendet nur die Werte die in der aktuellen Iteration neu gespeichert wurden(Wert<j). Die rechte Summe verwendet nur die alten Werte( Wert>j)


Ich hoffe es war einigermaßen verständlich erklärt. Vielen Dank nochmal für deine Hilfe. An die Konvergenz habe ich überhaupt nicht gedacht.
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite Zurück  1, 2

Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.