| Operatoren |
solve_matrix — Berechnet die Lösung eines Gleichungssystems.
solve_matrix( : : MatrixLHSID, MatrixLHSType, Epsilon, MatrixRHSID : MatrixResultID)
Der Operator solve_matrix berechnet die Lösung eines linearen Gleichungssystems oder eines linearen Kleinsten-Quadrate Problems. Die Eingabematrizen MatrixLHS und MatrixRHS sind durch die Matrix Handles MatrixLHSID und MatrixRHSID gegeben. Die Anzahl der Zeilen der Matrizen MatrixLHS und MatrixRHS müssen identisch sein. Der Operator gibt das Matrix Handle MatrixResultID der Matrix MatrixResult zurück. Zugriff auf die Elemente der Matrix ist z.B. mit dem Operator get_full_matrix möglich.
Für lineare Gleichungssysteme werden die Gleichungen
MatrixLHS * MatrixResult = MatrixRHSgelöst. Hierfür muss die Matrix MatrixLHS quadratisch und der Parameter Epsilon 0 sein. Der Matrixtyp der Matrix MatrixLHS kann über den Parameter MatrixLHSType gewählt werden. Die folgenden Werte stehen zur Verfügung: 'general' für allgemeine, 'symmetric' für symmetrische, 'positive_definite' für symmetrisch positiv definite und 'tridiagonal' für tridiagonale Matrizen, 'upper_triangular' für obere, 'permuted_upper_triangular' für permutierte obere, 'lower_triangular' für untere und 'permuted_lower_triangular' für permutierte untere Dreiecksmatrizen.
Für ein lineares Kleinste-Quadrate Problem oder die Wahl Epsilon ungleich 0 muss die Matrix MatrixLHS nicht quadratisch sein. Die Kleinste-Quadrate Lösung wird mittels einer Singulärwertzerlegung der Matrix MatrixLHS durch Minimieren von
||MatrixRHS - MatrixLHS * MatrixResult||berechnet. Alle Singulärwerte, die kleiner als Epsilon * dem größten Singulärwert sind, werden 0 gesetzt. Für diese Werte wird keine interne Division vorgenommen um einer Division durch 0 vorzubeugen. Ebenfalls darf die Matrix MatrixLHS in diesem Fall einen Rangdefekt aufweisen. Als Matrixtyp muss MatrixLHSType = 'general' gewählt werden.
Bemerkung: Die relative Genauigkeit der Gleitkommarepräsentation des genutzten Datentyps (double) ist Epsilon = 2.2204e-16.
Wird MatrixLHSType = 'symmetric', 'positive_definite' oder 'upper_triangular' gewählt, so muss der obere Dreiecksteil der Eingabematrix MatrixLHS die relevante Information der Matrix beinhalten. Der exakt untere Teil der Matrix wird nicht verwendet. Wird MatrixLHSType = 'lower_triangular' gewählt, so muss der untere Dreiecksteil der Eingabematrix MatrixLHS die relevante Information der Matrix beinhalten. Der exakt obere Teil der Matrix wird nicht verwendet. Wird MatrixLHSType = 'tridiagonal' gesetzt, wird nur die Hauptdiagonale und die beiden Nebendiagonalen der Eingabematrix MatrixLHS genutzt. Die anderen Teile der Matrix werden nicht verwendet. Wenn der verwendete Teil der Eingabematrix MatrixLHS nicht vom spezifizierten Typ ist, wird eine Fehlerbehandlung durchgeführt.
Matrix Handle der Eingabematrix der linken Seite.
Der Matrixtyp der Eingabematrix der linken Seite.
Defaultwert: 'general'
Werteliste: 'general', 'lower_triangular', 'permuted_lower_triangular', 'permuted_upper_triangular', 'positive_definite', 'symmetric', 'tridiagonal', 'upper_triangular'
Lösungstyp und Grenze zum Setzen der Singulärwerte zu 0.
Defaultwert: 0.0
Wertevorschläge: 0.0, 2.2204e-16
Matrix Handle der Eingabematrix der rechten Seite.
Neues Matrix Handle mit der Lösung.
Sind die Parameterwerte korrekt, dann liefert solve_matrix den Wert 2 (H_MSG_TRUE). Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
get_full_matrix, get_value_matrix
David Poole: „Linear Algebra: A Modern Introduction“; Thomson;
Belmont; 2006.
Gene H. Golub, Charles F. van Loan: „Matrix Computations“; The
Johns Hopkins University Press; Baltimore and London; 1996.
Foundation
| Operatoren |