A problem of updating Cholesky factorization was treated in [1], [2] and [3]. Here algorithms taken from those works are described. These algorithms are for computing a factorization ˜A=˜L˜LT where ˜A is a matrix received of the matrix A=LLT after a row and the symmetric column were added or deleted from A.
Let A∈Rn×n is a symmetric positive definite matrix. Applying Cholesky method to A yields the factorization A=LLT where L is a lower triangular matrix with positive diagonal elements.
Suppose ˜A is a positive definite matrix created by adding a row and the symmetric column to A:
˜A=(AddTγ) ,dT∈Rn
Then its Cholesky factorization is [2]:
˜L=(LeTα) ,
where
e=L−1d ,
and
α=√τ ,τ=γ−eTe,τ>0.
If τ≤0 then ˜A is not positive definite.
Now assume ˜A is obtained of A by deleting the rth row and column from A. Matrix ˜A is the positive definite matrix (as any principal square submatrix of the positive definite matrix). It is shown in [1],[3] how to get ˜L from L in such case. Let us partition A and L along the rth row and column:
A=(A11a1rA12aT1rarraT2rA21a2rA22) ,L=(L11lT1rlrrL21l2rL22) .
Then ˜A can be written as
˜A=(A11A12A21A22) .
By deleting the rth row from L we get the matrix
H=(L11L21l2rL22)
with the property that HHT=˜A. Factor ˜L can be received from H by applying Givens rotations to the matrix elements hr,r+1,hr+1,r+2, …,hn−1,n and deleting the last column of the obtained matrix ˜H:
˜H=HR=(L11L21˜L220)=(˜L 0) ,
where R=R0R1…Rn−1−r is the matrix of Givens rotations, L11 and ˜L22− lower triangle matrices, and
˜L=(L11L21˜L22),˜H˜HT=HRRTHT=HHT=˜A,˜H˜HT=˜L˜LT,˜L˜LT=˜A.
Orthogonal matrix Rt (0≤t≤n−1−r),Rt∈Rn×n which defines the Givens rotation annulating (r+t,r+t+1)th element of the HkR0…Rt−1 matrix is defined as
Rt=(1…00…0⋮…………⋮0…cs…00…−sc…0⋮…………⋮0…00…1) .
where entries (r+t,r+t) and (r+t+1,r+t+1) equal c, (r+t,r+t+1) entry equals s, and (r+t+1,r+t) entry equals −s, here c2+s2=1. Let's ˜lt−1ij− coefficients of matrix HkR0…Rt−1 (˜l−1ij− coefficients of Hk) and
c=˜lt−1r+t,r+t√(˜lt−1r+t,r+t)2+(˜lt−1r+t,r+t+1)2 ,s=˜lt−1r+t,r+t+1√(˜lt−1r+t,r+t)2+(˜lt−1r+t,r+t+1)2 ,
Then matrix HkR0…Rt will differ from HkR0…Rt−1 with entries of (r+t) и (r+t+1) columns only, thereby
˜lti,r+t=˜lt−1i,r+t=0, ˜lti,r+t+1=˜lt−1i,r+t+1=0,1≤i≤r+t−1,˜lti,r+t=c˜lt−1i,r+t+s˜lt−1i,r+t+1,˜lti,r+t+1=−s˜lt−1i,r+t+c˜lt−1i,r+t+1r+t≤i≤n−1.
Where
˜ltr+t,r+t=√(˜lt−1r+t,r+t)2+(˜lt−1r+t,r+t+1)2 ,˜ltr+t,r+t+1=0.
Also, coefficient ˜ltr+t,r+t is a nonnegative one.
In order to avoid unnecessary overflow or underflow during computation of c and s, it was recommended [3] to calculate value of the square root w=√x2+y2 as folows:
v=max{|x|,|y|} ,u=min{|x|,|y|} ,w={v√1+(uv)2 ,v≠00 ,v=0 .
Applying the this technique to Cholesky factorization allows significally reduce the complexity of calculations. So, in case of adding a row and the symmetric column to the original matrix it will be necessary to carry out about n2 flops instead of about (n+1)33 flops for the direct calculation of the new Cholesky factor. In the case of deleting a row and the symmetric column from the original matrix, the new Cholesky factor can be obtained with about 3(n−r)2 flops (the worst case requires about 3(n−1)2 operations) instead of about (n−1)33 flops required for its direct calculation.
References
[1] T. F. Coleman, L. A. Hulbert, A direct active set algorithm for large sparse quadratic programs with simple bounds, Mathematical Programming, 45, 1989.
[2] J. A. George and J. W-H. Liu, Computer Solution of Large Sparse Positive Definite Systems, Prentice-Hall, 1981.
[3] C. L. Lawson, R. J. Hanson, Solving least squares problems, SIAM, 1995.
Let A∈Rn×n is a symmetric positive definite matrix. Applying Cholesky method to A yields the factorization A=LLT where L is a lower triangular matrix with positive diagonal elements.
Suppose ˜A is a positive definite matrix created by adding a row and the symmetric column to A:
˜A=(AddTγ) ,dT∈Rn
Then its Cholesky factorization is [2]:
˜L=(LeTα) ,
where
e=L−1d ,
and
α=√τ ,τ=γ−eTe,τ>0.
If τ≤0 then ˜A is not positive definite.
Now assume ˜A is obtained of A by deleting the rth row and column from A. Matrix ˜A is the positive definite matrix (as any principal square submatrix of the positive definite matrix). It is shown in [1],[3] how to get ˜L from L in such case. Let us partition A and L along the rth row and column:
A=(A11a1rA12aT1rarraT2rA21a2rA22) ,L=(L11lT1rlrrL21l2rL22) .
Then ˜A can be written as
˜A=(A11A12A21A22) .
By deleting the rth row from L we get the matrix
H=(L11L21l2rL22)
with the property that HHT=˜A. Factor ˜L can be received from H by applying Givens rotations to the matrix elements hr,r+1,hr+1,r+2, …,hn−1,n and deleting the last column of the obtained matrix ˜H:
˜H=HR=(L11L21˜L220)=(˜L 0) ,
where R=R0R1…Rn−1−r is the matrix of Givens rotations, L11 and ˜L22− lower triangle matrices, and
˜L=(L11L21˜L22),˜H˜HT=HRRTHT=HHT=˜A,˜H˜HT=˜L˜LT,˜L˜LT=˜A.
Orthogonal matrix Rt (0≤t≤n−1−r),Rt∈Rn×n which defines the Givens rotation annulating (r+t,r+t+1)th element of the HkR0…Rt−1 matrix is defined as
Rt=(1…00…0⋮…………⋮0…cs…00…−sc…0⋮…………⋮0…00…1) .
where entries (r+t,r+t) and (r+t+1,r+t+1) equal c, (r+t,r+t+1) entry equals s, and (r+t+1,r+t) entry equals −s, here c2+s2=1. Let's ˜lt−1ij− coefficients of matrix HkR0…Rt−1 (˜l−1ij− coefficients of Hk) and
c=˜lt−1r+t,r+t√(˜lt−1r+t,r+t)2+(˜lt−1r+t,r+t+1)2 ,s=˜lt−1r+t,r+t+1√(˜lt−1r+t,r+t)2+(˜lt−1r+t,r+t+1)2 ,
Then matrix HkR0…Rt will differ from HkR0…Rt−1 with entries of (r+t) и (r+t+1) columns only, thereby
˜lti,r+t=˜lt−1i,r+t=0, ˜lti,r+t+1=˜lt−1i,r+t+1=0,1≤i≤r+t−1,˜lti,r+t=c˜lt−1i,r+t+s˜lt−1i,r+t+1,˜lti,r+t+1=−s˜lt−1i,r+t+c˜lt−1i,r+t+1r+t≤i≤n−1.
Where
˜ltr+t,r+t=√(˜lt−1r+t,r+t)2+(˜lt−1r+t,r+t+1)2 ,˜ltr+t,r+t+1=0.
Also, coefficient ˜ltr+t,r+t is a nonnegative one.
In order to avoid unnecessary overflow or underflow during computation of c and s, it was recommended [3] to calculate value of the square root w=√x2+y2 as folows:
v=max{|x|,|y|} ,u=min{|x|,|y|} ,w={v√1+(uv)2 ,v≠00 ,v=0 .
Applying the this technique to Cholesky factorization allows significally reduce the complexity of calculations. So, in case of adding a row and the symmetric column to the original matrix it will be necessary to carry out about n2 flops instead of about (n+1)33 flops for the direct calculation of the new Cholesky factor. In the case of deleting a row and the symmetric column from the original matrix, the new Cholesky factor can be obtained with about 3(n−r)2 flops (the worst case requires about 3(n−1)2 operations) instead of about (n−1)33 flops required for its direct calculation.
References
[1] T. F. Coleman, L. A. Hulbert, A direct active set algorithm for large sparse quadratic programs with simple bounds, Mathematical Programming, 45, 1989.
[2] J. A. George and J. W-H. Liu, Computer Solution of Large Sparse Positive Definite Systems, Prentice-Hall, 1981.
[3] C. L. Lawson, R. J. Hanson, Solving least squares problems, SIAM, 1995.
No comments:
Post a Comment