From e6324245bea17bf284f2b5cb22a3b1ebb634d327 Mon Sep 17 00:00:00 2001 From: george Date: Thu, 23 Apr 2009 14:27:27 +0000 Subject: [PATCH] Minor update to retrieve 2nd order rule from perturbation git-svn-id: https://www.dynare.org/svn/dynare/trunk@2620 ac1d8469-bf42-47a9-8791-bf33cf982152 --- matlab/kordpert/dr1_k_order.m | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/matlab/kordpert/dr1_k_order.m b/matlab/kordpert/dr1_k_order.m index 2d97e8e43..f9352d966 100644 --- a/matlab/kordpert/dr1_k_order.m +++ b/matlab/kordpert/dr1_k_order.m @@ -133,7 +133,11 @@ function [dr,info,M_,options_,oo_] = dr1(dr,task,M_,options_,oo_) % z = z(iyr0) ; % oo_.dyn_ys=z; % extended ys try - [ysteady, ghx_u]=k_order_perturbation(dr,task,M_,options_, oo_ , ['.' mexext]); + if options_.order < 2 % 1st order + [ysteady, ghx_u]=k_order_perturbation(dr,task,M_,options_, oo_ , ['.' mexext]); + else % 2nd order + [ysteady, ghx_u, ghxu_2]=k_order_perturbation(dr,task,M_,options_, oo_ , ['.' mexext]); + end % load(M_.fname); % dr.ys=eval([M_.fname '_ss']); dr.ys=ysteady; @@ -153,8 +157,8 @@ function [dr,info,M_,options_,oo_] = dr1(dr,task,M_,options_,oo_) return end - elseif options_.order > 2 - error(' can not use order > 1 with K-Order yet!') + else %if options_.order > 2 + error(' can not use order > 2 with K-Order yet!') % or ??? disp('********************************************************************'); disp(' can not use order > 1 with K-Order yet - Using Dynare solver instead'); @@ -224,8 +228,7 @@ function [dr,info,M_,options_,oo_] = dr1(dr,task,M_,options_,oo_) dr.ghx = real(dr.ghx); dr.ghu = real(dr.ghu); -return -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + %exogenous deterministic variables if M_.exo_det_nbr > 0 f1 = sparse(jacobia_(:,nonzeros(M_.lead_lag_incidence(M_.maximum_endo_lag+2:end,order_var)))); @@ -239,6 +242,8 @@ return dr.ghud{i} = -M2*dr.ghud{i-1}(end-nyf+1:end,:); end end +return +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% if options_.order == 1 return