0% found this document useful (0 votes)
123 views5 pages

Broyden's Method for Nonlinear Systems

- Broyden's method is an alternative to Newton's method for solving nonlinear systems of equations that approximates the Jacobian matrix to reduce computational cost per iteration. - It approximates the Jacobian matrix from the previous iteration using a rank-one update, allowing the inverse Jacobian to be efficiently updated using the Sherman-Morrison formula. - This results in an algorithm that only requires matrix-vector multiplications each iteration rather than solving a system of linear equations, saving computational effort compared to Newton's method.
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
123 views5 pages

Broyden's Method for Nonlinear Systems

- Broyden's method is an alternative to Newton's method for solving nonlinear systems of equations that approximates the Jacobian matrix to reduce computational cost per iteration. - It approximates the Jacobian matrix from the previous iteration using a rank-one update, allowing the inverse Jacobian to be efficiently updated using the Sherman-Morrison formula. - This results in an algorithm that only requires matrix-vector multiplications each iteration rather than solving a system of linear equations, saving computational effort compared to Newton's method.
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
  • Introduction to Broyden’s Method
  • Examples and Problem Solving
  • Exercises

Jim Lambers

MAT 419/519
Summer Session 2011-12
Lecture 11 Notes

These notes correspond to Section 3.4 in the text.

Broyden’s Method
One of the drawbacks of using Newton’s Method to solve a system of nonlinear equations g(x) = 0
is the computational expense that must be incurred during each iteration to evaluate the partial
derivatives of g at x(k) , and then solve a system of linear equations involving the resulting Jacobian
matrix. The algorithm does not facilitate the re-use of data from previous iterations, and in some
cases evaluation of the partial derivatives can be unnecessarily costly.
An alternative is to modify Newton’s Method so that approximate partial derivatives are used,
since the slightly slower convergence resulting from such an approximation is offset by the improved
efficiency of each iteration. However, simply replacing the analytical Jacobian matrix Jg (x) of g
with a matrix consisting of finite difference approximations of the partial derivatives does not do
much to reduce the cost of each iteration, because the cost of solving the system of linear equations
is unchanged.
However, because Jg (x) consists of the partial derivatives evaluated at an element of a conver-
gent sequence, intuitively Jacobian matrices from consecutive iterations are “near” one another in
some sense, which suggests that it should be possible to cheaply update an approximate Jacobian
matrix from iteration to iteration, in such a way that the inverse of the Jacobian matrix, which is
what is really needed during each Newton iteration, can be updated efficiently as well.
This is the case when an n × n matrix B has the form

B = A + u ⊗ v,

where u and v are given vectors in Rn , and u ⊗ v is the outer product of u and v, defined by
 
u1 v1 u1 v2 · · · u1 vn
 u2 v1 u2 v2 · · · u2 vn 
u ⊗ v = uvT =  . ..  .
 
 .. ..
. . 
un v1 un v2 · · · un vn

This modification of A to obtain B is called a rank-one update. This is because u ⊗ v has rank one,
since every column of u ⊗ v is a scalar multiple of u. To obtain B −1 from A−1 , we note that if

Ax = u,

1
then
Bx = (A + u ⊗ v)x = Ax + uvT x = u + u(v · x) = (1 + v · x)u,
which yields
1
B −1 u = A−1 u.
1 + v · A−1 u
On the other hand, if x is such that v · A−1 x = 0, then
BA−1 x = (A + u ⊗ v)A−1 x = AA−1 x + uvT A−1 x = x + u(v · A−1 x) = x,
which yields
B −1 x = A−1 x.
This takes us to the following more general problem: given a matrix C, we wish to construct a
matrix D such that the following conditions are satisfied:
• Dw = z, for given vectors w and z
• Dy = Cy, if y is orthogonal to a given vector g.
In our application, C = A−1 , D = B −1 , w = u, z = 1/(1 + v · A−1 u)A−1 u, and g = A−T v.
To solve this problem, we set
(z − Cw) ⊗ g
D=C+ .
g·w
Then, if g · y = 0, the second term in the definition of D vanishes, and we obtain Dy = Cy, but
in computing Dw, we obtain factors of g · w in the numerator and denominator that cancel, which
yields
Dw = Cw + (z − Cw) = z.
Applying this definition of D, we obtain
h  i
1
A −1 u − A−1 u ⊗ v A−1
1+v·A u−1 A−1 (u ⊗ v)A−1
B −1 = A−1 + = A −1
− .
v · A−1 u 1 + v · A−1 u
This formula for the inverse of a rank-one update is known as the Sherman-Morrison Formula.
We now return to the problem of approximating the Jacobian of g, and efficiently obtaining
its inverse, at each iterate x(k) . We begin with an exact Jacobian, D0 = Jg (x(0) ), and use D0 to
compute the first iterate, x(1) , using Newton’s Method as follows:
d(0) = −D0−1 g(x(0) ), x(1) = x(0) + d(0) .
Then, we use the approximation
g(x1 ) − g(x0 )
g 0 (x1 ) ≈ .
x1 − x0
Generalizing this approach to a system of equations, we seek an approximation D1 to Jg (x(1) ) that
has these properties:

2
• D1 (x(1) − x(0) ) = g(x(1) ) − g(x(0) ) (the Secant Condition)

• If z · (x(1) − x(0) ) = 0, then D1 z = Jg (x(0) )z = D0 z.

It follows from previous discussion that

y0 − D0 d(0)
D1 = D0 + ⊗ d(0) ,
d(0) · d(0)
where
d(0) = x(1) − x(0) , y(0) = g(x(1) ) − g(x(0) ).
However, it can be shown (Chapter 3, Exercise 15) that y0 − D0 d(0) = g(x(1) ), which yields the
simplified formula
1
D1 = D0 + (0) (0) g(x(1) ) ⊗ d(0) .
d ·d
Once we have computed D0−1 , we can apply the Sherman-Morrison formula to obtain
 
D0−1 d(0)1·d(0) g(x(1) ) ⊗ d(0) D0−1
D1−1 = D0−1 −  
1 + d(0) · D0−1 d(0)1·d(0) g(x(1) )
D0−1 g(x(1) ) ⊗ d(0) D0−1

−1
= D0 − (0) (0)
d · d + d(0) · D0−1 g(x(1) )
(u(0) ⊗ d(0) )D0−1
= D0−1 − ,
d(0) · (d(0) + u(0) )

where u(0) = D0−1 g(x(1) ). Then, as D1 is an approximation to Jg (x(1) ), we can obtain our next
iterate x(2) as follows:
D1 d(1) = −g(x(1) ), x(2) = x(1) + d(1) .
Repeating this process, we obtain the following algorithm, which is known as Broyden’s Method:

Choose x(0)
D0 = Jg (x(0) )
d(0) = −D0−1 g(x(0) )
x(1) = x(0) + d(0)
k=0
while not converged do
u(k) = Dk−1 g(x(k+1) )
ck = d(k) · (d(k) + u(k) )
−1
Dk+1 = Dk−1 − c1k [u(k) ⊗ d(k) ]Dk−1
k =k+1

3
d(k) = −Dk−1 g(x(k) )
x(k+1) = x(k) + d(k)
end

Note that it is not necessary to compute Dk for k ≥ 1; only Dk−1 is needed. It follows that no systems
of linear equations need to be solved during an iteration; only matrix-vector multiplications are
required, thus saving an order of magnitude of computational effort during each iteration compared
to Newton’s Method.
Example We consider the system of equations g(x) = 0, where
 2
x + y2 + z2 − 3

g(x, y, z) =  x2 + y 2 − z − 1  .
x+y+z−3

We will begin with one step of Newton’s Method to solve this system of equations, with initial
guess x(0) = (x(0) , y (0) , z (0) ) = (1, 0, 1).
As computed in a previous example,
 
2x 2y 2z
Jg (x, y, z) =  2x 2y −1  .
1 1 1

Therefore, the Newton iterate x(1) is obtained by solving the system of equations

Jg (x(0) )(x(1) − x(0) ) = −g(x(0) ),

or, equivalently, D0 d(0) = −g(x(0) ) where

2x(0) 2y (0) 2z (0) x(1) − x(0)


   

D0 = Jg (x(0) ) =  2x(0) 2y (0) −1  , d(0) =  y (1) − y (0)  ,


1 1 1 z (1) − z (0)

(x(0) )2 + (y (0) )2 + (z (0) )2 − 3


 

g(x(0) ) =  (x(0) )2 + (y (0) )2 − z (0) − 1  .


x(0) + y (0) + z (0) − 3
Substituting (x(0) , y (0) , z (0) ) = (1, 0, 1) yields the system
   (1)   
2 0 2 x −1 1
 2 0 −1   y (1)  =  1  .
1 1 1 z (1) − 1 1

4
This system has the solution d(0) = ( 12 , 12 , 0) which yields x(1) = ( 32 , 12 , 1).
Now, instead of computing Jg (x(1) , we compute

1
D1 = D0 + (0) (0) g(x(1) ) ⊗ d(0)
 d · d    
2 0 2 1/2 1/2
1
=  2 0 −1  +  1/2  ⊗  1/2 
1/2
1 1 1 0 0
   
2 0 2 1/4 1/4 0
=  2 0 −1  + 2  1/4 1/4 0 
1 1 1 0 0 0
 
5/2 1/2 2
=  5/2 1/2 −1  .
1 1 1

This yields the system


   (2) 3   1 
5/2 1/2 2 x −2 −2
 5/2 1/2 −1   y (2) − 1  =  − 1  ,
2 2
1 1 1 z (2) − 1 0

which has the solution x(2) = ( 45 , 34 , 1). This happens to be the same second iterate computed by
Newton’s Method, though this is not the case for a general function g(x). 2
In the next lecture, we will learn how to apply Broyden’s Method to solve minimization problems.

Exercises
1. Chapter 3, Exercise 14

2. Chapter 3, Exercise 15

Common questions

Powered by AI

Broyden’s Method generalizes Newton’s Method by replacing the exact computation of the Jacobian matrix with an approximation that is updated iteratively. This is done using a secant condition and a rank-one update formula. The secant condition serves as a guidance for these updates, aligning the direction of approximation along the change in the function's output over subsequent iterates. Through this approach, Broyden’s Method extends the applicability of Newton's Method to scenarios where computing the Jacobian is too expensive or impractical, offering a balance between computational efficiency and convergence speed. The method effectively utilizes previous information to amend the Jacobian iteratively, maintaining performance even as the problem size increases .

In Broyden’s Method, matrix-vector multiplication plays a central role, replacing the need to solve systems of linear equations as is required in Newton’s Method for calculating each step. Instead of recalculating the Jacobian and its inverse at every step, Broyden's algorithm relies on updating an initial inverse Jacobian through matrix-vector products. These products are significantly less computationally intensive, thereby providing substantial savings in effort and computation time per iteration. This focus on matrix-vector operations allows Broyden's Method to efficiently handle larger systems where recalculating Jacobians and solving linear systems would be prohibitively costly .

Broyden's Method eliminates the need to directly compute the Jacobian matrix at each iteration by using approximate updates derived from the previous iterations' data. Instead of recalculating the Jacobian, Broyden's algorithm starts with an initial Jacobian and then applies a series of rank-one updates based on previous iterates and the associated changes in the function's value. This approach relies on the Sherman-Morrison formula to update the inverse Jacobian efficiently, which is necessary for calculating the next step in the iteration process. Consequently, the method requires only matrix-vector multiplications rather than recomputing the full Jacobian matrix, thus significantly reducing computational effort .

Newton's Method requires the evaluation of partial derivatives to construct the Jacobian matrix for each iteration, which adds significant computational expense. Additionally, solving the system of linear equations involving the Jacobian can be costly. Broyden's Method modifies Newton’s Method by using approximate partial derivatives, thereby reducing the need to repeatedly solve these costly equations. It does this by updating an approximate Jacobian using a rank-one update rather than recalculating it entirely, allowing some reuse of data from previous iterations. This change significantly reduces computational effort while maintaining efficiency by only requiring matrix-vector multiplications during each iteration .

Rank-one updates in Broyden’s Method are used to iteratively improve the approximation of the Jacobian matrix's inverse. Specifically, after the initial Jacobian is evaluated, Broyden's Method applies rank-one updates by adding the outer product of certain vectors determined by the secant condition to the current approximation. The significance of these updates is that they alter the Jacobian approximation without the computational expense of recalculating the entire matrix. In combination with the Sherman-Morrison formula, they allow for an efficient recalculation of the inverse Jacobian, maintaining accuracy by leveraging previously computed data for matrix operations during each iteration. This iterative enhancement contributes to achieving convergence efficiently while managing computational resources .

The Sherman-Morrison formula provides a way to update the inverse of a matrix that has undergone a rank-one update. In Broyden’s Method, after calculating the inverse of the initial Jacobian (or its approximation), Broyden’s algorithm calculates subsequent approximations using matrix updates that require rank-one changes. By using the Sherman-Morrison formula, we efficiently compute the inverse of the Jacobian approximation without solving a full set of linear equations for each update. This technique specifically updates the inverse matrix without requiring a complete inversion at each step, leveraging previous calculations .

To adapt Broyden’s Method for solving minimization problems, it is first critical to express the optimization problem in terms of finding the zero of the gradient (first derivatives) of the function to be minimized. Next, Broyden’s Method is applied to iteratively update the inverse Jacobian approximation for these gradients, using rank-one updates based on changes in the gradient across iterations. Initial steps include evaluating the gradient at an initial point and calculating the corresponding Jacobian, much like starting conditions in the standard application for solving nonlinear systems. By using these tailored updates, Broyden’s Method can leverage its efficiency in handling large systems to effectively minimize functions through efficient gradient-based adaptations .

The secant condition in Broyden's Method asserts that the approximate Jacobian matrix should satisfy the equation D1(x(1) - x(0)) = g(x(1)) - g(x(0)), similar to a finite difference approximation of the derivative for scalar functions. This condition ensures that the update to the Jacobian matrix is consistent with the change in the function's output over the previous iteration's step. It is crucial because it allows the method to maintain a good approximation of the function's behavior while avoiding the computational cost of exact derivative evaluation. By only requiring matrix-vector multiplications rather than full recalculations of the Jacobian, Broyden’s Method achieves greater efficiency over Newton's Method .

An example problem uses Broyden's Method to find solutions to a nonlinear system where g(x, y, z) includes equations like x^2 + y^2 + z^2 = 3. Starting with an initial guess, Broyden's Method applies an initial Newton step, then shifts to using approximate Jacobian updates. The second iterate result coincided with that of Newton's Method, yielding x(2) = (5/4, 3/4, 1). However, Broyden’s Method avoids recalculating the Jacobian for subsequent steps, using rank-one updates instead, thus saving computational costs. Though the second iterate matches, in general, for larger or complex problems, Broyden's approach reduces computational demands without sacrificing outcome precision compared to Newton’s Method, which recalculates Jacobian matrices at every step .

In Broyden’s Method, it is sufficient to update only the inverse Jacobian, Dk^{-1}, starting from the initial Jacobian inversion at k = 0, because the formulae involved in updating the inverse rely on rank-one adjustments that leverage the previously computed values. This process obviates the need to directly compute Dk as such computations are resource-intensive. By focusing only on the inverse and using efficient update strategies via the Sherman-Morrison formula, the algorithm's performance is greatly enhanced. This allows it to process iterations quickly with fewer resources, making it suitable for large-scale problems where computing the full Jacobian at each step would be computationally prohibitive .

Jim Lambers
MAT 419/519
Summer Session 2011-12
Lecture 11 Notes
These notes correspond to Section 3.4 in the text.
Broyden’s
then
Bx = (A + u ⊗v)x = Ax + uvT x = u + u(v · x) = (1 + v · x)u,
which yields
B−1u =
1
1 + v · A−1uA−1u.
On the other hand,
• D1(x(1) −x(0)) = g(x(1)) −g(x(0)) (the Secant Condition)
• If z · (x(1) −x(0)) = 0, then D1z = Jg(x(0))z = D0z.
It follows
d(k) = −D−1
k g(x(k))
x(k+1) = x(k) + d(k)
end
Note that it is not necessary to compute Dk for k ≥1; only D−1
k
is needed. It
This system has the solution d(0) = ( 1
2, 1
2, 0) which yields x(1) = ( 3
2, 1
2, 1).
Now, instead of computing Jg(x(1), we

You might also like