File Exchange

image thumbnail

Automatic Solution and Log Linearisation of DSGE Models

version 1.3.0.0 (3.7 KB) by Tom Holden
Code to analytically log linearise DSGE models in Matlab. Requires the symbolic toolbox.

4 Downloads

Updated 04 Jun 2012

View License

------------------------------------------------------------
PURPOSE: Performs log-linearisation.
------------------------------------------------------------
SYNTAX: result = LogLin( VarEndoNames, VarExoNames, Parameters, Equations, SolveMode, EvalMode, EvalString, Digits );
------------------------------------------------------------
EXAMPLE: result = LogLin( { 'R', 'A' }, { 'EPSILON' }, { 'beta', 'rho' }, { 'beta * R * A / A(+1) = 1', 'A = A(-1) ^ rho * exp( EPSILON )' }, 2, 2 );
------------------------------------------------------------
OUTPUT: result: a cell array of log-linearised equations, with __d appended to variable names that are deviations from steady state.
------------------------------------------------------------
INPUT: VarEndoNames: a cell array of endogenous variable names
% VarExoNames: a cell array of exogenous variable names
% Parameters: a cell array of parameter names
% Equations: a cell array of equations, in Dynare notation
% SolveMode: specifies how the steady state is found
% SolveMode = 0 ---> the steady state is not found, instead __s is appended to the variable names
% SolveMode = 1 ---> the steady state is found analytically
% SolveMode = 2 ---> the steady state is found analytically, allowing all algebraic manipulations
% SolveMode = 3 ---> the steady state is found analytically, assuming real values
% SolveMode = 4 ---> the steady state is found numerically
% EvalMode: specifies any processing of the found equations
% EvalMode = 0 ---> no additional processing
% EvalMode = 1 ---> simplification
% EvalMode = 2 ---> simplification, allowing all algebraic manipulations
% EvalMode = 3 ---> numeric evaluation, to Digits precision
% EvalString: string of comma delimited equations, useful for specifying parameters or your own computed steady state values (e.g. 'beta=0.99,rho=1/2', or 'A=1')
Digits: (optional) the number of digits of accuracy for numerical compuations
------------------------------------------------------------
Copyright © 2011 Tom Holden ( http://www.tholden.org/ )
------------------------------------------------------------

Comments and Ratings (6)

Fix works - thank you Tom. I'm not sure how to revise my ratings below. I would give it 5/5 stars.

Tom Holden

There's a fix for the bug mentioned by Brian here: https://gist.github.com/tholden/0cd1dc81a9b1233c719f63a87a705ada

Does not seem capable of handling equations without lags/leads, e.g. aggregate resource constraints. Useful as a check on log-linearization by hand.

Tom Holden

I personally use Dynare almost exclusively. This is just for the rare times when people on insist on working with a log-linearised model.

osvaldo

What's the difference (advantage or disadvantage), between this model and dynare, do you recomend to use it for large DSGE models, does it provide a log-linearization result as equation.

Updates

1.3.0.0

Previous uploaded file accidentally contained both old and new code.

1.2.0.0

Typo correction (6 arguments are OK).

1.1.0.0

Removed mention of GPL from description.

MATLAB Release Compatibility
Created with R2011a
Compatible with any release
Platform Compatibility
Windows macOS Linux

Discover Live Editor

Create scripts with code, output, and formatted text in a single executable document.


Learn About Live Editor