Use economy-size decomposition option of qr2 routine.

time-shift
Stéphane Adjemian (Charybdis) 2012-11-20 14:39:45 +01:00
parent af23d72cb1
commit db2615a4c7
3 changed files with 3 additions and 3 deletions

View File

@ -22,7 +22,7 @@ for n=1:niters
diffs = bsxfun(@minus,X,StateMu(:,j));
tpost = (1/sqrt(new_pr(j)))*sqrt(posterior(j,:));
diffs = bsxfun(@times,diffs,tpost);
[foo,tcov] = qr2(diffs') ;
[foo,tcov] = qr2(diffs',0);
StateSqrtP(:,:,j) = tcov';
if check
if min(abs(diag(StateSqrtP(:,:,j)))) < MIN_COVAR_SQRT

View File

@ -100,7 +100,7 @@ if strcmpi(DynareOptions.particle.IS_approximation_method,'cubature') || strcmpi
dObserved = bsxfun(@minus,tmp(mf1,:),PredictedObservedMean)'.*sqrt(weights);
PredictedStateVarianceSquareRoot = chol(dState'*dState)';
big_mat = [dObserved dState ; [H_lower_triangular_cholesky zeros(number_of_observed_variables,number_of_state_variables)] ] ;
[mat1,mat] = qr2(big_mat) ;
[mat1,mat] = qr2(big_mat,0) ;
mat = mat' ;
clear('mat1');
PredictedObservedVarianceSquareRoot = mat(1:number_of_observed_variables,1:number_of_observed_variables) ;

View File

@ -107,7 +107,7 @@ if strcmpi(DynareOptions.particle.IS_approximation_method,'cubature')
dObserved = (bsxfun(@minus,tmp(mf1,:),PredictedObservedMean)').*sqrt(weights3);
PredictedStateVariance = dState'*dState;
big_mat = [dObserved dState ; [H_lower_triangular_cholesky zeros(number_of_observed_variables,number_of_state_variables)] ] ;
[mat1,mat] = qr2(big_mat) ;
[mat1,mat] = qr2(big_mat,0) ;
mat = mat' ;
clear('mat1');
PredictedObservedVarianceSquareRoot = mat(1:number_of_observed_variables,1:number_of_observed_variables) ;