Broyden's method: Difference between revisions

From testwiki
Jump to navigation Jump to search
imported>OAbot
m Open access bot: arxiv updated in citation with #oabot.
ย 
(No difference)

Latest revision as of 05:10, 11 November 2024

Template:Short description In numerical analysis, Broyden's method is a quasi-Newton method for finding roots in Template:Math variables. It was originally described by C. G. Broyden in 1965.[1]

Newton's method for solving Template:Math uses the Jacobian matrix, Template:Math, at every iteration. However, computing this Jacobian can be a difficult and expensive operation; for large problems such as those involving solving the Kohnโ€“Sham equations in quantum mechanics the number of variables can be in the hundreds of thousands. The idea behind Broyden's method is to compute the whole Jacobian at most 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 Template:Math, it terminates in Template:Math steps,[2] although like all quasi-Newton methods, it may not converge for nonlinear systems.

Description of the method

Solving single-variable nonlinear equation

In the secant method, we replace the first derivative Template:Math at Template:Math with the finite-difference approximation:

f(xn)f(xn)f(xn1)xnxn1,

and proceed similar to Newton's method:

xn+1=xnf(xn)f(xn)

where Template:Math is the iteration index.

Solving a system of nonlinear equations

Consider a system of Template:Math nonlinear equations in k unknowns

๐Ÿ(๐ฑ)=๐ŸŽ,

where Template:Math is a vector-valued function of vector Template:Math

๐ฑ=(x1,x2,x3,,xk),
๐Ÿ(๐ฑ)=(f1(x1,x2,,xk),f2(x1,x2,,xk),,fk(x1,x2,,xk)).

For such problems, Broyden gives a variation of the one-dimensional Newton's method, replacing the derivative with an approximate Jacobian Template:Math. The approximate Jacobian matrix is determined iteratively based on the secant equation, a finite-difference approximation:

๐‰n(๐ฑn๐ฑn1)๐Ÿ(๐ฑn)๐Ÿ(๐ฑn1),

where Template:Math is the iteration index. For clarity, define

๐Ÿn=๐Ÿ(๐ฑn),
Δ๐ฑn=๐ฑn๐ฑn1,
Δ๐Ÿn=๐Ÿn๐Ÿn1,

so the above may be rewritten as

๐‰nΔ๐ฑnΔ๐Ÿn.

The above equation is underdetermined when Template:Math is greater than one. Broyden suggested using the most recent estimate of the Jacobian matrix, Template:Math, and then improving upon it by requiring that the new form is a solution to the most recent secant equation, and that there is minimal modification to Template:Math:

๐‰n=๐‰n1+Δ๐Ÿn๐‰n1Δ๐ฑnΔ๐ฑn2Δ๐ฑnT.

This minimizes the Frobenius norm

๐‰n๐‰n1F.

One then updates the variables using the approximate Jacobian, what is called a quasi-Newton approach.

๐ฑn+1=๐ฑnα๐‰n1๐Ÿ(๐ฑn).

If α=1 this is the full Newton step; commonly a line search or trust region method is used to control α. The initial Jacobian can be taken as a diagonal, unit matrix, although more common is to scale it based upon the first step.[3] Broyden also suggested using the Shermanโ€“Morrison formula[4] to directly update the inverse of the approximate Jacobian matrix:

๐‰n1=๐‰n11+Δ๐ฑn๐‰n11Δ๐ŸnΔ๐ฑnT๐‰n11Δ๐ŸnΔ๐ฑnT๐‰n11.

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 Template:Math. This yields a second method, the so-called "bad Broyden's method":

๐‰n1=๐‰n11+Δ๐ฑn๐‰n11Δ๐ŸnΔ๐Ÿn2Δ๐ŸnT.

This minimizes a different Frobenius norm

๐‰n1๐‰n11F.

In his original paper Broyden could not get the bad method to work, but there are cases where it does[5] for which several explanations have been proposed.[6][7] Many other quasi-Newton schemes have been suggested in optimization such as the BFGS, where one seeks a maximum or minimum by finding zeros of the first derivatives (zeros of the gradient in multiple dimensions). The Jacobian of the gradient is called the Hessian and is symmetric, adding further constraints to its approximation.

The Broyden Class of Methods

In addition to the two methods described above, Broyden defined a wider class of related methods.[1]Template:Rp In general, methods in the Broyden class are given in the form[8]Template:Rp ๐‰k+1=๐‰k๐‰kskskT๐‰kskT๐‰ksk+ykykTykTsk+ϕk(skT๐‰ksk)vkvkT, where yk:=๐Ÿ(๐ฑk+1)๐Ÿ(๐ฑk), sk:=๐ฑk+1๐ฑk, and vk=[ykykTsk๐‰kskskT๐‰ksk], and ϕkโ„ for each k=1,2,.... The choice of ϕk determines the method.

Other methods in the Broyden class have been introduced by other authors.

See also

References

Template:Reflist

Further reading

Template:Root-finding algorithms