diff --git a/doc/dynare.texi b/doc/dynare.texi index a5715a8d3..9a735a680 100644 --- a/doc/dynare.texi +++ b/doc/dynare.texi @@ -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 diff --git a/examples/fs2000.mod b/examples/fs2000.mod index 14e78d910..36aace113 100644 --- a/examples/fs2000.mod +++ b/examples/fs2000.mod @@ -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; diff --git a/examples/fs2000_steadystate.m b/examples/fs2000_steadystate.m deleted file mode 100644 index 2ac140da5..000000000 --- a/examples/fs2000_steadystate.m +++ /dev/null @@ -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 . - -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 ];