Das Gauß-Jordan-Verfahren zur Lösung von Lineargleichungssystemen

Ähnliche Dokumente
Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Mathematik 1. Inhaltsverzeichnis. Prof. Dr. K. Melzer.

LU-Zerlegung. Zusätze zum Gelben Rechenbuch. Peter Furlan. Verlag Martina Furlan. Inhaltsverzeichnis. 1 Definitionen.

1 Lineare Gleichungssysteme

Elemente der Analysis II

Lineare Gleichungssysteme

3.1. Die komplexen Zahlen

3 Berechnungen und Variablen

Lineare Gleichungssysteme und Gauß'scher Algorithmus

Lineare Gleichungssysteme

Leitfaden Lineare Algebra: Determinanten

Repetitionsaufgaben Negative Zahlen/Brüche/Prozentrechnen

Rationale Zahlen. Vergleichen und Ordnen rationaler Zahlen

Tipp III: Leiten Sie eine immer direkt anwendbare Formel her zur Berechnung der sogenannten "bedingten Wahrscheinlichkeit".

Lösen von linearen Gleichungssystemen mit zwei Unbekannten:

Lineare Gleichungssysteme

DEUTSCHE BUNDESBANK Seite 1 Z Prüfzifferberechnungsmethoden zur Prüfung von Kontonummern auf ihre Richtigkeit (Stand: September 2015)

Numerisches Programmieren

Mathe-Übersicht INHALTSVERZEICHNIS

Vorlesung bzw. 23. Januar Determinanten 1. Cramersche Regel

Werkstatt Multiplikation Posten: 8-Bit Multiplikation. Informationsblatt für die Lehrkraft. 8-Bit Multiplikation

3. LINEARE GLEICHUNGSSYSTEME

Lineare Algebra (Mathe I) für Wirtschaftsinformatiker; Zusammenfassung

Kapitel 3 Mathematik. Kapitel 3.3. Algebra Gleichungen

Einführung in die Vektor- und Matrizenrechnung. Matrizen

Sudoku-Informatik oder wie man als Informatiker Logikrätsel löst

Was war vor dem Startwert?

Teilbarkeit von natürlichen Zahlen

Kommentierte Musterlösung zur Klausur HM I für Naturwissenschaftler

Kapitel 15. Lösung linearer Gleichungssysteme

Mathematik: Mag. Schmid Wolfgang Arbeitsblatt 3 1. Semester ARBEITSBLATT 3 RECHNEN MIT GANZEN ZAHLEN

RSA-Verschlüsselung. von Johannes Becker Gießen 2006/2008

V 2 B, C, D Drinks. Möglicher Lösungsweg a) Gleichungssystem: 300x y = x + 500y = 597,5 2x3 Matrix: Energydrink 0,7 Mineralwasser 0,775,

Numerisches Programmieren

Englische Division. ... und allgemeine Hinweise

Skript und Aufgabensammlung Terme und Gleichungen Mathefritz Verlag Jörg Christmann Nur zum Privaten Gebrauch! Alle Rechte vorbehalten!

2 Einfache Rechnungen

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung.

Simplex-Umformung für Dummies

Vorübung 1 Beschriften Sie die Tabelle wie in der Abbildung dargestellt.

Microsoft Excel 2007 Basis

Zahlensysteme. von Christian Bartl

Lineare Optimierung. Master 1. Semester

TECHNISCHE UNIVERSITÄT MÜNCHEN

OPERATIONS-RESEARCH (OR)

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Diagnoseaufgaben. egative Zahlen. Ganz In mit Ganztag mehr Zukunft. Das neue Ganztagsgymnasium NRW. TU Dortmund

Hinweise zu Anforderungen des Faches Mathematik in Klasse 11 des Beruflichen Gymnasiums Wirtschaft

Im Original veränderbare Word-Dateien

Mathematik-Dossier. Die lineare Funktion

7 Die Determinante einer Matrix

Praktische Informatik I Der Imperative Kern Mathematiknachhilfe

Informationssysteme Gleitkommazahlen nach dem IEEE-Standard 754. Berechnung von Gleitkommazahlen aus Dezimalzahlen. HSLU T&A Informatik HS10

Vorkurs Mathematik Übungen zu Polynomgleichungen

INTEGRA Lohn & Gehalt

Microsoft Excel 2010 Benutzerdefinierte Funktionen

M. Graefenhan Übungen zu C. Blatt 3. Musterlösung

Mathematische Grundlagen 2. Termrechnen

Lösungsmethoden gewöhnlicher Differentialgleichungen (Dgl.)

Technische Informatik - Eine Einführung

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken.

Repetitionsaufgaben: Lineare Gleichungen

Black Box erklärt Zahlensysteme.

Lernzettel Mathe Inhaltsverzeichnis

5. bis 10. Klasse. Textaufgaben. Alle Themen Typische Aufgaben

Bestimmung einer ersten

HOCHSCHULE KONSTANZ TECHNIK, WIRTSCHAFT UND GESTALTUNG. Das Luzifer-Rätsel. Prof. Dr. Hartmut Plesske Wintersemester 2008/09. von.

Bevor lineare Gleichungen gelöst werden, ein paar wichtige Begriffe, die im Zusammenhang von linearen Gleichungen oft auftauchen.

Austausch- bzw. Übergangsprozesse und Gleichgewichtsverteilungen

ebanking Business: Umwandeln der Lastschriftvorlagen in SEPA-Vorlagen mit automatischer Konvertierung von Kontonummer/BLZ in IBAN und BIC

Vorlesung. Komplexe Zahlen

Die quadratische Gleichung und die quadratische Funktion

Mit Zehnerzahlen malrechnen oder durch Zehnerzahlen teilen. Den Wert einer Zahl 10 mal so gross machen.

ax 2 + bx + c = 0, (4.1)

Thema Stichwort Programm Letzte Anpassung Serienbrief erstellen Ablauf

Algebra in den Jahrgangsstufen 5 bis 8. Lerninhalte Natürliche Zahlen. Lernziele Natürliche Zahlen. Didaktik der Algebra und Gleichungslehre

Microsoft Excel 2010 Mehrfachoperation

Einführung in die Tabellenkalkulation Microsoft Excel

Übung 4: Einführung in die Programmierung mit MATLAB

Komplexe Zahlen. 1) Motivierende Aufgabe. 2) Historisches

DHBW Karlsruhe, Vorlesung Programmieren, Klassen (2)

Multiplikationstafeln

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Kurzanleitung. Toolbox. T_xls_Import

Access Grundlagen. David Singh

Einführung in die Programmierung (EPR)

Kevin Caldwell. 18.April 2012

Wir basteln einen Jahreskalender mit MS Excel.

Visual Basic / EXCEL / Makroprogrammierung Unterrichtsreihe von Herrn Selbach

Standardisierte kompetenzorientierte schriftliche Reifeprüfung. Mathematik. Probeklausur März Teil-1-Aufgaben

Kochen mit Jordan. Vorbereitungen. Schnellzubereitung. JNF für Genießer wenn s noch etwas mehr sein darf

Aufgabe 1: Malerarbeiten

3.2 Aufbau des Betriebsabrechnungsbogens

KAPITEL 3. Lineare Gleichungssysteme, direkte Lösungsverfahren

Lineare Algebra - alles was man wissen muß

27. Algorithmus der Woche Public-Key-Kryptographie Verschlüsseln mit öffentlichen Schlüsseln

klar. Um die zweite Bedingung zu zeigen, betrachte u i U i mit u i = 0. Das mittlere -Zeichen liefert s

Lektion 6: Prozeduren mit Parametern Übergabe von Werten

Transkript:

Das Gauß-Jordan-Verfahren zur Lösung von Lineargleichungssystemen Wolfgang Kippels 22. Juni 2017 Inhaltsverzeichnis 1 Vorwort 2 2 Das Prinzip des Verfahrens von Gauß 3 3 Die Ergänzung des Verfahrens von Jordan 6 4 Das Gauß-Jordan-Verfahren in der Anwendung für Rechenprogramme 7 4.1 Festlegung von Variablen........................... 7 4.2 Die eigentliche Programmieranleitung.................... 8 1

1 Vorwort Diese und ähnliche Anleitungen zu erstellen erfordert sehr viel Zeit und Mühe. Trotzdem stelle ich alles kostenfrei der Allgemeinheit zur Verfügung. Wenn Sie diese Datei hilfreich finden, dann würde ich mich dennoch sehr über eine kleine Spende auf das nachfolgende Konto freuen: Kontoinhaber: Wolfgang Kippels IBAN: DE86 2004 1155 0636 3436 00 BIC: COBADEHD055 bei der comdirect-bank Auch ein einzelner Euro hilft mir bei der Erfüllung meiner Träume. Bitte geben Sie als Verwendungszweck den Dateinamen an, dann weiß ich, welche Datei Ihnen geholfen hat. Vielen Dank! 2

2 Das Prinzip des Verfahrens von Gauß Carl Friedrich Gauss hat das Additions-/Subtraktionsverfahren 1 systematisiert und weiterentwickelt. Das von ihm vorgestellte und nach ihm benannte Gaußsche Eliminationsverfahren eignet sich dadurch besonders gut zum schematischen Lösen, wie es Rechner durchführen können. Später wurde das Verfahren durch Wilhelm Jordan noch etwas verfeinert. Auch diese Verbesserung möchte ich mit vorstellen. Wir gehen von einem Lineargleichungssystem n-ter Ordnung aus, das in Normalform angegeben ist. Das bedeutet, wir haben n Gleichungen und ebensoviele Variablen. Die Variablen sollen x 1, x 2,..., x n heißen. Damit sieht das Gleichungssystem folgendermaßen aus: a 11 x 1 +a 12 x 2 +... +a 1n x n = b 1 a 21 x 1 +a 22 x 2 +... +a 1n x n = b 2... =. a n1 x 1 +a n2 x 2 +... +a nn x n = b n Hierbei kommen Doppelindizes vor, beispielsweise a 21 2. Dabei bedeutet die erste Zahl die Zeile, in der der Koeffizient steht und der zweite die Spalte. Der Koeffizient a 21 steht also in der zweiten Zeile in der ersten Spalte, der Koeffizient a 1n in der 1. Zeile in der n-ten Spalte. Wir schauen uns dazu ein Beispiel an. Gegeben sei dieses Gleichungssystem: (1) 3x 2y +2z = 10 (2) 4x +2y 3z = 1 (3) 2x 3y +2z = 7 In diesem Beispiel wäre x = x 1, y = x 2 und z = x 3. Entsprechend ist a 11 = 3, a 12 = 2, a 13 = 2, b 1 = 10, usw. Zur Vereinfachung der Schreibarbeit schreibt man das Gleichungssystem in Form einer Matrix auf. Das sieht dann so aus: a 11 a 12... a 1n b 1 a 21 a 22... a 1n b 2.... a n1 a n2... a nn b n Es werden also nur die Koeffizienten (einschließlich Vorzeichen) aufgeschrieben, nicht aber die Variablen und die Gleichheitszeichen. Anmerkung: Die beiden großen Klammern links und rechts gehören zwingend zur mathematisch korrekten Schreibweise einer Matrix dazu. 1 Einzelheiten siehe auch hier: http://www.dk4ek.de/lib/exe/fetch.php/add.pdf 2 Gesprochen wird das als a Zwei Eins, nicht als a Einundzwanzig. 3

Für unser Beispiel sieht die Matrix damit folgendermaßen aus: 3 2 2 10 4 2 3 1 2 3 2 7 Das Ziel beim Gauß-Jordan-Verfahren besteht darin, die Matrix in folgende Form zu bringen. 1 0... 0 k 1 0 1... 0 k 2....... 0 0... 1 k n Wenn es gelingt, die Matrix so umzuformen, dass vorn in der Matrix nur Nullen mit Einsen in der Diagonalen stehen, dann stellen die Parameter k 1... k n die Lösungen für x 1... x n dar, denn dazu würde das Gleichungssystem in dieser Form passen: 1 x 1 +0 x 2... +0 x n = k 1 0 x 1 +1 x 2... +0 x n = k 2...... =. 0 x 1 +0 x 2... +1 x n = k n Noch deutlicher wird das, wenn das Gleichungssystem zusammengefasst wird: x 1 +0... +0 = k 1 0 +x 2... +0 = k 2...... =. 0 +0... +x n = k n Die k-werte sind dann direkt die Lösungen für die x-werte. Das Ziel ist also klar, aber wie kommen wir dahin? Zunächst muss oben links in der Matrix eine 1 entstehen. Dazu dividiert man die erste Zeile durch a 11. Dem entspricht eine Division der ersten Gleichung durch a 11. Es kann nun sein, dass a 11 = 0 ist. In diesem Fall müsste man durch Null dividieren, was ja bekanntermaßen nicht geht. Dann ist es aber möglich, die erste Zeile (Gleichung) mit einer anderen Zeile (Gleichung) zu tauschen, bei der der erste Parameter ungleich Null ist. Mindestens in einer Zeile muss der erste Parameter ungleich Null sein, anderenfalls ist das Gleichungssystem unterbestimmt und somit nicht eindeutig lösbar. 4

Wir führen das nun an unserem Beispiel durch. 3 2 2 10 4 2 3 1 2 3 2 7 Da a 11 = 3 ist, muss die erste Zeile durch 3 dividiert werden. 4 2 3 1 2 3 2 7 Als nächstes müssen unter der 1 in der ersten Spalte Nullen erzeugt werden. Das geschieht dadurch, dass zu jeder der nachfolgenden Zeilen (Gleichungen) ein passendes Vielfaches der ersten Zeile (Gleichung) addiert wird, so dass jeweils vorn die Null entsteht. Was heißt das konkret? Die zweite Zeile muss dazu mit dem a 21 -fachen der ersten Zeile multipliziert werden, die dritte mit dem a 31 -fachen, usw. Das führen wir nun an dem Beispiel durch. Die zweite Zeile entsteht, indem die erste mit 4 multipliziert und elementweise zur zweiten hinzuaddiert wird. 14 0 17 37 2 3 2 7 Die dritte Zeile entsteht, indem die erste mit 2 multipliziert und elementweise zur dritten hinzuaddiert wird. 14 0 17 37 0 5 2 1 Damit ist der erste Schritt abgeschlossen. Man betrachtet nun die Restmatrix, die sich ergibt, wenn man die erste Zeile und die erste Spalte in Gedanken herausstreicht. Das erste Element dieser Restmatrix ist nun a 22. Um dieses zu 1 zu machen und darunter Nullen geht man genau so vor, wie bei der ersten Zeile beschrieben. Für die dritte und ggf. alle weiteren Zeilen geht man ebenso vor. Wir wenden das jetzt wieder auf unser Beispiel an. Die zweite Zeile muss durch 14 dividiert werden. Da man bekanntlich durch einen Bruch dividiert, indem man mit seinem 3 Kehrwert multipliziert, können wir die zweite Zeile auch mit 3 multiplizieren. Die Null 14 in der ersten Spalte wird dadurch nicht beeinflusst. 0 1 17 37 0 5 2 1 5

Nun muss a 32 = 0 gemacht werden. Dazu wird das 5 -fache der zweiten Zeile zur dritten 3 hinzuaddiert. 0 1 17 37 0 0 57 171 42 42 Zum Schluss wird noch die letzte Zeile durch 57 geteilt, damit die letzte fehlende 1 in 42 die Diagonale kommt. 0 1 17 37 3 Die Ergänzung des Verfahrens von Jordan Im Prinzip könnte man hier schon aufhören, denn aus der dritten Zeile geht sofort der Wert für x 3 = z hervor. In eine Gleichung übersetzt steht da nämlich 1 x 3 = 3. Das Ergebnis könnte man in die vorletzte Zeile (Gleichung) einsetzen, um damit sofort die vorletzte Variable zu berechnen, usw. An dieser Stelle hat Wilhelm Jordan angesetzt und das Verfahren ergänzt. Man erhält damit die Nullen oberhalb der aus Einsen bestehenden Diagonale, wie oben beschrieben. Das Verfahren zur Erzeugung dieser Nullen läuft ähnlich dem Verfahren ab, das wir bis hierher benutzt haben; man fängt nur nicht oben links, sondern unten rechts an. Genauer: zur ersten Zeile wird das a 1n -fache der letzten (n-ten) Zeile hinzuaddiert. Dadurch entsteht senkrecht über der untersten 1 in der ersten Zeile eine 0. Alle Elemente davor bleiben erhalten. Das führt man Zeile für Zeile bis zur (n 1)-ten (vorletzten) Zeile durch. Anschließend denkt man sich die letzte Zeile weg und macht entsprechendes mit den davor liegenden Zeilen, bis überall die gewünschten Nullen stehen. Wir sehen uns das an unserem Beispiel an. 0 1 17 37 Die letzte Zeile muss mit 2 3 erhalten diese Matrix: multipliziert und zur ersten Zeile addiert werden. Wir 1 2 4 0 3 3 0 1 17 37 Jetzt muss das 17 -fache der letzten Zeile zur zweiten addiert werden. 14 1 2 0 4 3 3 0 1 0 1 6

Damit ist die hintere Nullenspalte fertig. Nebenbei bemerkt kann man jetzt auch schon ablesen, dass x 2 = y = 1 ist. Nun kommt die zweite Spalte dran. Über der mittleren 1 muss eine Null entstehen. Dazu wird zur ersten Zeile das 2 -fache der zweiten Zeile addiert. Wir erhalten dann 3 dieses Ergebnis: 1 0 0 2 0 1 0 1 Damit haben wir es geschafft. Die Ergebnisse für die gesuchten Variablen stehen in der letzten Spalte: x = 2, y = 1 und z = 3, oder als Lösungsmenge: L = {(2 1 3)} 4 Das Gauß-Jordan-Verfahren in der Anwendung für Rechenprogramme Wir haben gesehen, dass das Verfahren sehr systematisch abläuft. Weiterhin haben wir gesehen, dass zwischendurch ungünstig handhabbare Zahlenwerte entstehen, auch wenn es ganzzahlige Ergebnisse gibt. Aus diesen beiden Gründen eignet sich das Verfahren weniger für die Ausrechnung zu Fuß, sondern eher, um damit ein Rechnenprogramm für den Computer zu schreiben. Aus diesem Grund möchte ich die notwendigen Schritte computergerecht aufschreiben, allerdings ohne dabei direkt eine bestimmte Programmiersprache zu verwenden. Der Algorithmus lässt sich in jeder Sprache umsetzen, sei es C, Assembler oder welche Sprache auch immer. 4.1 Festlegung von Variablen Wir gehen davon aus, dass folgende Variablen als Integer-Variablen definiert sind: n: Die Anzahl der Variablen und Gleichungen k: Hilfsvariable für Teilmatritzen i: Hilfsvariable für Zeilennummern j: Hilfsvariable für Spaltennummern Weiterhin sei a als ein zweidimensionales Feld mit der Größe n n+1 (n Zeilen, n+1 Spalten) bestehend aus Fließkommavariablen in dieser Form definiert: a 11 a 12... a 1n b 1 a 21 a 22... a 1n b 2 a =.... a n1 a n2... a nn b n 7

Auch die b-werte (die Werte auf der rechten Seite in den zugrunde liegenden Gleichungen) werden damit als a-werte nämlich als a i,n+1 angesprochen. In einem Gleichungssystem 3. Grades (n=3) beispielsweise wäre dann b 1 =a 14, b 2 =a 24 und b 3 =a 34. Das erleichtert die Berechnungen, die ja immer in einer kompletten Zeile stattfinden. 4.2 Die eigentliche Programmieranleitung Die Beschreibung des Algorithmus beginnt, nachdem alle Werte in die Matrix eingetragen sind und auch n die Zahl der Variablen enthält. Der Algorithmus besteht in zwei aufeinanderfolgenden Teilen. Im ersten wird die Diagonale mit Einsen und das Dreieck unten links mit Nullen gefüllt, im zweiten Teil kommen die Nullen oben rechts dazu. Schritt 1: Einserdiagonale und Nullen unten links. Führe nachfolgende Befehle für k = 1 bis k = n aus: Ist a kk = 0? Wenn ja, führe nachfolgende Befehle aus. Setze i=k+1 Ist i > n? Wenn ja, brich ab mit der Fehlermeldung: Das Gleichungssystem ist unterbestimmt! Ist a ik = 0? Wenn ja, erhöhe i um eins und prüfe erneut. Wenn dabei i > n wird, brich mit der oben genannten Fehlermeldung ab. Diese Erhöhungen werden so lange fortgesetzt, bis entweder a ik 0 ist, oder mit der Fehlermeldung abgebrochen wurde. Tausche die Werte aus Zeile i mit den Werten aus Zeile k. Berechne von j = n + 1 rückwärts bis j=k: a kj = a kj a kk Falls k < n ist, führe nachfolgenden Befehl für i = k + 1 bis i = n aus. Berechne für j = n + 1 rückwärts bis j = k: a ij = a ij a kj a ik Wenn wir hier angekommen sind, ist der erste Teil abgeschlossen; die Einserdiagonale mit den Nullen darunter ist erzeugt. Schritt 2: Die Nullen oben rechts. Führe folgende Schritte für k = n rückwärts bis k = 2 durch. Führe folgende Schritte für i = 1 bis i = k 1 durch. Berechne für j = n + 1 rückwärts bis j = k: a ij = a ij a kj a ik Danach stehen alle Lösungen in der letzten Spalte der Matrix. 8