Si v est un vecteur
de variables
[x1,.., xn] et si f est donné par
un vecteur de coordonnées les expressions
[e1,...,en] dépendant de t et des xi,
si la valeur initiale de v en t0
est le vecteur de coordonnées
[x10,..., xn0] alors l'instruction
odesolve([e1,..,en],t=t0..t1,[x1,...,xn],
[x10,...,xn0])
renverra une valeur approchée
de v au temps t = t1. Le paramètre
optionnel curve permet d'avoir les valeurs
intermédiaires sous forme d'une liste de couples [t, v(t)] calculés.
Pour résoudre le système :
x'(t) = - y(t)
y'(t) = x(t)
On tape :
odesolve([-y,x],t=0..pi,[x,y],[0,1])
On obtient :
[-1.79045146764e-15,-1]
Si f est une fonction de
×
n dans
n.
odesolve(t0..t1,(t,v)->f(t,v),v0) ou
odesolve(t0..t1,f,v0)
calcule de façon approchée la valeur de
v(t1) lorsque le vecteur de coordonnées v(t)
de
n est la solution de
v'(t) = f (t, v(t)) qui vérifie v(t0) = v0.
Le paramètre
optionnel curve permet d'avoir les valeurs
intermédiaires sous forme d'une liste de couples [t, v(t)] calculés.
Pour résoudre le système :
x'(t) = - y(t)
y'(t) = x(t)
On tape :
odesolve(0..pi,(t,v)->[-v[1],v[0]],[0,1])
Ou on définit la fonction :
f(t,v):=[-v[1],v[0]]
puis on tape :
odesolve(0..pi,f,[0,1])
On obtient :
[-1.79045146764e-15,-1]
On définit la fonction :
f(t,v):=[-v[1],v[0]]
puis on tape :
odesolve(0..pi/4,f,[0,1],curve)
On obtient :
[[0.1781,[-0.177159948386,0.984182072936]], [0.3781,[-0.369155338156,0.929367707805]], [0.5781,[-0.54643366953,0.837502384954]], [0.7781,[-0.701927414872,0.712248484906]]]