4.3.4  Approximate solution of y’=f(t,y) : odesolve

• Let f be a function from ℝ2 to ℝ.
odesolve(f(t,y),[t,y],[t0,y0],t1) or
odesolve(f(t,y),t=t0..t1,y,y0) or
odesolve(t0..t1,f,y0) or
odesolve(t0..t1,(t,y)->f(t,y),y0)
returns an approximate value of y(t1) where y(t) is the solution of:  y′(t)=f(t,y(t)),     y(t0)=y0
• odesolve accepts an optional argument for the discretisation of t (tstep=value). This value is passed as initial tstep value to the numeric solver from the GSL (Gnu Scientific Library), it may be modified by the solver. It is also used to control the number of iterations of the solver by 2*(t1-t0)/tstep (if the number of iterations exceeds this value, the solver will stopsat a time t<t1).
• odesolve accepts curve as an optional argument. In that case, odesolve returns the list of all the [t,[y(t)]] values that where computed.

Input :

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

or :

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

or :

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

or define the function :

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

and input :

odesolve(0..2,f,1)

Output :

[1.82241255675]

Input :

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

Output :

[1.82241255675]

Input :

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

Output :

[1.82241255675]

Input :

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

Output :

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