Was kosten Kaffee und Kuchen einzeln?
Ein lineares Gleichungssystem sucht Zahlen, die mehrere Gleichungen zugleich erfüllen. Das Gauß-Verfahren löst es Schritt für Schritt mit einfachen Zeilenrechnungen.
Ein Café nennt nur zwei Rechnungen: 2 Kaffee und 1 Kuchen kosten 5 Euro, 1 Kaffee und 2 Kuchen kosten 7 Euro. Daraus folgt der Einzelpreis.
Am Ende dieser Lektion
Notiz
Ich kann ein kleines Gleichungssystem durch Elimination lösen und sagen, wann es keine oder viele Lösungen hat.
Schlüsselwörter
| Begriff | Was er bedeutet |
|---|---|
| Gleichungssystem | mehrere Gleichungen mit denselben Unbekannten |
| Elimination | eine Unbekannte aus einer Zeile herausrechnen |
| Pivot | die Zahl, mit der eine Zeile eine andere löscht |
| singulär | eine Matrix, deren Zeilen voneinander abhängen |
| Determinante | eine Zahl, die bei singulären Matrizen 0 ist |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Ein Gleichungssystem ist eine Matrix mal ein Vektor
Die beiden Rechnungen lauten: 2x plus y gleich 5 und x plus 2y gleich 7. Dabei ist x der Kaffeepreis und y der Kuchenpreis.
Als Matrix steht links [[2, 1], [1, 2]] mal [x, y], rechts [5, 7]. Zum Rechnen schreibt man beide Seiten in eine Tabelle, die erweiterte Matrix.
Beispiel: Elimination in drei Schritten
| Schritt | Zeile 1 | Zeile 2 | Was geschieht |
|---|---|---|---|
| Start | 2 1 gleich 5 | 1 2 gleich 7 | Die Zeilen stehen so da |
| Tauschen | 1 2 gleich 7 | 2 1 gleich 5 | Oben steht jetzt eine 1 als Pivot |
| Zeile 2 minus 2 mal Zeile 1 | 1 2 gleich 7 | 0 minus 3 gleich minus 9 | Das x ist aus Zeile 2 verschwunden |
| Rückwärts | x gleich 7 minus 2 mal 3 gleich 1 | y gleich 3 | y zuerst, dann x |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Elimination in Python
# Zeile 1: x + 2y = 7. Zeile 2: 2x + y = 5
z1 = [1, 2, 7]
z2 = [2, 1, 5]
faktor = z2[0] / z1[0]
z2 = [z2[0] - faktor * z1[0], z2[1] - faktor * z1[1], z2[2] - faktor * z1[2]]
print("Zeile 2 danach:", z2)
y = z2[2] / z2[1]
x = z1[2] - z1[1] * y
print("x:", x, "y:", y)
# Ändern Sie die rechten Seiten auf 8 und 7. Was kosten Kaffee und Kuchen dann?
Dasselbe System mit NumPy lösen
docker exec jupyter python3 -c "import numpy as np; a = np.array([[2, 1], [1, 2]]); b = np.array([5, 7]); print(np.round(np.linalg.solve(a, b), 6).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.
Manche Systeme haben keine oder viele Lösungen
Sind die Zeilen voneinander abhängig, wird beim Eliminieren eine ganze Zeile zu Nullen. Steht rechts ebenfalls 0, passt jedes Paar: unendlich viele Lösungen.
Steht rechts eine andere Zahl, ist die Zeile ein Widerspruch: keine Lösung. Die Matrix heißt dann singulär.
Beispiel: zwei singuläre Systeme
| System | Zeile 2 minus 2 mal Zeile 1 | Ergebnis |
|---|---|---|
| x plus y gleich 2 und 2x plus 2y gleich 4 | 0 0 gleich 0 | unendlich viele Lösungen |
| x plus y gleich 2 und 2x plus 2y gleich 5 | 0 0 gleich 1 | keine Lösung |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Die Determinante einer singulären Matrix
docker exec jupyter python3 -c "import numpy as np; print(np.linalg.det(np.array([[1, 1], [2, 2]])), round(np.linalg.det(np.array([[2, 1], [1, 2]])), 3))"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, so viele Gleichungen wie Unbekannte ergäben immer genau eine Lösung. Das stimmt nicht. Hängen die Zeilen voneinander ab, gibt es keine oder unendlich viele. Prüfen Sie die Determinante: Bei 0 ist die Matrix singulär.
Mit mehr Unbekannten bleibt das Verfahren gleich
Bei drei Unbekannten löschen Sie erst die erste Spalte unter dem Pivot, dann die zweite. Es entsteht eine Treppe aus Nullen.
Danach lösen Sie von unten nach oben. Genau diese Schleifen schreiben Sie in der Aufgabe, damit der Rechner jede Größe löst.
Beispiel: drei Gleichungen, drei Unbekannte
| Schritt | Zeile 1 | Zeile 2 | Zeile 3 |
|---|---|---|---|
| Start | 1 1 1 gleich 6 | 0 2 5 gleich minus 4 | 2 5 minus 1 gleich 27 |
| Zeile 3 minus 2 mal Zeile 1 | 1 1 1 gleich 6 | 0 2 5 gleich minus 4 | 0 3 minus 3 gleich 15 |
| Zeile 3 minus 1,5 mal Zeile 2 | 1 1 1 gleich 6 | 0 2 5 gleich minus 4 | 0 0 minus 10,5 gleich 21 |
| Rückwärts | x gleich 5 | y gleich 3 | z gleich minus 2 |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Das System mit drei Unbekannten lösen
docker exec jupyter python3 -c "import numpy as np; a = np.array([[1, 1, 1], [0, 2, 5], [2, 5, -1]]); b = np.array([6, -4, 27]); print(np.round(np.linalg.solve(a, b), 6).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.