MATH_Variance    [Statistiques]

Par Teddy Linet (Math4D v1)
Nouvelle recherche
Si (Faux)
   ` MATH_Variance [Teddy Linet 23/07/02] v1;0
   ` ---------------------------------------------
   ` Calcul de la variance : honteusement copiée et librement modifié de EcartType
   ` Intérêt ultérieur pour les calculs statistiques demandant la variance et non
   ` l' écart type (évite un "EcartType^2" dans un but d'optimisation des méthodes)
   ` ---------------------------------------------
   ` MATH_Variance (->Tableau) -> Numérique
   ` Tableau (Pointeur) Liste dont on cherche la variance
   ` Résultat (Numérique) Variance
   ` ---------------------------------------------
   ` MATHERROR
   ` 0 -> Pas d'erreur
   ` -1 -> Tableau nul
   ` 1 -> Tableau avec 1 élément
   ` ---------------------------------------------
   `
Fin de si 

C_ENTIER LONG(MATHERROR)
C_POINTEUR($1)
C_REEL($0)
C_REEL($x2;$x)
C_ENTIER LONG($i;$k)

$k:=Taille tableau($1->)
$x2:=0
$x:=0

Au cas ou 
 : ($k=0)  ` Blurp ! tableau nul
 MATHERROR:=-1
 : ($k=1)  ` Variance sur un élément => attention à la cohérence !
 MATHERROR:=1
Sinon 
 MATHERROR:=0
Fin de cas 

Si (MATHERROR=0)
 Boucle ($i;1;$k)
  $x2:=$x2+($1->{$i}^2)  ` Somme(x2)
  $x:=$x+$1->{$i}  ` Somme(x)
 Fin de boucle 
   ` Variance = Somme(x^2)/n - (Somme(x)/n)^2  
 $0:=$k*$x2  ` nSomme(x2)
 $0:=$0-($x^2)  ` nSomme(x2) - (Somme(x))2
 $0:=$0/($k^2)  ` (nSomme(x2) - (Somme(x))2) / n2
Sinon   ` Retourne 0 si pas calculable
 $0:=0  `  NB la variance est nulle pour un tableau à 1 élément
Fin de si