next up previous contents index
suivant: Index monter: Simulation avec une loi précédent: Simulation avec rand()   Table des matières   Index


Simulation avec randnorm()

Pour simuler une fournée du boulanger, on va utiliser randnorm(198,2) Le professeur achéte p pains (par exemple p = 100)
profnorm(p):={
local pj,P,j,m,S,k;
P:=makelist(0,0,12,1);
S:=0;
for (k:=0;k<p;k++){
    pj:=floor(randnorm(198,2));	
    S:=S+pj;
    pj:=pj-192;
    if (pj<0) {P[0]:=P[0]+1;} 
          else
          {if (pj>12) {P[12]:=P[12]+1;}
               else
               {P[pj]:=P[pj]+1;}
           }
};
m:=evalf(S/p);
xyztrange(-0.2,12.2,-1,36.0,-10,10,-10,-10,-0.2,
          12.2,-1,36,1);
switch_axes(NULL);
ClrGraph(); 
return([P,m,segment(0,i*P[0]),segment(1,1+i*P[1]),
 segment(2,2+i*P[2]),segment(3,3+i*P[3]),
 segment(4,4+i*P[4]),segment(5,5+i*P[5]),
 segment(6,6+i*P[6]),segment(7,7+i*P[7]),
 segment(8,8+i*P[8]),segment(9,9+i*P[9]),
 segment(10,10+i*P[10]),segment(11,11+i*P[11]),
 segment(12,12+i*P[12])]);
};
Puis on tape par exemple :
profnorm(100)

On écrit ensuite le programme profchounorm pour simuler le poids du pain du professeur lorsque ce pain a toujours un poids (en grammes) supérieur ou égal à 200.

profchounorm(p):={
local pj,P,j,m,S,k;
P:=makelist(0,0,12,1);
S:=0;
for (k:=0;k<p;k++){
    pj:=floor(randnorm(198,2));	
    while (pj<200) {pj:=floor(randnorm(198,2));}
    S:=S+pj;
    pj:=pj-192;
    if (pj<0) {P[0]:=P[0]+1;} 
          else
          {if (pj>12) {P[12]:=P[12]+1;}
               else
               {P[pj]:=P[pj]+1;}
           }
};
m:=evalf(S/p);
xyztrange(-0.2,12.2,-1,60.0,-10,10,-10,-10,-0.2,
          12.2,-1,60,1);
switch_axes(NULL);
ClrGraph();
return([P,m,segment(0,i*P[0]),segment(1,1+i*P[1]),
 segment(2,2+i*P[2]),segment(3,3+i*P[3]),
 segment(4,4+i*P[4]),segment(5,5+i*P[5]),
 segment(6,6+i*P[6]),segment(7,7+i*P[7]),
 segment(8,8+i*P[8]),segment(9,9+i*P[9]),
 segment(10,10+i*P[10]),segment(11,11+i*P[11]),
 segment(12,12+i*P[12])]);
};
On valide ce programme, puis on tape par exemple :
profchounorm(100)
On obtient dans l'écran DispG :

\begin{pspicture}(0,0)(12.2000,12.0000)
\psset{unit=0.1967cm}
\psset{linewidth=....
...
\psset{linecolor=black}
\psline(12.0000,0.0000)(12.0000,2.0000)
\end{pspicture}
Pour avoir la traduction Latex de cette figure dans le fichier figure5 on tape :
graph2tex("figure5")

Documentation de giac écrite par Renée De Graeve