Merge branch 'steadystate_file' into 'master'
Remove globals from user-defined steadystate file See merge request Dynare/dynare!1673time-shift
commit
4a8dd1e8fa
|
@ -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
|
||||
|
|
|
@ -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']);
|
||||
|
|
|
@ -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 \
|
||||
|
|
|
@ -29,6 +29,11 @@ shocks;
|
|||
var EfficiencyInnovation = 1;
|
||||
end;
|
||||
|
||||
steady_state_model;
|
||||
efficiency=0;
|
||||
Efficiency=effstar;
|
||||
end;
|
||||
|
||||
steady;
|
||||
|
||||
options_.ep.stochastic.order = 0;
|
||||
|
|
|
@ -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;
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue