Ein Invertierungsverfahren

 Wir stellen ein effektives Verfahren vor, das eine Matrix A  ∈  n × n auf Invertierbarkeit überprüft und im positiven Fall ihr Inverses A−1 berechnet. Das Verfahren verwendet die folgenden elementaren Zeilenoperationen:

(Z1)  Multiplikation einer Zeile mit einem Skalar λ ≠ 0.

(Z2)  Addition des λ-Fachen einer Zeile zu einer anderen Zeile.

Invertierungverfahren für Matrizen

Gegeben sei A  ∈  n × n. Wir setzen A0 = A. Durch Anwendung von (Z1) und (Z2) versuchen wir, A schrittweise in die Einheitsmatrix En zu überführen. Wir erzeugen so Matrizen A0, …, Ak. Parallel wenden wir dieselben Zeilenoperationen auf B0 = En an und erzeugen so Matrizen B0, …, Bk. Hat Ak eine Nullzeile, so stoppen wir mit „A ist singulär“. Erreichen wir Ak = En, so geben wir Bk als Ergebnis aus.

Beispiel: Invertierung einer Matrix

A0  =  110101111100010001 =  B0

A1  =  110011111100110001 =  B1

A2  =  110011021100110101 =  B2

A3  =  110011001100110121 =  B3

A4  =  110010001100011121 =  B4

A5  =  100010001111011121 =  B5

A6  =  100010001111011121 =  B6

A7  =  100010001111011121  =  B7

Wir geben B7 als Ergebnis aus. In der Berechnung haben wir verwendet:

 0 nach 1:  Addition des −1-Fachen der ersten Zeile zur zweiten.

 1 nach 2:  Addition des −1-Fachen der ersten Zeile zur dritten.

 2 nach 3:  Addition des −2-Fachen der zweiten Zeile zur dritten.

 …

 6 nach 7:  Multiplikation der dritten Zeile mit dem Skalar −1.

hm1-AbbIDmat_invert_ex_1

Das Diagramm zeigt die Spate der Spaltenvektoren (blau, orange, grün) der Matrizen A0, …, A7. Die Spate werden schrittweise zum Einheitswürfel umgeformt. In jedem Schritt wird höchstens eine Komponente jedes Spaltenvektors verändert.

 Wir haben den Algorithmus angegeben und an einem Beispiel illustriert. Nun zeigen wir, dass der Algorithmus das leistet, was wir behaupten:

Korrektheit des Invertierungsverfahrens

Die Zeilenoperationen lassen sich durch invertierbare Matrizen L1, …, Lk beschreiben, die wir von links an A bzw. B0 multiplizieren (vgl. die Übungen).

Erster Fall:  Erhalten wir

(+)  Lk … L1 A  =  Ak  =  En,

so ist die Matrix

B  =  Bk  =  Lk … L1  =  Lk … L1 En

invers zu A. Denn B ist als Produkt invertierbarer Matrizen invertierbar und es gilt B A = En, sodass automatisch auch B A = En (einseitige Überprüfung). Nach den Invertierungsregeln sind also A und B invers zueinander, sodass A−1 = Bk.

Zweiter Fall:  Hat Ak eine Nullzeile, so ist Lk … L1 A singulär. Da die Matrizen L1, …, Lk invertierbar sind, ist notwendig A singulär.

 Diese Zweiteilung ist typisch: In einem ersten Schritt wird der Algorithmus lediglich beschrieben. Danach wird gezeigt, was der Algorithmus leistet. Der erste Teil entspricht einer Definition, der zweite einem Satz mit Beweis. Die Beschreibung eines Algorithmus kann in der mathematischen Umgangssprache erfolgen. Dabei wird deutlich, wie das Verfahren mit Hilfe einer Programmiersprache umgesetzt werden kann. Aus Gründen der Einfachheit haben wir den Algorithmus kurz und informal beschrieben. Eine genauere Version mit konkreten Zeilenoperationen lässt sich angeben. Dadurch wird das Verfahren deterministisch: Jeder Schritt ergibt sich eindeutig aus dem bisherigen Verlauf der Berechnung. In der Regel genügen Beispiele, um das Verfahren zu erläutern. Wer es genauer wissen möchte, kann folgende Präzisierung verwenden:

Präzisierung des Algorithmus

Wir können die Matrix A durch wiederholte Anwendung von (Z2) in eine Matrix A′ in Zeilenstufenform (v1, …, vr, 0, …, 0)  ∈  n × n, r ≤ n, mit Pivots p(1) < p(2) < … < p(r) überführen, d. h. es gilt

p(i)  =  „das kleinste j mit a′ij ≠ 0“

Anschaulich entspricht diese Form (die wir im nächsten Kapitel genauer betrachten werden) dem Ausräumen unterhalb der Diagonale, wobei Querschritte mit p(i + 1) ≥ p(i) + 2 entstehen können (verlängerte waagrechte Stufen). Genau in diesem Fall ist A singulär und jeder derartige Querschritt führt zu einer Nullzeile von A′. Ist r = n und p(i) = i für alle i („perfekte Treppe“), so ist A invertierbar. Wir können nun A auch noch oberhalb der Diagonale ausräumen und schließlich mit Hilfe von (Z1) die Einheitsmatrix En erzeugen. Dadurch erhalten wir A−1.