### 4.3.4 Solution approchée de y’=f(t,y) : `odesolve`

- Soit f une fonction de ℝ2 dans ℝ.
  `odesolve(f(t,y),[t,y],[t0,y0],t1)` ou
  `odesolve(f(t,y),t=t0..t1,y,y0)` ou
  `odesolve(t0..t1,f,y0)` ou
  `odesolve(t0..t1,(t,y)->f(t,y),y0)`
  renvoie la valeur approchée de y(t1) lorsque y(t) est la solution de y′(t)=f(t,y(t)) qui vérifie y(t0)=y0.
- On peut ajouter un paramètre optionnel pour indiquer la discrétisation en temps souhaitée (`tstep=valeur`). Cette valeur n’est pas forcément respectée par le solver.
- On peut indiquer en paramètre optionnel `curve` pour obtenir la liste des [t,[y(t)]] calculés au lieu de la seule valeur de y(t1).

On tape :

`odesolve(sin(t*y),[t,y],[0,1],2)`

ou :

`odesolve(sin(t*y),t=0..2,y,1)`

ou :

`odesolve(0..2,(t,y)->sin(t*y),1)`

ou encore on définit la fonction :

`f(t,y):=sin(t*y)`

et on tape:

`odesolve(0..2,f,1)`

On obtient :

`[1.82241255675]`

puis on tape :

`odesolve(0..2,f,1,tstep=0.3)`

On obtient :

`[1.82241255675]`

On tape :

`odesolve(sin(t*y),t=0..2,y,1,tstep=0.5)`

On obtient :

`[1.82241255675]`

On tape :

`odesolve(sin(t*y),t=0..2,y,1,tstep=0.5,curve)`

On obtient :

`[[0.760963063136,[1.30972370515]],[1.39334557388,[1.86417104853]]]`