ALS
Inscrit le: 11 Sep 2006 Messages: 647
|
Posté le: 29 Mar 2004 11:28 Sujet du message: Re: faire une boucle dans un processus |
|
|
Exemple avec 10 itérations et une animation des 2 disques:
Code: |
> restart;
>
> with(plots): with(plottools):
>
>
> L:=NULL:
>
> X01:=2: X02:=3: Y01:=4: Y02:=8: V0x1:=9: V0x2:=7: V0y1:=8: V0y2:=6: G:=1: m1:=3: m2:=3: t:=4:
>
> for k to 10 do # 10 itérations
> r12 := ((X02 - X01)^2 + (Y02 - Y01)^2) ^(1/2):
>
> teta12 := arctan((Y02 - Y01)/(X02 - X01)):
>
> F12x := cos(teta12) * G * m1* m2 / ((r12)^2):
>
> F12y := sin(teta12) * G * m1* m2 / ((r12)^2):
>
> F21x := cos(teta12) * G * m1* m2 / ((r12)^2):
>
> F21y := sin(teta12) * G * m1* m2 / ((r12)^2):
>
> ax1 := F12x / m1 :
>
> ay1 := F12y / m1 :
>
> ax2 := F21x / m2 :
>
> ay2 := F21y / m2 :
>
> Vx1 := V0x1 + (ax1*t):
>
> Vy1 := V0y1 + (ay1*t):
>
> Vx2 := V0x2 + (ax2*t):
>
> Vy2 := V0y2 + (ay2*t):
>
> X1 := X01 + V0x1 + ((1/2) * ax1 * t^2):
>
> Y1 := Y01 + V0y1 + ((1/2) * ay1 * t^2):
>
> X2 := X02 + V0x2 + ((1/2) * ax2 * t^2):
>
> Y2 := Y02 + V0y2 + ((1/2) * ay2 * t^2):
>
> c := disk([X1,Y1], 0.5, color=blue):
>
> s := disk([X2,Y2], 0.5, color=green):
>
> L:=L,c,s;
>
> X01:=X1: X02:= X2: Y01:=Y1: Y02:=Y2:
>
> end do:
> display([L],scaling=constrained,insequence=true);
># cliquer sur la fenêtre du graphique puis jouer l'animation
|
A+ |
|