KlassenKlassenKlassenKlassen | | | | Operatoren

invert_matrixinvert_matrixInvertMatrixinvert_matrixInvertMatrixInvertMatrix (Operator)

Name

invert_matrixinvert_matrixInvertMatrixinvert_matrixInvertMatrixInvertMatrix — Invertiert eine Matrix.

Signatur

invert_matrix( : : MatrixID, MatrixType, Epsilon : MatrixInvID)

Herror invert_matrix(const Hlong MatrixID, const char* MatrixType, double Epsilon, Hlong* MatrixInvID)

Herror T_invert_matrix(const Htuple MatrixID, const Htuple MatrixType, const Htuple Epsilon, Htuple* MatrixInvID)

Herror invert_matrix(const HTuple& MatrixID, const HTuple& MatrixType, const HTuple& Epsilon, Hlong* MatrixInvID)

HMatrix HMatrix::InvertMatrix(const HTuple& MatrixType, const HTuple& Epsilon) const

void InvertMatrix(const HTuple& MatrixID, const HTuple& MatrixType, const HTuple& Epsilon, HTuple* MatrixInvID)

HMatrix HMatrix::InvertMatrix(const HString& MatrixType, double Epsilon) const

HMatrix HMatrix::InvertMatrix(const char* MatrixType, double Epsilon) const

void HOperatorSetX.InvertMatrix(
[in] VARIANT MatrixID, [in] VARIANT MatrixType, [in] VARIANT Epsilon, [out] VARIANT* MatrixInvID)

IHMatrixX* HMatrixX.InvertMatrix(
[in] BSTR MatrixType, [in] double Epsilon)

static void HOperatorSet.InvertMatrix(HTuple matrixID, HTuple matrixType, HTuple epsilon, out HTuple matrixInvID)

HMatrix HMatrix.InvertMatrix(string matrixType, double epsilon)

Beschreibung

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.

Achtung

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.

Parallelisierung

Parameter

MatrixIDMatrixIDMatrixIDMatrixIDMatrixIDmatrixID (input_control)  matrix HMatrix, HTupleHTupleHMatrix, HTupleHMatrixX, VARIANTHtuple (integer) (IntPtr) (Hlong) (Hlong) (Hlong) (Hlong)

Matrix Handle der Eingabematrix.

MatrixTypeMatrixTypeMatrixTypeMatrixTypeMatrixTypematrixType (input_control)  string HTupleHTupleHTupleVARIANTHtuple (string) (string) (HString) (char*) (BSTR) (char*)

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"

EpsilonEpsilonEpsilonEpsilonEpsilonepsilon (input_control)  real HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Inversiontype.

Defaultwert: 0.0

Wertevorschläge: 0.0, 2.2204e-16

MatrixInvIDMatrixInvIDMatrixInvIDMatrixInvIDMatrixInvIDmatrixInvID (output_control)  matrix HMatrix, HTupleHTupleHMatrix, HTupleHMatrixX, VARIANTHtuple (integer) (IntPtr) (Hlong) (Hlong) (Hlong) (Hlong)

Matrix Handle mit der inversen Matrix.

Ergebnis

Sind die Parameterwerte korrekt, dann liefert invert_matrixinvert_matrixInvertMatrixinvert_matrixInvertMatrixInvertMatrix den Wert 2 (H_MSG_TRUE). Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Vorgänger

create_matrixcreate_matrixCreateMatrixcreate_matrixCreateMatrixCreateMatrix

Nachfolger

get_full_matrixget_full_matrixGetFullMatrixget_full_matrixGetFullMatrixGetFullMatrix, get_value_matrixget_value_matrixGetValueMatrixget_value_matrixGetValueMatrixGetValueMatrix

Alternativen

invert_matrix_modinvert_matrix_modInvertMatrixModinvert_matrix_modInvertMatrixModInvertMatrixMod

Siehe auch

transpose_matrixtranspose_matrixTransposeMatrixtranspose_matrixTransposeMatrixTransposeMatrix, transpose_matrix_modtranspose_matrix_modTransposeMatrixModtranspose_matrix_modTransposeMatrixModTransposeMatrixMod

Literatur

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.

Modul

Foundation


KlassenKlassenKlassenKlassen | | | | Operatoren