1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
|
// formule de la courbe de Gauss
function calculY(x,m,et){
resultat = Math.exp( (-0.5) * Math.pow((x-m)/et, 2) ) / ( et * Math.sqrt(2*Math.PI) );
return resultat;
}
// calcul de x pour un alpha donné
function getXforAlpha(m,et,confiance){
// on calcule l'intégrale de la loi normale
// jusqu'a obtenir la valeur de la confiance
area = confiance;
// on commence avec x=m et area = 0.5
xtemp = m;
area_to_x = 0.5;
if ( confiance >= 0.5) {
// on calcule l'aire avec une somme infinitésimale
// jusqu'a trouver la valeur de la confiance
while ( area > area_to_x ) {
ytemp = calculY(xtemp,m,et);
area_to_x += ytemp * 0.001;
xtemp += 0.001;
}
}else if (confiance < 0.5 ){
// idem dans l'autre sens ( x descendant )
while ( area < area_to_x ) {
ytemp = calculY(xtemp,m,et);
area_to_x -= ytemp * 0.001;
xtemp -= 0.001;
}
}
// on retourne le x obtenu
resultat = xtemp;
return resultat;
}
// trace visuellement la zone de l'erreur alpha
function traceAlphaArea(m,et,confiance){
this.courbeH0.lineStyle(0.1, 0xFF00FF,100);
xstart = getXforAlpha(m,et,confiance);
xend = m + 4 * et;
for (i = xstart; i < xend ; i += 0.1 ){
ix = i;
iy = - calculY(ix,m,et);
iy = 1000 * iy;
//trace(ix+' : '+iy);
this.courbeH0.moveTo(ix,0);
this.courbeH0.lineTo(ix,iy);
}
} |
Partager