Size of Q is undefined
1 回表示 (過去 30 日間)
古いコメントを表示
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 件のコメント
採用された回答
KSSV
2021 年 11 月 23 日
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 件のコメント
KSSV
2021 年 11 月 23 日
Your function name is _armijo_grad_direction_dnm_f1 and you are trying to call armijo_newton_direction_dnm_f2 it seems,
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Chebyshev についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!