Advanced Topics

Copyright

Copyright 1994,  Claudia Funke
TU-Berlin, FB 13, Fachgebiet Ökonometrie und Statistik
Dieses Notebook darf ausschließlich als Unterrichtsmaterial und für private 
Zwecke verwendet und nicht ohne Zustimmung der Autorin verändert werden.

Die meisten in Mathematica verfügbaren Funktionen sind auch auf Matrizen
anwendbar. Im folgenden sind einige in der linearen Algebra häufig ver-
wendeten Funktionen aufgeführt.

Determinante

Mit

Det[ Liste ]

wird die Determinante einer quadratischen Matrix berechnet. Dies kann
wieder sowohl symbolisch

a = { {a11,a12}, {a21,a22}}; Det[a]

als auch numerisch erfolgen.

a = { {4,2}, {6,7} }; Det[a]

Die Sarrusche Regel zur Berechnung einer (3,3)-Matrix läßt sich damit
anschaulich darstellen:

a ={ {a11,a12,a13}, {a21,a22,a23}, {a31,a32,a33} };
MatrixForm[a]

Det[a]

Inverse

Ist  A  eine quadratische, nichtsinguläre Matrix der Ordnung n, 
d.h. det(A) =/ 0, dann gibt es eine eindeutige Inverse A^(-1)  
der Ordnung n, wobei gilt

A * A^(-1) = A^(-1) A = I

Die Qualität der numerischen Inversen läßt sich u.a. anhand der Ab-
weichung der Proberechnung von der Einheitsmatrix  I  bestimmen.
In Mathematica wird die Inverse mit

Inverse[ Liste ]

ermittelt.

a = { {a11,a12}, {a21,a22} }; z = Inverse[a]; 
MatrixForm[z]

Am obigen Beispiel ist die Berechnung der Inversen einer Matrix durch

A^(-1) = 1/det(A)  adj(A)

ersichtlich. Die adjungierte Matrix  adj(A)  ist die transponierte (n,n)-Matrix
der Kofaktoren von  A.

Die numerische Genauigkeit der Inversen von  A^(-1) hängt von 
der Genauigkeit der Matrix  A  ab. Reelle Zahlen werden mit der Genauigkeit
berechnet, mit der sie eingegeben werden:

x = Table[ 1/ (i+j-1), {i,3}, {j,3}];
MatrixForm[x]

Eine genaue Berechnung der Inversen erfolgt, wenn die Hilbert-Matrix
wie in der obigen, exakten Form berechnet wird.

z = Inverse[x]; MatrixForm[z]

Die Probe ergibt

p = z . x; MatrixForm[p]

Die Berechnung der Inversen mit einer numerischen Approximation
der Hilbert-Matrix ergibt dagegen bei der Probe Rundungsfehler.

z = Inverse[ N[x,4]]; MatrixForm[ N[z,4]]

An dem Punkt hinter jedem Element der ausgegebenen Matrix ist zu 
erkennen, daß für die jeweilige Zahl noch Nachkommastellen existieren,
die aber durch das angegebene Ausgabeformat nicht erfaßt werden.

MatrixForm[ N[z,16]]

Die Probe ergibt

p = z . N[x,4]; MatrixForm[ N[ p,4]]

Es empfiehlt sich daher, die - numerische - Berechnung der Inversen möglichst
zu vermeiden. Bei der Lösung eines linearen Gleichungssystems ist z.B.
die explizite Berechnung der Inversen nicht notwendig.

Spur

Die Spur (trace) einer Matrix berechnet sich aus der Summe der Haupt-
diagonalelemente.

n
tr(A) = Sum a_ii
     i

In Mathematica bietet sich hier die Anwendung der Funktion

Sum[ f, {i, imax} ]

an.

a = { {a11,a12}, {a21,a22} }; MatrixForm[a]

z = Sum[ a[[i,i]], {i, Length[a]} ]

Wird die Spurberechnung häufiger verwendet, bietet sich die Definition
der Spur als Funktion an.

spur[x_] := Sum[ x[[i,i]], {i, Length[x]}]

?spur

x = { {1,2}, {3,4} }; spur[x]

Rang einer Matrix

In einer Matrix  A  ist die Maximalzahl der linear abhängigen Zeilenvektoren
gleich der Maximalzahl der linear unabhängigen Spaltenvektoren. 
Diese Zahl heißt Rang der Matrix  A,  abgekürzt rg(A).

Der Rang einer nichtquadratischen (n,n)-Matrix  A  ist

r(A) <= n,m

Eine quadratische (n,n)-Matrix  A  heißt regulär, wenn ihr Rang gleich  n  ist,
d.h.

r(A) = n

ansonsten heißt sie singulär. In einer singulären Matrix ist mindestens 
ein Vektor linear abhängig. Eine quadratische Matrix  A  hat somit
einen Rangdefekt

Rangdefekt:  d = n - rg,  wenn d =/  0

mit n = Anzahl der Zeilen/Spalten und rg = rg(A).

In Mathematica kann man den Rang einer Matrix unter Verwendung 
der Funktion

NullSpace[ Liste ]

bestimmen. Diese gibt für eine Matrix  m  eine Liste von Basisvektoren
zurück, deren Linearkombinationen die Bedingung   m x == 0  erfüllen.

a = { {2,3}, {5,7} }; NullSpace[a]

Die Matrix A enhält somit keine linear abhängigen Spalten und besitzt damit 
den vollen Rang  rg(A) = 2. Diesen Wert erhält man in Mathematica, 
indem man von der Anzahl der Spalten von  A  das Ergebnis von  
Length [Null[ a ] ] subtrahiert.

rang[a_] := Length[a] - Length[NullSpace[a]]

rang[a]

Eigenwerte

Das Eigenwertproblem beruht auf der Lösung eines speziellen linearen
Gleichungssystems der Form

A x = lambda x

mit einer nichtsingulären (n,n) - Koeffizientenmatrix  A  und einem
skalaren Faktor  lambda, das nach der unbekannten Größe  x
aufzulösen ist.

Nach Umformung ergibt sich ein spezielles homogenes Gleichungssystem
der Form

(A - lambda I) x = 0

Aus  der Voraussetzung

det(A - lambda I) x = 0

resultiert die charakteristische Gleichung, deren Lösungen

{lambda_i, i = 1, 2, ... n}

als charakteristische Wurzeln oder Eigenwerte der Matrix   A  
bezeichnet werden.

Den insgesamt  n Eigenwerten sind aufgrund von

(A - lambda_j I) x_j = 0
                                        A x_j = lambda_j x_j

mit j = 1, 2, ..., n insgesamt n Eigenvektoren als Lösung für x zugeordnet.

Die Lösung des Eigenwertproblems erfolgt in Mathematica mit

Eigensystem[ Liste ]

und liefert das Ergebnis in der Form   {eigenvalue, eigenvektor}.

a = { {2,6}, {4,3} }; Eigensystem[a]

Das Ergebnis der Eigenwertberechnung wird in eine Liste 
der Dimension (2,2) geschrieben.

Dimensions[a]

Werden Rückgabevariablen für den Aufruf der Funktion   Eigensystem[ ]
defininiert, kann damit leichter auf die berechneten Werte zurückgegriffen
werden.

{eigval, eigvec} = Eigensystem[a];

eigvec

MatrixForm[eigvec]