Skip to content

Commit 07d4e25

Browse files
Update NonlinearLeastSquaresSolvers
1 parent fb2f19a commit 07d4e25

File tree

1 file changed

+39
-2
lines changed

1 file changed

+39
-2
lines changed

docs/src/solvers/NonlinearLeastSquaresSolvers.md

Lines changed: 39 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ algorithm (`LevenbergMarquardt`).
1414

1515
## Full List of Methods
1616

17+
### NonlinearSolve.jl
18+
1719
- `LevenbergMarquardt()`: An advanced Levenberg-Marquardt implementation with the
1820
improvements suggested in the [paper](https://arxiv.org/abs/1201.5885) "Improvements to
1921
the Levenberg-Marquardt algorithm for nonlinear least-squares minimization". Designed for
@@ -22,5 +24,40 @@ algorithm (`LevenbergMarquardt`).
2224
handling of sparse matrices via colored automatic differentiation and preconditioned
2325
linear solvers. Designed for large-scale and numerically-difficult nonlinear least squares
2426
problems.
25-
- `SimpleNewtonRaphson()`: Simple Gauss Newton Implementation with `QRFactorization` to
26-
solve a linear least squares problem at each step!
27+
28+
### SimpleNonlinearSolve.jl
29+
30+
These methods are included with NonlinearSolve.jl by default, though SimpleNonlinearSolve.jl can be used
31+
directly to reduce dependencies and improve load times. SimpleNonlinearSolve.jl's methods excel at small
32+
problems and problems defined with static arrays.
33+
34+
- `SimpleGaussNewton()`: Simple Gauss Newton implementation using QR factorizations for numerical stability.
35+
36+
### FastLevenbergMarquardt.jl
37+
38+
A wrapper over [FastLevenbergMarquardt.jl](https://github.com/kamesy/FastLevenbergMarquardt.jl). Note that
39+
it is called `FastLevenbergMarquardt` since the original package is called "Fast", though benchmarks
40+
demonstrate `LevenbergMarquardt()` usually outperforms.
41+
42+
- `FastLevenbergMarquardtJL(linsolve = :cholesky)`, can also choose `linsolve = :qr`.
43+
44+
### LeastSquaresOptim.jl
45+
46+
A wrapper over [LeastSquaresOptim.jl](https://github.com/matthieugomez/LeastSquaresOptim.jl).
47+
Has a core algorithm `LeastSquaresOptimJL(alg; linsolve)` where the choices for `alg` are:
48+
49+
- `:lm` a Levenberg-Marquardt implementation
50+
- `:dogleg` a trust-region dogleg Gauss-Newton
51+
52+
And the choices for `linsolve` are:
53+
54+
- `:qr`
55+
- `:cholesky`
56+
- `:lsmr` a conjugate gradient method (LSMR with diagonal preconditioner).
57+
58+
### MINPACK.jl
59+
60+
### Optimization.jl
61+
62+
`NonlinearLeastSquaresProblem`s can be converted into an `OptimizationProblem` and used with any solver of
63+
[Optimization.jl](https://github.com/SciML/Optimization.jl).

0 commit comments

Comments
 (0)