fndir

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

Синтаксис

df = fndir(f,y)

Описание

df = fndir(f,y) ppform косой производной, функционального f в f, в направлении (столбец-) векторный y. Это означает тот df описывает функцию Dyf(x):=limt0(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.

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

| | |