invert_matrix_mod
— Invertiert eine Matrix.
invert_matrix_mod( : : MatrixID, MatrixType, Epsilon : )
Der Operator invert_matrix_mod
berechnet die Inverse der
Matrix Matrix
. Die Eingabematrix wird mit dem Ergebnis
überschrieben. Zugriff auf die Elemente der Matrix ist z.B. mit
dem Operator get_full_matrix
möglich.
Die Inverse wird berechnet, wenn Epsilon
= 0 ist. Der
Matrixtyp wird über MatrixType
gewählt. Zur Verfügung
stehen 'general' für allgemeine, 'symmetric' für
symmetrische, 'positive_definite' für symmetrisch positiv
definite, '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.
Die Pseudoinverse wird berechnet, wenn Epsilon
> 0 gesetzt
ist. Alle Singulärwerte, die während der Berechnung entstehen und
kleiner als Epsilon
* 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 MatrixType
= 'general' gesetzt
werden.
Bemerkung: Die relative Genauigkeit der Gleitkommarepräsentation
des genutzten Datentyps (double) ist Epsilon
= 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 MatrixType
= 'symmetric' ,
'positive_definite' oder 'upper_triangular'
gewählt, so muss der obere Dreiecksteil der Eingabematrix
Matrix
die relevante Information der Matrix beinhalten.
Der exakt untere Teil der Matrix wird nicht verwendet. Wird
MatrixType
= 'lower_triangular' gewählt, so muss
der untere Dreiecksteil der Eingabematrix Matrix
die
relevante Information der Matrix beinhalten. Der exakt obere
Teil der Matrix wird nicht verwendet. Wird MatrixType
=
'tridiagonal' gesetzt, wird nur die Hauptdiagonale und
die beiden Nebendiagonalen der Eingabematrix Matrix
genutzt. Die anderen Teile der Matrix werden nicht verwendet.
Wenn der verwendete Teil der Eingabematrix Matrix
nicht
vom spezifizierten Typ ist, wird eine Fehlerbehandlung
durchgeführt.
invert_matrix_mod
verändert den Inhalt einer bereits
bestehenden Matrix.
Dieser Operator modifiziert den Zustand des folgenden Eingabeparameters:
Während der Ausführung dieses Operators muss der Zugriff auf den Wert dieses Parameters synchronisiert werden, wenn er über mehrere Threads hinweg verwendet wird.
MatrixID
(input_control, Zustand wird modifiziert) matrix →
(handle)
Matrix Handle der Eingabematrix.
MatrixType
(input_control) string →
(string)
Der Matrixtyp der Eingabematrix.
Defaultwert: 'general'
Werteliste: 'general' , 'lower_triangular' , 'permuted_lower_triangular' , 'permuted_upper_triangular' , 'positive_definite' , 'symmetric' , 'tridiagonal' , 'upper_triangular'
Epsilon
(input_control) real →
(real)
Inversiontype.
Defaultwert: 0.0
Wertevorschläge: 0.0, 2.2204e-16
Sind die Parameterwerte korrekt, dann liefert invert_matrix_mod
den Wert 2 (H_MSG_TRUE). Gegebenenfalls wird eine Fehlerbehandlung
durchgeführt.
get_full_matrix
,
get_value_matrix
transpose_matrix
,
transpose_matrix_mod
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