This is documentation for Mathematica 4, which was
based on an earlier version of the Wolfram Language.
View current documentation (Version 11.2)

 Documentation /  Mathematica /  Das Mathematica Buch /  Höhere Mathematik in Mathematica /  Lineare Algebra /

Multiplizieren von Vektoren und MatrizenMatrix-Grundoperationen

3.7.6 Inversion von Matrizen

Inversion von Matrizen

Hier ist eine einfache -Matrix.

In[1]:= m = {{a, b}, {c, d}}

Out[1]=

Dies liefert die Inverse von m. Wenn Mathematica diese Formel anwendet, wird implizit vorausgesetzt, daß die Determinante a d - b c ungleich Null ist.

In[2]:= Inverse[ m ]

Out[2]=

Die Multiplikation der inversen mit der ursprünglichen Matrix ergibt die Einheitsmatrix.

In[3]:= % . m

Out[3]=

Mit Together beseitigen Sie die Nenner und erhalten eine normale Einheitsmatrix.

In[4]:= Together[ % ]

Out[4]=

Hier ist eine Matrix mit rationalen Zahlen.

In[5]:= hb = Table[1/(i + j), {i, 4}, {j, 4}]

Out[5]=

Mathematica bestimmt die exakte Inverse der Matrix.

In[6]:= Inverse[hb]

Out[6]=

Die Multiplikation mit der ursprünglichen Matrix liefert die Einheitsmatrix.

In[7]:= % . hb

Out[7]=

Wenn Sie versuchen, eine singuläre Matrix zu invertieren, so druckt Mathematica eine Warnung aus und kehrt mit unerledigter Inversion zurück.

In[8]:= Inverse[ {{1, 2}, {1, 2}} ]

Out[8]=

Wenn Sie eine Matrix mit exakten symbolischen oder numerischen Einträgen angeben, so liefert Mathematica die exakte Inverse. Wenn andererseits einige Ihrer Matrix-Einträge reelle Gleitpunktzahlen sind, dann findet Mathematica ein numerisches Gleitpunktresultat.

Hier ist eine Matrix, die reelle Gleitpunktzahlen enthält.

In[9]:= m = {{1.2, 5.7}, {4.2, 5.6}}

Out[9]=

Dies bestimmt die numerische Inverse.

In[10]:= Inverse[ % ]

Out[10]=

Die Multiplikation mit der ursprünglichen Matrix liefert eine Einheitsmatrix mit kleinen numerischen Fehlern.

In[11]:= % . m

Out[11]=

Mit Chop können Sie die kleinen Terme außerhalb der Diagonalen eliminieren.

In[12]:= Chop[ % ]

Out[12]=

Wenn versucht wird, eine Matrix mit exakten numerischen Einträgen zu invertieren, kann Mathematica stets feststellen, ob die Matrix singulär ist oder nicht. Bei einer Matrix mit numerischen Näherungswerten kann Mathematica in der Regel nicht sagen, ob es sich um eine singuläre Matrix handelt oder nicht. Es kann beispielsweise nur beurteilen, daß die Determinante klein im Verhältnis zu den Einträgen der Matrix ist. Wenn Mathematica vermutet, daß Sie eine singuläre numerische Matrix zu invertieren versuchen, druckt es eine Warnung.

Mathematica druckt eine Warnung, wenn Sie eine numerische Matrix invertieren, von der es annimmt, sie sei singulär.

In[13]:= Inverse[ {{1., 2.}, {1., 2.}} ]

Out[13]=

Wenn man mit Gleitpunktzahlen hoher Präzision arbeiten, wird Mathematica auf die Präzision der erzeugten inversen Matrizen achten.

Dies erzeugt eine numerische -Matrix, deren Einträge 50-stellige Präzision haben.

In[14]:= m = N [ Table[ GCD[i, j] + 1, {i, 6}, {j, 6} ], 50 ] ;

Hier wird die Matrix mit ihrer Inversen multipliziert und dann die erste Zeile des Resultats gezeigt.

In[15]:= (m . Inverse[m]) [[1]]

Out[15]=

Dies erzeugt eine 50-stellige numerische Näherung einer Hilbert-Matrix. Hilbert-Matrizen sind bekanntermaßen numerisch schwer invertierbar.

In[16]:= m = N[Table[1/(i + j - 1), {i, 6}, {j, 6}], 50] ;

Das Ergebnis ist noch korrekt, aber die Nullen haben nun geringere Genauigkeit.

In[17]:= (m . Inverse[m]) [[1]]

Out[17]=

Inverse arbeitet nur mit quadratischen Matrizen. Abschnitt 3.7.10 beschreibt die Funktion PseudoInverse, die auch bei nicht-quadratischen Matrizen benutzt werden kann.

Multiplizieren von Vektoren und MatrizenMatrix-Grundoperationen