Hier ein von mir geschriebener C++ Source-Code für die Lineare Regression unter Dos:
/* Headerdatei */
#include <iostream.h>
/* Variablendefinition */
double sx[50], sy[50], xx = 0.0, yy = 0.0, x = 0.0, y = 0.0, xy = 0.0;
int n, zaehler = 1;
double Steigung, Koordabs;
/* Hauptfunktion */
void main(void)
{
cout << " Lineare Regression
\n"
<< "(c) 1996
by Th. Dennhardt \n"
<< "written in
C++ for MS-DOS \n"
<<
"------------------------- \n"
<< "Formel
fuer die Gerade: \n"
<<
" y = m * x + b \n"
<<
"------------------------- \n";
/* Definition der Dateneingabe */
int wertepaare;
cout << "Anzahl der Wertepaare (mindestens
3) > ? ";
cin >> wertepaare;
if (wertepaare < 3)
{
wertepaare = 3;
}
while (zaehler <= wertepaare)
{
cout << "x =";
cin >> sx[zaehler];
cout << "y =";
cin >> sy[zaehler];
zaehler = ++zaehler;
}
/* Berechnung des Koordinatenabschnittes und der Steigung */
zaehler = 1;
while (zaehler <= wertepaare)
{ x = x + sx[zaehler];
xx = xx + sx[zaehler] * sx[zaehler];
y = y + sy[zaehler];
yy = yy + sy[zaehler] * sy[zaehler];
xy = xy + sy[zaehler] * sx[zaehler];
n = ++n;
if (n < 2)
{
zaehler = ++zaehler;
x = x +sx[zaehler];
xx = xx + sx[zaehler] * sx[zaehler];
y = y + sy[zaehler];
yy = yy + sy[zaehler] * sy[zaehler];
xy = xy + sy[zaehler] * sx[zaehler];
n = ++n;
}
else
Steigung = (xy - x * y / n) / (xx - (x * x) / n);
Koordabs = (y - Steigung * x) / n;
zaehler = ++zaehler;
}
/* Ausgabe der Ergebnisse */
cout <<
"---------------------------------------- \n";
cout << "Die Steigung ist: " <<
Steigung << endl;
cout << "Der Koordinatenabschnitt ist:
" << Koordabs << endl;
/* Korrektur der Y- Werte */
zaehler = 1;
while (zaehler <= wertepaare)
{
sy[zaehler] = Steigung * sx[zaehler] + Koordabs;
zaehler = ++zaehler;
}
/* Ergebnisausgabe der Korrektur */
cout << "------------------------ \n";
cout << "Ergebnisse der Korrektur \n";
cout << "------------------------ \n";
zaehler = 1;
while (zaehler <= wertepaare)
{
cout << "x=" << sx[zaehler] << "
y=" << sy[zaehler] << endl;
zaehler = ++zaehler;
}
}
und hier die CPP-Datei dazu (muss nur noch compiliert werden):
Regress.cpp
Aktualisiert (Dienstag, 11. Oktober 2011 um 18:03 Uhr)

C++ Source Regression












