Changes
Page history
Create Nonlinear solvers
authored
Apr 29, 2022
by
Stéphane Adjemian
Hide whitespace changes
Inline
Side-by-side
Nonlinear-solvers.org
0 → 100644
View page @
68fbf991
* Error codes
Interpretation of the variable =errorcode= (fifth output argument) returned by
=dynare_solve=. Before entering a nonlinear solver, we check that we are to
evaluate the system of nonlinear equations (residuals and jacobian). If the
initial guess is a solution we stop here, setting =errorflag=false= and
=errorcode=-11=. If the system of equations is ill behaved at the initial guess
(for instance with NaNs in the residuals or the Jacobian matrix), and if Dynare
is not able to find another initial guess, then we do not enter a nonlinear
solver and return =errorflag=false= and =errorcode=-10=.
** =solve_algo=0= (`fsolve`)
This routine is shipped with Matlab (Optimization toolbox) or Octave. The
interpretation of the error codes can be found in the documentation of the
Mathworks' Optimization toolbox or in the documentation of Octave.
** =solve_algo=1= (`solve1`)
This nonlinear solver is included in Dynare. Possible values for the =errorcode= are:
- 1 Convergence achieved,
- 2 Maximum number of iterations has been reached,
- 3 Convergence on dX,
- 4 Spurious convergence.
** =solve_algo=2= (`solve1`)
This nonlinear solver is included in Dynare. Same as =solve_algo=1= but with
decomposed system of equations (using =dmperm=).
** =solve_algo=12= (`solve1`)
This nonlinear solver is included in Dynare. Same as =solve_algo=2= but with
optimizations for semi-structural models.
** =solve_algo=9= (`trust_region`)
This nonlinear solver is included in Dynare. Possible values for =errorcode= are:
- 1 Convergence achieved,
- 2 Maximum number of iterations has been reached,
- 3 Spurious convergence (trust region radius is too small).
- 4 Iteration is not making good progress, as measured by the improvement from the last 15 iterations.
- 5 No further improvement in the approximate solution x is possible (xtol is too small).
** =solve_algo=4= (`trust_region`)
This nonlinear solver is included in Dynare. Same as =solve_algo=9= but with
decomposed system of equations (using =dmperm=).
** =solve_algo=13= (`block_trust_region`)
This nonlinear solver is included in Dynare. Same as =solve_algo=4= but the code
of the nonlinear solver is a compiled =mex= file.
** =solve_algo=14= (`block_trust_region`)
This nonlinear solver is included in Dynare. Same as =solve_algo=13= but with
optimizations for semi-structural models.
** =solve_algo=3= (`csolve`)
Chris Sims' nonlinear solver included in Dynare. Possible values for =errorcode= are:
- 0 Convergence achieved,
- 1, 2 and 3 No solution despite extremely fine adjustments in step length,
- 4 Maximum number of iterations has been reached.
** =solve_algo=10= (`lmmcp`)
** =solve_algo=11= (`path`)
\ No newline at end of file