Scilab Website | Contribute with GitLab | Mailing list archives | ATOMS toolboxes
Scilab Online Help
2023.0.0 - Русский


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 — non-linear optimization routine
  • impl — дифференциальное алгебраическое уравнение
  • dassl — дифференциальное алгебраическое уравнение
  • intg — определённый интеграл
  • schur — [ordered] Schur decomposition of matrix and pencils
Report an issue
<< clearfun Встроенные и внешние 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:
Tue Mar 07 09:29:07 CET 2023