Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Lineare Gleichungssysteme sollten im Wesentlichen aus der Schulmathematik bekannt sein. Hier konzentrieren wir uns auf die Struktur der Lösungensmengen und auf Aspekte beim Lösen mit dem Computer.

Da lineare Gleichungssysteme eine der Aufgabenstellungen sind, die besonders gut mit dem Computer behandelt werden können, bemüht man sich in allen Teilgebieten von Naturwissenschaften, Technik und Wirtschaftswissenschaften zu lösenden praktische Probleme in Form linearer Gleichungssysteme zu fomulieren. Zusätzlich tauchen lineare Gleichungssysteme auch zahlreich als Teilproblem in komplexeren Modellen und zugehörigen Lösungsverfahren auf.

5.5.1Matrix-Vektor-Schreibweise

Ein lineares Gleichungssystem (kurz: LGS) mit mm Gleichungen und nn Unbekannten hat die Form

a11x1++a1nxn=b1am1x1++amnxn=bm.{\begin{align} a_{11}\,x_1+\cdots+a_{1n}\,x_n&=b_1\\ &\vdots\\ a_{m1}\,x_1+\cdots+a_{mn}\,x_n&=b_m. \end{align}}

Die aija_{ij} und die bib_i sind gegeben. Die xjx_j sind gesucht.

Setzt man

A:=[a11a1nam1amn],b:=[b1bm],x:=[x1xn],A:={\begin{bmatrix}a_{11}&\cdots&a_{1n}\\\vdots&\ddots&\vdots\\a_{m1}&\cdots&a_{mn}\end{bmatrix}}, \quad b:={\begin{bmatrix}b_1\\\vdots\\b_m\end{bmatrix}}, \quad x:={\begin{bmatrix}x_1\\\vdots\\x_n\end{bmatrix}},

so kann man das LGS deutlich kompakter und handhabbarer mit einem Matrix-Vektor-Produkt als

Ax=bA\,x=b

schreiben. Die Matrix AA wird als Systemmatrix bezeichnet, der gegebene Vektor bb als rechte Seite.

5.5.2Struktur der Lösungsmenge

5.5.2.1Anzahl der Lösungen

LGS können keine, genau eine oder unendlich viele Lösungen besitzen. Ein einfaches Beispiel ohne Lösung ist

[1010][x1x2]=[12].{\begin{bmatrix}1&0\\1&0\end{bmatrix}}{\begin{bmatrix}x_1\\x_2\end{bmatrix}}={\begin{bmatrix}1\\2\end{bmatrix}}.

Das LGS

[1001][x1x2]=[12].{\begin{bmatrix}1&0\\0&1\end{bmatrix}}{\begin{bmatrix}x_1\\x_2\end{bmatrix}}={\begin{bmatrix}1\\2\end{bmatrix}}.

besitzt hingegen genau eine Lösung.

Die Lösungsmenge eines LGS mit unendlich vielen Lösungen besitzt eine sehr konkrete und nützliche Struktur. Zur weiteren Untersuchung unterscheiden wir zwei Typen von LGS:

5.5.2.2Homogene LGS

Die Lösungsmenge eines homogenen LGS mit nn Unbekannten ist offensichtlich ein linearer Unterraum des Rn\bbR^n, denn die Summe zweier Lösungen ist wieder eine Lösung und alle Vielfachen von Lösungen sind Lösungen. In Formeln:

Ax=0,  Ax~=0A(x+x~)=Ax+Ax~=0+0=0A\,x=0,\;A\,\tilde{x}=0\quad\Rightarrow\quad A\,(x+\tilde{x})=A\,x+A\,\tilde{x}=0+0=0

bzw.

Ax=0,  λRA(λx)=λAx=λ0=0.A\,x=0,\;\lambda\in\bbR\quad\Rightarrow\quad A\,(\lambda\,x)=\lambda\,A\,x=\lambda\cdot 0=0.

Somit kann es beispielsweise auch kein homogenes LGS gegeben, welches genau zwei Lösungen besitzt, da dann automatisch die Summe der beiden Lösungen eine dritte Lösung liefern würde.

Beachte, dass der Nullvektor eine Lösung jedes homogenen LGS ist. Falls dies die einzige Lösung ist, ist die Lösungsmenge gerade der triviale Unterraum {0}\{0\}. Das andere Extrem ist ein homogenes LGS mit Nullmatrix (nur Nullen) als Systemmatrix. Dann ist die Lösungsmenge ganz Rn\bbR^n.

5.5.2.3Inhomogene LGS

Bei einem inhomogenen LGS ist die Lösungsmenge stets eine Untermannigfaltigkeit oder die leere Menge. Hat ein inhomogenes LGS eine Lösung xRnx^\ast\in\bbR^n (und ggf. noch mehr), so können wir das LGS als

Ax=AxA\,x=A\,x^\ast

schreiben. Setzen wir nun x~:=xx\tilde{x}:=x-x^\ast, so ist dies äquivalent zu dem homogenen LGS

Ax~=0A\,\tilde{x}=0

(alles nach links bringen und AA ausklammern). Dessen Lösungsmenge ist ein Unterraum und aus der Beziehung x=x+x~x=x^\ast+\tilde{x} sehen wir, dass die Lösungsmenge des ursprünglichen inhomogenen LGS eine Untermannigfaltigkeit ist. Die Lösungsmenge eines inhomogenen LGS ist stets eine verschobene Version der Lösungsmenge des homogene LGS mit identischer Systemmatrix!

5.5.2.4Geometrische Interpretation

Visualisiert man die Lösungsmenge eines LGS mit zwei oder drei Unbekannten, so erhält man wahlweise die leere Menge, einen Punkt, eine Gerade, eine Ebene oder den ganzen Raum. Entsprechend eng verknüpft sind Geraden und Ebenen mit linearen Gleichungssystemen.

Im R2\bbR^2 korrespondieren Geraden mit den Lösungsmengen von LGS mit zwei Unbekannten und einer Gleichung:

a11x1+a12x2=b1.a_{11}\,x_1+a_{12}\,x_2=b_1.

Dabei dürfen a11a_{11} und a12a_{12} nicht gleichzeitig Null sein (warum?).

Im R3\bbR^3 korrespondieren Ebenen mit den Lösungsmengen von LGS mit drei Unbekannten und einer Gleichung:

a11x1+a12x2+a13x3=b1.a_{11}\,x_1+a_{12}\,x_2+a_{13}\,x_3=b_1.

Dabei dürfen wieder a11,a12,a13a_{11},a_{12},a_{13} nicht gleichzeitig Null sein.

Geraden im R3\bbR^3 entsprechen den Lösungsmengen von LGS mit drei Unbekannten und zwei Gleichungen:

a11x1+a12x2+a13x3=b1a21x1+a22x2+a23x3=b2.{\begin{align} a_{11}\,x_1+a_{12}\,x_2+a_{13}\,x_3&=b_1\\ a_{21}\,x_1+a_{22}\,x_2+a_{23}\,x_3&=b_2. \end{align}}

Die Lösungsmenge dieses LGS ist der Durchschnitt der Lösungsmenge der ersten Gleichung und der Lösungsmenge der zweiten Gleichung, also die Schnittgerade der beiden durch die beiden Gleichungen beschriebenen Ebenen. Sind diese Ebenen parallel oder identisch, so erhält man keine Gerade als Lösungsmenge des LGS.

Völlig analog kann man sich überlegen, dass ein Punkt in R2\bbR^2 als Schnitt zweier (nicht paralleler oder identischer) Geraden entsteht, oder, alternativ, als Lösung eines LGS mit zwei Unbekannten und zwei Gleichungen.

5.5.3Manuelles Lösen

LGS löst man praktisch immer mit dem Computer (siehe unten). Dennoch sollen hier kurz zwei Ideen skizziert werden, wie man ein (kleines) LGS manuell lösen kann. Das manuelle Vorgehen ist insofern relevant als dass der Computer im Wesentlichen genauso vorgeht (aber dabei viel schneller ist). Auch begegnen uns hier einige neue Begriffe, die später in anderem Kontext benötigt werden. Praktisch relevante LGS besitzen heute tausende Unbekannte und Gleichungen, sodass manuelles Lösen nicht möglich ist.

5.5.3.1Gauß-Algorithmus

Die Grundidee des als Gauß-Algorithmus bekannten Vorgehens ist das systematische Vereinfachen des Gleichungssystems ohne dabei die Lösungsmenge zu verändern. Folgende Operationen sind dabei hilfreich und ändern die Lösungsmenge nicht:

Mit diesen Operationen kann man jedes LGS auf Stufenform bringen, d.h. die Anzahl der Unbekannten mit Nicht-Null-Koeffizient wird von Gleichung zu Gleichung kleiner. Dabei richtet man den Ablauf so ein, dass die Unbekannten in der natürlichen Reihenfolge wegfallen. So taucht x1x_1 dann nur noch in der ersten (oder keiner) Gleichung auf; x2x_2 erscheint höchstens in den ersten beiden Gleichungen usw. Welche Operation wann und wie anzuwenden ist um eine Stufenform des LGS zu erhalten, folgt einem einfachen Schema, welches man ohne nenneswerte Denkarbeit abarbeiten kann (für solche Aufgaben wurde der Computer erfunden...).

Ist das LGS in Stufenform, so kann man mit der letzten Gleichung beginnend die Lösung Gleichung für Gleichung leicht zusammensetzen. Dieser Vorgang wird als Rückwärtseinsetzen bezeichnet und folgt ebenfalls wieder einem klaren Schema ohne Notwendigkeit des Nachdenkens.

Da wir den Gauß-Algorithmus dem Computer überlassen, verzichten wir hier auf Details und Sonderfälle und belasses es bei einigen Beispielen:

Die Dimension der Lösungsmenge eines LGS kann man gut an der Systemmatrix des LGS in Stufenform ablesen. Dazu folgender Begriff:

Man kann zeigen, dass der Rang gleichzeitig auch der maximalen Anzahl linear unabhängiger Spalten in AA entspricht. Für ARm×nA\in\bbR^{m\times n} gilt also 0rgAmin{m,n}0\leq\rg A\leq\min\{m,n\}.

Zur Berechnung des Rangs einer Matrix kann der Gauß-Algorithmus verwendet werden, denn der Rang ist gerade die Anzahl an Nicht-Null-Zeilen der Stufenform der Matrix. Beachte, dass je nach gewähltem Vorgehen unterschiedliche Stufenformen entstehen können. Alle werden aber die gleiche Anzahl an Nicht-Null-Zeilen haben.

Die Dimension der Lösungsmenge eines homogenen (!) LGS ist gerade mrgAm-\rg A, wobei mm die Anzahl der Gleichungen ist. Bei einem inhomogenen LGS mit rgA<m\rg A<m (also Null-Zeilen in der Systemmatrix der Stufenform) besitzt das LGS entweder keine Lösung oder die Lösungsmenge hat die Dimension mrgAm-\rg A.

Die folgenden beiden Begriffe sind intuitiv klar, bedürfen aber einer Diskussion im Kontext des Gauß-Algorithmus:

Man kann nun etwas unbedacht Aussagen formulieren wie “unterbestimmte LGS haben unendlich viele Lösungen” oder “überbestimmte LGS sind nicht lösbar”. Dies ist aber nicht immer korrekt. Einerseits können unterbestimmte LGS trotzdem sich widersprechende Gleichungen enthalten, also keine Lösung besitzen. Andererseits können überbestimmte LGS redundante Gleichungen enthalten, sodass dennoch Lösungen existieren. Das tatsächliche Lösungsverhalten eines LGS erkennt man erst an der Stufenform!

5.5.3.2Inverse Matrix

Für LGS mit quadratischer Systemmatrix ARn×nA\in\bbR^{n\times n} kann man, sofern das LGS eindeutig lösbar ist, die Lösung als Matrix-Vektor-Produkt mit einer geeigneten Matrix angeben. Dazu folgender Begriff:

Man kann zeigen, dass eine Matrix ARn×nA\in\bbR^{n\times n} genau dann invertierbar ist, wenn rgA=n\rg A=n gilt. In diesem Fall kann man das LGS

Ax=bA\,x=b

auf beiden Seiten von links mit der Inversen multiplizieren:

A1Ax=A1b.A^{-1}\,A\,x=A^{-1}\,b.

Wegen A1A=IA^{-1}\,A=I und Ix=xI\,x=x erhalten wir mit

x=A1bx=A^{-1}\,b

eine direkte Berechnungsvorschrift für die Lösung des LGS. Es bleibt somit nur die Frage zu klären, wie man zu A1A^{-1} kommt.

Das manuelle Aufstellen der Inversen ist sehr mühsam. Man kann das Problem auf das Lösen von nn LGS zurückführen, die alle die gleiche Systemmatrix (nämlich AA) besitzen; nur die rechten Seiten unterscheiden sich (das sind gerade die nn Spalten von II). Hintergrund ist der Zusammenhang

AB=[Ab1Abn]A\,B={\begin{bmatrix}|&&|\\A\,b_{\bullet 1}&\cdots&A\,b_{\bullet n}\\|&&|\end{bmatrix}}

für Matrix-Vektor-Produkte (vgl. Hinweise zum Matrix-Vektor-Produkt). Wenn nun AB=IA\,B=I gelten soll, so müssen also die LGS

Ab1=e1,,Abn=enA\,b_{\bullet 1}=e_1,\quad\ldots,\quad A\,b_{\bullet n}=e_n

erfüllt sein, wobei e1,,ene_1,\ldots,e_n die Spalten von II sind (eke_k hat eine Eins als kk-te Komponente, sonst Nullen). Diese LGS können mit dem Gauß-Algorithmus gelöst werden.

Aufgrund des Rechenaufwands ist das Lösen von linearen Gleichungssystemen mittels inverser Matrix nur sinnvoll, wenn das LGS sehr oft für verschiedene rechte Seiten (und gleiche Systemmatrix) gelöst werden muss. Dieser Fall tritt in der Praxis gar nicht so selten auf. Aus Sicht des Anwenders (d.h. (Vermessungs-)Ingenieurs oder (Geo-)Informatikers) sind solche Fragen aber wenig relevant, da diese Themen innerhalb von auf effizientes Lösen von LGS spezialisierten Software-Bibliotheken behandelt und entschieden werden und damit dem Auge des Anwenders verborgen bleiben.

Einige nützliche Zusammenhänge beim Rechnen mit Inversen seien noch erwähnt. Diese lassen sich leicht herleiten. Für quadratische Matrizen A,BRn×nA,B\in\bbR^{n\times n} gilt:

5.5.4Symbolisches Lösen

Mit SymPy können lineare Gleichungssysteme wahlweise direkt als Liste von Gleichungen gelöst werden oder in der Matrix-Vektor-Form. Als Liste von Gleichungen:

Loading...

Beachte, dass sympy.linsolve auf der rechten Seite der Gleichungen von Nullen ausgeht, wir also die rechte Seite des zu lösenden LGS zunächst auf die linke Seite bringen müssen.

Das Lösen in Matrix-Vektor-Schreibweise funktioniert nur bei invertierbarer Systemmatrix:

Loading...

Da symbolisch (nicht numerisch) gelöst wird, können im LGS auch allgemeine Parameter enthalten sein:

Loading...

Die Inverse einer Matrix kann ebenfalls mit SymPy berechnet werden:

Loading...

5.5.5Numerisches Lösen

Mit NumPy können LGS numerisch gelöst werden. Dies ist deutlich schneller als das symbolische Lösen. Bei kleinen LGS (z.B. die obigen Beispiele) spielt dieser Geschwindigkeitsvorteil keine Rolle. Praktisch relevante LGS sind aber viel größer und symbolisch nicht mehr in akzeptabler Zeit lösbar.

Das numerische Lösen funktioniert nur, wenn die Systemmatrix invertierbar ist.

array([-3.5, 5. , 2. ])

Auch die Inverse kann numerisch brechnet werden:

array([[ 2.125, -0.375, -1.25 ], [-2.5 , 0.5 , 2. ], [-0.75 , 0.25 , 0.5 ]])

5.5.6Beispiel: Koordinaten bzgl. einer Basis

Hatten noch die Frage offen gelassen, wie wir zu einer gegebenen Basis {b1,,br}\{b_1,\ldots,b_r\} in einem Unterraum UU von Rn\bbR^n die Koordinaten eines Vektors xUx\in U bzgl. dieser Basis berechnen können. Wie wir nun sehen werden, führt diese Frage auf ein LGS, dessen Lösung gerade die gesuchten Koordinaten sind.

Sei xRx\in\bbR. Gesucht sind die Zahlen λ1,,λr\lambda_1,\ldots,\lambda_r, sodass

k=1rλkbk=x\sum_{k=1}^r\lambda_k\,b_k=x

gilt. Schreiben wir die Basisvektoren als Spalten in eine Matrix BRn×rB\in\bbR^{n\times r}, so soll also

Bλ=xB\,\lambda=x

gelten (vgl. dazu auch Hinweise zum Matrix-Vektor-Produkt).

Für einen echten Unterraum (also r<nr<n) ist dieses LGS überbestimmt, wird also nicht für alle xRnx\in\bbR^n eine Lösung besitzen. Man kann jedoch zeigen, dass dieses LGS für xUx\in U stets eindeutig lösbar ist. Für U=RnU=\bbR^n ist die in diesem Fall quadratische Matrix BB also insbesondere invertierbar.

Für den Fall r=nr=n können wir noch weitere nützliche Beobachtungen machen: Handelt es sich bei {b1,,bn}\{b_1,\ldots,b_n\} um eine ONB in Rn\bbR^n, so folgt aus

x=k=1nλkbkx=\sum_{k=1}^n\lambda_k\,b_k

durch Bilden des Skalarprodukts mit blb_l, dass

xbl=(k=1nλkbk)bl=k=1nλk(bkbl)=λl,x\circ b_l=\left(\sum_{k=1}^n\lambda_k\,b_k\right)\circ b_l=\sum_{k=1}^n\lambda_k\,(b_k\circ b_l)=\lambda_l,

also

λ=[xb1xbn]=BTx\lambda={\begin{bmatrix}x\circ b_1\\\vdots\\x\circ b_n\end{bmatrix}}=B^\rmT\,x

gilt. Die gesuchten Koordinaten von xx bzgl. {b1,,bn}\{b_1,\ldots,b_n\} erhält man damit ohne nennenswerte Mühe als Matrix-Vektor-Produkt.

Da die Gleichung x=BBTxx=B\,B^\rmT\,x für beliebige xRnx\in\bbR^n wie gezeigt hergeleitet werden kann, muss

BBT=IB\,B^\rmT=I

gelten. Offensichtlich gilt auch

BTB=I.B^\rmT\,B=I.

Die Matrix BB ist also invertierbar und die Inverse ist

B1=BT.B^{-1}=B^\rmT.

Matrizen, bei denen die Inverse gerade die transponierte Matrix ist, spielen in verschiedenen Teilgebieten von Mathematik (und auch Physik) ein Rolle und bekommen deshalb einen eigenen Name:

Folgende Eigenschaften von Orthogonalmatrizen sind gelegentlich hilfreich (und leicht einzusehen):

5.5.7Beispiel: Kreuzprodukt

In der Ebene steht man gelegentlich vor der Aufgabe, zu einem gegebenen Vektor aR2{0}a\in\bbR^2\setminus\{0\} einen zweiten Vektor bR2{0}b\in\bbR^2\setminus\{0\} zu finden, sodass beide Vektoren senkrecht zueinander verlaufen. Analog möchte man gelegentlich im Raum zu zwei gegebenen, linear unabhängigen Vektoren a,bR3{0}a,b\in\bbR^3\setminus\{0\} einen dritten Vektor cR3{0}c\in\bbR^3\setminus\{0\} finden, der sowohl senkrecht zu aa als auch senkrecht zu bb verläuft. Diese Aufgabenstellung können wir als LGS formulieren:

In beiden Fällen handelt es sich um homogene LGS. Der Rang der Systemmatrizen

[a1a2]bzw.[a1a2a3b1b2b3]{\begin{bmatrix}a_1&a_2\end{bmatrix}}\quad\text{bzw.}\quad{\begin{bmatrix}a_1&a_2&a_3\\b_1&b_2&b_3\end{bmatrix}}

ist 1 bzw. 2 (aa und bb sind als linear unabhängig vorausgesetzt!), also um 1 niedriger als die Anzahl der Unbekannten. Somit ist die Lösungsmenge (Unterraum!) in beiden Fällen eindimensional, d.h. die Richtung des gesuchten Vektors ist bis auf das Vorzeichen festgelegt. Da wir die Länge des gesuchten Vektors frei wählen können, wählen wir diese so, dass die Darstellung des Vektors als Formel möglichst einfach wird.

Durch Einsetzen in das entsprechende LGS prüft man leicht nach:

Man kann zeigen, dass die Länge a×b\|a\times b\| des Kreuzprodukts gerade dem Flächeninhalt des von aa und bb aufgespannten Parallelogramms entspricht.

Zu zwei linear unabhängigen Vektoren liefert uns das Kreuzprodukt gerade einen Vektor, der zusammen mit den beiden Ausgangsvektoren ein Rechtssystem bildet. Wählt man stattdessen gerade einen Vektor in entgegengesetzter Richtung, so erhält man ein Linkssystem. Da diese beiden Begriffe im Folgenden keine Rolle spielen, verweisen wir für eine genauere Erklärung auf den Wikipedia-Artikel zu Rechtssystemen (beachte insbesondere die Rolle der Determinante bei der Unterscheidung von Rechts- und Linkssystemen!).

Für das Rechnen mit Kreuzprodukten kann man sich einige nützliche Zusammenhänge überlegen, z.B. 0×a=00\times a=0 und a×b=(b×a)a\times b=-(b\times a). Für eine Übersicht solcher Zusammenhänge sei bei Bedarf auf die entsprechende Auflistung im Wikipedia-Artikel zum Kreuzprodukt verwiesen. Bei praktischen Aufgabenstellungen aus Vermessungswesen und Informatik wird man nur äußerst selten mit Kreuzprodukten rechnen müssen. Das Ergänzen zweier Vektoren zu einer Basis in R3\bbR^3 mittels Kreuzprodukt ist hingegen öfter von Nutzen.