New option linear_approximation for perfect foresight models.
This approach only requires one evaluation of the dynamic model (and its jacobian) instead of T (the number of perdiods). Also (because the model is linear) the equilibrium paths are obtained by inverting the jacobian of the stacked equations (no need for a Newton algorithm). Only available with stack_solve_algo==0 (which is the default algorithm for solving perfect foresight models). If possible, the option is triggered automatically if the model is declared linear. TODO: * Write a linear version of perfect_foresight_problem routine. * Evaluate the approxilation error (just need to evaluate the system of stacked non linear equations).issue#70
parent
663d7d82bb
commit
6e52dfb828
|
@ -102,7 +102,7 @@ class ParsingDriver;
|
|||
%token <string_val> INT_NUMBER
|
||||
%token INV_GAMMA_PDF INV_GAMMA1_PDF INV_GAMMA2_PDF IRF IRF_SHOCKS IRF_PLOT_THRESHOLD IRF_CALIBRATION
|
||||
%token KALMAN_ALGO KALMAN_TOL DIFFUSE_KALMAN_TOL SUBSAMPLES OPTIONS TOLF
|
||||
%token LAPLACE LIK_ALGO LIK_INIT LINEAR LOAD_IDENT_FILES LOAD_MH_FILE LOAD_PARAMS_AND_STEADY_STATE LOGLINEAR LOGDATA LYAPUNOV
|
||||
%token LAPLACE LIK_ALGO LIK_INIT LINEAR LOAD_IDENT_FILES LOAD_MH_FILE LOAD_PARAMS_AND_STEADY_STATE LOGLINEAR LOGDATA LYAPUNOV LINEAR_APPROXIMATION
|
||||
%token LYAPUNOV_FIXED_POINT_TOL LYAPUNOV_DOUBLING_TOL LYAPUNOV_SQUARE_ROOT_SOLVER_TOL LOG_DEFLATOR LOG_TREND_VAR LOG_GROWTH_FACTOR MARKOWITZ MARGINAL_DENSITY MAX MAXIT
|
||||
%token MFS MH_CONF_SIG MH_DROP MH_INIT_SCALE MH_JSCALE MH_MODE MH_NBLOCKS MH_REPLIC MH_RECOVER POSTERIOR_MAX_SUBSAMPLE_DRAWS MIN MINIMAL_SOLVING_PERIODS
|
||||
%token MODE_CHECK MODE_CHECK_NEIGHBOURHOOD_SIZE MODE_CHECK_SYMMETRIC_PLOTS MODE_CHECK_NUMBER_OF_POINTS MODE_COMPUTE MODE_FILE MODEL MODEL_COMPARISON MODEL_INFO MSHOCKS ABS SIGN
|
||||
|
@ -993,6 +993,7 @@ perfect_foresight_setup_options_list : perfect_foresight_setup_options_list COMM
|
|||
;
|
||||
|
||||
perfect_foresight_setup_options : o_periods
|
||||
| o_linear_approximation
|
||||
| o_datafile
|
||||
;
|
||||
|
||||
|
@ -2675,6 +2676,7 @@ o_mh_mode : MH_MODE EQUAL INT_NUMBER { driver.option_num("mh_mode", $3); };
|
|||
o_mh_nblocks : MH_NBLOCKS EQUAL INT_NUMBER { driver.option_num("mh_nblck", $3); };
|
||||
o_load_mh_file : LOAD_MH_FILE { driver.option_num("load_mh_file", "1"); };
|
||||
o_loglinear : LOGLINEAR { driver.option_num("loglinear", "1"); };
|
||||
o_linear_approximation : LINEAR_APPROXIMATION { driver.option_num("linear_approximation", "1"); };
|
||||
o_logdata : LOGDATA { driver.option_num("logdata", "1"); };
|
||||
o_nodiagnostic : NODIAGNOSTIC { driver.option_num("nodiagnostic", "1"); };
|
||||
o_bayesian_irf : BAYESIAN_IRF { driver.option_num("bayesian_irf", "1"); };
|
||||
|
|
|
@ -286,6 +286,7 @@ DATE -?[0-9]+([YyAa]|[Mm]([1-9]|1[0-2])|[Qq][1-4]|[Ww]([1-9]{1}|[1-4][0-9]|5[0-2
|
|||
<DYNARE_STATEMENT>mh_nblocks {return token::MH_NBLOCKS;}
|
||||
<DYNARE_STATEMENT>load_mh_file {return token::LOAD_MH_FILE;}
|
||||
<DYNARE_STATEMENT>loglinear {return token::LOGLINEAR;}
|
||||
<DYNARE_STATEMENT>linear_approximation {return token::LINEAR_APPROXIMATION;}
|
||||
<DYNARE_STATEMENT>logdata {return token::LOGDATA;}
|
||||
<DYNARE_STATEMENT>nodiagnostic {return token::NODIAGNOSTIC;}
|
||||
<DYNARE_STATEMENT>kalman_algo {return token::KALMAN_ALGO;}
|
||||
|
|
Loading…
Reference in New Issue