Please note that the recommended version of Scilab is 2026.0.0. This page might be outdated.
However, this page did not exist in the previous stable version.
impl
differential algebraic equation
Syntax
y=impl([type],y0,ydot0,t0,t [,atol, [rtol]],res,adda [,jac])
Arguments
- y0, ydot0
real vectors or matrices (initial conditions)
- t0
a real scalar (initial time)
- t
a 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 scalars or real vectors of the same size 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. 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 syntax 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))
See also
Report an issue | ||
<< feval | Differential calculus, Integration | int2d >> |