Запись векторных и матричных целевых функций

Что такое векторные и матричные целевые функции?

Некоторые решатели, такой как fsolve и lsqcurvefit, имейте целевые функции, которые являются векторами или матрицами. Основное различие в использовании между этими типами целевых функций и скалярных целевых функций - то, как вы пишете их производные. Частные производные первого порядка функции с матричным знаком или с векторным знаком называются якобианом; частные производные первого порядка скалярной функции называются градиентом.

Для получения информации о целевых функциях с комплексным знаком смотрите Комплексные числа в Решателях Optimization Toolbox.

Якобианы вектор-функций

Если x является вектором из независимых переменных, и F (x) является вектор-функцией, якобиевский J (x)

Jij(x)=Fi(x)xj.

Если F имеет компоненты m, и x имеет компоненты k, J является m-by-k матрица.

Например, если

F(x)=[x12+x2x3sin(x1+2x23x3)],

затем J (x)

J(x)=[2x1x3x2cos(x1+2x23x3)2cos(x1+2x23x3)3cos(x1+2x23x3)].

Файл функции, сопоставленный с этим примером:

function [F jacF] = vectorObjective(x)
F = [x(1)^2 + x(2)*x(3);
    sin(x(1) + 2*x(2) - 3*x(3))];
if nargout > 1 % need Jacobian
    jacF = [2*x(1),x(3),x(2);
        cos(x(1)+2*x(2)-3*x(3)),2*cos(x(1)+2*x(2)-3*x(3)), ...
        -3*cos(x(1)+2*x(2)-3*x(3))];
end

Чтобы указать к решателю, что ваша целевая функция включает якобиан, устанавливает SpecifyObjectiveGradient опция к true. Например:

options = optimoptions('lsqnonlin','SpecifyObjectiveGradient',true);

Якобианы матричных функций

Чтобы задать якобиан матричного F (x), измените матрицу в вектор, столбец столбцом. Например, перепишите матрицу

F=[F11F12F21F22F31F32]

как векторный f

f=[F11F21F31F12F22F32].

Якобиан F задан в терминах якобиана f,

Jij=fixj.

Если F является m-by-n матрица, и x является k - вектор, якобианом является mn-by-k матрица.

Например, если

F(x)=[x1x2x13+3x225x2x14x2/x14x22x13x24],

затем якобиан F

J(x)=[x2x14x13502x23x126x2x2/x121/x13x124x23].

Якобианы с независимыми переменными с матричным знаком

Если x является матрицей, задайте якобиан F (x) путем изменения матричного x в вектор, столбец столбцом. Например, если

X=[x11x12x21x22],

затем градиент задан в терминах вектора

x=[x11x21x12x22].

С

F=[F11F12F21F22F31F32],

и f, имеющий векторную форму F, якобиан F (X), задан как якобиан f (x):

Jij=fixj.

Так, например,

J(3,2)=f(3)x(2)=F31X21, и J(5,4)=f(5)x(4)=F22X22.

Если F является m-by-n матрица, и x является j-by-k матрица, то якобианом является mn-by-jk матрица.

Похожие темы