Für lineare Gleichungssysteme werden die Gleichungen
gelöst. Hierfür muss die Matrix MatrixLHS quadratisch und
der Parameter EpsilonEpsilonEpsilonEpsilonepsilonepsilon 0 sein. Der Matrixtyp der
Matrix MatrixLHS kann über den Parameter
MatrixLHSTypeMatrixLHSTypeMatrixLHSTypeMatrixLHSTypematrixLHSTypematrix_lhstype gewählt werden. Die folgenden Werte stehen
zur Verfügung: 'general'"general""general""general""general""general" für allgemeine,
'symmetric'"symmetric""symmetric""symmetric""symmetric""symmetric" für symmetrische, 'positive_definite'"positive_definite""positive_definite""positive_definite""positive_definite""positive_definite"
für symmetrisch positiv definite und 'tridiagonal'"tridiagonal""tridiagonal""tridiagonal""tridiagonal""tridiagonal" für
tridiagonale Matrizen, 'upper_triangular'"upper_triangular""upper_triangular""upper_triangular""upper_triangular""upper_triangular" für obere,
'permuted_upper_triangular'"permuted_upper_triangular""permuted_upper_triangular""permuted_upper_triangular""permuted_upper_triangular""permuted_upper_triangular" für permutierte obere,
'lower_triangular'"lower_triangular""lower_triangular""lower_triangular""lower_triangular""lower_triangular" für untere und
'permuted_lower_triangular'"permuted_lower_triangular""permuted_lower_triangular""permuted_lower_triangular""permuted_lower_triangular""permuted_lower_triangular" für permutierte untere
Dreiecksmatrizen.
Für ein lineares Kleinste-Quadrate Problem oder die Wahl
EpsilonEpsilonEpsilonEpsilonepsilonepsilon 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
berechnet. Alle Singulärwerte, die kleiner als EpsilonEpsilonEpsilonEpsilonepsilonepsilon
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 MatrixLHSTypeMatrixLHSTypeMatrixLHSTypeMatrixLHSTypematrixLHSTypematrix_lhstype = 'general'"general""general""general""general""general" gewählt
werden.
Wird MatrixLHSTypeMatrixLHSTypeMatrixLHSTypeMatrixLHSTypematrixLHSTypematrix_lhstype = 'symmetric'"symmetric""symmetric""symmetric""symmetric""symmetric",
'positive_definite'"positive_definite""positive_definite""positive_definite""positive_definite""positive_definite" oder 'upper_triangular'"upper_triangular""upper_triangular""upper_triangular""upper_triangular""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
MatrixLHSTypeMatrixLHSTypeMatrixLHSTypeMatrixLHSTypematrixLHSTypematrix_lhstype = 'lower_triangular'"lower_triangular""lower_triangular""lower_triangular""lower_triangular""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 MatrixLHSTypeMatrixLHSTypeMatrixLHSTypeMatrixLHSTypematrixLHSTypematrix_lhstype =
'tridiagonal'"tridiagonal""tridiagonal""tridiagonal""tridiagonal""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.
Ausführungsinformationen
Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
Sind die Parameterwerte korrekt, dann liefert solve_matrixsolve_matrixSolveMatrixSolveMatrixSolveMatrixsolve_matrix
den Wert 2 (H_MSG_TRUE). Gegebenenfalls wird eine Fehlerbehandlung
durchgeführt.
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.