Broyden's method for root-finding for a vector-valued function of a vector variable

From Calculus
(Redirected from Broyden's method)

Definition

Suppose x1,x2,…,xm are variables and F1,F2,…,Fm are real-valued functions of these variables, each of which is jointly differentiable with respect to the variables on a given domain. We can define the vector-valued function F→(x1,x2,…,xm)=(F1(x1,x2,…,xm),F2(x1,x2,…,xm),…,Fm(x1,x2,…,xm)). If we wish, we can also treat the input variables as the coordinates of a vector x→=(x1,x2,…,xm). We therefore have a differentiable F→:Rm→Rm.

Broyden's method is a slight variant of Newton's method for root-finding for a vector-valued function of a vector variable. The main difference is that we do not compute the inverse of the Jacobian at each stage of the iteration. Instead, we compute it only once and use a rank one update at subsequent stages.

Iterative step

Recall that the iterative step for Newton's method is given by:

x→n=x→n−1−(J(F→)(x→n−1))−1F→(x→n−1)

The idea behind Broyden's method is that, instead of computing (J(F→)(x→n−1))−1 globally each time, we compute it only the first time, and then update it each time using a rank one update. The idea is that the matrix Jn−1 (our approximation for the Jacobian) should satisfy:

Jn−1(x→n−1−x→n−2)≃F→(x→n−1)−F→(x→n−2)

However, the equation above is underdetermined -- there are many matrices that would satisfy the condition. So we try to find the matrix satisfying the condition for which the Frobenius norm |Jn−1−Jn−2| is as small as possible. When we work out the mathematics, we get the formula:

Jn−1=Jn−2+ΔF→n−2−Jn−2Δx→n−1|Δx→n−2|2Δx→nT where

Δx→n−2=x→n−1−x→n−2
ΔF→n−2=F→n−1−F→n−2

Note that the update to the Jacobian is a rank-one update, i.e., Jn−1−Jn−2 is a rank one matrix (arising as a Hadamard product of two vectors. Therefore, we can use the Sherman-Morrison formula to calculate the inverse of the matrix:

Jn−1−1=Jn−2−1+Δx→n−2−Jn−2−1ΔF→n−2Δx→n−1TJn−2−1ΔF→n−2(Δx→n−2TJn−2−1)

In words, we are updating the Jacobian along the direction of the line joining x→n−2 and x→n−1 while trying to change it as little as possible overall.

Extreme cases

In the case m=1, so that we are dealing with functions of one variable, Broyden's method reduces to the usual secant method. Explicitly, the formula becomes:

xn:=xn−1−f(xn−1f(xn−1)−f(xn−2)xn−1−xn−2

This simplifies to the usual secant method formula.