Erzeugen von Matrizen und Vektoren

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.

Grundlagen

Vektoren und Matrizen werden in Mathematica durch Listen dargestellt. 
Alles, was keine Liste ist, wird von Mathematica als Skalar betrachtet. 
Jede Liste kann wiederum durch eine Liste dargestellt werden. 
Elemente einer Matrix können demnach alle möglichen Elemente einer
Liste sein, also reelle und komplexe Zahlen, Variablen, Zeichenketten 
und Objekte.

Erzeugen von Matrizen

Vektoren und Matrizen können auf verschiedene Weisen erzeugt werden,
die einfachste Form ist die Zuweisung der Elemente durch eine Aufzählung.

x = {1, 2, 3, c}

Eine anschauliche Ausgabe der Liste erfolgt durch

MatrixForm[ Liste ]

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

Durch die Funktion

Table[ f, {i, n}, {j, n}  ]

Wird eine Matrix   X   erzeugt, in der die Funktion  f  für verschiedene Werte 
von  i  und  j  ausgewertet werden.

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

Graphische Objekte können ebenfalls Elemente von Matrizen sein.

x = Table[ Plot[Sin[x], {x, 0, 2 Pi}], {3}, {3}]

MatrixForm[x]

Mathematica kann Matrizen höherer Dimension (Tensoren) erstellen und 
verarbeiten. Eine dreidimensionale Matrix ist z.B. eine Matrix mit komplexen
Zahlen, wobei jedes Element wiederum in Form einer neuen Liste als Real-
teil und Imaginärteil aufgeteilt wurde.

Dazu wird als Beispiel zuerst eine zweidimensionale (5,4) - Matrix erzeugt,
bei der jedes Element aus einer komplexen Zahl besteht.

x = Table[ N[a + I b, 2], {a, 2, 4, 2}, 
{b, -0.5, 0.5, 1}]; MatrixForm[x]

Anschließend wird jede komplexe Zahl in ihrem Realteil und Imaginärteil
aufgespalten und als Liste abgespeichert.

x = Map[ {Re[#], Im[#]}&, x, {2}]

Die neue Dimension der Matrix lautet nun

Dimensions[x]

Spezielle Matrizen und Vektoren

Die Einheitsmatrix  I  wird durch die Funktion

IdentityMatrix[ n ]

erzeugt.

x = IdentityMatrix[3]; MatrixForm[x]

Eine beliebige Skalarmatrix läßt sich mit   Table[ ]   erzeugen.

x = Table[0, {3}, {4}]; MatrixForm[x]

Eine Diagonalmatrix erhält man mit

DiagonalMatrix[ Liste ]

wobei   Liste   einen Vektor der Diagonalelemente darstellt und damit
die Größe der Matrix bestimmt.

x = DiagonalMatrix[{a, b, c}]; MatrixForm[x]

Eine Matrix mit standardnormalverteilten Zufallszahlen erhält man
ebenfalls mit  Table[ ].

x = Table[Random[ ], {3}, {4}]; MatrixForm[x]

Obere und untere Dreiecksmatrizen werden auch mit   Table[ ]   erzeugt.

x = Table[ If[i >= j, 1, 0], {i, 4}, {j, 4} ];
MatrixForm[x]

x = Table[ If[i <= j, 1, 0], {i, 4}, {j, 4}]; 
MatrixForm[x]

Zum Aufbau einer mehrdiagonalen Matrix wird die Funktion

Switch[ Ausdruck, Form1, Wert1, Form2, Wert2, ... , def ]

benötigt.  Switch[ ]  vergleicht  expr.  mit  form1  bzw.  form2  und gibt bei
Übereinstimmung den  form1  bzw.  form2  zugeordneten Wert zurück.
form1  bzw.  form2  muß ein Skalar sein. Gibt es keine Übereinstimmung von 
expr.   mit einem der angegebenen Werte, so kann mit  _   und   def    ein
Defaultwert zurückgegeben werden.

x = Table[ Switch[i-j, -1, a, 0, b, 1, c, _, 0], 
{i, 5}, {j, 5}]; MatrixForm[x]

Spezielle Vektoren

Für das Plotten von Beobachtungswerten wird häufig ein Vektor 
mit fortlaufenden Werten benötigt. Dies kann mit

Range[ n1, n2, dn ]

erfolgen.

x = Range[5]

x = Range[0, 4, 0.25]