Solver Options
In addition to specifying a solution algorithm, solver behavior can be adjusted by passing the relevant keyword arguments to init
or solve
.
Trust Region Methods
NonlinearSystems.Hybrid
— TypeHybrid{P} <: AbstractAlgorithm{P}
A modified version of Powell's hybrid method (a trust region method with dogleg). The essentially same algorithm can solve both root-finding problems and least-squares problem. To indicate the problem type, set either RootFinding
or LeastSquares
as type parameter. For keyword arguments accepted by init
and solve
when using this algorithm, see HybridSolver
.
References
- Moré, Jorge J., Danny C. Sorenson, Burton S. Garbow, and Kenneth E. Hillstrom. 1984. "The MINPACK Project." In Sources and Development of Mathematical Software, ed. Wayne R. Cowell, 88-111. New Jersey: Prentice-Hall.
- Nocedal, Jorge, and Stephen J. Wright. 2006. Numerical Optimization. 2nd ed. New York: Springer.
- Powell, Michael J. D. 1970. "A Hybrid Method for Nonlinear Equations." In Numerical Methods for Nonlinear Algebraic Equations, ed. Philip Rabinowitz, 87-114. London: Gordon and Breach.
NonlinearSystems.HybridSolver
— TypeHybridSolver(fdf::OnceDifferentiable, x, fx, J, P; kwargs...)
Construct HybridSolver
for solving a problem of type P
with Hybrid
method. Users are not expected to call this method directly but should pass keyword arguments to init
or solve
instead. See also Hybrid
.
Keywords
linsolver=default_linsolver(fdf, x0, P)
: solver for the underlying linear problems.factor_init::Real=1.0
: a factor for scaling the initial trust region radius.factor_up::Real=2.0
: a factor for expanding the trust region radius.factor_down::Real=0.5
: a factor for shrinking the trust region radius.scaling::Bool=true
: allow improving the scaling of trust region.rank1update::Bool=true
: allow using rank-1 update for the Jacobian matrix and factorization.thres_jac::Integer=2
: recompute the Jacobian matrix if the trust region is shrinked consecutively by the specified number of times; setting a non-positive value results in recomputing the Jacobian matrix after each step.thres_nslow1::Integer=10
: signal slow solver progress if the reduction in residual norm remains small for the specified number of consecutive steps.thres_nslow2::Integer=5
: signal slow solver progress if there is no expansion of trust region after recomputing the Jacobian matrix in the specified number of consecutive steps.warn::Bool=true
: print a warning message for slow solver progress
Linear Solvers for Subproblems
Documentation for specifying the linear solvers will be added in future.