Statistik ========= (C) dec/92 by Matthias Scherrer Zuerst das Uebliche: Statistik darf nur als Komplett-Packet weitergegeben werden, d.h. alle Sourcen und die Dokumentation muessen dabei sein. Statistik darf nicht kommerziell genutzt werden, und es darf damit kein Gewinn gemacht werden. Sinn und Zweck ============== Immer wieder muss man z.B. gemessene oder gerechnete Werte auswerten. Statistik hilft hier. Die wichtigsten Werte wie Mittelwert, Streuung und Regression werden aus einem ARRAY berechnet. Gebrauch ======== a.) Statistik.mod Das Modul Statistik stellt nur eine Procedure zur Verfuegung: PROCEDURE DoStat*(VAR x: stat; d: ARRAY OF ARRAY OF LONGREAL); x ist dabei vom Type stat (gleich mehr dazu), in dem zweidimensionalem ARRAY stehen die gemessenen/berechneten Werte. Der Type stat sieht so aus: TYPE stat* = RECORD n* : INTEGER; (* Anzahl Werte *) Ex*,Ey*, (* Summe x,y *) maxx*,minx*, (* Groesstes/kleinstes x/y *) maxy*,miny*, Ex2*,Ey2*, (* Summe x^2,y^2 *) Exy*, (* Summe x*y *) mx*, my*, (* Mittelwert *) sx*,sy*, (* Streuung x,y *) b*,c*, (* lin.Regression y=b*x+c *) sb*,sc*, (* Streuung b,c *) r* : LONGREAL; (* Korrelationskoeffizient *) END; b.) ReadDat.mod Um den Gebrauch zu vereinfachen, habe ich noch das ReadDat.mod beigelegt, dass mehr oder weniger ein (brauchbares) Abfallprodukt ist. Auch das ReadDat.mod stellt nur eine Procedure zur verfuegung: PROCEDURE ReadDatas*(rf: ARRAY OF CHAR; VAR d: ARRAY OF ARRAY OF LONGREAL): INTEGER; Das 'rf' ist der Filename (inkl. Device und Path falls gewuenscht). das 'd' kann man nachher dem Statistik Modul uebergeben. Als Rueckgabewert erhaelt man die Anzahl der Daten, die gelesen wurden. Der Aufbau des Datenfiles ist sehr einfach: x1,y1 x2,y2 . . . xn,yn Anstelle eines Kommas kann man auch ein (oder mehrere) Spaces schreiben. Kommas sind aber besser, da das GNUPlot auch Kommas benutzt. ACHTUNG! Es sind maximal 499 Eintraege erlaubt! c.) DoStat.mod Dies ist ein Demo-Programm. Es liest mittels des ReadDat.ReadDatas Werte aus einem ASCII-File. Danach werden mittels dem Statistik.DoStat alle Werte berechnet. Schlussendlich werden die Werte ausgegeben. Die Ausgabe kann natuerlich in ein File umgelenkt werden. Syntax: DoStat filename Z.B.: DoStat dh0:Physik/beispiel.dat >t:auswertung ACHTUNG! Compiliert wurde alles mit der Option -38, also fuer 68030/FPU. Besitzer eines kleineren Prozessors muessen nochmals compilieren. GNUPlot ======= Fuer die grafische Darstellung ist das GNUPlot ideal (zu finden auf Fish-Disks). Das ASCII File, dass auch das DoStat benoetigt, kann im GNUPlot mit Plot "dh0:Physik/beispiel.dat" ausgegeben werden. Die Regressionsgerade mittels: Plot b*x+c Wobei b die Steigung und c der y-Achsenabschnitt ist, den das DoStat berechnet hat. Das ganze kann danach in Vielfaeltigerweise ausgegeben werden (HPGL, EEPIC, PostScript usw..) Mehr zum GNUPlot steht in der Dokumentation dazu. Adresse ======= Falls Fehler oder Verbesserungsvorschlaege auftauchen, schreibt mir. Wenn ihr den Source abaendert, lasst es mich bitte wissen. Der Autor (ich) ist auch nicht gegen Geldspenden oder sonstigen Support abgeneigt :-). Matthias Scherrer Baselstrasse 63 4242 Laufen Schweiz FIDO: 2:301/707.10 Internet: e9178@ibb.ch (bis Sommer 1994) -- 29/Dec/92 ms