next up previous
Next: A secant update for Up: Globalizing Newton's method: Descent Previous: Introduction

A secant update for the Jacobian

In solving F(x)=0, where $F:{\bf {\rm R}}^n\rightarrow{\bf {\rm R}}^n$, one uses x(k), F(x(k)), and J(x(k)), or an approximation to it, to produce x(k+1). I assume that I have a nonsingular matrix Ak approximating J(x(k)) and I wish to produce an approximation Ak+1 to J(x(k+1)). Since

\begin{displaymath}F(x^{(k)})\doteq F(x^{(k+1)})+J(x^{(k+1)})(x^{(k)}-x^{(k+1)})
\end{displaymath}

should hold, the secant equation will be

 
Ak+1s(k)=y(k), (2)

where

\begin{displaymath}s^{(k)}=x^{(k+1)}-x^{(k)},\ y^{(k)}=F(x^{(k+1)})-F(x^{(k)}).
\end{displaymath}

Since I have new information only in the direction s(k), I require that Ak and Ak+1 agree on all vectors orthogonal to s(k):

 \begin{displaymath}
p\cdot s^{(k)}=0\ \Rightarrow\ A_{k+1}p=A_kp.
\end{displaymath} (3)

I now wish to use (2) and (3) to choose Ak+1.

Condition (2) implies that the matrix Ak+1-Ak has a null space of dimension n-1 (there are n-1 independent vectors orthogonal to s(k)). Therefore, the Fundamental Theorem of Linear Algebra2 implies that the rank of Ak+1-Akmust be 1. Therefore, every column of Ak+1-Ak must be a multiple of a common vector u:

\begin{displaymath}A_{k+1}-A_k=\left[v_1u\vert v_2u\vert\cdots\vert v_nu\right].
\end{displaymath}

The matrix on the right can be written as uvT, where u and v are vectors, regarded as $n\times 1$ matrices. The reader should verify the following fundamental formula:

\begin{displaymath}uv^Tx=(v\cdot x)u\ \mbox{for all}\x\in{\bf {\rm R}}^n.
\end{displaymath}

Thus Ak+1 is to be chosen as a rank-one update of Ak:

 
Ak+1=Ak+uvT. (4)

I can now determine u and v. Conditions (3) and (4) imply that

\begin{displaymath}(uv^T)p=0\ \mbox{for all}\p\ \mbox{such that}\ p\cdot s^{(k)}=0,
\end{displaymath}

or, equivalently,

\begin{displaymath}(v\cdot p)u=0\ \mbox{for all}\p\ \mbox{such that}\ p\cdot s^{(k)}=0.
\end{displaymath}

This implies that

\begin{displaymath}v\cdot p=0\ \mbox{for all}\p\ \mbox{such that}\ p\cdot s^{(k)}=0.
\end{displaymath}

But the only vector v satisfying this condition is s(k) itself (or a multiple of it). Therefore, I take v=s(k) and use (2) to determine u:

\begin{eqnarray*}A_{k+1}s^{(k)}=y^{(k)}&\Rightarrow&A_ks^{(k)}+(s^{(k)}\cdot s^{...
...
&\Rightarrow&u=\frac{y^{(k)}-A_ks^{(k)}}{s^{(k)}\cdot s^{(k)}}.
\end{eqnarray*}


Therefore,

 \begin{displaymath}
A_{k+1}=A_k+\frac{\left(y^{(k)}-A_ks^{(k)}\right)(s^{(k)})^T}{s^{(k)}\cdot s^{(k)}}.
\end{displaymath} (5)

Equation (5) is referred to as Broyden's update.

Normally when using Broyden's update, the initial Jacobian estimate is taken to be J(x(0)) or a finite-difference estimate of it.3 It can be shown that, under certain conditions, the local convergence of Broyden's method for solving F(x)=0 is superlinear. This is not as fast as Newton's method, which converges quadratically; however, since Broyden's method can use much less time per iteration by avoiding the computation of J(x(k)), it is more efficient than Newton's method on some problems.

I will give more details about Broyden's method for solving F(x)=0later.


next up previous
Next: A secant update for Up: Globalizing Newton's method: Descent Previous: Introduction
Mark S. Gockenbach
2003-02-17