Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Dóra Kocsis
dynare
Commits
ed7f17b0
Commit
ed7f17b0
authored
Dec 03, 2013
by
Sébastien Villemot
Browse files
Rewrite examples/fs2000.mod with a steady_state_model block. Improve the doc.
parent
7ada720e
Changes
3
Hide whitespace changes
Inline
Side-by-side
doc/dynare.texi
View file @
ed7f17b0
...
...
@@ -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
...
...
examples/fs2000.mod
View file @
ed7f17b0
...
...
@@ -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;
...
...
examples/fs2000_steadystate.m
deleted
100644 → 0
View file @
7ada720e
% 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
];
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment