next up previous contents index
suivant: La ration de pain monter: Comment simuler l'expérimentation ? précédent: première façon   Table des matières   Index

Une autre façon de simuler l'expérimentation

On peut aussi, par exemple, supposer que l'on coupe le spaghetti en suivant une loi de probabilité de densité f (x), avec comme graphe de f une parabole, par exemple, pour un spaghetti de longueur 1, on peut choisir :
f (x) = kx(1 - x) pour x $ \in$ [0, 1].
On doit donc avoir $ \int_{0}^{1}$f (t)dt = k/6 = 1 donc k = 6.
On suppose donc que f (x) = 6x(1 - x) pour x $ \in$ [0, 1]
On suppose que l'on recoupe le morceau le plus grand.
On a alors :
Soit F(x) = $ \int_{0}^{x}$f (t)dt = 3x2 -2x3.
Si U est une variable aléatoire uniforme (donné par exemple par la fonction rand() de Xcas) on a :
X = F-1(U) et,
Proba(U < F(x)) = Proba(F-1(U) < x) = Proba(X < x) = F(x).
Pour déterminer $ \tt X$ selon cette loi, on cherche x vérifiant $ \tt x=F^{-1}(u)$.
Dans le programme ci-dessous on note g la fonction F et on écrit :
g(v):=3*v^2-2*v^3;
u:=evalf(rand(2^30)/2^30);
j:=0.1;
while (x> g(j)){j:=j+0.1;}
x:=j-0.05;
on peut aussi écrire :
g(v):=3*v^2-2*v^3;
u:=evalf(rand(2^30)/2^30);
solve(g(x)=u,x)
Ainsi, si $ \tt F(J-0.1)<U<F(J)$ on a $ \tt J-0.1<F^{-1}(U)=X<J$.
Pour choisir y dans l'intervalle [0;a] selon cette loi, la densité de probabilité correspondante est fa(t) = $ {\frac{{6t(a-t)}}{{a^3}}}$ et Fa(t) = F(t/a).
Pour déterminer la loi de $ \tt Y$, lorsqu'on coupe un spaghetti de longueur x, selon cette loi, on écrit :
y:=evalf(rand(2^30)/2^30);
j:=0.1;
while (y> g(j)){j:=j+0.1;}
y:=(j-0.05)*x;

Si x $ \in$ [$ {\frac{{1}}{{2}}}$;1], et y $ \in$ [0;x], la probabilité d'avoir un triangle est que :
y $ \in$ [x - $ {\frac{{1}}{{2}}}$;$ {\frac{{1}}{{2}}}$].
Cherchons la probabilité d'avoir :
y $ \in$ [x - $ {\frac{{1}}{{2}}}$;$ {\frac{{1}}{{2}}}$], sachant que x $ \in$ [$ {\frac{{1}}{{2}}}$;1], et y $ \in$ [0;x].
On a :
Proba(y $ \in$ [x - $ {\frac{{1}}{{2}}}$;$ {\frac{{1}}{{2}}}$]) = Fx($ {\frac{{1}}{{2}}}$) - Fx(x - $ {\frac{{1}}{{2}}}$) = F($ {\frac{{1}}{{2}}}$x) - F((2x - 1)/2x) = $ {\frac{{-2x^3+3x-1}}{{2x^3}}}$
Pour le calcul théorique de la probabilité d'avoir un triangle, on utilise la symétrie : en effet, on a soit x $ \in$ [$ {\frac{{1}}{{2}}}$;1] et y $ \in$ [0;x] soit, x $ \in$ [0;$ {\frac{{1}}{{2}}}$] et y $ \in$ [x;1] (donc on fait le calcul de cette probabilité lorsque x $ \in$ [$ {\frac{{1}}{{2}}}$;1] et on multiplie par 2 cette probabilité pour avoir le résultat).
Donc la probabilité d'avoir un triangle, avec ce choix de découpage est :
2$\displaystyle \int_{{\frac{1}{2}}}^{1}$f (x)(F($\displaystyle {\frac{{1}}{{2}}}$x) - F((2x - 1)/2x))dx
Puisque F($\displaystyle {\frac{{1}}{{2}}}$x) - F((2x - 1)/2x) = $\displaystyle {\frac{{-2x^3+3x-1}}{{2x^3}}}$, et que f (x) = 6x(1 - x), on tape :
normal(6*int((1-x)*(-2*x^3+3*x-1)/(x^2),x,1/2,1))
On obtient :
-24*log(1/2)-16
et avec la commande evalf on obtient :
0.635532333439
C'est à dire :
6$\displaystyle \int_{{1/2}}^{1}$$\displaystyle {\frac{{(1-x)(-2x^3+3x-1)}}{{x^2}}}$dx = (- 24 ln(1/2) - 16) $\displaystyle \simeq$ 0.635532333439
Voici le programme de simulation avec Xcas

spagb(n):={
//integrate(6*x*(1-x)*(g(0.5/x)-g(1-0.5/x)),x,0.5,1) 
local x,y,a,b,t;
t:=0;
g(u):=3*u^2-2*u^3;
//Ab:=[];
for (k:=1;k<=n;k++){
x:=evalf(rand(2^30)/2^30);

j:=0.1;while (x> g(j)){j:=j+0.1;}
x:=j-0.05;
y:=evalf(rand(2^30)/2^30);
j:=0.1;while (y> g(j)){j:=j+0.1;}
if (x>0.5){
y:=(j-0.05)*x;
a:=y;
b:=x-y;
} else {
y:=(j-0.05)*(1-x)+x;
a:=x;
b:=y-x;
}
//Ab:=append(Ab,[x,y]);
if ((a<0.5) and (b<0.5) and (a+b>0.5)) {
t:=t+1;
}
}
return(evalf(t/n));
};


next up previous contents index
suivant: La ration de pain monter: Comment simuler l'expérimentation ? précédent: première façon   Table des matières   Index
Documentation de giac écrite par Renée De Graeve