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

Gauss-Seidel Verfahren

 

OPG
Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 08.03.13
Wohnort: Frankfurt am Main
Version: ---
     Beitrag Verfasst am: 08.03.2013, 19:30     Titel: Gauss-Seidel Verfahren
  Antworten mit Zitat      
Hallo zusammen
habe folgendes Problem und hoffe es kann mir jemand weiterhelfen und zwar muss ich eine Lastflussberechnung durchführen mit Hilfe von Gauss-Seidel Verfahren für „n“-Knoten. Ich habe hierzu eine Y-Matrix und einen Spaltenvektor U wo die Spannungen sind und einen Spaltenvektor I für die Ströme.
Ich habe jetzt folgende Formel A*x=b in meinem Fall wäre es Y*U=I^*. I^* ist der konjugierte Wert von I.
Wenn ich jetzt n=2 habe, dann entsteht eine 2x2 Y-Matrix und falls ich n=3 dann folglich eine 3x3 Y-Matrix.
Die Gleichung aufgelöst für n=2 wäre dann
Y_11*U_1+Y_12*U_2=I_1^* und Y_21*U_1+Y_22*U_2=I_2^* .

Für n=3 wäre dannY_11*U_1+Y_12*U_2+Y_13*U_3=I_1^* und Y_21*U_1+Y_22*U_2+Y_23*U_3=I_2^* und Y_31*U_1+Y_32*U_2+Y_33*U_3=I_3^*.

Jetzt setzte ich für  I^*=S^*/U^* . Ich muss jetzt die Gleichung nach den gewünschten Spannungen auflösen. U_1 ist mir bekannt deswegen löse ich z.B. bei n=3 nach U_2 und U_3. Jetzt habe ich
U_2=1/Y_22  [((S_2^*)/(U_2^* ))- Y_21*U_1-Y_23*U_3 ] und
U_3=1/Y_33  [((S_3^*)/(U_3^* ))- Y_31*U_1-Y_32*U_3 .
Ich will damit sagen, dass wenn sich „n“ ändert, dann ändert sich folglich auch die Formel. Jetzt habe ich folgendes Problem.

Die allgemeine Formel würde dann U_i=1/Y_ii  [((S_i^*)/(U_i^* ))-∑_█(k=1@k≠i)^n▒〖Y_ik*U_k 〗] lauten. Der Gauss Algorithmus nimmt U_i^* als den Startwert an, den ich als 1 angenommen habe, und führt die Rechnung durch. Also führt er die Rechnung mit 1/Y_ii  [((S_i^*)/(U_i^* ))-∑_█(k=1@k≠i)^n▒〖Y_ik*U_k 〗] durch und als Ergebnis nach z.B. 20 Iterationen habe ich dann mein U_i .

Ich bin schon seit knapp 2 Wochen dran und bin an meine Grenzen gestoßen. Ich bekomme den Algorithmus einfach nicht zustande. Kann mir bitte jemand weiter helfen???
Mit freundlichen Grüßen
Private Nachricht senden Benutzer-Profile anzeigen


OPG
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 08.03.13
Wohnort: Frankfurt am Main
Version: ---
     Beitrag Verfasst am: 09.03.2013, 02:57     Titel:
  Antworten mit Zitat      
sorry bin newbi

die Formel nochmal in deutlicherer Form: Ui=\frac{1}{Yii} *\left[\left(\frac{S*}{U*}\right)  - \sum\limits_{k=1,k\neq i}^n Yik *Uk\right].
Alle Elemente sind bekannt.Ich nimm für U*=1,0 an und bekomme einen Wert für Ui.Dieses Ergebnis muss ich dann wieder in U* einsetzen. Das wiederhole ich z.B. 20mal.

Das Problem liegt darin, dass wenn ich U*=1,0 annehme dann gibt MATLAB direkt das Ergebnis für \frac{S*}{U*} = \frac{S*}{1.0} = S* an. Aber ich muss den neuen Wert wieder in U* einsetzen.
Ich habs mit symbolic versucht aber habe es nicht hinbekommen.


Kann mir jemand helfen wie ich diesewn Algorithmus schreiben kann?
Private Nachricht senden Benutzer-Profile anzeigen
 
MaFam
Forum-Meister

Forum-Meister


Beiträge: 799
Anmeldedatum: 02.05.12
Wohnort: ---
Version: R2009b
     Beitrag Verfasst am: 10.03.2013, 12:10     Titel:
  Antworten mit Zitat      
Hallo,

man muss deine Frage auf das Wesentliche reduzieren. Im Zentrum der Betrachtung steht eine lineares Gleichungssystem. Aus mathematischer Sicht ist es völlig unerheblich, was hinter den einzelnen Größen der Gleichung steht. Man will das System schlicht lösen.

Das Gauß-Seidel-Verfahren ist ein iterativer Algorithmus zur näherungsweisen Berechnung der Lösung eines linearen Gleichungssystems. Warum verwendest du das hier? Es ist Standard, eine LR-Zerlegung (geschlossenes, nicht-iteratives Verfahren) vorzunehmen. Von diesem Standard weicht man nur ab, wenn das System extrem groß ist. Dabei geht es um den vorhandenen Speicher. Außerdem wechselt man zu einem iterativen Verfahren, wenn die Matrix des Systems sehr schlecht konditioniert ist. Ist eines davon bei dir der Fall?

Solltest du indes tatsächlich ein iteratives Verfahren verwenden, so musst du nichts implementieren. Matlab verfügt über derartige Implementierungen.

Grüße, Marc
Private Nachricht senden Benutzer-Profile anzeigen
 
OPG
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 08.03.13
Wohnort: Frankfurt am Main
Version: ---
     Beitrag Verfasst am: 12.03.2013, 00:10     Titel:
  Antworten mit Zitat      
Danke erstmal für deine Informationen.

Das ist Aufgabe meines Projektes das Gauß-Seidel Verfahren anzuwenden.
Da ich die Größe der Matrix selbst eingeben kann, kann mein System sehr groß werden. Das heißt also wenn ich n=5 eingebe dann habe ich eine 5x5 Matrix. Ich könnte auch n=100 eingeben.
Wegen den Implementierungen habe ich leider nichts gefunden bzw. ich konnte mit denen nichts anfangen weil sie anders verfahren als ich es machen soll.
Ich will einfach eine Funktion schreiben die den Algorithmus ausführen soll den ich oben erläutert habe aber ich komm einfach nicht drauf wie ich es machen soll.

Gruß
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 12.03.2013, 01:44     Titel:
  Antworten mit Zitat      
Hallo OPG,

n=100 gilt unter Numerikern als ausgesprochen handlich. Unter "sehr groß" könnte man eher etwas bei 100'000x 100'000 verstehen. Aber das nur nebenbei.

Ich verstehe noch nicht, wie wir Dir helfen können. Du möchtest eine bestimmte Funktion schreiben. Dann mache das doch erstmal soweit wie Du kommst. Teile dabei das Problem in möglichst kleine Abschnitte, die dann einfach implementierbar sind. Und dann können wir Dir bei konkreten Fragen gerne weiterhelfen.

Auf "ich komm einfach nicht drauf wie ich es machen soll" kann man halt kaum etwas antworten.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



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 - 2024 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.