Scilab Website | Contribute with GitLab | Mailing list archives | ATOMS toolboxes
Scilab Online Help
2025.0.0 - Français


external

Objet Scilab, fonction externe ou routine

Description

Fonction ou routine externe nécessitée par des commandes particulières.

Un "external" est une fonction ou une routine qui est utilisée comme argument d'une "primitive de haut niveau", telle que ode, optim, schur...

La séquence d'appel de la fonction ou de la routine est en général imposée par la primitive de haut niveau qui impose en particulier les arguments d'entrée.

Par exemple la fonction externe costfunc est un argument de la primitive optim. Sa séquence d'appel doit être de la forme : [f,g,ind]=costfunc(x,ind) et optim (primitive permettant de résoudre des problèmes d'optimisation) est invoquée ainsi :

optim(costfunc,...)

Ici costfunc (la fonction coût à minimiser avec optim) calcule f=f(x) et g= le gradient de f en x (ind est un entier dont l'usage est précisé dans l'aide de optim).

Si d'autres variables sont nécessaires à la fonction externe, ces variables peuvent être définies dans son environnement. Elles peuvent aussi être stockées dans une liste : par exemple

[f,g,ind]=costfunc(x,ind,a,b,c)

est valide pour optim si costfunc est remplacé par list(costfunc,a,b,c). La séquence d'appel à optim est donc maintenant :

optim(list(costfunc,a1,b1,c1),....

Un "external" peut aussi être une routine Fortran ou C : cela peut permettre d'accélérer les calculs.

Le nom de la routine est donné comme argument à la primitive de haut niveau sous forme d'une chaîne de caractères. La séquence d'appel est aussi imposée.

Les routines externes Fortran ou C peuvent aussi être liées dynamiquement (voir link).

Voir aussi

  • ode — solveur d'équations différentielles ordinaires
  • optim — non-linear optimization routine
  • dae — Solveur de système d'Equations Différentielles Algébriques
  • intg — intégration numérique adaptative
  • schur — [ordered] Schur decomposition of matrix and pencils
Report an issue
<< clearfun Built-in & external funptr >>

Copyright (c) 2022-2024 (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:
Thu Oct 24 11:16:04 CEST 2024