Rewrite examples/fs2000.mod with a steady_state_model block. Improve the doc.
parent
7ada720e7b
commit
ed7f17b06f
|
@ -2837,22 +2837,25 @@ steady(homotopy_mode = 1, homotopy_steps = 50);
|
|||
|
||||
If you know how to compute the steady state for your model, you can
|
||||
provide a MATLAB/Octave function doing the computation instead of
|
||||
using @code{steady}. If your MOD-file is called
|
||||
@file{@var{FILENAME}.mod}, the steady state file should be called
|
||||
@file{@var{FILENAME}_steadystate.m}.
|
||||
|
||||
Again, there are two options for creating this file:
|
||||
using @code{steady}. Again, there are two options for doing that:
|
||||
|
||||
@itemize
|
||||
|
||||
@item
|
||||
The easiest way is to write a @code{steady_state_model} block.
|
||||
The easiest way is to write a @code{steady_state_model} block, which
|
||||
is described below in more details. See also @file{fs2000.mod} in the
|
||||
@file{examples} directory for an example.
|
||||
|
||||
The steady state file generated by Dynare will be called
|
||||
@file{@var{FILENAME}_steadystate2.m}.
|
||||
|
||||
@item
|
||||
You can write the corresponding Matlab function by hand. See @file{fs2000_steadystate.m}
|
||||
in the @file{examples} directory for an example. This option
|
||||
gives a bit more flexibility, at the expense of a heavier
|
||||
programming burden and a lesser efficiency.
|
||||
You can write the corresponding MATLAB function by hand. If your
|
||||
MOD-file is called @file{@var{FILENAME}.mod}, the steady state file
|
||||
must be called @file{@var{FILENAME}_steadystate.m}. See
|
||||
@file{NK_baseline_steadystate.m} in the @file{examples} directory for
|
||||
an example. This option gives a bit more flexibility, at the expense
|
||||
of a heavier programming burden and a lesser efficiency.
|
||||
|
||||
@end itemize
|
||||
|
||||
|
|
|
@ -87,6 +87,32 @@ var e_a; stderr 0.014;
|
|||
var e_m; stderr 0.005;
|
||||
end;
|
||||
|
||||
steady_state_model;
|
||||
dA = exp(gam);
|
||||
gst = 1/dA;
|
||||
m = mst;
|
||||
khst = ( (1-gst*bet*(1-del)) / (alp*gst^alp*bet) )^(1/(alp-1));
|
||||
xist = ( ((khst*gst)^alp - (1-gst*(1-del))*khst)/mst )^(-1);
|
||||
nust = psi*mst^2/( (1-alp)*(1-psi)*bet*gst^alp*khst^alp );
|
||||
n = xist/(nust+xist);
|
||||
P = xist + nust;
|
||||
k = khst*n;
|
||||
|
||||
l = psi*mst*n/( (1-psi)*(1-n) );
|
||||
c = mst/P;
|
||||
d = l - mst + 1;
|
||||
y = k^alp*n^(1-alp)*gst^alp;
|
||||
R = mst/bet;
|
||||
W = l/n;
|
||||
ist = y-c;
|
||||
q = 1 - d;
|
||||
|
||||
e = 1;
|
||||
|
||||
gp_obs = m/dA;
|
||||
gy_obs = dA;
|
||||
end;
|
||||
|
||||
steady;
|
||||
|
||||
check;
|
||||
|
|
|
@ -1,73 +0,0 @@
|
|||
% computes the steady state of fs2000 analyticaly
|
||||
% largely inspired by the program of F. Schorfheide
|
||||
|
||||
% Copyright (C) 2004-2010 Dynare Team
|
||||
%
|
||||
% This file is part of Dynare.
|
||||
%
|
||||
% Dynare is free software: you can redistribute it and/or modify
|
||||
% it under the terms of the GNU General Public License as published by
|
||||
% the Free Software Foundation, either version 3 of the License, or
|
||||
% (at your option) any later version.
|
||||
%
|
||||
% Dynare is distributed in the hope that it will be useful,
|
||||
% but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
% GNU General Public License for more details.
|
||||
%
|
||||
% You should have received a copy of the GNU General Public License
|
||||
% along with Dynare. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
function [ys,check] = fs2000_steadystate(ys,exe)
|
||||
global M_
|
||||
|
||||
alp = M_.params(1);
|
||||
bet = M_.params(2);
|
||||
gam = M_.params(3);
|
||||
mst = M_.params(4);
|
||||
rho = M_.params(5);
|
||||
psi = M_.params(6);
|
||||
del = M_.params(7);
|
||||
|
||||
check = 0;
|
||||
|
||||
dA = exp(gam);
|
||||
gst = 1/dA;
|
||||
m = mst;
|
||||
|
||||
khst = ( (1-gst*bet*(1-del)) / (alp*gst^alp*bet) )^(1/(alp-1));
|
||||
xist = ( ((khst*gst)^alp - (1-gst*(1-del))*khst)/mst )^(-1);
|
||||
nust = psi*mst^2/( (1-alp)*(1-psi)*bet*gst^alp*khst^alp );
|
||||
n = xist/(nust+xist);
|
||||
P = xist + nust;
|
||||
k = khst*n;
|
||||
|
||||
l = psi*mst*n/( (1-psi)*(1-n) );
|
||||
c = mst/P;
|
||||
d = l - mst + 1;
|
||||
y = k^alp*n^(1-alp)*gst^alp;
|
||||
R = mst/bet;
|
||||
W = l/n;
|
||||
ist = y-c;
|
||||
q = 1 - d;
|
||||
|
||||
e = 1;
|
||||
|
||||
gp_obs = m/dA;
|
||||
gy_obs = dA;
|
||||
|
||||
ys =[
|
||||
m
|
||||
P
|
||||
c
|
||||
e
|
||||
W
|
||||
R
|
||||
k
|
||||
d
|
||||
n
|
||||
l
|
||||
gy_obs
|
||||
gp_obs
|
||||
y
|
||||
dA ];
|
Loading…
Reference in New Issue