fndir

Косая производная функции

Синтаксис

df = fndir(f,y)

Описание

df = fndir(f,y) ppform косой производной, функционального f в f, в направлении (столбец-) векторный y. Это означает, что df описывает функцию Dyf(x):=lim t0(f(x+ty)f(x))/t.

Если y является матрицей со столбцами n, и f является d - оцененный, то функцией в df является prod(d)*n - оцененный. Его значение в x, измененном, чтобы иметь размер [d,n], имеет в его j th “столбец” косая производная f в x в направлении j th столбец y. Если вы предпочитаете, чтобы df отразил явным образом фактический размер f, используйте вместо этого

df = fnchg( fndir(f,y), 'dim',[fnbrk(f,'dim'),size(y,2)] );

Поскольку fndir полагается на ppform функции в f, это не работает на рациональные функции, ни на функции в stform.

Примеры

Например, если f описывает m - варьируемая величина, d - со знаком вектор-функции и x является некоторой точкой в своей области, то, например, с этой конкретной ppform f, который определяет билинейный многочлен со скалярным знаком,

f = ppmak({0:1,0:1},[1 0;0 1]); x = [0;0];
[d,m] = fnbrk(f,'dim','var');
jacobian = reshape(fnval(fndir(f,eye(m)),x),d,m)

якобиан этой функции в той точке (который, для этой конкретной скалярной функции, ее градиент, и это - нуль в начале координат).

Как связанный пример, следующие операторы строят градиенты (хорошее приближение к) функция Франке в регулярной mesh:

xx = linspace(-.1,1.1,13); yy = linspace(0,1,11);
[x,y] = ndgrid(xx,yy); z = franke(x,y);
pp2dir = fndir(csapi({xx,yy},z),eye(2));
grads = reshape(fnval(pp2dir,[x(:) y(:)].'),...
    [2,length(xx),length(yy)]);
quiver(x,y,squeeze(grads(1,:,:)),squeeze(grads(2,:,:)))

Вот получившийся график.

Алгоритмы

Функция в f преобразована в ppform, и косая производная ее полиномиальных частей вычисляется официально и в одной векторной операции и соединяется снова, чтобы сформировать ppform косой производной функции в f.

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

| | |

Для просмотра документации необходимо авторизоваться на сайте