# Broyden's Method

This module demonstrates Broyden's method for solving a system of
nonlinear equations *f* (*x*, *y*) =
**0** in two dimensions. Given an approximate solution,
Broyden's method produces a new approximate solution based on
approximate local linearization about the current point using an
approximate Jacobian matrix, which results in a linear system to be
solved for the step to the new approximate solution. This process is
repeated until convergence, which is usually quite rapid.

The user selects a problem either by choosing a preset example or
typing in desired functions *f*_{1}(*x*,
*y*) and *f*_{2}(*x*,
*y*). The user can also select a starting point
(*x*, *y*) or accept a default value. The
successive steps of Broyden's method are then carried out sequentially
by repeatedly clicking on NEXT or on the currently highlighted step.
The current point (*x*, *y*) is indicated by a
bullet on the plot, and all values are also shown numerically in the
table below. At each iteration of Broyden's method, the step
*s* to the next approximate solution is given by the
solution to the approximating linear system *B*
*s* = − *f*, where *B*
is an approximation to the Jacobian matrix. The approximate Jacobian
*B* is updated at the new point based on the change in
function values, and the process is then repeated. If the starting
guess is close enough to the true solution, then Broyden's method
converges to it, typically with a superlinear convergence rate.

**Reference:** Michael T. Heath, *Scientific Computing,
An Introductory Survey*, 2nd edition, McGraw-Hill, New York,
2002. See Section 5.6.3, especially Algorithm 5.5 and Example 5.16.

**Developers:** Jeffrey Naisbitt and Michael Heath