From 3853aedc46453d385b436675b3829119ab6414b8 Mon Sep 17 00:00:00 2001 From: Marco Ratto <marco.ratto@jrc.ec.europa.eu> Date: Thu, 1 Sep 2011 11:27:57 +0200 Subject: [PATCH] Fine tuning of rank condition checks. Adapted from master branch commit 884ecb6d6c586e5e26257ba6b7c97e4f50272989 --- matlab/identification_checks.m | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/matlab/identification_checks.m b/matlab/identification_checks.m index 671c01322..5a5b7bd95 100644 --- a/matlab/identification_checks.m +++ b/matlab/identification_checks.m @@ -70,8 +70,8 @@ eH = zeros(npar,npar); eH(ind1,length(find(vnorm(H)<eps))+1:end) = e1; % non-zero eigenvectors eH(find(vnorm(H)<eps),1:length(find(vnorm(H)<eps)))=eye(length(find(vnorm(H)<eps))); condH = cond(H1); -rankH = rank(H); -rankHH = rank(H'*H); +rankH = rank(HH./norm(HH),1.e-10); +rankHH = rankH; ind2 = find(vnorm(JJ)>=eps); % take non-zero columns JJ1 = JJ(:,ind2); @@ -80,8 +80,8 @@ eJ = zeros(npar,npar); eJ(ind2,length(find(vnorm(JJ)<eps))+1:end) = ee1; % non-zero eigenvectors eJ(find(vnorm(JJ)<eps),1:length(find(vnorm(JJ)<eps)))=eye(length(find(vnorm(JJ)<eps))); condJ = cond(JJ1); -rankJJ = rank(JJ'*JJ); -rankJ = rank(JJ); +rankJ = rank(JJ./norm(JJ),1.e-10); +rankJJ = rankJ; ind3 = find(vnorm(gp)>=eps); % take non-zero columns gp1 = gp(:,ind3); -- GitLab