diff --git a/examples/NK_baseline_steadystate.m b/examples/NK_baseline_steadystate.m index d2f88af9347b423da41551eb4ab6402219b7e4b8..02f70fe53911977ac2c635268148eced6de442c8 100644 --- a/examples/NK_baseline_steadystate.m +++ b/examples/NK_baseline_steadystate.m @@ -1,19 +1,20 @@ -function [ys,check] = NK_baseline_steadystate(ys,exo) -% function [ys,check] = NK_baseline_steadystate(ys,exo) +function [ys,params,check] = NK_baseline_steadystate(ys,exo,M_,options_) +% function [ys,params,check] = NK_baseline_steadystate(ys,exo,M_,options_) % computes the steady state for the NK_baseline.mod and uses a numerical % solver to do so % Inputs: % - ys [vector] vector of initial values for the steady state of % the endogenous variables % - exo [vector] vector of values for the exogenous variables +% - M_ [structure] Dynare model structure +% - options [structure] Dynare options structure % % Output: % - ys [vector] vector of steady state values for the the endogenous variables +% - params [vector] vector of parameter values % - check [scalar] set to 0 if steady state computation worked and to % 1 of not (allows to impose restrictions on parameters) -global M_ - % read out parameters to access them with their name NumberOfParameters = M_.param_nbr; for ii = 1:NumberOfParameters @@ -95,8 +96,9 @@ g2=epsilon/(epsilon-1)*g1; %% end own model equations +params=NaN(NumberOfParameters,1); for iter = 1:length(M_.params) %update parameters set in the file - eval([ 'M_.params(' num2str(iter) ') = ' M_.param_names{iter} ';' ]) + eval([ 'params(' num2str(iter) ') = ' M_.param_names{iter} ';' ]) end NumberOfEndogenousVariables = M_.orig_endo_nbr; %auxiliary variables are set automatically diff --git a/matlab/evaluate_steady_state_file.m b/matlab/evaluate_steady_state_file.m index 08213b7a688354fa0e6d22bd38554d430198c348..7a299f0fad12de0a27aa0ed29748dbbe047eb17d 100644 --- a/matlab/evaluate_steady_state_file.m +++ b/matlab/evaluate_steady_state_file.m @@ -46,8 +46,7 @@ if options.steadystate_flag == 1 assignin('base','tmp_00_',params); evalin('base','M_.params=tmp_00_; clear(''tmp_00_'')'); h_steadystate = str2func([fname '_steadystate']); - [ys,check] = h_steadystate(ys_init, exo_ss); - params1 = evalin('base','M_.params'); + [ys,params1,check] = h_steadystate(ys_init, exo_ss,M,options); else % steadystate_flag == 2 % new format h_steadystate = str2func([fname '.steadystate']); diff --git a/tests/Makefile.am b/tests/Makefile.am index 2851280a8489cc22259ec745af653c6ab2fec395..8f2e014910ada107d9079ac44dbf6d115cd885b9 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -848,8 +848,6 @@ EXTRA_DIST = \ kalman/likelihood_from_dynare/fs2000_estimation_check.inc \ kalman/likelihood_from_dynare/fs2000ns_model.inc \ kalman/likelihood_from_dynare/fs2000ns_estimation_check.inc \ - identification/kim/kim2_steadystate.m \ - identification/as2007/as2007_steadystate.m \ estimation/fsdat_simul.m \ ep/mean_preserving_spread.m \ decision_rules/example1_results_dyn_432.mat \ diff --git a/tests/ep/ar.mod b/tests/ep/ar.mod index bdf447a205b00732aac604bbc3c2b5b6a9467ca4..6d3d1495581a83d320a903be7eeb4817e19695bb 100644 --- a/tests/ep/ar.mod +++ b/tests/ep/ar.mod @@ -29,6 +29,11 @@ shocks; var EfficiencyInnovation = 1; end; +steady_state_model; +efficiency=0; +Efficiency=effstar; +end; + steady; options_.ep.stochastic.order = 0; diff --git a/tests/ep/ar_steadystate.m b/tests/ep/ar_steadystate.m deleted file mode 100644 index 966331f8e29d9a92e282d4b9b3a179f664956c54..0000000000000000000000000000000000000000 --- a/tests/ep/ar_steadystate.m +++ /dev/null @@ -1,9 +0,0 @@ -function [ys, info] = ar_steadystate(ys, exogenous) -% Steady state routine for ar.mod (First order autoregressive process) - -global M_ - -info = 0; - -ys(1)=M_.params(2); -ys(2)=0; \ No newline at end of file diff --git a/tests/expectations/expectation_ss_old_steadystate.m b/tests/expectations/expectation_ss_old_steadystate.m index bfd46d82a7f0eb7c3fbfc4879b029d12b64a648e..fb5a88426d93909c5aa90c16fffdcdc69a83ae0d 100644 --- a/tests/expectations/expectation_ss_old_steadystate.m +++ b/tests/expectations/expectation_ss_old_steadystate.m @@ -1,12 +1,13 @@ -function [ys_, check_] = expectation_ss_old_steadystate(ys_orig_, exo_) +function [ys_, params, check_] = expectation_ss_old_steadystate(ys_orig_, exo_,M_,options_) ys_=zeros(6,1); - global M_ + params=NaN(size(M_.params)); + params=M_.params; ys_(4)=0; ys_(6)=0; ys_(5)=0.3333333333333333; ys_(3)=((1/M_.params(1)-(1-M_.params(4)))/(M_.params(3)*ys_(5)^(1-M_.params(3))))^(1/(M_.params(3)-1)); ys_(1)=ys_(5)^(1-M_.params(3))*ys_(3)^M_.params(3); ys_(2)=ys_(1)-M_.params(4)*ys_(3); - M_.params(5)=(1-M_.params(3))*ys_(1)/(ys_(2)*ys_(5)^(1+M_.params(6))); + params(5)=(1-M_.params(3))*ys_(1)/(ys_(2)*ys_(5)^(1+M_.params(6))); check_=0; end diff --git a/tests/identification/as2007/as2007.mod b/tests/identification/as2007/as2007.mod index 591388554a53fc3a8900071d20aa6ee36ab43b41..f33a937e38b79d4950875ff3aef688c3d949f50c 100644 --- a/tests/identification/as2007/as2007.mod +++ b/tests/identification/as2007/as2007.mod @@ -30,6 +30,17 @@ INFL = pi_steady+400*pie; INT = pi_steady+rr_steady+4*gam_steady+400*R; end; +steady_state_model; +pie=0; +y=0; +R=0; +g=0; +z=0; +YGR=gam_steady; +INFL = pi_steady; +INT = pi_steady+rr_steady+4*gam_steady; +end; + estimated_params; tau, gamma_pdf, 2, 0.5; kap, beta_pdf, 0.2, 0.1; diff --git a/tests/identification/as2007/as2007_steadystate.m b/tests/identification/as2007/as2007_steadystate.m deleted file mode 100644 index f231e9786ced8e942cbba8c59c52b28a82997fc9..0000000000000000000000000000000000000000 --- a/tests/identification/as2007/as2007_steadystate.m +++ /dev/null @@ -1,34 +0,0 @@ -function [ys,check1]=as2007_steadystate(ys,exo) - -global M_ - -for j=1:length(M_.param_names) - eval([M_.param_names{j},' = M_.params(j);']) - assignin('base', M_.param_names{j} , M_.params(j)); -end -for j=1:length(M_.endo_names) - eval([M_.endo_names{j},' = NaN;']) -end - -check1=0; - -pie=0; -y=0; -R=0; -g=0; -z=0; -YGR=gam_steady; -INFL = pi_steady; -INT = pi_steady+rr_steady+4*gam_steady; - -%% end own model equations - -for iter = 1:length(M_.params) %update parameters set in the file - eval([ 'M_.params(' num2str(iter) ') = ' M_.param_names{iter} ';' ]) -end - -NumberOfEndogenousVariables = M_.orig_endo_nbr; %auxiliary variables are set automatically -for ii = 1:NumberOfEndogenousVariables - varname = M_.endo_names{ii}; - eval(['ys(' int2str(ii) ') = ' varname ';']); -end diff --git a/tests/identification/kim/kim2.mod b/tests/identification/kim/kim2.mod index 1601f0a3b4f8865937d0dc1bf727b0776625d6f6..172a8fa3f15fae747df5cc458cdf641af8d12dc0 100644 --- a/tests/identification/kim/kim2.mod +++ b/tests/identification/kim/kim2.mod @@ -33,6 +33,15 @@ lam = (1-(betae*delta*alph/(1-betae+delta*betae)))^theta/c^(1+theta)/(1+theta); //cobs = c+ec; end; +steady_state_model; +s=betae*delta*alph/(1-betae+delta*betae); +a=as; %as^((1-alph)/(1+theta))*(delta^((phi+theta+1)/(theta+1))/s)^alph; +k=(delta/s/a)^(1/(alph-1)); +i=delta*k; +c=(((a*k^alph)^(1+theta)-s*(i/s)^(1+theta))/(1-s))^(1/(1+theta))*(1-s); +lam = (1-s)^theta/c^(1+theta)/(1+theta); +end; + steady; check; diff --git a/tests/identification/kim/kim2_steadystate.m b/tests/identification/kim/kim2_steadystate.m deleted file mode 100644 index d0796adb13673b8d05795fbbc6ca9860f474b094..0000000000000000000000000000000000000000 --- a/tests/identification/kim/kim2_steadystate.m +++ /dev/null @@ -1,32 +0,0 @@ -function [ys,check1]=kim2_steadystate(ys,exo) - -global M_ - -for j=1:length(M_.param_names) - eval([M_.param_names{j}, ' = M_.params(j);']) - assignin('base', M_.param_names{j}, M_.params(j)); -end -for j=1:length(M_.endo_names) - eval([M_.endo_names{j}, ' = NaN;']) -end - -check1=0; - -s=betae*delta*alph/(1-betae+delta*betae); -a=as; %as^((1-alph)/(1+theta))*(delta^((phi+theta+1)/(theta+1))/s)^alph; -k=(delta/s/a)^(1/(alph-1)); -i=delta*k; -c=(((a*k^alph)^(1+theta)-s*(i/s)^(1+theta))/(1-s))^(1/(1+theta))*(1-s); -lam = (1-s)^theta/c^(1+theta)/(1+theta); - -%% end own model equations - -for iter = 1:length(M_.params) %update parameters set in the file - eval([ 'M_.params(' num2str(iter) ') = ' M_.param_names{iter} ';' ]) -end - -NumberOfEndogenousVariables = M_.orig_endo_nbr; %auxiliary variables are set automatically -for ii = 1:NumberOfEndogenousVariables - varname = M_.endo_names{ii}; - eval(['ys(' int2str(ii) ') = ' varname ';']); -end diff --git a/tests/steady_state/walsh1_old_ss_steadystate.m b/tests/steady_state/walsh1_old_ss_steadystate.m index cc09a2d2f0d62cfae26f891d4565caf1629f5582..6543d06186599bce8cea8efaa603bd6371bab0c4 100644 --- a/tests/steady_state/walsh1_old_ss_steadystate.m +++ b/tests/steady_state/walsh1_old_ss_steadystate.m @@ -1,5 +1,4 @@ -function [ys,check] = walsh1_old_ss_steadystate(ys,exo) -global M_ +function [ys,params,check] = walsh1_old_ss_steadystate(ys,exo,M_,options_) % read out parameters to access them with their name NumberOfParameters = M_.param_nbr; @@ -34,8 +33,9 @@ check = 0; %% end own model equations -for iter = 1:length(M_.params) %update parameters set in the file - eval([ 'M_.params(' num2str(iter) ') = ' M_.param_names{iter} ';' ]) +params=NaN(NumberOfParameters,1); +for iter = 1:NumberOfParameters %update parameters set in the file + eval([ 'params(' num2str(iter) ') = ' M_.param_names{iter} ';' ]) end NumberOfEndogenousVariables = M_.orig_endo_nbr; %auxiliary variables are set automatically