Scilab Website | Contribute with GitLab | Mailing list archives | ATOMS toolboxes
Scilab Online Help
5.3.3 - English

Change language to:
Français - 日本語 - Português

Please note that the recommended version of Scilab is 2024.0.0. This page might be outdated.
See the recommended documentation of this function

Scilab help >> Differential Equations, Integration > impl

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

See Also

  • dassl — differential algebraic equation
  • ode — ordinary differential equation solver
  • external — Scilab Object, external function or routine
<< feval Differential Equations, Integration int2d >>

Copyright (c) 2022-2023 (Dassault Systèmes)
Copyright (c) 2017-2022 (ESI Group)
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Wed Oct 05 12:09:36 CEST 2011