# NOT RUN {
gemCanonicalDynamicMacroeconomic_3_2()
#### a market-clearing path (alias temporary equilibrium path)
ge <- gemCanonicalDynamicMacroeconomic_3_2(
policy.price = policyMarketClearingPrice,
ts = TRUE,
maxIteration = 1,
numberOfPeriods = 100,
z0 = c(0.5, 1)
)
par(mfrow = c(1, 2))
matplot(ge$ts.z, type = "b", pch = 20)
matplot(ge$ts.p, type = "b", pch = 20)
#### technology change in a market-clearing path
policyTechnologyChange <- function(time, dstl) {
alpha <- 1.2 # The original value is 1.
time.win <- c(50, 50)
discount.factor <- 0.97
depreciation.rate <- 0.06
beta1.firm <- 0.35
return.rate <- 1 / discount.factor - 1
if (time >= time.win[1] && time <= time.win[2]) {
dstl[[1]]$func <- function(p) {
result <- CD_A(
alpha, rbind(beta1.firm, 1 - beta1.firm, 0),
c(p[1] * (return.rate + depreciation.rate), p[2:3])
)
result[3] <- p[1] * result[1] * return.rate / p[3]
result
}
}
}
ge <- gemCanonicalDynamicMacroeconomic_3_2(
policy.technology = policyTechnologyChange,
policy.price = policyMarketClearingPrice,
ts = TRUE,
maxIteration = 1,
numberOfPeriods = 100,
z0 = c(0.5, 1)
)
par(mfrow = c(1, 2))
matplot(ge$ts.z, type = "b", pch = 20)
matplot(ge$ts.p, type = "b", pch = 20)
#### an example on page 46 of Li Xiangyang (2018)
ge <- gemCanonicalDynamicMacroeconomic_3_2(
discount.factor = 0.99,
depreciation.rate = 0.025,
beta1.firm = 0.36,
beta1.consumer = 1
)
# }
# NOT RUN {
# }
Run the code above in your browser using DataLab