Wir führen hier zunächst einige Begriffe und Schreibweisen ein, die ohne weitere Erklärungen nicht sonderlich sinnvoll oder gar nützlich erscheinen. In den nachfolgenden Unterkapitel füllen wir diese dann mit Leben und Sinn. So haben wir einerseits den “trockenen” Teil schnell hinter uns und konzentriert an einer Stelle zum späteren Nachschlagen; andererseits stören dann keine eher technischen als inhaltlichen Definitionen den Erklärfluss.
5.1.1Vektoren¶
Der Begriff des Vektors wurde bereits in Spezialfall: Punkte und Vektoren als “Liste” von Zahlen eingeführt. Die Menge aller Vektoren der Länge bezeichnen wir mit . Beachte, dass die Unterscheidung zwischen Punkt und Vektor nur eine Interpretationsfrage ist. Aus technischer Sicht besteht keinerlei Unterschied, da es sich in beiden Fällen um eine Liste von Zahlen handelt.
Für Vektoren führen wir zunächst zwei Rechenoperationen ein: die Addition zweier Vektoren und die Multiplikation eines Vektors mit einer Zahl.
Beide Begriffe sind also einfach komponentenweise definiert. Beachte, dass weiter unten noch das Skalarprodukt zweier Vektoren eingefeführt werden wird. Dieses ist eine ganz andere Rechenoperation als das Bilden des skalaren Vielfachen!
Mit den beiden eingeführten Rechenoperationen können wir auch komplexere Ausdrücke formulieren. Eine häufig benötigte Kombination von Additionen und skalaren Vielfachen ist die folgende:
Beachte, dass in dieser Definition jedes ein Vektor ist! Im Gegensatz dazu hatten wir beim Einführen der Addition und des skalaren Vielfachen die einzelnen Komponenten des Vektors mit bezeichnet. Bei Formeln mit Vektoren ist stets ganz genau zu prüfen, welche Rolle ggf. vorhandene Indizes spielen!
5.1.2Matrizen¶
Die folgende Definition mag zunächst etwas sinnarm erscheinen. Es wird sich jedoch zeigen, das Matrizen trotz ihres einfachen Aufbaus ein zentrales Werkzeug der Mathematik mit teils sehr tief liegender, vorerst in keiner Weise erkennbarer Bedeutung sind.
Völlig analog zu Vektoren sind auch für Matrizen Summen und skalare Vielfache elementweise definiert. Der Begriff der Linearkombination steht entsprechend auch bei Matrizen zur Verfügung, spielt hier aber kaum eine Rolle.
Während man in der Mathematik Vektoren stets als Spaltenvektoren ansieht, wird bei der Arbeit mit dem Computer (je nach verwendeter Software) streng unterschieden zwischen Vektor (Liste von Zahlen) und Spaltenvektor (Rechteck von Zahlen mit nur einer Spalte).
import numpy as np
vektor = np.array([1, 4, 3])
spalte = np.array([[1], [4], [3]])
zeile = np.array([[1, 4, 3]])
print(vektor)
print(vektor.shape)
print()
print(spalte)
print(spalte.shape)
print()
print(zeile)
print(zeile.shape)[1 4 3]
(3,)
[[1]
[4]
[3]]
(3, 1)
[[1 4 3]]
(1, 3)
Um die Transponierte zu einer Matrix zu bilden nimmt man also eine Zeile nach der anderen der ursprünglichen Matrix und schreibt sie als Spalten nebeneinander.
Das Transponieren eines Spaltenvektors liefert einen Zeilenvektor und umgekehrt. Möchte man einen (Spalten-)Vektor in Fließtext unterbringen, so schreibt man ihn gern als transponierten Zeilenvektor, also beispielsweise oder .
Einige häufig auftretende Matrizen und Matrixtypen bekommen eigene Namen:
Bei einer Nullmatrix sind alle Einträge Null.
Eine Diagonalmatrix ist eine quadratische Matrix , bei der nur die Einträge von Null verschieden sind (sie dürfen aber auch Null sein). Alle anderen Einträge sind Null. Die Einträge werden auch als Hauptdiagonale von bezeichnet.
Eine obere Dreiecksmatrix ist eine Matrix, die unterhalb der Hauptdiagonale nur Nullen enthält.
Eine untere Dreiecksmatrix ist eine Matrix, die oberhalb der Hauptdiagonale nur Nullen enthält.
Eine Einheitsmatrix (bei gegebener Größe oft auch: die (!) Einheitsmatrix) ist eine Diagonalmatrix mit Einsen auf der Hauptdiagonale. Einheitsmatrizen werden oft mit bezeichnet ohne weitere Erklärung des Symbols. Man rechnet leicht nach, dass
gilt (bei geeigneten Matrixgrößen).
Eine symmetrische Matrix ist eine quadratische Matrix , für die gilt.
5.1.3Länge eines Vektors¶
Einige Eigenschaften der Norm:
Es gilt stets
Ein Vektor hat genau dann die Länge Null, wenn es der Nullvektor ist. In Formeln:
Für und gilt
Es gilt die Dreiecksungleichung, d.h. für beliebige Vektoren gilt
Die ersten beiden Eigenschaften folgen sofort aus der Definition der Norm. Der Nachweis der dritten Eigenschaft macht etwas mehr Arbeit, bringt aber keine neuen Erkenntnisse und unterbleibt deshalb an dieser Stelle.
Üblicherweise schreibt man auch gebrochene Faktoren nicht mit Bruchstich unter einen Vektor, z.B.
Einzige Ausnahme bildet das Normieren:
5.1.4Skalarprodukt zweier Vektoren¶
Analog zur noch nicht erkennbaren Bedeutung von Matrizen, wird auch der tiefe Nutzen der folgenden, schon fast banalen Rechenoperation erst im Laufe der nächsten Unterkapitel deutlich werden.
Beachte, dass wir das Symbol ∘ vorher schon für die Hintereinanderausführung von Abbildungen verwendet haben. Aufgrund der Vielzahl von Operationen und dem chronischen Mangel an Symbolen sind in der Mathematik viele Symbole doppelt und dreifach mit Bedeutung belegt. Die konkrete Bedeutung ergibt sich jeweils aus dem Kontext.
Später werden wir für Vektoren mit drei Komponenten noch eine andere Art von Produkt einführen, das sogenannte Kreuzprodukt oder äußere Produkt. Deshalb sollte immer “Skalarprodukt” und nicht nur “Produkt” gesagt und geschrieben werden.
Aus der Definition des Skalarprodukts folgt sofort
Weniger offensichtlich ist
die sogenannte Cauchy-Schwarz-Ungleichung, die wir hier nicht herleiten. Bei dieser gilt Gleichheit genau dann, wenn die Vektoren und Vielfache voneinander sind, also insbesondere bei .
Weiter wichtige Eigenschaften, die sofort aus der Definition folgen und deren Kenntnis das Rechnen mit Skalarprodukten einfacher macht:
Das Skalarprodukt mit dem Nullvektor ist stets Null:
Das Skalarprodukt ist kommutativ, d.h.
Es gilt das Distributivgesetz
Für gilt
Beachte, dass das von der Multiplikation bei Zahlen bekannte Assoziativgesetz hier keine Rolle spielt, da das Ergebnis des Skalarprodukts zweier Vektoren kein Vektor ist. Somit können keine Ketten von drei oder mehr Faktoren gebildet werden.
5.1.5Produkt zweier Matrizen¶
Rein formal könnte man auch für Matrizen eine Art Skalarprodukt einführen (elementweise multiplizieren und alle Produkte addieren). Dies hat aber keinerlei Nutzen für uns und unterbleibt deshalb. Jedoch wird eine andere, etwas komplexere Form von Produkt von wesentlicher Bedeutung sein. In der folgenden Definition (und auch sonst) bezeichnen wir mit die -te Spalte von (Spaltenvektor) und mit die -te Zeile von (Zeilenvektor).
Beachte, dass das Produkt nur für Matrizenpaare erklärt ist, bei denen die erste Matrix gerade so viele Spalten hat wie die zweite Zeilen besitzt. Für alle anderen Kombinationen von Matrizen ist nicht klar, was man unter ihrem Produkt verstehen soll. Die Situation ist vergleichbar mit der Division durch Null bei Zahlen: Man kann der Sache auch mit viel gutem Wille keinen Sinn beimessen; die Operation ist schlicht “nicht definiert”.
Das Produkt zweier Matrizen kann natürlich auch mit dem Computer berechnet werden. Beachte, dass der übliche Multiplikationsoperator * das elementweise Produkt bildet (sofern die Matrizengrößen übereinstimmen). Für das Matrixprodukt ist @ zu verwenden.
A = np.array([[1, 2, 3, 4], [5, 6, 7, 8]])
B = np.array([[3, 7, 0], [5, 3, 0], [1, 2, 0], [2, 5, 0]])
A @ Barray([[ 24, 39, 0],
[ 68, 107, 0]])Das Matrixprodukt eines Zeilenvektors mit einem Spaltenvektor liefert eine Matrix aus , also praktisch nur eine Zahl. Entsprechend schreibt man das Skalarprodukt zweier Vektoren gern als
und sieht die rechte Seite (formal nicht ganz korrekt) als Zahl an. Beachte aber, dass bei umgekehrter Reihenfolge, also Spaltenvektor mal Zeilenvektor eine große quadratische Matrix entsteht!
Man kann sich überlegen, dass Matrizenmultiplikation assoziativ ist, d.h. bei Produkten mit drei oder mehr Faktoren ist es egal, in welcher Abfolge man die einzelnen Produkte bildet. Für Matrizen , , passender Größe gilt also
sodass man auch einfach schreiben kann.
Allerdings ist Matrizenmultiplikation nicht kommutativ, d.h. man kann die Faktoren im Allgemeinen nicht vertauschen. Einerseits passen nach dem Vertausch der Faktoren die Matrixgrößen eventuell nicht mehr; andererseits kann sich das Ergebnis trotz passender Größen ändern.
Wie bei Zahlen gilt auch bei Matrizen das Distributivgesetz, welches Addition und Multiplikation verbindet: Für Matrizen und gilt
In umgekehrter Reihenfolge gilt für und entsprechend
Beachte: Da Matrizenmultiplikation nicht kommutativ ist, folgt aus dem ersten Teil des Distributivgesetzes nicht automatisch der zweite!
Eine weitere nützliche Eigenschaft des Matrixprodukts, die sofort aus der Definition folgt, ist
wobei und Matrizen passender Größe sind und eine beliebige Zahl ist.
Auch kann man zeigen, dass für das Zusammenspiel von Multiplizieren und Transponieren die Beziehung
gilt.
5.1.6Hinweise zum Matrix-Vektor-Produkt¶
Sieht man Vektoren als Spaltenvektoren an, wie wir es stets tun, so kann man das Produkt aus Matrix und Vektor als Produkt zweier Matrizen berechnen. Das Produkt einer Matrix mit einem Vektor liefert dann den Vektor . Umgekehrt kann man für auch bilden. Wir wollen hier einige Hinweise zur genaueren Struktur von Matrix-Vektor-Produkten sammeln, da solche Produkte sehr häufig auftauchen werden.
Schaut man sich die Arbeitsweise der Matrizenmultiplikation an, so sieht man für und , dass
Das Produkt liefert also gerade eine Linearkombination der Matrixspalten, wobei die Vektorkomponenten die Koeffizienten sind. Bei umgekehrter Reihenfolge (jetzt !) gilt
(Linearkombination der Zeilen).
Ebenfalls sehr einfach sieht man, dass die Spalten des Produkts zweier Matrizen und als Matrix-Vektor-Produkte geschrieben werden können:
Dabei soll die Schreibweise mit andeuten, dass die Vektoren als Spalten der Matrix fungieren.
Das Berechnen von Matrix-Vektor-Produkten mit dem Computer erfolgt wie bei Produkten zweier Matrizen. Die explizite Umwandlung des Vektors in einen Spaltenvektor (Matrix mit einer Spalte) ist nicht nötig, da dies intern von NumPy erledigt wird. Wird der Vektor als linker Faktor verwendet, so wird er automatisch als Zeilenvektor interpretiert.
A = np.array([[1, 2], [3, 4], [5, 6]])
x = np.array([7, 8])
A @ xarray([23, 53, 83])5.1.7Determinante einer Matrix¶
Matrizen sieht man nur schlecht auf den ersten Blick wichtige Eigenschaften an. Deshalb wurden im Laufe der Zeit verschiedene Kennzahlen entwickelt, die relevante Informationen aus (beliebig großen) Matrizen in einer Zahl zusammenfassen. Führen hier zunächst nur die sogeannte Determinante einer Matrix ein; später folgt noch der Rang einer Matrix.
Wir werden Determinanten nur für Matrizen in und einführen. Für größere Matrizen sei bei Bedarf auf den Entwicklungssatz von Laplace verwiesen. Einige Hinweise zur Rechtfertigung dieses “sparsamen” Vorgehens:
Für die praktische Arbeit (vor allem Koordinatentransformationen) spielen nur kleine Matrizen eine Rolle.
Für größere Matrizen ist der Aufwand zum Berechnen von Determinanten so groß, dass selbst Computer schnell an ihre Leistungsgrenze kommen. Manuelles Rechnen scheidet somit aus.
Das Berechnen von Determinanten ist ohne jede Denkarbeit möglich, also bestens für Computer geeignet.
Die allgemeine Formel für Determinanten zu Matrizen beliebiger Größe benötigt viel Raum und viel Zeit für Erklärungen, die wir zielführender in andere Themen investieren.
Manchmal schreibt man auch für die Determinanten bzw.
Für die Berechnung von Determinanten von Matrizen in gibt es sehr verschieden aussehende Formeln. Die hier verwendete ist als Regel von Sarrus bekannt.
Durch Linien verbundene Einträge werden multipliziert; die Produkte werden dann additiert (blau) bzw. subtrahiert (rot) (commons
Anhand der Determinante kann man beispielsweise die Lösbarkeit von Gleichungssystemen erkennen (dazu später mehr). Ihren Hauptzweck erfüllen sie aber als Werkzeug für die platzsparende Beschreibung von Streckungs- und Spiegelungsvorgängen bei Koordinatentransformationen aller Art. Im Rahmen dieser Veranstaltung werden wir nicht tief genug in diese Thematik vorstoßen, um den Nutzen von Determinanten dort zu erkennen. Jedoch werden Determinanten in den weiterführenden Veranstaltungen im Laufe des Studiums eine Rolle spielen.