NonlinearSolve.jl
NonlinearSolve.jl copied to clipboard
Inexact Newton Steps in Levenberg Marquardt
See the last part of http://ceres-solver.org/nnls_solving.html#levenberg-marquardt. This is basically already there and this is mostly a internal solver selection mechanism:
- Add a forcing function to LM
- Add a
newton_step = Val(:exact) / Val(:inexact)
option. Set it to nothing by default - Default to exact for factorization, else inexact
- Inexact Newton is just setting the tolerance correctly in
dolinsolve
.
https://www.sciencedirect.com/science/article/pii/S0377042705007958
With the redesign this is very easy to do now, we need to add forcing terms to the newton-style descent algorithms and all algorithms will be able to use it