Matlab: Zauberstab "Backslash-Operator"
Lineare
Gleichungs-
systeme
Zur Startseite "Einführung, Lösbarkeit, Determinanten" Gauß, LR-Zerlegung, Cholesky, Matrix-Inversion, homogene Systeme, dünn besetzte Matrix, überbestimmte Systeme, Standard-Software, Kondition, Singularität Zur Startseite "Iterationsverfahren für lineare Gleichungssysteme" Symbolische Rechnung, numerische Berechnung, Beispiele mit verschiedenen Softwareprodukten, der Backslash-Operator in Matlab Zur Startseite "Rundungsfehler, Kondition, Singularität, Skalierung" Zum Vergleich"Direkte Verfahren vs. Iterationsverfahren" Zur Startseite "Überbestimmte Gleichungssysteme"

"Gauß, Dreieckszerlegung, Pivotisierung, Cholesky, unterbestimmtes und überbestimmtes System, singulär, regulär, positiv definit, rechteckige, quadratische, symmetrische Koeffizientenmatrix, voll besetzt, bandförmig oder ‘sparse’, das kannst Du alles vergessen. Ich sage nur ‘Backslash’, und alles geht wie von selbst."

Ein Matlab-Anwender

Fähigkeiten des Backslash-Operators

In Matlab können lineare Gleichungssysteme

AGrossxGleichB02

mit dem Backslash-Operator gelöst werden:

X = A \ B ;

Für den Matlab-Anwender ergeben sich damit folgende Vorteile:

  • Er braucht sich nicht um die Auswahl eines geeigneten Lösungsverfahrens zu kümmern. Der mit dem Backslash-Operator aufgerufene Algorithmus analysiert die übergebenen Matrizen A und B und wählt selbst ein geeignetes Verfahren. Die Algorithmen sind offensichtlich sehr gut implementiert und ausgesprochen schnell.
     
  • Die Matrizen können auch im Speicherformat "Sparse" gespeichert sein, was speziell für sehr große Gleichungssysteme häufig die einzige Möglichkeit ist, um mit erträglichen Rechenzeiten und realisierbarem Speicherbedarf auszukommen.
     
  • Der Backslash-Operator liefert fast immer ein Ergebnis ab, auch für nichtquadratische Matrix A. Diese Fälle werden unter "Backslash-Operation mit ’breiter’ Rechteckmatrix A" bzw. "Backslash-Operation mit ’hoher’ Rechteckmatrix A" gesondert behandelt. Für den Spezialfall "Homogenes Gleichungssystem", für den der Backslash-Operator immer die triviale Lösung liefert, wird auf die Seite "Homogene Gleichungssysteme" verwiesen.

Die folgenden Betrachtungen auf dieser Seite beschränken sich deshalb auf den Fall quadratischer Koeffizientenmatrix A.

Quadratische Matrix A

Wenn in der Anweisung

X = A \ B ;

eine quadratische Matrix A übergeben wird, so wird diese einer Reihe von Tests unterworfen, bevor die Entscheidung über den Algorithmus gefällt wird, die wichtigsten Tests sind:

Die durchaus verständliche Skepsis, dass die erforderlichen Prüfungen vor der Entscheidung für den Algorithmus ein eventuell nicht vertretbarer Mehraufwand sein könnte, war auch beim Schreiber dieses Textes gegeben. Schließlich kann der Test auf positive Definitheit den Aufwand der Cholesky-Zerlegung erreichen (und dann vielleicht negativ ausfallen). Bei den durchgeführten Rechnungen wurde diese Skepsis nur manchmal, der Nachteil fällt aber wegen der sehr schnellen Algorithmen nur unwesentlich ins Gewicht.

Risiken, Merkwürdiges und Erstaunliches

Hier werden einige Erfahrungen aus Testrechnungen zusammengestellt, die einerseits Komfort und Leistungsfähigkeit der hinter dem Backslash-Operator arbeitenden Algorithmen zeigen, andererseits auch auf Risiken und die manchmal fehlende Möglichkeit für den Anwender hinweisen, die Verfahrensauswahl zu beeinflussen.

  • Schwieriges Problem:
SingularitätDer Ehrgeiz des Backslash-Operators, möglichst in jedem Fall ein Ergebnis abzuliefern, ist im Falle singulärer Koeffizientenmatrix A manchmal übertrieben. Wegen der Zahlendarstellung im Computer mit begrenzter Stellenanzahl und der unvermeidlichen Rundungsfehler bei der Rechnung ist es außerordentlich schwierig, Singularität bei der Computerrechnung überhaupt zu erkennen. Andererseits ist die Singularität der Matrix A oft der einzige Hinweis auf einen Fehler bei der Formulierung des Gleichungssystems. Das Problem im Umgang mit singulären Matrizen wird auf den Seiten "Schwieriges Problem: Singularität erkennen" und "Matlab: Probleme mit singulären Matrizen" behandelt.

  • RendbremIcon2Symmetrie und positive Definitheit sind bei vielen Ingenieurproblemen (speziell bei Berechnungen mit der Finite-Elemente-Methode) Eigenschaften der Koeffizientenmatrix des Gleichungssystems, die schon deshalb immer überprüft werden sollten, weil das Fehlen dieser Eigenschaften in den meisten Fällen der einzige Hinweis auf ein fehlerhaftes Berechnungsmodell ist. Das kann mit dem Backslash-Operator nicht erzwungen werden (zumindest meldet er das Ergebnis einer solchen Überprüfung nicht). Was bei den alternativen Lösungsmöglichkeiten solcher Systeme mit den Functions chol bzw. linsolve zu beachten ist, wird auf der Seite "Matlab: Backslash, chol und linsolve" diskutiert.

  • TorsnetIcon02Weil linsolve das Speicherformat "Sparse" nicht akzeptiert, steht bei großen Gleichungssystemen mit symmetrischer und positiv definiter Koeffizientenmatrix nur die Kombination von chol und Backslash-Operation als Alternative zur Lösung mit dem Backslash-Operator zur Verfügung. Dies wird auf der Seite "Matlab: Vergleich Backslash-Operator und Function chol" an einem großen Gleichungssystem noch einmal demonstriert, wobei sich bemerkenswerte Unterschiede in den erforderlichen Rechenzeiten ergeben, die auf das in jedem Fall zu beachtende "Fill-in-Problem" aufmerksam machen.
Home02

Homepage “Dankert/Dankert: Technische Mechanik”

Home02

Homepage “WWW - Ergänzung - Vertiefung - WWW”

Mail02

D

Mail202

nkert.de