MATH_RegressionLineaire    [Statistiques]

Par Antoine Galmiche (Math4D v1)
Nouvelle recherche
Si (Faux)
   ` MATH_RegressionLineaire [Antoine Galmiche 04/2002]
   ` ---------------------------------------------
   ` Rappels mathématiques :
   ` La droite de régression linéaire représente le lissage par 
   ` une droite d'un nuage de points
   ` ---------------------------------------------
   ` MATH_RegressionLineaire(->TableauX ;->TableauY ;->TableauRésultat)
   ` TableauX (Pointeur) Pointeur tableau réel des abscisses qui doivent être triés
   ` TableauY (Pointeur) Pointeur tableau réel des ordonnées
   ` TableauRésultat (Pointeur) Pointeur tableau points de la droite de régression
   ` Les coefficients A et B de la droite y=Ax + B sont placés ainsi :
   ` A dans TableauX{0} et B dans TableauY{0}
   ` ---------------------------------------------
   ` MATHERROR
   ` 0 -> Pas d'erreur
   ` -1 -> Abscisses non triées
   ` -2 -> Tableaux de tailles différentes
   `
Fin de si 

C_ENTIER LONG(MATHERROR)
C_POINTEUR($1;$2;$3;$4)  ` tab abscisses ; tab ordonnées ; tab droite
C_ENTIER LONG($k;$i)
C_REEL($test;$b0;$b1)
MATHERROR:=0
$k:=Taille tableau($1->)

Si ($k#0)
 $test:=$1->{1}
 Boucle ($i;2;$k)
  Si ($test>($1->{$i}))
   MATHERROR:=-1
   $i:=$k
  Sinon 
   $test:=$1->{$i}
  Fin de si 
 Fin de boucle 
 Si (Taille tableau($2->)#$k)
  MATHERROR:=-2
 Fin de si 
 
 Si (MATHERROR=0)
  TABLEAU REEL($tab;$k)  ` résultat    
  C_REEL($x2;$y;$x;$xy)
  $x2:=0
  $y:=0
  $x:=0
  $xy:=0
  
  Boucle ($i;1;$k)
   $x2:=$x2+($1->{$i}^2)  ` Somme(x2)
   $y:=$y+$2->{$i}  ` Somme(y)
   $x:=$x+$1->{$i}  ` Somme(x)
   $xy:=$xy+($1->{$i}*$2->{$i})  ` Somme(xy)
  Fin de boucle 
  
    ` calcul du b0 dans y = b0 + b1x
  $b0:=((($x2*$y)-($x*$xy))/(($k*$x2)-($x^2)))
  $b1:=((($k*$xy)-($x*$y))/(($k*$x2)-($x^2)))
  
  Boucle ($i;1;$k)
   $tab{$i}:=$b0+(($1->{$i})*$b1)
  Fin de boucle 
  
  COPIER TABLEAU($tab;$3->)
  $1->{0}:=$b1
  $2->{0}:=$b0
 Fin de si 
Fin de si