2021-12-15 17:31:46 +01:00
|
|
|
/* Test for multiple model blocks, model_remove, model_options and var_remove commands,
|
|
|
|
and model_replace block.
|
|
|
|
It should give the same results as ramst.mod. */
|
|
|
|
|
|
|
|
var c k;
|
|
|
|
varexo x;
|
|
|
|
|
|
|
|
var dummy1 dummy2 dummy3;
|
|
|
|
|
|
|
|
parameters alph gam delt bet aa;
|
|
|
|
alph=0.5;
|
|
|
|
gam=0.5;
|
|
|
|
delt=0.02;
|
|
|
|
bet=0.05;
|
|
|
|
aa=0.5;
|
|
|
|
|
|
|
|
model;
|
|
|
|
c + k - aa*x*k(-1)^alph - (1-delt)*k(-1);
|
|
|
|
end;
|
|
|
|
|
|
|
|
model;
|
|
|
|
[ name = 'eq:dummy1', endogenous = 'dummy1' ]
|
|
|
|
dummy1 = c + 1;
|
|
|
|
[ foo = 'eq:dummy2' ] // Since dummy2 is alone on the LHS, it is considered as the variable set by this equation
|
|
|
|
log(dummy2) = k + 2;
|
|
|
|
[ name = 'eq:dummy3' ]
|
|
|
|
c(+1) = c;
|
|
|
|
end;
|
|
|
|
|
|
|
|
model_options(block);
|
|
|
|
|
|
|
|
model_remove('eq:dummy1', foo = 'eq:dummy2');
|
|
|
|
|
|
|
|
model_replace('eq:dummy3');
|
|
|
|
c^(-gam) - (1+bet)^(-1)*(aa*alph*x(+1)*k^(alph-1) + 1 - delt)*c(+1)^(-gam);
|
|
|
|
end;
|
|
|
|
|
|
|
|
var_remove dummy3;
|
|
|
|
|
|
|
|
initval;
|
|
|
|
x = 1;
|
|
|
|
k = ((delt+bet)/(1.0*aa*alph))^(1/(alph-1));
|
|
|
|
c = aa*k^alph-delt*k;
|
|
|
|
end;
|
|
|
|
|
|
|
|
steady;
|
|
|
|
|
|
|
|
check;
|
|
|
|
|
|
|
|
shocks;
|
|
|
|
var x;
|
|
|
|
periods 1;
|
|
|
|
values 1.2;
|
|
|
|
end;
|
|
|
|
|
|
|
|
perfect_foresight_setup(periods=200);
|
|
|
|
perfect_foresight_solver;
|
|
|
|
|
2023-06-12 14:08:55 +02:00
|
|
|
S = load('../deterministic_simulations/ramst/Output/ramst_results.mat');
|
2021-12-15 17:31:46 +01:00
|
|
|
if any(size(oo_.endo_simul) ~= size(S.oo_.endo_simul)) || any(any(abs(oo_.endo_simul - S.oo_.endo_simul) > 1e-10))
|
|
|
|
error('Model editing failure')
|
|
|
|
end
|