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