exponenta event banner

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

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

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

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

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

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

Jij (x) =∂Fi (x) ∂xj.

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

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

F (x) = [x12 + x2x3sin (x1 + 2x2 − 3x3)],

тогда J (x) является

J (x) = [2x1x3x2cos (x1 + 2x2 3x3) 2cos (x1 + 2x2 3x3) 3cos (x1 + 2x2 − 3x3)].

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

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=∂fi∂xj.

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

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

F (x) = [x1x2x13 + 3x225x2 x14x2/x14 x22x13 − x24],

тогда якобиан F

J (x) = [x2x1 4x1350 2x23x126x2 x2/x121/x13x12 − 4x23].

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

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

X = [x11x12x21x22],

затем градиент определяется в терминах вектора

x = [x11x21x12x22].

С

F = [F11F12F21F22F31F32],

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

Jij=∂fi∂xj.

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

J (3,2) =∂f (3) ∂x (2)   =∂F31∂X21 и J (5,4) =∂f (5) ∂x (4) =∂F22∂X22.

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

Связанные темы