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
Minje Jeon
dynare
Commits
43607acf
Unverified
Commit
43607acf
authored
Jun 16, 2021
by
Sébastien Villemot
Browse files
Merge branch 'resolveheader' of git.dynare.org:JohannesPfeifer/dynare
See merge request !1875
parents
18a172bd
32e1f345
Changes
1
Hide whitespace changes
Inline
Side-by-side
matlab/dynare_resolve.m
View file @
43607acf
function
[
A
,
B
,
ys
,
info
,
Model
,
DynareOptions
,
DynareResults
]
=
dynare_resolve
(
Model
,
DynareOptions
,
DynareResults
,
mode
)
function
[
A
,
B
,
ys
,
info
,
M_
,
options_
,
oo_
]
=
dynare_resolve
(
M_
,
options_
,
oo_
,
mode
)
% function [A,B,ys,info,M_,options_,oo_] = dynare_resolve(M_,options_,oo_,mode)
% Computes the linear approximation and the matrices A and B of the transition equation.
%
% Inputs:
% - M_ [structure] Matlab's structure describing the model
% - options_ [structure] Matlab's structure containing the options
% - oo_ [structure] Matlab's structure containing the results
% - mode [string] if provided, use restricted state space
%
% Outputs:
% - A [double] State transition matrix (potentially for restricted state space)
% - B [double] shock impact matrix (potentially for restricted state space)
% - ys [double] vector of steady state values
% - info [double] 4 by 1 vector with exit flag and information
% - M_ [structure] Matlab's structure describing the model
% - options_ [structure] Matlab's structure containing the options
% - oo_ [structure] Matlab's structure containing the results
%
@info
:
%!
@deftypefn
{
Function
File
}
{[
@var
{
A
},
@var
{
B
},
@var
{
ys
},
@var
{
info
},
@var
{
Model
},
@var
{
DynareOptions
},
@var
{
DynareResults
}]
=
}
resol
(
@var
{
Model
},
@var
{
DynareOptions
},
@var
{
DynareResults
})
%!
@anchor
{
dynare_resolve
}
%!
@sp
1
%!
Computes
the
linear
approximation
and
the
matrices
A
and
B
of
the
transition
equation
.
%!
@sp
2
%!
@strong
{
Inputs
}
%!
@sp
1
%!
@table
@
@var
%!
@item
Model
%!
Matlab
'
s
structure
describing
the
model
(
initialized
by
dynare
,
see
@ref
{
M_
}).
%!
@item
DynareOptions
%!
Matlab
'
s
structure
describing
the
options
(
initialized
by
dynare
,
see
@ref
{
options_
}).
%!
@item
DynareResults
%!
Matlab
'
s
structure
gathering
the
results
(
initialized
by
dynare
,
see
@ref
{
oo_
}).
%!
@item
mode
%!
Passed
argument
if
restricted
state
-
space
is
required
,
not
passed
otherwise
%!
@end
table
%!
@sp
2
%!
@strong
{
Outputs
}
%!
@sp
1
%!
@table
@
@var
%!
@item
A
%!
Matrix
of
doubles
,
transition
matrix
of
the
state
equation
.
%!
@item
B
%!
Matrix
of
doubles
,
matrix
relating
the
endogenous
variables
to
the
innovations
in
the
state
equation
.
%!
@item
ys
%!
Vector
of
doubles
,
steady
state
level
of
the
endogenous
variables
in
declaration
order
%!
@item
info
%!
Integer
scalar
,
error
code
as
given
by
@ref
{
resol
}.
%!
@item
Model
%!
Matlab
'
s
structure
describing
the
model
(
initialized
by
dynare
,
see
@ref
{
M_
}).
%!
@item
DynareOptions
%!
Matlab
'
s
structure
describing
the
options
(
initialized
by
dynare
,
see
@ref
{
options_
}).
%!
@item
DynareResults
%!
Matlab
'
s
structure
gathering
the
results
(
initialized
by
dynare
,
see
@ref
{
oo_
}).
%!
@end
table
%!
@sp
2
%!
@strong
{
This
function
is
called
by
:
}
%!
@sp
1
%!
@ref
{
dsge_likelihood
},
@ref
{
DsgeLikelihood_hh
},
@ref
{
DsgeVarLikelihood
},
@ref
{
dsge_posterior_kernel
},
@ref
{
DsgeSmoother
},
@ref
{
dynare_sensitivity
},
@ref
{
gsa
/
thet2tau
},
@ref
{
gsa
/
stab_map
},
@ref
{
identification_analysis
},
@ref
{
imcforecast
},
@ref
{
thet2tau
}
%!
@sp
2
%!
@strong
{
This
function
calls
:
}
%!
@sp
1
%!
@ref
{
resol
},
@ref
{
kalman_transition_matrix
}
%!
@end
deftypefn
%
@eod
:
%
Copyright
(
C
)
2001
-
2020
Dynare
Team
% Copyright (C) 2001-2021 Dynare Team
%
% This file is part of Dynare.
%
...
...
@@ -66,7 +34,7 @@ function [A,B,ys,info,Model,DynareOptions,DynareResults] = dynare_resolve(Model,
% You should have received a copy of the GNU General Public License
% along with Dynare. If not, see <https://www.gnu.org/licenses/>.
[
dr
,
info
,
M
odel
,
DynareOptions
,
DynareResults
]
=
compute_decision_rules
(
Model
,
DynareOptions
,
DynareResults
);
[
dr
,
info
,
M
_
,
options_
,
oo_
]
=
compute_decision_rules
(
M_
,
options_
,
oo_
);
if
info
(
1
)
>
0
A
=
[];
...
...
@@ -81,26 +49,26 @@ end
switch
nargin
case
3
endo_nbr
=
M
odel
.
endo_nbr
;
nstatic
=
M
odel
.
nstatic
;
nspred
=
M
odel
.
nspred
;
endo_nbr
=
M
_
.
endo_nbr
;
nstatic
=
M
_
.
nstatic
;
nspred
=
M
_
.
nspred
;
iv
=
(
1
:
endo_nbr
)
'
;
if
~
DynareO
ptions
.
block
ic
=
[
nstatic
+
(
1
:
nspred
)
endo_nbr
+
(
1
:
size
(
DynareResults
.
dr
.
ghx
,
2
)
-
nspred
)
]
'
;
if
~
o
ptions
_
.
block
ic
=
[
nstatic
+
(
1
:
nspred
)
endo_nbr
+
(
1
:
size
(
oo_
.
dr
.
ghx
,
2
)
-
nspred
)
]
'
;
else
ic
=
DynareResults
.
dr
.
restrict_columns
;
ic
=
oo_
.
dr
.
restrict_columns
;
end
case
4
iv
=
DynareResults
.
dr
.
restrict_var_list
;
ic
=
DynareResults
.
dr
.
restrict_columns
;
iv
=
oo_
.
dr
.
restrict_var_list
;
ic
=
oo_
.
dr
.
restrict_columns
;
otherwise
error
(
'dynare_resolve:: Error in the calling sequence!'
)
end
if
nargout
==
1
A
=
kalman_transition_matrix
(
DynareResults
.
dr
,
iv
,
ic
,
M
odel
.
exo_nbr
);
A
=
kalman_transition_matrix
(
oo_
.
dr
,
iv
,
ic
,
M
_
.
exo_nbr
);
return
end
[
A
,
B
]
=
kalman_transition_matrix
(
DynareResults
.
dr
,
iv
,
ic
,
M
odel
.
exo_nbr
);
ys
=
DynareResults
.
dr
.
ys
;
[
A
,
B
]
=
kalman_transition_matrix
(
oo_
.
dr
,
iv
,
ic
,
M
_
.
exo_nbr
);
ys
=
oo_
.
dr
.
ys
;
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