|
|
große LGS mit Bandmatrizen lösen |
|
matlaber2012 |
Forum-Anfänger
|
|
Beiträge: 16
|
|
|
|
Anmeldedatum: 06.02.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 15.02.2012, 09:25
Titel: große LGS mit Bandmatrizen lösen
|
|
Hallo zusammen,
mit welchen Befehlen kann man effektiv große lineare Gleichungssysteme lösen? Dabei soll die Matrix eine schwach besetzte quadartische Bandmatrix sein (Hauptdiagonale, beide Nebendiagonale und jeweils eine weitere obere bzw. untere Nebendiagonale sind besetzt). Die Matrix selber hat ca. eine Größe von 200000x200000.
Vielen Dank für eure Hilfe.
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 15.02.2012, 19:03
Titel:
|
|
Hallo,
das Thema hatten wir doch schon.
Du musst die Matrix dünnbesetzt erstellen, z.B. mit SPDIAGS. Dann kannst du "ganz normal" \ verwenden. \ erkennt automatisch, dass es sich um eine dünnbesetzte Matrix handelt.
Grüße,
Harald
|
|
|
matlaber2012 |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 16
|
|
|
|
Anmeldedatum: 06.02.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 16.02.2012, 07:42
Titel:
|
|
Ich dachte auch, dass "\" weiterhilft. Dazu habe ich mir eine Bandmatrix A mit der oben genannten Struktur aus Zufallvariablen generieren lassen und eine zufälligen rechte Seite b. x=A\b führt zu keiner Lösung.
Hat irgendjemand weitere Ideen???
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 16.02.2012, 16:54
Titel:
|
|
Hallo matlaber2012,
Was bedeutet "führt zu keiner Lösung" genau?
Gruß, Jan
|
|
|
matlaber2012 |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 16
|
|
|
|
Anmeldedatum: 06.02.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 16.02.2012, 17:05
Titel:
|
|
Bei "/" gibt Matlab mir eine Fehlermeldung aus, dass die Matrix schlechte Eigenschaften hat.
Bei den vorgefertigten Algorithmen für Lösungen von schwach besetzten linearen Systemen sagt Matlab, dass die Lösung nach einer gewissen Iterationszahl nicht unter einer bestimmten Toleranzgrenze liegt. Ein Abändern der Iterationszahl und der Toleranzgrenze ändert nix. Vielleicht liegt es daran, dass die schwach besetzte Matrix aus Zufallszahlen besteht?!
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 16.02.2012, 19:01
Titel:
|
|
Hallo,
kannst du Beispielcode posten, anhand dessen das Verhalten nachvollziehbar ist?
Grüße,
Harald
|
|
|
matlaber2012 |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 16
|
|
|
|
Anmeldedatum: 06.02.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 18.02.2012, 17:32
Titel:
|
|
a=rand(200000,1);
b=rand(200000,1);
c=rand(200000,1);
d=rand(200000,1);
e=rand(200000,1);
f=rand(200000,1);
m=spdiags([a 4*b c -100*d e], [-200 -1 0 1 200],200000,200000);
x=m/f;
mein matlab gibt dann irgendwann eine fehlermeldung aus
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 18.02.2012, 18:05
Titel:
|
|
Hallo,
du musst \ statt / verwenden.
Wenn es Fehlermeldungen bzgl. Singularität gibt, dürfte das weniger an Zufallszahlen liegen als (wie die Fehlermeldung auch sagt) an einer ungünstigen Skalierung.
Das hier läuft z.B. bei mir ohne Probleme (ca. 25s):
Grüße,
Harald
|
|
|
matlaber2012 |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 16
|
|
|
|
Anmeldedatum: 06.02.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 19.02.2012, 13:59
Titel:
|
|
sorry, ich benutze auch \. ist der backslash befehl also eine art high end befehl, der selbstständig die matrixstruktur analysiert und einen geeigneten lösungalgorithmus sucht?
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 19.02.2012, 14:02
Titel:
|
|
Hallo,
kannst du so sehen. Details zu den verwendeten Algorithmen findest du in der Dokumentation
Grüße,
Harald
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|