Please note that the recommended version of Scilab is 2025.0.0. This page might be outdated.
See the recommended documentation of this function
impl
differential algebraic equation
Calling Sequence
y=impl([type],y0,ydot0,t0,t [,atol, [rtol]],res,adda [,jac])
Arguments
- y0,ydot0
real vectors or matrix (initial conditions).
- t0
real scalar (initial time).
- t
real vector (times at which the solution is computed).
- res,adda
externals (function or character string or list).
- type
string
'adams'
or'stiff'
- atol,rtol
real scalar or real vector of the same size as as
y
.- jac
external (function or character string or list).
Description
Solution of the linear implicit differential equation
A(t,y) dy/dt=g(t,y), y(t0)=y0
t0
is the initial instant, y0
is the vector of initial conditions Vector ydot0
of the
time derivative of y
at t0
must also
be given. r The input res
is an external i.e. a
function with specified syntax, or the name a Fortran subroutine or a C
function (character string) with specified calling sequence or a
list.
If res
is a function, its syntax must be as
follows:
r = res(t,y,ydot)
where t
is a real scalar (time) and
y
and ydot
are real vector (state
and derivative of the state). This function must return
r=g(t,y)-A(t,y)*ydot
.
If res
is a character string, it refers to the
name of a Fortran subroutine or a C function. See
SCI/modules/differential_equations/sci_gateway/fortran/Ex-impl.f
for an example to do
that.
res
can also be a list: see the help of
ode
.
The input adda
is also an external.
If adda
is a function, its syntax must be as
follows:
r = adda(t,y,p)
and it must return r=A(t,y)+p
where
p
is a matrix to be added to
A(t,y)
.
If adda
is a character string, it refers to the
name of a Fortran subroutine or a C function. See
SCI/modules/differential_equations/sci_gateway/fortran/Ex-impl.f
for an example to do
that.
adda
can also be a list: see the help of
ode
.
The input jac
is also an external.
If jac
is a function, its syntax must be as
follows:
j = jac(t,y,ydot)
and it must return the Jacobian of
r=g(t,y)-A(t,y)*ydot
with respect to
y
.
If jac
is a character string, it refers to the
name of a Fortran subroutine or a C function. See
SCI/modules/differential_equations/sci_gateway/fortran/Ex-impl.f
for an example to do
that.
jac
can also be a list: see the help of
ode
.
Examples
y=impl([1;0;0],[-0.04;0.04;0],0,0.4,'resid','aplusp'); // Using hot restart //[x1,w,iw]=impl([1;0;0],[-0.04;0.04;0],0,0.2,'resid','aplusp'); // hot start from previous call //[x1]=impl([1;0;0],[-0.04;0.04;0],0.2,0.4,'resid','aplusp',w,iw); //max(abs(x1-x))
<< dassl | Equations Differentielles | int2d >> |