Gleichungslöser linearer Gleichungssysteme

Neue Frage »

ola Auf diesen Beitrag antworten »
Gleichungslöser linearer Gleichungssysteme
Hallo,
Ich bin auf der Suche nach "schnellen" und "nicht aufwändigen" (wenig Speichernutzung) Gleichungslösern für Probleme der Art b=Ax. Es handelt sich hierbei um ein sehr großes Problem der etwaigen Größe n=1.000.000.
Mein Interesse liegt ersteinmal darin zu erfahren welche Löser oder auch Libraries es gibt und was die angeknüpften Bedingungen an die Matrix A sind für die jeweiligen Löser, bei welchen Matrizen sie also versagen und bei welchen sie anwendbar sind. Weiter hin ob die Matrix gut Konditioniert sein muss und welcher Rechenaufwand bzw auch Speicheraufwand besteht.

Beispiel sind PARDISO, Lapack, Mehrgitter-Verfahren
diese habe ich bisher gefunden und auch ein paar Eigenschaften. Ich höre gerne auch nochmal Komentare zu diesen Beispielen....
tigerbine Auf diesen Beitrag antworten »

Ich kann dir leider nur 2 Begriffe hinwerfen: Krylovraum Methoden (https://lp.uni-goettingen.de/get/text/2020) und Vorkonditionierung mit BPX. Vielleicht findest du damit schon was für dich. Wink
Formelmonster Auf diesen Beitrag antworten »

Hallo,

Zu zweien deiner Beispiele:
  • Lapack (Linear Algebra Package) ist eine Bibliothek für dichtbesetzte lineare Algebra. Es gibt von ihr hochoptimierte Versionen für alle möglichen Rechnerplattformen, weswegen sie sehr beliebt ist. So weit ich weiß, ist sie für dünnbesetzte Matrizen im Allgemeinen ungeeignet. Auf deren Webseite jedoch:
    Zitat:

    Dense and banded matrices are handled, but not general sparse matrices.

    Falls deine Matrix also eine Bandmatrix ist, könntest Du hier vielleicht doch fündig werden.
  • Mehrgitter-Verfahren: Diese Verfahren finden bei der Lösung von diskretisierten partiellen Differentialgleichungen Anwendung und beruhen auf verschieden feinen Gittern. Es gibt jedoch Verallgemeinerungen auf allgemeine lineare Gleichungssysteme unter dem Namen „Algebraic Multigrid Methods“. Mehr kann ich dazu leider auch nicht sagen ;-)


Bei den Krylow-Unterraum-Methoden gibt es einen ganzen Haufen von Methoden. Welche man nimmt hängt von den Eigenschaften deiner Matrix ab. Ein paar dieser Methoden sind:
  • Methode der Konjugierten Gradienten: Wenn deine Matrix positiv definit ist, ist das die beste.
  • GMRES: Funktioniert mit allen invertierbaren Matrizen.

Diese beiden sind neben anderen in MATLAB enthalten. (CG in einer vorkonditionierten Variante mit dem Namen „pcg“). Sie lassen sich sehr einfach benutzen, du musst lediglich deine Matrix A in einer Sparse Matrix speichern und kannst das System dann bspw. mit
code:
1:
2:
3:
4:
5:
A = sparse( 1000000,1000000 );
% A befüllen; Gewöhnlichen Vektor b bereitstellen;
x = gmres( A, b );

lösen. Welche Methode am besten klappt musst Du einfach ausprobieren smile

Es gibt auch noch lineare Iterationsverfahren, die jedoch mit größer werdender Konditionszahl immer langsamer werden. Diese sind zwar langsam, dafür aber leicht zu implementieren. Das Jacobi-Verfahren funktioniert mit irreduzibel diagonaldominanten Matrizen. Das Gauß-Seidel-Verfahren und das SOR-Verfahren funktionieren zusätzlich mit lediglich positiv definiten Matrizen.

Grüße und viel Erfolg!
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »