Size of Q is undefined
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
function [j] = armijo_grad_direction_dnm_f1(P1,VG,sigma)
j = 0;
signal = 0;
nn = size(Q);
n = nn(1);
I = eye(n);
while( signal == 0 && j < MAX_j)
Q = P1^(1/2)*expm(P1^(-1/2)*2^(-j)*VG*P1^(-1/2))*P1^(1/2); % Geodesic with direction 2^(-j)*VG starting at P1.
PHIQ = 1/2*trace(I-2*Q^(-1)+(Q^(-1))^(2)); % Merit Function at Q.
PHIP1 = 1/2*trace(I-2*P1^(-1)+(P1^(-1))^(2));
ARM = PHIQ - PHIP1 - 2^(-j)*sigma*trace(VG*P1^(-1)*VG*P^(-1)); %Armijo Gradient Direction
if(ARM > 0)
j = j+ 1;
else
signal = 1;
end
end
if ( j >= MAX_j)
fprintf('\nArmijo: j not found with %d iterations.\n',MAX_j);
return;
end
end
2 Commenti
Risposta accettata
KSSV
il 23 Nov 2021
You need to define the input variables and then call the function. It seems you are striaght away hitting the f5/ run button so you are getting error.
P1 = define your value ; % enter value
VG = define your value ; % enter input
sigma = define your value ;
% now call the function
j = armijo_grad_direction_dnm_f1(P1,VG,sigma)
7 Commenti
KSSV
il 23 Nov 2021
Your function name is _armijo_grad_direction_dnm_f1 and you are trying to call armijo_newton_direction_dnm_f2 it seems,
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Creating and Concatenating Matrices in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!