gauss_algorithm(33) Sprache: Deutsch


Gauss Algorithm

----------------------------------------------------------------------[ Meta ]--

name		gauss_algorithm
section		33
description	Gauss Algorithm
tags		algorithms math c programs
encoding	utf8
compliance	public
lang		de
creation	2014/08/09 15:09:30
version		1.0.0.0
copyright	Copyright (c) 2014 Ma_Sys.ma.
		For further info send an e-mail to Ma_Sys.ma@web.de.

--------------------------------------------------------------[ Beschreibung ]--

Das C-Programm "`Gauss Algorithm"' konnte den Gauss-Algorithmus anwenden, um aus
n gegebenen Punkten ein Polynom n-1-ten Gerades zu berechnen oder als Eingabe
eine Gauss-Matrix verwenden. Dabei wurden in der Eingabe nur ganze Zahlen
aktzeptiert, wodurch das Programm genau arbeitete und keine Fließkomma-Fehler
machen konnte. Das Programm konnte die Ausgabe auch als LaTeX-Tabelle machen, um
die Ergebnisse in ein ausdruckbares Dokument einzubinden. Bei der Angabe von
Punkten gab man immer drei Zahlen an: Die Ableitung, in die der Punkt eingesetzt
werden soll, den X-Wert des Punktes und den (Ableitungs-)Funktionswert an dieser
Stelle. Damit konnte das Programm zu den meisten Schulaufgaben mit nur wenigen
Zeilen Eingabe sofort eine Lösung ausspucken, sodass man die fehlerträchtige
Rechnung nicht selbst durchführen musste. Das Programm hatte den kleinen
Schönheitsfehler, dass die vom Programm durchgeführte Rechenoperation immer in
der Zeile angezeigt wurde, wo das Ergebnis stand: Wenn die erste Zeile mit 2
multipliziert worden war, stand hinter dem Ergebnis die dazu verwendete
Rechenoperation `*2`.

Beispiel für eine direkte Eingabe von Punkten und die zugehörige Ausgabe auf dem
Terminal:

	/data/main/development/c/gauss_alg$ ./gauss_alg
	0,2,4
	0,-2,4
	0,0,0
	    4       2       1       4
	    4      -2       1       4
	    0       0       1       0
	----------------------------------------
	    4       2       1       4   * (1)
	   -4       2      -1      -4   * (-1)
	    0       0       1       0
	----------------------------------------
	    4       2       1       4
	    0       4       0       0   + I
	    0       0       1       0
	----------------------------------------
	    4       2       1       4
	    0       4       0       0   * (1)
	    0       0       1       0
	----------------------------------------
	    4       2       1       4
	    0       4       0       0
	    0       0       1       0
	----------------------------------------
	
	Result: f(x) = (1/1)*x^2

Man sieht deutlich, dass die durchgeführten Rechenoperationen hinter dem
Ergebnis stehen. Für die gleiche Eingabe erhält man als Ergebnis mit dem
Parameter `--tex` die Ausgabe unten und den korrekten Ergebnisterm
{$f(x) = \frac{1}{1}x^{2}$} (ebenfalls vom Programm schon LaTeX-kompatibel
generiert).

	\toprule
	a       & b       & c       & y       & Aktion \\
	\midrule
	$    4$ & $    2$ & $    1$ & $    4$ &  \\
	$    4$ & $   -2$ & $    1$ & $    4$ &  \\
	$    0$ & $    0$ & $    1$ & $    0$ &  \\
		&         &         &         &  \\
	$    4$ & $    2$ & $    1$ & $    4$ & $\cdot (1)$ \\
	$   -4$ & $    2$ & $   -1$ & $   -4$ & $\cdot (-1)$ \\
	$    0$ & $    0$ & $    1$ & $    0$ &  \\
		&         &         &         &  \\
	$    4$ & $    2$ & $    1$ & $    4$ &  \\
	$    0$ & $    4$ & $    0$ & $    0$ & $+ $I \\
	$    0$ & $    0$ & $    1$ & $    0$ &  \\
		&         &         &         &  \\
	$    4$ & $    2$ & $    1$ & $    4$ &  \\
	$    0$ & $    4$ & $    0$ & $    0$ & $\cdot (1)$ \\
	$    0$ & $    0$ & $    1$ & $    0$ &  \\
		&         &         &         &  \\
	$    4$ & $    2$ & $    1$ & $    4$ &  \\
	$    0$ & $    4$ & $    0$ & $    0$ &  \\
	$    0$ & $    0$ & $    1$ & $    0$ &  \\
	\bottomrule

Zur Direkten Eingabe einer Matrix konnte man den Paramter `--raw` verwenden, die
Ausgabe unterschied sich dabei nicht. Die Ma_Sys.ma Implementation hatte noch
einige kleine Schwächen: Das Programm führte nur anfangs eine mehr oder weniger
auf Plausibilität basierende Vertauschung von Zeilen durch, damit die Eingabe
gelöst werden konnte, was in allen vom Ma_Sys.ma getesteten Fällen zwar klappte,
aber noch nicht sicher ist. Außerdem versuchte das Programm nicht, die Zahlen in
der Matrix kleinzuhalten, sodass bei großen Eingabezahlen und komplexen Termen
eventuell der 64-bit Integer überlaufen könnte.


Zum Seitenanfang