inverse Matrix bestimmen (nach Gauss) Autor: Bergmann Martin MatNr: 9527180 Beschreibung: Das Programm berechnet die inverse Matrix einer eingegebenen Matrix nach dem Gauss'schen Eliminationsverfahren. Eingabe: Z Dimension der Matrix (maximal 5) A11 A12 A13 \ A21 A22 A23 - Elemente der Matrix (- 100 .. 100) A31 A32 A33 / Das Programm ben"tigt 51.496 Byte Speicher und arbeitet recht schnell da zeitaufwendige Berechnungen und Schleifen vermieden wurden. Routinen: Variableninit: In dieser Routine werden alle Variablen auf einen definierten Wert gesetzt um Fehler im Programm durch zuf"llige Anfangs- werte zu vermeiden. Die Elemente des Feldes MatrixN (Nenner der Matrixelemente) werden auf 1 gesetzt, da als Eingabewert nur ganzzahlige Werte erlaubt sind. (z/1) Kuerzen: Kuerzen (Z"hler,Nenner,Ergebnisz"hler,Ergebnisnenner) ---------------------------------------------------- | Z"hler: Z"hler des zu vereinfachenden Bruchs | | Nenner: Nenner des zu vereinfachenden Bruchs | | | | Ergebnisz"hler: Z"hler des Bruchs nach der Krzung | | Ergebnisnenner: Nenner des Bruchs nach der Krzung | ---------------------------------------------------- Diese Routine krzt die Betr"ge von Z"hler und Nenner und legt auch das Vorzeichen fest. Der Wert 0 wird als 0/1 gespeichert. Addition, Multiplikation, Division: Addition (Z1,N1,Z2,N2,ErgZ,ErgN); Multiplikation Division --------------------------- | Z1: Z"hler des 1. Bruchs | | N1: Nenner des 1. Bruchs | | Z2: Z"hler des 2. Bruchs | | N2: Nenner des 2. Bruchs | | ErgZ: Z"hler des Ergebnis | | ErgN: Nenner des Ergebnis | -------------------------- DimensionLesen: Liest die Gr" e der Matrix ein und kontrolliert auf falsche Eingaben. ErweiterteMatrix: Erzeugt neben der Matrix eine Einheitsmatrix. D.h. alle Elemente der Diagonale auf 1 setzen. ElementeLesen: Liest die Elemente der Matrix ein. Wobei der Wert nur zwischen -100 und 100 liegen darf. Ausgeben: Gibt bei einer Fehleingabe die entsprechende Fehlermeldung oder bei korrekten Eingaben die inverse Matrix aus. Korrektur: Wenn bei der Berechnung eine 0 auf der Hauptdiagonalen auftritt so mu  eine untere Zeile zu dieser Zeile addiert werden um die inverse Matrix zu erm"glichen. Wenn es keine weiter unten liegende Matrix existiert, damit die Haupt- diagonale an jeder Stelle ein Wert <>0 steht, ist die Matrix nicht invertierbar. Berechnung: Berechnet die inverse Matrix wie in der Spezifikation angegeben. Zuerst wird ein Faktor ermittelt damit der Wert in der ersten Spalte zweite Zeile gleich Null wird. Diesen Faktor erh"lt man durch -A21/A11. Mit diesem Wert wird die erste Zeile multipliziert und anschlie end wird diese Zeile zur zweiten Zeile addiert wodurch der erste Wert 0 wird. Anschlie end wird der Faktor -A31/A11 ermittelt und mit der ersten Zeile multipliziert und zur 3. Zeile addiert u.s.w. Danach wird weiter versucht unterhalb der Diagonalen alle Elemente auf 0 zu bekommen. Der Faktor hierfr ist (-A32/A22) - Multipliziert mit der 2. Zeile - Zur 3.Zeile addieren - Faktor (-A42/A22) - u.s.w. Nachdem alle Elemente unter der Diagonalen 0 sind, werden nach dem selben Verfahren die Werte oberhalb der Diagonalen auf 0 gesetzt - Faktor (-A34/A44)*Zeile4 addiert mit der 3.Zeile. Wenn nur noch die Diagonale Werte<>0 besitzt wird jede Zeile durch das in der Diagonale stehende Element dividiert.