Time iteration¶
We consider a model with the form:
\(s_t = g\left(m_{t1}, s_{t1}, x_{t1}, m_t \right)\)
\(0 = E_t \left[ f\left(m_t, s_{t}, x_{t}, m_{t+1}, s_{t+1}, x_{t+1} \right) \right]\)
where \(g\) is the state transition function, and \(f\) is the arbitrage equation.
The time iteration algorithm consists in approximating the optimal controls as a function of exogenous and endogenous controls \(x_t = \varphi(m_t,s_t)\).
At step \(n\), the current guess for the control, \(x(s_t) = \varphi^n(m_t, s_t)\), serves as the control being exercised next period :
Given current guess, find the current period’s \(\varphi^{n+1}(m_t,s_t)\) controls for any \((m_t,s_t)\) by solving the arbitrage equation : \(0 = E_t \left[ f\left(m_t, s_{t}, \varphi^{n+1}(m_t, s_t), g(s_t, \varphi^{n+1}(m_t, s_t)), \varphi^{n}(m_{t+1},g(s_t, \varphi^{n+1}(s_t))) \right) \right]\)

dolo.algos.time_iteration.
time_iteration
(model, dr0=None, dprocess=None, with_complementarities=True, verbose=True, grid={}, maxit=1000, inner_maxit=10, tol=1e06, hook=None, details=False)¶ Finds a global solution for
model
using backward timeiteration.This algorithm iterates on the residuals of the arbitrage equations
 Parameters
 modelModel
model to be solved
 verboseboolean
if True, display iterations
 dr0decision rule
initial guess for the decision rule
 dprocessDiscretizedProcess (model.exogenous.discretize())
discretized process to be used
 with_complementaritiesboolean (True)
if False, complementarity conditions are ignored
 grid: grid options
overload the values set in options:grid section
 maxit: maximum number of iterations
 inner_maxit: maximum number of iteration for inner solver
 tol: tolerance criterium for successive approximations
 hook: Callable
function to be called within each iteration, useful for debugging purposes
 Returns
 decision rule :
approximated solution

dolo.algos.time_iteration.
residuals_simple
(f, g, s, x, dr, dprocess, parms)¶