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

Verfahren zur Lösung linearer Gleichungssysteme

 

tikrchr
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 06.02.19
Wohnort: Flensburg
Version: ---
     Beitrag Verfasst am: 06.02.2019, 14:22     Titel: Verfahren zur Lösung linearer Gleichungssysteme
  Antworten mit Zitat      
Hallo zusammen,

ich beschäftige mich sit geraumer Zeit mit der numerischen Lösung der Wärmeleitungsgleichung in Zylinderkoordinaten:
(dT/dt) = a*(dT/(dr^2)+1/r*dT/dr)

Abhängig von der Art der Diskretisierung (implizit/explizit) erhält man folgende lineare Gleichungssysteme (nachfolgend LGS)

explizit:
T(r,t+1) = A*T(r,t)

implizit:
T(r,t+1) = A\T(r,t)

Darin ist T(r,t+1) der Lösungsvektor (Spaltenvektor), T(r,t) der gegebene Spaltenvektor und A eine Tridiagonalmatrix mit Werten auf den Diagonalen [-1,0,1].

Im Fall der impliziten Diskretisierung ist für mich ganz klar, dass dies als LGS "erkannt" und gelöst wird. Aus meiner Recherche weiß ich, dass Matlab das LGS standardmäßig mit der Gauß-Elimination löst.

Nun meine Fragen:
1) bin ich richtig informiert, dass Matlab LGS mit der Gauß-Elimination löst?

2) wird im Fall der expliziten Form auch ein LGS "identifiziert" und gelöst oder handelt es sich hierbei lediglich um eine einfache Multiplikation eines Vektors mit einer Matrix und das Produkt ist die Lösung?

3) falls der explizite Fall als LGS behandelt wird, wird dieses dann genauso gelöst wie das LGS aus der impliziten Form (ebenfalls Gauß-Elimination)?

Vielen Dank und freundlichen Gruß
Tim
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 06.02.2019, 14:55     Titel:
  Antworten mit Zitat      
Hallo,

1) Das hängt von A ab. Die vollen Informationen dazu findest du in der Doku unter
Code:

ganz unten in "Algorithms".

2) \ und * sind komplett unterschiedliche Operationen. * ist eine "ganz normale" Matrixmultiplikation, und MATLAB beachtet auch nicht, ob diese Matrixmultiplikation die Lösung eines Gleichungssystems berechnet wie es beispielsweise in x = (inv(A)) * b der Fall wäre.
Daher wird ein expliziter Schritt typischerweise auch deutlich schneller sein als ein impliziter: der Rechenaufwand für eine Matrixmultiplikation ist deutlich geringer als der für die Lösung eines LGS.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
tikrchr
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 06.02.19
Wohnort: Flensburg
Version: ---
     Beitrag Verfasst am: 06.02.2019, 15:28     Titel:
  Antworten mit Zitat      
Hallo,

kann man dennoch daraus schließen, dass die Multiplikation der Tridiagonalmatrix A mit dem Spaltenvektor T1 in der Form
Code:

T2 = A*T1;
 

die Lösung des Gleichungssystems für die explizite Variante liefert, welches sich aus physikalsicher Sicht dahinter verbirgt? Erstaunlicherweise sieht das Ergebnis nämlich sehr plausibel aus.

Gruß Tim
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 06.02.2019, 17:45     Titel:
  Antworten mit Zitat      
Hallo,

wie schon angedeutet: MATLAB führt die Matrixmultiplikation aus.
Wenn das Ergebnis "zufällig" auch die Lösung eines Gleichungssytems mit einer besonderen Bedeutung in der Anwendung ist, dann ist das eben so - und wenn nicht, dann nicht.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
tikrchr
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 06.02.19
Wohnort: Flensburg
Version: ---
     Beitrag Verfasst am: 06.02.2019, 19:45     Titel:
  Antworten mit Zitat      
Hallo,

ich verstehe. Danke für die Antwort. Mit dieser sind meine Fragen geklärt. Alles weitere habe ich mir bereits durch weitere Recherche bestätigen können.
_________________

Gruß Tim
Private Nachricht senden Benutzer-Profile anzeigen
 
tikrchr
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 06.02.19
Wohnort: Flensburg
Version: ---
     Beitrag Verfasst am: 11.02.2019, 16:46     Titel:
  Antworten mit Zitat      
Hallo,

eine Frage habe ich noch. Gibt es eine Möglichkeit, in Matlab auszugeben, welcher Solver verwendet wird/wurde oder kann ich das "nur" anhand des Schemas in der Funktionsdoku zu mldivide ermitteln?
_________________

Gruß Tim
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 11.02.2019, 17:11     Titel:
  Antworten mit Zitat      
Hallo,

meines Wissens nicht.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
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.