L’expression f(t,v(t)) est donnée par un vecteur d’expressions
Si v est un vecteur de coordonnées [x1,..,xn] dépendant de t
et si f(t,v(t)) est donné par un vecteur ayant comme coordonnées les
expressions dépendant de t et des xi : [Xpr1,...,Xprn],
si la valeur initiale de v en t=t0
est le vecteur de coordonnées [x01,...,x0n] alors l’instruction
odesolve([Xpr1,...,Xprn],t=t0..t1,[x1,...,xn],[x01,...,x0n])
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]
L’expression f(t,v(t)) est donnée par f 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]]]