Universität Ulm, Fakultät für Mathematik und Wirtschaftswissenschaften, SAI

Loesungen zum 2. Uebungsblatt (27.10.98 - 03.11.98)


/* Uebungsblatt2: Systemnahe Software WS 98/99
 * Berechnung einer Regressionsgeraden
 */

#include 
#include 
#include 

int main( void )
{
  double zw1=0, zw2=0, xquer=0, yquer=0 , sxq=0, sxy=0, a=0, b=0, x, y;
  double n = 0; /* Anzahl der gelesenen Werte */

  while( scanf( "%lf%lf", &x, &y ) != EOF ){ 
    n++; /* Anzahl der gelesenen Wertepaare */
    zw1 += x * x;
    zw2 += (x * y);
    xquer += x;
    yquer += y;
  }
  if( n > 1 ){
    xquer = xquer / n;
    yquer = yquer / n;
    sxq = (1 / (n-1)) * ( zw1 - n * xquer * xquer);
    sxy = (1 / (n-1)) * ( zw2 - n * xquer * yquer);
    b = sxy / sxq;
    a= - b * xquer + yquer;

    printf( "b %lf\n", b);
    printf( "a %lf\n", a);
  }else{
    fprintf( stderr, "ERROR: no or incorrect data!\n" );
    return 1;
  }
}

Loesungen zum 2. Uebungsblatt / 2. Teil

#include 
#include 
#include 

int main( void )
{
  double  a=0, b=0, x, y;

  printf( " Auswertung: \n" );
  /* b einlesen */
  /* a einlesen */
  scanf( "%*s%lf", &a); 
  scanf( "%*s%lf", &b); 
  
  while( scanf( "%lf", &x) != EOF ){ 
     y = b * x + a;
     printf( "( x, y) = (%lf, %lf)\n", x,y);
  }
}



Universität Fakultät SAI


Martina Maier, 4. November 1998