### 4.3.6 Solution approchée du système v’=f(t,v) : `odesolve`

On cherche une valeur approchée du vecteur v(t) de ℝn qui est la solution du système : v′(t)=f(t,v(t)).
L’expression f(t,v(t)) peut être donnée :
soit par un vecteur ayant comme coordonnées des expressions de t et des coordonnées xi de v,
soit par une fonction f de ℝ × ℝn dans ℝn.

- 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([``Xpr``1``,...,Xpr``n``],t=t``0``..t``1``,[x``1``,...,x``n``],[x0``1``,...,x0``n``]``)`
  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]]]`