This repository includes:
-
Nonlinear-equation solvers inside the
nonlinSolvers.jl
module. The module include the following methods-
Bisection method:
bisection
. -
Fixed point method.
fixedPoint
. -
Newton's method (for nonlinear equations).
nonlinNewton
. -
Secant method.
secant
. -
Gradient check.
checkDerivative
. This function serves as a quick check for a function and its gradient (returnstrue
if the gradient function matches the numerically-estimated gradient using the given function at a random point). Similarly, it can check for the Hessian (optional).
-
-
Descent methods to find stationary points of functions.
-
Global line search method.
globalLineSearch
. Takes a the functionsgetSearchDirection
andgetStepSize
as arguments which allows it to be used for multiple line-search schemes such as the gradient method, Newton's method, and so on. Similiarly, thegetStepSize
function allows multiple line-search rules to be implemented such as the Armijo rule or the Wolfe-Powell rule. -
Gradient method.
gradientMethod
. Special case ofglobalLineSearch
wheregetSearchDirection = (∇f, x) ↦ -∇f(x)
. -
Newton method.
exactNewton
uses thenonlinNewton
method for solving nonlinear equations where the nonlinear system of equations to be solved is∇²f*d = -∇f(x)
. -
Quasi-Newton methods. The
quasiNewton
method takes the Hessian update schemes (such as BFGS, DFP) as one of its arguments. This scheme is used in two other methods:- BFGS method.
quasiNewtonBFGS
method uses the generalquasiNewton
scheme. It uses the BFGS update. - DFP method.
quasiNewtonDFP
method uses the generalquasiNewton
scheme. It uses the DFP update.
- BFGS method.
-
Nonlinear Conjugate Gradient methods. The
generalCG
is a general CG scheme that takes the functionupdateβ
as one of its arguments. The following CG methods use this scheme.- FR update.
cgFR
uses thegeneralCG
scheme. - PR update.
cgPR
uses thegeneralCG
scheme. - HS update.
cgHS
uses thegeneralCG
scheme.
- FR update.
-
-
Line search methods.
- Armijo rule. This is a backtracking approach.
- Wolfe-Powell rule. This method is used in the conjugate gradient methods.
The scripts are written in Julia programming language.