84 lines
3.1 KiB
Julia
84 lines
3.1 KiB
Julia
# Modification of the path (for packages). Should be done in ~/.juliarc.jl with a fixed path instead.
|
|
if isempty(findin([abspath("../../../julia")], LOAD_PATH))
|
|
unshift!(LOAD_PATH, abspath("../../../julia"))
|
|
end
|
|
|
|
# Load Dynare package
|
|
importall Dynare
|
|
using PyPlot
|
|
|
|
# Compile the rbc.mod file -> produce a module with the model definition.
|
|
|
|
@dynare "rbc1.mod"
|
|
|
|
importall SteadyState
|
|
importall PerfectForesightModelSolver
|
|
|
|
# First call to the steady state routine (analytical)
|
|
@time SteadyState.steady!(model_, oo_)
|
|
|
|
println(oo_.steady_state)
|
|
|
|
# Initialize paths for the endogenous variables
|
|
endogenousvariables = repmat(oo_.steady_state, 1, options_.pfmsolver.periods+2)
|
|
# Destroy part of the initial stock of physical capital.
|
|
endogenousvariables[1, 1] = .8*endogenousvariables[1, 1]
|
|
|
|
# Set path for the innovations (no shocks).
|
|
exogenousvariables = repmat(oo_.exo_steady_state', options_.pfmsolver.periods+2, 1)
|
|
|
|
# Simulate the transition to the steady state
|
|
@time simulate_perfect_foresight_model!(endogenousvariables, exogenousvariables, oo_.steady_state, model_, options_)
|
|
|
|
n = 200
|
|
dates = collect(0:n-1)
|
|
plt[:figure](1)
|
|
plot(dates, vec(endogenousvariables[1,1:n]), color="black", linewidth=2.0, linestyle="-")
|
|
|
|
|
|
# Initialize paths for the endogenous variables
|
|
endogenousvariables = repmat(oo_.steady_state, 1, options_.pfmsolver.periods+2)
|
|
# Destroy part of the initial stock of physical capital...
|
|
endogenousvariables[1, 1] = .8*endogenousvariables[1, 1]
|
|
# ... and assume that TFP is initially above its steady state level.
|
|
endogenousvariables[6, 1] = .5
|
|
|
|
# Set path for the innovations (no shocks).
|
|
exogenousvariables = repmat(oo_.exo_steady_state', options_.pfmsolver.periods+2, 1)
|
|
|
|
# Simulate the transition to the steady state (we should have an hump shaped transition)
|
|
@time simulate_perfect_foresight_model!(endogenousvariables, exogenousvariables, oo_.steady_state, model_, options_)
|
|
|
|
n = 200
|
|
dates = collect(0:n-1)
|
|
plot(dates, vec(endogenousvariables[1,1:n]), color="red", linewidth=2.0, linestyle="-")
|
|
|
|
# Initialize paths for the endogenous variables
|
|
endogenousvariables = repmat(oo_.steady_state, 1, options_.pfmsolver.periods+2)
|
|
|
|
# Set path for the innovations (no shocks).
|
|
exogenousvariables = repmat(oo_.exo_steady_state', options_.pfmsolver.periods+2, 1)
|
|
|
|
# Assume positive expected TFP shock in period 10
|
|
exogenousvariables[10+1, 1] = 2
|
|
|
|
# Simulate the paths for the endogenous variables, given the expected shock
|
|
@time simulate_perfect_foresight_model!(endogenousvariables, exogenousvariables, oo_.steady_state, model_, options_)
|
|
|
|
n = 200
|
|
dates = collect(0:n-1)
|
|
plt[:figure](2)
|
|
subplot(221)
|
|
title("Efficiency")
|
|
plot(dates, vec(endogenousvariables[5,1:n]), color="black", linewidth=2.0, linestyle="-")
|
|
subplot(223)
|
|
title("Output")
|
|
plot(dates, vec(endogenousvariables[2,1:n]), color="black", linewidth=2.0, linestyle="-")
|
|
subplot(222)
|
|
title("Consumption")
|
|
plot(dates, vec(endogenousvariables[4,1:n]), color="black", linewidth=2.0, linestyle="-")
|
|
subplot(224)
|
|
title("Labour")
|
|
plot(dates, vec(endogenousvariables[3,1:n]), color="black", linewidth=2.0, linestyle="-")
|
|
suptitle("Expected positive expected shock")
|