Gauss   
Bestimmung der Lösungen von linearen Gleichungen. Das Programm wurde in C geschrieben. Ich habe das Programm für das Fach Statistik geschrieben als Ersatz für den 2dimensionalen Newton (den ich dann auch in einer Kurzform geschrieben habe). Die Verwaltung der Matrizen im Programm geschieht dynamisch, was das Programm sehr komliziert erscheinen läßt. Eine interessante Routine im Algorithmus erkennt die Null nach einer Subtraktion. (denn manchmal kann "2-2 = -1.0e-09" sein). Die Abweichungen entstehen durch "Rundungsfehler" der FPU nach mehreren Rechenschritten im Algorithmus (das ist ganz normal).

Quelle        (newton.c)
Quelle        (gauss.cpp)
Download  (gauss.exe)
 

Das folgende Beispiel baut auf der folgenden Gleichung auf.
 
Gleichung: 
2 * x1  + 4 * x2 = 3 
3 * x1  + 7 * x2 = 4 
  Lösung:  
x1 =  2.5 
x2 = -0.5 
 



1. Festlegen der Zeilen und Spaltenzahl
                            Gauss-Algo
                           ============
                            _  _
                        A * X= Y
geg. sind Koeffizienten Matrix A (mit z-Zeilen & s-Spalten) und der
Loesungs-Vektor Y (mit z-Zeilen). Gesucht ist der Vektor X (mit s-Zeilen),
der dieses Gleichungssystem loest.

    + x[1]*a[1,1]   x[2]*a[1,2]  ...  x[s]*a[1,s] + = Y[1]
    ¦ x[1]*a[2,1]   x[2]*a[2,2]  ...  x[s]*a[2,s] ¦ = Y[2]
    :  :      :      :     :     ...   :    :     : =  :
    + x[1]*a[z,1]   x[2]*a[z,2]  ...  x[s]*a[z,s] + = Y[z]
 

Gib die SpaltenZahl von A  s:= 2

Gib die  ZeilenZahl von A  z:= 2



2. Matrix A eingeben
gib die Werte der MATRIX A ein
Elemente-Format a(z,s), d.h. a(zeile,spalte)

a(1,1)= 2
a(1,2)= 4
a(2,1)= 3
a(2,2)= 7



3. Eingabe Lösungsvektor
 gib die Werte des LoesungsVektors Y ein
 Elemente-Format y(z), d.h. y(zeile)

y(1)= 3
y(2)= 4



4. Ausgabe
   GleichungsSystem war optimal bestimmt.
x(1) =  2.50000         ==  2.500000000000000e+00
x(2) = -0.50000         == -4.999999999999998e-01

E   N   D   E