vibra le 03/10/2007 à 18:31
Ce programme (mon plus beau d'ailleurs) est uniquement réservé à ceux qui métrisent parfaitement la méthode d'Euler. Il s'agit donc d'un programme permettant de tracer une fonction grâce à une équadif. Il faut rentrer l'équation de la dérivée dans Y1, en utilisant X pour X, et Y pour la fonction inconnue (aussi souvent notée F dans les équadif). Puis on lance le programme, et on choisis appliquer. Il faut entrer les valeurs qui sont demandées, à savoir :
- la borne à gauche
- la borne à droite
- la valeur de x pour laquelle Y est connue
- la valeur de Y(X)
- le pas (plus il est petit, plus l'approximaion est précise). La vitesse du programme est de 5 calculs par seconde, donc choisissez le pas pour ne pas avoir à attendre trop. (sauf si la précision doit être extrême).
et le graphique affiche la courbe de F. Les valeurs sont conservées dans les matrices [A] (pour les valeurs à gauche de la valeur connue de Y), et [B] (pour les valeurs à droite de la valeur connue de Y).
exemple : Dessiner la courbe de f qui a pour valeur f(2)=6 et pour dérivéée y' = cos(y)+2x sur l'intervalle [0;5]
Pour cela, on rentre dans Y1 : cosY+2X, puis on entre, quand le programme le demande les valeurs suivantes : 0 5 2 6 ,1.
Le mode comparer sert à comparer la courbe de Y, et celle de Y' (si on à la chance de la connaitre, ou trouvée par calcul). Mais effectuer cette comparaison, il faut préalablement avoir tracé Y (donc avoir utilisé le programme en mode application), et avoir mis Y' dans Y2. Attention, toutes les variables, les matrices [A] et [B], ainsi que les listes L1, et L2 doivent -être restées intactes.
Le mode Table sert à déterminer, quelque soit x0 appartenant à [L,D] la valeur de Y. En fait, c'est un tableur. Les conditions préalables d'utilisation sont les mêmes que pour la comparaison.
Si vous avez des questions…
Code
ClrDraw
0->Z
PlotsOff
FnOff
Lbl 4
Menu("EULER",APPLIQUER",2,COMPARRER",1,"TABLE",7,"AIDE",3
Lbl 7
Input "F(X) : ",F
If F>D or F<L
Then
Disp "NON-CULCULE.
Pause
Goto 7
End
If F>C
Then
F-C->F
(C/P)->F
If fPart F=/=0
Then
Disp "CORRECTION
iPart F->F
End
1->G
While F>L2(1
F-L2(1->F
G+1->G
End
Disp [B](F,G
End
If F<C
Then
C-F->F
(F/P)->F
If fPart F=/=0
Then
Disp "CORRECTION
iPart F->F
End
1->G
While F>L1(1
G+1->G
F-L1(1)->F
End
Disp [A](F,G
End
If F=C
Disp A
Pause
Goto 7
Lbl 2
1->Z
"PG+Y"->Y3
ClrList L1,L2
{1,1}->dim [A]
0->[A](1,1
{1,1} ->dim [B]
0->[B](1,1
Input "L.Gauche : ",L
Input "L.Droite : ",D
Input "V.DEPART : ",C
If L=>D or L>C or C>D
Then
Disp "IL FAUT QUE","L=>V.D=>D
Pause
Goto 2
End
Input "F(0) : ",A
Repeat P>0
Input "PAS : ",P
If P<=0
Disp "P DOIT-ETRE >0
End
ClrHome
(C-L)/P->E
C-P(iPart E+(fPart E=/=0))->L
(C-L)/P->E
For (F,1,99
If E/F<=99
Goto 9
End
Lbl 9
iPart (E/F)+(fPart (E/F)=/=0)->E
If E=0
1->E
{E,F}->dim [A]
(D-C)/P->E
C+P(iPart E+(fPart E=/=0)->D
(D-C)/P->E
For (F,1,99
If E/F<=99
Goto 8
End
Lbl 8
iPart (E/F)+(fPart (E/F)=/=0)->E
If E=0
1->E
{E,F}->dim [B]
dim [A]->L1
dim [B]->L2
A->Y
C->N
-P->P
Y1(N->G
0->B
1->E
A->V
V->W
For (N,C+P,L,P
Y3(N->Y
B+1->B
If B>L1(1
Then
1->B
E+1->E
End
Y->[A](B,E
Min({V,Y}->V
Max({W,Y}->W
Y1(N->G
End
A->Y
C->N
-P->P
Y1(N->G
0->B
1->E
For (N,C+P,D,P
Y3(N->Y
B+1->B
If B>L2(1
Then
1->B
E+1->E
End
Y->[B](B,E
Min({V,Y}->V
Max({W,Y}->W
Y1(N->G
End
" "->Y3
Lbl 1
C->N
L->Xmin
D->Xmax
V->Ymin
W->Ymax
Pt-On(C,A
For (F,1,L1(2
For (E,1,L1(1
N-P->N
Pt-On(N,[A](E,F
End
End
C->N
For (F,1,L2(2
For (E,1,L2(1
N+P->N
Pt-On(N,[B](E,F
End
End
If Z=0
Then
Pase
For (F,L,D,(D-L)/94
Line (F,Y2(F),F+(D-L)/94,Y2(F+(D-L)/94)
End
End
Stop
Lbl 3
ClrHome
Output (1,1, »METTRE [Y’=KY+Q],DANS Y1.……………POUR COMPARER, METTRE F DANS Y2.
Pause
Goto 4