Broyden's method Contents Description of the method Other members of the Broyden class See also References External links Navigation menu10.1090/S0025-5718-1965-0198670-6200394110.1137/071604710.1007/BF0193129710.1090/S0025-5718-1965-0198670-62003941"Modification of a quasi-Newton method for nonlinear equations with a sparse Jacobian"10.1090/S0025-5718-1970-0258276-90025-5718"On Using Quasi-Newton Algorithms of the Broyden Class for Model-to-Test Correlation"10.5028/jatm.v6i4.3732175-9146"Broyden class methods – File Exchange – MATLAB Central"Simple basic explanation: The story of the blind archere
Root-finding algorithms
quasi-Newton methodfinding rootsC. G. BroydenNewton's methodJacobian matrixfinite-differenceNewton's methodJacobianunderdeterminedFrobenius normSherman–Morrison formulaoptimizationgradientHessian
In numerical analysis, Broyden's method is a quasi-Newton method for finding roots in k variables. It was originally described by C. G. Broyden in 1965.[1]
Newton's method for solving f(x) = 0 uses the Jacobian matrix, J, at every iteration. However, computing this Jacobian is a difficult and expensive operation. The idea behind Broyden's method is to compute the whole Jacobian only at the first iteration and to do rank-one updates at other iterations.
In 1979 Gay proved that when Broyden's method is applied to a linear system of size n × n, it
terminates in 2 n steps,[2] although like all quasi-Newton methods, it may not converge for nonlinear systems.
Contents
1 Description of the method
1.1 Solving single-variable equation
1.2 Solving a system of nonlinear equations
2 Other members of the Broyden class
3 See also
4 References
5 External links
Description of the method
Solving single-variable equation
In the secant method, we replace the first derivative f′ at xn with the finite-difference approximation:
- f′(xn)≃f(xn)−f(xn−1)xn−xn−1,displaystyle f'(x_n)simeq frac f(x_n)-f(x_n-1)x_n-x_n-1,
and proceed similar to Newton's method:
- xn+1=xn−f(xn)f′(xn),displaystyle x_n+1=x_n-frac f(x_n)f'(x_n),
where n is the iteration index.
Solving a system of nonlinear equations
Consider a system of k nonlinear equations
- f(x)=0,displaystyle mathbf f (mathbf x )=mathbf 0 ,
where f is a vector-valued function of vector x:
- x=(x1,x2,x3,…,xk),displaystyle mathbf x =(x_1,x_2,x_3,dotsc ,x_k),
- f(x)=(f1(x1,x2,…,xk),f2(x1,x2,…,xk),…,fk(x1,x2,…,xk)).displaystyle mathbf f (mathbf x )=big (f_1(x_1,x_2,dotsc ,x_k),f_2(x_1,x_2,dotsc ,x_k),dotsc ,f_k(x_1,x_2,dotsc ,x_k)big ).
For such problems, Broyden gives a generalization of the one-dimensional Newton's method, replacing the derivative with the Jacobian J. The Jacobian matrix is determined iteratively, based on the secant equation in the finite-difference approximation:
- Jn(xn−xn−1)≃f(xn)−f(xn−1),displaystyle mathbf J _n(mathbf x _n-mathbf x _n-1)simeq mathbf f (mathbf x _n)-mathbf f (mathbf x _n-1),
where n is the iteration index. For clarity, let us define:
- fn=f(xn),displaystyle mathbf f _n=mathbf f (mathbf x _n),
- Δxn=xn−xn−1,displaystyle Delta mathbf x _n=mathbf x _n-mathbf x _n-1,
- Δfn=fn−fn−1,displaystyle Delta mathbf f _n=mathbf f _n-mathbf f _n-1,
so the above may be rewritten as
- JnΔxn≃Δfn.displaystyle mathbf J _nDelta mathbf x _nsimeq Delta mathbf f _n.
The above equation is underdetermined when k is greater than one. Broyden suggests using the current estimate of the Jacobian matrix Jn−1 and improving upon it by taking the solution to the secant equation that is a minimal modification to Jn−1:
- Jn=Jn−1+Δfn−Jn−1Δxn‖Δxn‖2ΔxnT.displaystyle mathbf J _n=mathbf J _n-1+frac Delta mathbf f _n-mathbf J _n-1Delta mathbf x _nDelta mathbf x _nDelta mathbf x _n^mathrm T .
This minimizes the following Frobenius norm:
- ‖Jn−Jn−1‖F.displaystyle
We may then proceed in the Newton direction:
- xn+1=xn−Jn−1f(xn).displaystyle mathbf x _n+1=mathbf x _n-mathbf J _n^-1mathbf f (mathbf x _n).
Broyden also suggested using the Sherman–Morrison formula to update directly the inverse of the Jacobian matrix:
- Jn−1=Jn−1−1+Δxn−Jn−1−1ΔfnΔxnTJn−1−1ΔfnΔxnTJn−1−1.displaystyle mathbf J _n^-1=mathbf J _n-1^-1+frac Delta mathbf x _n-mathbf J _n-1^-1Delta mathbf f _nDelta mathbf x _n^mathrm T mathbf J _n-1^-1Delta mathbf f _nDelta mathbf x _n^mathrm T mathbf J _n-1^-1.
This first method is commonly known as the "good Broyden's method".
A similar technique can be derived by using a slightly different modification to Jn−1. This yields a second method, the so-called "bad Broyden's method" (but see[3]):
- Jn−1=Jn−1−1+Δxn−Jn−1−1Δfn‖Δfn‖2ΔfnT.displaystyle mathbf J _n^-1=mathbf J _n-1^-1+frac Delta mathbf x _n-mathbf J _n-1^-1Delta mathbf f _nDelta mathbf f _n^mathrm T .
This minimizes a different Frobenius norm:
- ‖Jn−1−Jn−1−1‖F.mathbf J _n^-1-mathbf J _n-1^-1
Many other quasi-Newton schemes have been suggested in optimization, where one seeks a maximum or minimum by finding the root of the first derivative (gradient in multiple dimensions). The Jacobian of the gradient is called Hessian and is symmetric, adding further constraints to its update.
Other members of the Broyden class
Broyden has defined not only two methods, but a whole class of methods. Other members of this class have been added by other authors.
- The Davidon–Fletcher–Powell update is the only member of this class being published before the two members defined by Broyden.[4]
- Schubert's or sparse Broyden algorithm – a modification for sparse Jacobian matrices.[5]
- Klement (2014) – uses fewer iterations to solve many equation systems.[6][7]
See also
- Secant method
- Newton's method
- Quasi-Newton method
- Newton's method in optimization
- Davidon-Fletcher-Powell formula
- Broyden-Fletcher-Goldfarb-Shanno (BFGS) method
References
^ Broyden, C. G. (October 1965). "A Class of Methods for Solving Nonlinear Simultaneous Equations". Mathematics of Computation. American Mathematical Society. 19 (92): 577–593. doi:10.1090/S0025-5718-1965-0198670-6. JSTOR 2003941..mw-parser-output cite.citationfont-style:inherit.mw-parser-output .citation qquotes:"""""""'""'".mw-parser-output .citation .cs1-lock-free abackground:url("//upload.wikimedia.org/wikipedia/commons/thumb/6/65/Lock-green.svg/9px-Lock-green.svg.png")no-repeat;background-position:right .1em center.mw-parser-output .citation .cs1-lock-limited a,.mw-parser-output .citation .cs1-lock-registration abackground:url("//upload.wikimedia.org/wikipedia/commons/thumb/d/d6/Lock-gray-alt-2.svg/9px-Lock-gray-alt-2.svg.png")no-repeat;background-position:right .1em center.mw-parser-output .citation .cs1-lock-subscription abackground:url("//upload.wikimedia.org/wikipedia/commons/thumb/a/aa/Lock-red-alt-2.svg/9px-Lock-red-alt-2.svg.png")no-repeat;background-position:right .1em center.mw-parser-output .cs1-subscription,.mw-parser-output .cs1-registrationcolor:#555.mw-parser-output .cs1-subscription span,.mw-parser-output .cs1-registration spanborder-bottom:1px dotted;cursor:help.mw-parser-output .cs1-ws-icon abackground:url("//upload.wikimedia.org/wikipedia/commons/thumb/4/4c/Wikisource-logo.svg/12px-Wikisource-logo.svg.png")no-repeat;background-position:right .1em center.mw-parser-output code.cs1-codecolor:inherit;background:inherit;border:inherit;padding:inherit.mw-parser-output .cs1-hidden-errordisplay:none;font-size:100%.mw-parser-output .cs1-visible-errorfont-size:100%.mw-parser-output .cs1-maintdisplay:none;color:#33aa33;margin-left:0.3em.mw-parser-output .cs1-subscription,.mw-parser-output .cs1-registration,.mw-parser-output .cs1-formatfont-size:95%.mw-parser-output .cs1-kern-left,.mw-parser-output .cs1-kern-wl-leftpadding-left:0.2em.mw-parser-output .cs1-kern-right,.mw-parser-output .cs1-kern-wl-rightpadding-right:0.2em
^ Gay, D. M. (August 1979). "Some convergence properties of Broyden's method". SIAM Journal on Numerical Analysis. SIAM. 16 (4): 623–630. doi:10.1137/0716047.
^ Kvaalen, Eric (November 1991). "A faster Broyden method". BIT Numerical Mathematics. SIAM. 31 (2): 369–372. doi:10.1007/BF01931297.
^ Broyden, C. G. (October 1965). "A Class of Methods for Solving Nonlinear Simultaneous Equations". Mathematics of Computation. American Mathematical Society. 19 (92): 577–593. doi:10.1090/S0025-5718-1965-0198670-6. JSTOR 2003941.
^ Schubert, L. K. (1970-01-01). "Modification of a quasi-Newton method for nonlinear equations with a sparse Jacobian". Mathematics of Computation. 24 (109): 27–30. doi:10.1090/S0025-5718-1970-0258276-9. ISSN 0025-5718.
^ Klement, Jan (2014-11-23). "On Using Quasi-Newton Algorithms of the Broyden Class for Model-to-Test Correlation". Journal of Aerospace Technology and Management. 6 (4): 407–414. doi:10.5028/jatm.v6i4.373. ISSN 2175-9146.
^ "Broyden class methods – File Exchange – MATLAB Central". www.mathworks.com. Retrieved 2016-02-04.
External links
- Simple basic explanation: The story of the blind archer