Page 1 of 1

Loi Binomiale / programme (TI 83/83+/83premium CE)

Unread postPosted: 17 Apr 2016, 14:30
by matt rib
Bonjour à tous. Je suis en classe de première S à Paris. Nous sommes en train d'étudier la loi binomiale et l'échantillonnage. Le professeur nous a distribué des fiches pour utiliser les fonctions de la calculatrice dédiées à ce chapitre mais vous me comprendrez :) , c'est toujours plus fun de faire un programme soi même.
J'ai donc réalisé 3 programmes. Le premier donne la loi de probabilité que suit la variable X lorsqu'on lui donne les paramètres N et P. Le deuxième donne l'intervalle de fluctuation d'un échantillon avec possibilité de rentrer le seuil (par exemple 0.95) et le dernier fait la somme des probabilités allant d'un événement X1 à un événement X2.
Les trois marchent bien mais ils sont relativement lents et je suis quasi-sur qu'il serait possible de les optimiser. Je poste donc le code des 3 programmes et j'espère que vous aurez le temps d'y jeter un coup d'oeil. En vous remerçiant !

Loi de probabilité:
Code: Select all
ClrHome
Input "P=",P
Input "N=",N
ClrHome
"binompdf(N'P'K->Str1
0->K
1->U
4->J
If N<=2:Goto 1
If N>2:Goto 2
Lbl 1
While K<(N+1
expr(str1->Z
Output(2K+1,1,"P(X=
Output(2K+1,5,K
Output(2K+1,6,")=
Output(2K+1,8,Z
K+1->K
End
Pause
ClrHome
Stop
Lbl 2
While K<J
expr(str1->Z
Output((2K+(U),1,"P(X=
Output((2K+(U),5,K
Output((2K+(U),7,")=
Output((2K+(U),9,Z
K+1->K
End
Pause
ClrHome
U-8->U
J+4->J
If K>(N-3):Goto 3
If K>(N-1):Goto 2
If K>N:Stop
Lbl3
CLrHome
While K<(N+1)
expr(str1->Z
Output((2K+(U),1,"P(X=
Output((2K+(U),5,K
Output((2K+(U),7,")=
Output((2K+(U),9,Z
K+1->K
End
Pause
ClrHome


Le programme d'échantillonage :
Code: Select all
ClrHome
Input "P=",P
Input "N=",N
Input "Seuil",I
.5(1-I)->X
.5(I+(1-I->Y
ClrHome
0->K
0->Z
0->W
"Binompdf(N,P,K)->Str1
Lbl 1
ClrHome
While Z<=X
(expr(Str1)+Z)->Z
K->A
K+1->K
End
Lbl 2
0->K
While W<=Y
(expr(Str1)+W)->W
K->B
K+1->K
End
Output(1,1,"A=
Output(1,3,A
Output(2,1,"B=
Output(2,3,B
Output(3,1,"A/N=
Output(3,5,A
Output(3,9,"/
Output(3,10,N
Output(4,4"=,
Output(4,5,A/N
Output(5,1,"B/N=
Output(5,5,B
Output(5,9,"/
Output(5,10,N
Output(6,4,"=
Output(6,5,B/N
Output(7,1,"U1=
Output(7,4,Z
Output(8,1,"U2=
Output(8,4,W
Pause
ClrHome


Finalement le programme qui fait la somme de P(X=X1) à P(X=X2) :
Code: Select all
ClrHome
Input "P=",P
Input "N=",N
ClrHome
Input "X1=",X
Input "X2=",Y
X->K
"binompdf(N,P,K->Str1
0->Z
While K<(Y+1)
expr(Str1)+Z->Z
K+1->K
End
ClrHome
Output(1,1,"S=
Output(1,3,Z
Pause
ClrHome


N'hésitez pas à me poser des questions sur l'utilité de certaines choses dans les programmes.

Re: Loi Binomiale / programme (TI 83/83+/83premium CE)

Unread postPosted: 17 Apr 2016, 15:02
by critor
Bonjour.


Je suis un peu surpris par les programmes.
Ils ciblent quelle machine ? Ta TI-Nspire ? Ils marchent ?

Parce que je vois des choses spécifiques au langage Basic des TI-82/83/84, et d'autres spécifiques à celui des TI-Nspire.

Re: Loi Binomiale / programme (TI 83/83+/83premium CE)

Unread postPosted: 17 Apr 2016, 17:18
by matt rib
A vrai dire, il fonctionnent même tous sur une Ti-83 première édition (1996) et ont été programmés dessus. Ils marchent tous mais je pense que certaines boucles sont optimisables d'ou leur lenteur lorsque N prend des valeurs relativement hautes

Re: Loi Binomiale / programme (TI 83/83+/83premium CE)

Unread postPosted: 17 Apr 2016, 17:37
by critor
J'ai été induit en erreur par le expr(, désolé. :)