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.