Use economy-size decomposition option of qr2 routine.
parent
af23d72cb1
commit
db2615a4c7
|
@ -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
|
||||
|
|
|
@ -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) ;
|
||||
|
|
|
@ -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) ;
|
||||
|
|
Loading…
Reference in New Issue