Calcul formel : Mode d'emploi - Exemples en Maple

Claude Gomez, Bruno Salvy, Paul Zimmermann

Masson, 1995

Chapitre XI, section 1.4, exercice 2, page 274.

Philippe.Dumas@inria.fr
http://algo.inria.fr/dumas/Maple/

Page du Projet Algorithmes | Page de Philippe Dumas | Page Maple de Philippe Dumas

Retour en page principale
Table des matières
Index
Maple V.4 worksheet
Maple V.5 worksheet


La fonction génératrice correspondant à un lancer de dés est évidente.

> f1:=add(z^i,i=1..6)/6;

[Maple Math]

La somme des points obtenus en n lancers est une variable aléatoire qui est la somme de n variables aléatoires indépendantes et équidistribuées. La fonction génératrice de la somme est donc la puissance n-ième de la fonction génératrice associée à un lancer. Pour obtenir la probabilité que la somme ait une certaine valeur il suffit d'expliciter la fonction génératrice. Nous le faisons d'abord pour n=10.

> nb:=10:

> f.nb:=collect(f1^nb,z);

[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]

> for k from 0 to 6*nb do
p[k]:=coeff(f10,z,k)
od:

Nous disposons ainsi des probabilités et nous pouvons tracer le graphique demandé.

> plot([seq([k,p[k]],k=0..6*nb)]);

Recommençons avec n égal à 100. Le calcul devient laborieux parce qu'il faut développer un polynôme de degré 600 à coefficients rationnels. Il serait plus efficace de calculer (z+...+z^6)^100 et de diviser le tout par 6^100.

> nb:=100:

> st:=time():
f.nb:=collect(f1^nb,z):
time()-st;

[Maple Math]

> for k from 0 to 6*nb do
p[k]:=coeff(f.nb,z,k)
od:

> plot([seq([k,p[k]],k=0..6*nb)]);

Nous obtenons une courbe similaire à la précédente, mais la probabilité est plus concentrée vers le centre de l'intervalle des valeurs (la somme prend ses valeurs entre n et 6n, ici entre 100 et 600).

Soyons plus précis. Nous employons la fonction génératrice, d'abord pour calculer la moyenne puis la variance et l'écart type de la somme.

> mu:=subs(z=1,diff(f.nb,z));

[Maple Math]

> subs(z=1,diff(f.nb,z,z)+diff(f.nb,z)-diff(f.nb,z)^2);

[Maple Math]

> sigma:=evalf(%^(1/2));

[Maple Math]

Ensuite nous regardons comment évoluent les probabilités quand la valeur k s'éloignent de l'indice qui donne le maximum.

> for xx from 0 to 5 do
k:=round(mu+xx*sigma);
print(k=evalf(p[k]))
od:

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

Nous voyons qu'à partir de trois écarts type, la probabilité est négligeable.

Curieusement l'exercice demande une illustration, mais ne demande pas de tirer la moindre conclusion de cette expérience. Comme nous l'avons déjà indiqué, la variable aléatoire étudiée est la somme de n variables indépendantes équidistribuées. De plus la loi commune à ces variables possède une moyenne et une variance. Il en résulte que le théorème central limite s'applique et la fonction de répartition de la somme, convenablement normalisée, converge vers la loi normale. Nous allons mettre ceci en valeur.

D'abord nous calculons la moyenne et la variance de la distribution correspondant à un lancer.

> subs(z=1,diff(f1,z));

[Maple Math]

> subs(z=1,diff(f1,z,z)+diff(f1,z)-diff(f1,z)^2);

[Maple Math]

Ensuite nous allons graphiquement tester la convergence. Nous prenons une valeur de n qui est faible, faute de quoi il n'y aurait rien à voir tant la convergence est rapide.

> nb:=10:

> f.nb:=collect(f1^nb,z):

> for k from 0 to 6*nb do
p[k]:=coeff(f10,z,k)
od:

> mu:=nb*7/2;

[Maple Math]

> sigma2:=nb*35/12;

[Maple Math]

Nous traçons comme plus haut la distribution discrète, puis nous traçons la gaussienne convenablement calée. Nous aurions aussi pu normaliser la distribution discrète. Nous aurions aussi pu employer les fonctions de répartition, pour coller à l'énoncé du théorème central limite.

> exact:=plot([seq([k,p[k]],k=0..6*nb)],color=red):

> approx:=plot(1/sqrt(2*Pi*sigma2)*exp(-(x-mu)^2/2/sigma2),
x=0..6*nb,color=blue):

> plots[display]({exact,approx});

L'accord est si bon que nous avons du mal à distinguer les deux courbes.

Sur le théorème limite central, on peut par exemple consulter [Renyi66].

Retour en page principale