The Bunch-Parlett Decomposition
The classical LDLT decomposition of a symmetric matrix A is defined by
A=LD LT

with a lower triangular matrix L with unit diagonal and a diagonal matrix D. This can be computed by the following compact algorithm:
i=1,,n dii = aii - k=1 i-1( lik )2 dkk ,       lii :=1 j=i+1,,n: lji = ( aji - k=1 i-1 lik ljk dkk )/ dii

For a positive definite matrix ( A is positive definite if and only if all the dii are strictly positive) this is a perfectly backward stable algorithm. It is associated with the Cholesky decomposition: the so called Cholesky factror is simply LD1/2 . As long as none of the dii becomes zero this can be performed also for indefinite matrices, but it is numerically unstable. One never should use it in this situation. The alternative is the Bunch-Parlett decomposition, which is stable also in the indefinite case and which discerns from the above twofold: the D-part is now block diagonal with 1×1 and 2×2 blocks, and the introduction of a symmetric permutation is indispensable: it reads
PT AP=LD LT

Here P denotes the permutation matrix. We describe here the version with complete pivoting. The total algorithm consists of up to n-1 steps which themselves decompose into two parts. The first part searches for the pivot: this is the element of largest absolute value in the current right lower submatrix of dimension (n-i+1)×(n-i+1). If this occurs on the diagonal, it becomes a 1×1 block in D and is permuted to the position (i,i) in the current matrix. Then a normal Gaussian elimination step is performed, with the multipliers stored in column i and i is increased by one.
If however the element of largest absolute value appears in position (j,k) (with j,ki and k>j) then the submatrix

( aj,j aj,k ak,j ak,k )

becomes a 2×2 block in D and the rows i and j and i+1 and k are swapped and equally the columns, of course. Hence we have now to perform a block elimination with a 2×2 block. This uses the formula

( B1,1 B1,2 B2,1 B2,2 )=( IO B2,1 B1,1 -1 I )( B1,1 O O C2,2 )( I B1,1 -1 B1,2 OI )

with
C2,2 = B2,2 - B2,1 B1,1 -1 B1,2 .

The two columns of the left factor go into L and the new remaining submatrix to be processed is C2,2 , also known as the Schurcomplement. In this case i is increased by 2.
Finally, from Sylvesters theorem of inertia, the matrix A has as many negative eigenvalues as D has 2×2 blocks and negative 1×1 blocks, since each 2×2 block has exactly one positive and one negative eigenvalue by construction. This decomposition is used here in a twofold manner: by shifting all eigenvalues of D above some level γ>0 by addition of a multiple of the identity matrix we construct a positive definite regularization of the Hessian,
L(D+μI) LT = H ~

and a strongly gradient related direction of descent d by
H ~ d=-f(x)

and a direction of negative curvature z from
L PT z=y

where y is composed from the eigenvectors corresponding to negative eigenvalues of D. We have namely
zT Az= yT Dy.

We normalize z such that zT f(x)0 and use z as a direction of descent if this promises better progress than d.


File translated from TEX by TTM Unregistered, version 4.03.
On 16 Jun 2016, 18:51.