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