Name
invert_matrixinvert_matrixInvertMatrixinvert_matrixInvertMatrixInvertMatrix — Invertiert eine Matrix.
Der Operator invert_matrixinvert_matrixInvertMatrixinvert_matrixInvertMatrixInvertMatrix berechnet die Inverse der Matrix
MatrixMatrixMatrixMatrixMatrixmatrix. Es wird eine neue Matrix MatrixInvMatrixInvMatrixInvMatrixInvMatrixInvmatrixInv mit
dem Ergebnis generiert und das Matrix Handle MatrixInvIDMatrixInvIDMatrixInvIDMatrixInvIDMatrixInvIDmatrixInvID
dieser Matrix zurückgegeben. Zugriff auf die Elemente der Matrix
ist z.B. mit dem Operator get_full_matrixget_full_matrixGetFullMatrixget_full_matrixGetFullMatrixGetFullMatrix möglich.
Die Inverse wird berechnet, wenn EpsilonEpsilonEpsilonEpsilonEpsilonepsilon = 0 ist. Der
Matrixtyp wird über MatrixTypeMatrixTypeMatrixTypeMatrixTypeMatrixTypematrixType gewählt. Zur Verfügung
stehen '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, '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.
Die Pseudoinverse wird berechnet, wenn EpsilonEpsilonEpsilonEpsilonEpsilonepsilon > 0 gesetzt
ist. Alle Singulärwerte, die während der Berechnung entstehen und
kleiner als EpsilonEpsilonEpsilonEpsilonEpsilonepsilon * dem größten
Singulärwert sind, werden auf 0 gesetzt. Für diese Werte wird keine
interne Division vorgenommen um einer Division durch 0 vorzubeugen.
Als Matrixtyp muss MatrixTypeMatrixTypeMatrixTypeMatrixTypeMatrixTypematrixType = 'general'"general""general""general""general""general" gesetzt
werden.
Bemerkung: Die relative Genauigkeit der Gleitkommarepräsentation
des genutzten Datentyps (double) ist EpsilonEpsilonEpsilonEpsilonEpsilonepsilon = 2.2204e-16.
Es ist ebenfalls zu beachten, dass in den Beispielen Unterschiede
in der Bedeutung der Werte in den Ausgabematrizen zu finden sind:
Die Ergebnisse der Elemente sind per Definition ein bestimmter
Wert, wenn dieser als ganze Zahl dargestellt ist, z.B. 0 oder 1.
Der Wert ist berechnet, wenn er als Gleitpunktzahl dargestellt ist,
z.B. 0.0 oder 1.0.
Wird MatrixTypeMatrixTypeMatrixTypeMatrixTypeMatrixTypematrixType = '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
MatrixMatrixMatrixMatrixMatrixmatrix die relevante Information der Matrix beinhalten.
Der exakt untere Teil der Matrix wird nicht verwendet. Wird
MatrixTypeMatrixTypeMatrixTypeMatrixTypeMatrixTypematrixType = 'lower_triangular'"lower_triangular""lower_triangular""lower_triangular""lower_triangular""lower_triangular" gewählt, so muss
der untere Dreiecksteil der Eingabematrix MatrixMatrixMatrixMatrixMatrixmatrix die
relevante Information der Matrix beinhalten. Der exakt obere
Teil der Matrix wird nicht verwendet. Wird MatrixTypeMatrixTypeMatrixTypeMatrixTypeMatrixTypematrixType =
'tridiagonal'"tridiagonal""tridiagonal""tridiagonal""tridiagonal""tridiagonal" gesetzt, wird nur die Hauptdiagonale und
die beiden Nebendiagonalen der Eingabematrix MatrixMatrixMatrixMatrixMatrixmatrix
genutzt. Die anderen Teile der Matrix werden nicht verwendet.
Wenn der verwendete Teil der Eingabematrix MatrixMatrixMatrixMatrixMatrixmatrix nicht
vom spezifizierten Typ ist, wird eine Fehlerbehandlung
durchgeführt.
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Wird ohne Parallelisierung verarbeitet.
Matrix Handle der Eingabematrix.
Der Matrixtyp der Eingabematrix.
Defaultwert:
'general'
"general"
"general"
"general"
"general"
"general"
Werteliste: 'general'"general""general""general""general""general", 'lower_triangular'"lower_triangular""lower_triangular""lower_triangular""lower_triangular""lower_triangular", 'permuted_lower_triangular'"permuted_lower_triangular""permuted_lower_triangular""permuted_lower_triangular""permuted_lower_triangular""permuted_lower_triangular", 'permuted_upper_triangular'"permuted_upper_triangular""permuted_upper_triangular""permuted_upper_triangular""permuted_upper_triangular""permuted_upper_triangular", 'positive_definite'"positive_definite""positive_definite""positive_definite""positive_definite""positive_definite", 'symmetric'"symmetric""symmetric""symmetric""symmetric""symmetric", 'tridiagonal'"tridiagonal""tridiagonal""tridiagonal""tridiagonal""tridiagonal", 'upper_triangular'"upper_triangular""upper_triangular""upper_triangular""upper_triangular""upper_triangular"
Inversiontype.
Defaultwert: 0.0
Wertevorschläge: 0.0, 2.2204e-16
Matrix Handle mit der inversen Matrix.
Sind die Parameterwerte korrekt, dann liefert invert_matrixinvert_matrixInvertMatrixinvert_matrixInvertMatrixInvertMatrix
den Wert 2 (H_MSG_TRUE). Gegebenenfalls wird eine Fehlerbehandlung
durchgeführt.
create_matrixcreate_matrixCreateMatrixcreate_matrixCreateMatrixCreateMatrix
get_full_matrixget_full_matrixGetFullMatrixget_full_matrixGetFullMatrixGetFullMatrix,
get_value_matrixget_value_matrixGetValueMatrixget_value_matrixGetValueMatrixGetValueMatrix
invert_matrix_modinvert_matrix_modInvertMatrixModinvert_matrix_modInvertMatrixModInvertMatrixMod
transpose_matrixtranspose_matrixTransposeMatrixtranspose_matrixTransposeMatrixTransposeMatrix,
transpose_matrix_modtranspose_matrix_modTransposeMatrixModtranspose_matrix_modTransposeMatrixModTransposeMatrixMod
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