Lässt es sich mit cremefarbenem Papier, einer Tönung, mehr Kontrast oder größerer Schrift besser lesen? Wählen Sie Ihre Farben und Ihre Schrift, einmalig für alle Seiten.

Kostenlose Lektion

Matrizen multiplizieren

Nach dieser Lektion: Ich kann eine Matrix mit einem Vektor und mit einer anderen Matrix multiplizieren.

Lektion, 70 Min.3 BefehleJupyterLab-Lab für Data Science: pandas, Matplotlib und scikit-learn im Browser

Was kosten zwei Gerichte?

Eine Matrix ist eine Tabelle von Zahlen mit Zeilen und Spalten. Wer Matrizen multiplizieren kann, rechnet viele Skalarprodukte auf einmal.

Eine Mensa kennt, wie viel von jeder Zutat in jedes Gericht geht, und den Preis jeder Zutat. Eine einzige Matrixrechnung liefert die Kosten aller Gerichte.

Am Ende dieser Lektion

Notiz

Ich kann eine Matrix mit einem Vektor und mit einer anderen Matrix multiplizieren.

Schlüsselwörter

BegriffWas er bedeutetBeispiel
Matrixeine Tabelle von Zahlen in Zeilen und Spalten
Zeileeine waagerechte Reihe einer Matrix
Spalteeine senkrechte Reihe einer Matrix
Formdie Zahl der Zeilen mal die Zahl der Spalten2 mal 3
Einheitsmatrixeine Matrix, die jeden Vektor unverändert lässt

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Jede Zeile bildet ein Skalarprodukt mit dem Vektor

Eine Matrix hat Zeilen und Spalten. Um sie mit einem Vektor zu multiplizieren, nehmen Sie eine Zeile nach der anderen und bilden das Skalarprodukt mit dem Vektor.

Ergebnis ist ein Vektor mit einer Zahl je Zeile. Der Vektor muss so viele Komponenten haben, wie die Matrix Spalten hat.

Beispiel: Kosten zweier Gerichte in Cent

GerichtTomaten, Käse, BrotRechnungKosten
Tomatensuppe3, 0, 13 mal 50 plus 0 mal 150 plus 1 mal 200350
Pizza2, 2, 12 mal 50 plus 2 mal 150 plus 1 mal 200600

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Matrix mal Vektor in Python

Code: python
# Zeilen: Gerichte. Spalten: Tomaten, Käse, Brot (Stück je Gericht)
zutaten = [[3, 0, 1], [2, 2, 1]]
preise = [50, 150, 200]   # Cent je Stück
kosten = []
for zeile in zutaten:
    summe = 0
    for n in range(3):
        summe = summe + zeile[n] * preise[n]
    kosten.append(summe)
print("Kosten in Cent:", kosten)
# Ändern Sie den Preis für Brot auf 100 und starten Sie erneut.

Dieselben Kosten mit NumPy

Befehl
docker exec jupyter python3 -c "import numpy as np; z = np.array([[3, 0, 1], [2, 2, 1]]); p = np.array([50, 150, 200]); print(z @ p)"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Zwei Matrizen multiplizieren Zeile mit Spalte

Bei zwei Matrizen steht an jeder Stelle des Ergebnisses ein Skalarprodukt: die Zeile der linken Matrix mit der Spalte der rechten.

Die Formen müssen passen. Hat die linke 2 Zeilen und 3 Spalten, braucht die rechte 3 Zeilen. Das Ergebnis hat dann 2 Zeilen und so viele Spalten wie die rechte.

Beispiel: ein Produkt Zelle für Zelle

StelleZeile mal SpalteWert
Oben links1 mal 5 plus 2 mal 719
Oben rechts1 mal 6 plus 2 mal 822
Unten links3 mal 5 plus 4 mal 743
Unten rechts3 mal 6 plus 4 mal 850

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Matrix mal Matrix in Python

Code: python
a = [[1, 2], [3, 4]]
b = [[5, 6], [7, 8]]
ergebnis = [[0, 0], [0, 0]]
for i in range(2):
    for j in range(2):
        for k in range(2):
            ergebnis[i][j] = ergebnis[i][j] + a[i][k] * b[k][j]
print(ergebnis)
# Tauschen Sie a und b in der ersten und zweiten Zeile.
# Das Ergebnis wird ein anderes.

Das Produkt mit NumPy

Befehl
docker exec jupyter python3 -c "import numpy as np; a = np.array([[1, 2], [3, 4]]); b = np.array([[5, 6], [7, 8]]); print((a @ b).tolist())"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Die Form eines Produkts

Befehl
docker exec jupyter python3 -c "import numpy as np; print((np.ones((2, 3)) @ np.ones((3, 4))).shape)"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Ein häufiger Fehler

Warnung

Viele denken, A mal B sei dasselbe wie B mal A, wie bei einfachen Zahlen. Das stimmt nicht. Mit den Zahlen oben ergibt B mal A [[23, 34], [31, 46]], nicht [[19, 22], [43, 50]]. Die Reihenfolge ist Teil der Rechnung.

Die Einheitsmatrix ändert nichts

Die Einheitsmatrix hat Einsen auf der Diagonalen und sonst Nullen. Mal sie mit einer Matrix oder einem Vektor, kommt dasselbe heraus.

Sie spielt die Rolle der 1 bei Zahlen. Ein Test gegen sie fängt oft Vertauschungen von Zeile und Spalte.

Über dieses Lab und seinen Quellcode: JupyterLab-Lab für Data Science: pandas, Matplotlib und scikit-learn im Browser

Sie unterrichten eine Gruppe? Weisen Sie dieses Modul Ihren Studierenden zu, mit Handbuch für Lehrende, automatisch geprüften Aufgaben und einem Lab für jede Person.