# external

объект Scilab'а, внешняя функция или подпрограмма

## Описание

Внешняя функция или подпрограмма для использования со специальными командами.

"external" -- это функция или подпрограмма, которая используется в качестве аргумента некоторых примитивов высокого уровня (таких как `ode`, `optim`, `schur`...).

Последовательность вызова внешней функции или подпрограммы предписывается примитивом высокого уровня, который устанавливает аргументы данной внешней функции или подпрограммы.

Например, внешняя функция `costfunc` является аргументом примитива `optim` (примитив оптимизации высокого уровня). Её последовательность вызова должна быть: `[f,g,ind]=costfunc(x,ind)` и `optim` вызывается следующим образом:

    optim(costfunc,...)

Здесь `costfunc` (функция цены должна быть минимизирована примитивом `optim`) вычисляет `f=f(x)` и `g` -- градиент `f` в `x` (`ind` -- целое число. Его использование уточняется в справке по `optim`).

Если необходимы другие значения для внешней функции, то эти переменные могут быть определены в её окружении. Также они могут быть вложены в список. Например, внешняя функция:

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

является корректной для `optim`, если внешняя функция является списком `list(costfunc,a,b,c)` и тогда вызов `optim`:

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

Внешняя подпрограмма может быть процедурой Fortran или C: это удобно для быстрых вычислений.

Имя подпрограммы указывается примитиву высокого уровня в виде символьной строки. Последовательность подпрограммы также предписывается.

Внешние процедуры Fortran или C могут быть также динамически связаны (см. `link`).

## Смотрите также

- ode
- optim
- impl
- dassl
- intg
- schur
- gschur