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

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

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

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

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

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

Jij(x)=Fi(x)xj.

Если F есть m компоненты, и x имеет k компоненты, J m 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 матрицей.

Похожие темы