Please note that the recommended version of Scilab is 2025.0.0. This page might be outdated.
However, this page did not exist in the previous stable version.
numdiff
числовая оценка градиента
Последовательность вызова
g = numdiff(fun, x [,dx])
Аргументы
- fun
внешняя функция или подпрограмма, функция Scilab'а или список. См. ниже последовательность вызова, см. также external о подробностях о внешних функциях.
- x
вектор, аргумент функции
fun
.- dx
вектор, шаг конечной разности. Значение по умолчанию равно
dx=sqrt(%eps)*(1+1d-3*abs(x))
.- g
вектор, оцененный градиент
Описание
Заданная функция fun(x)
от
R^n
до R^p
вычисляет такую матрицу
g
, что
g(i,j) = (df_i)/(dx_j)
используя методы конечной разницы. Использует формулу порядка 1.
Без параметров функция последовательность вызова fun
y=fun(x)
, и numdiff
может быть вызвана в виде
g=numdiff(fun,x)
. Иначе последовательность вызова fun
должна быть y = fun(x, param_1, pararm_2, ..., param_q)
.
Если параметры param_1, param_2, ..., param_q
существуют, то
numdiff
может быть вызвана следующим образом:
g=numdiff(list(fun, param_1, param_2, ..., param_q), x)
.
См. derivative относительно проблем числовой точности и сравнение между двумя алгоритмами.
Примеры
// пример 1 (без параметров) // myfun - это функция от R^2 до R: (x(1),x(2)) |--> myfun(x) function f=myfun(x) f=x(1)*x(1)+x(1)*x(2) endfunction x=[5 8] g=numdiff(myfun,x) // Точный градиент (т. е. производная принадлежит x(1): первый элемент // и производная принадлежит x(2): второй элемент) равен exact=[2*x(1)+x(2) x(1)] //пример 2 (с параметрами) // myfun - это функция от R до R: x(1) |--> myfun(x) // myfun содержит 3 параметра: a, b, c function f=myfun(x, a, b, c) f=(x+a)^c+b endfunction a=3; b=4; c=2; x=1 g2=numdiff(list(myfun,a,b,c),x) // Точный градиент, то есть производная принадлежит x(1), равен: exact2=c*(x+a)^(c-1)
Смотрите также
- optim — non-linear optimization routine
- derivative — approximate derivatives of a function. This function is obsolete. Please use the numderivative function instead.
- external — объект Scilab'а, внешняя функция или подпрограмма
Report an issue | ||
<< inttrap | Дифференциальное счисление, интегрирование | ode >> |