On peut programmer la méthode d'Euler en utilisant la syntaxe z[i], i étant le point courant, i=0 étant le premier point. z[0]= permet d'initialiser z et de même z[2] pour une équation d'ordre 2). i étant le point courant, ne peut intervenir dans la partie gauche à affecter que des termes en [i] ; de même dans la partie droite à calculer, ne peuvent intervenir des termes en [i+1] non encore connus.
On peut omettre du côté gauche [i] : z=x[i]+x[i-1] est équivalent à z[i]=x[i]+x[i-1]
La boucle "for i := 1 to N-1 do begin … end;" qui est sous-entendue s'étend de la première ligne contenant un terme du type z[i] jusqu'à la dernière ligne du même type.
On peut écrire explicitement la boucle mais c'est juste pour faire “ joli ” : le memo expressions (i.e. expressions des diverses grandeurs) n'est pas un memo programme. Seuls [0], [1], [2], ou [i] sont possibles du côté gauche (grandeur à affecter). Le symbole = signifie affecter (:= du Pascal). Tout ceci est à taper directement dans le mémo "expressions" (ne pas utiliser le bouton Y+ pour créer v ou y).
Exemples :
´Chute ; y étant l'axe vertical orienté vers le haut
g=-9.81_m/s2 => g=-9.81 m/s²
´t est rempli automatiquement de manière régulière
Δt=t[1]-t[0]_s
´Initialisation
y[0]=0_m => y[0]=0 m
v[0]=0_m/s => v[0]=0 m/s
´sous-entendu ou explicite
´for i := 1 to N-1 do begin
v[i]=v[i-1]+g*Δt_m/s
y[i]=y[i-1]+v[i-1]*Δt_m
´sous-entendu ou explicite
´end;
yth=y[0]+v[0]*t+g*t*t/2_m
Remarque (méthode de Heun) : on peut prendre
y[i]=y[i-1]+(v[i-1]+v[i])*Δt/2
au lieu de
y[i]=y[i-1]+v[i-1]*Δt
w0=1_rad/s
Δt=t[1]-t[0]_s
´Initialisation
y[0]=1_m => y[0]=1 m
v[0]=0_m/s => v[0]=0 m/s
´Prédéfinition de y (forward) car utilisée par le calcul de la vitesse v
y=
´for i := 1 to N-1 do begin
v[i]=v[i-1]-sqr(w0)*y[i-1]*Δt
y[i]=y[i-1]+v[i-1]*Δt_m
´end;
yth=cos(w0*t)
Créé avec HelpNDoc Personal Edition: Écrire des livres électroniques ePub pour l'iPad