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]]]