Greville's Method for Preconditioning Least Squares ... - Projects
Greville's Method for Preconditioning Least Squares ... - Projects
Greville's Method for Preconditioning Least Squares ... - Projects
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
18<br />
10. f i = ‖u‖ 2 2<br />
11. v i = u<br />
12. else<br />
13. f i = ‖k i ‖ 2 2 + 1<br />
14. v i = (A † ∑i−1<br />
1<br />
i−1 )T k i = v p(e p − k p) T k i<br />
f p<br />
p=1<br />
15. end if<br />
16. end <strong>for</strong><br />
17. K = [k 1 , . . . , k n], F = Diag {f 1 , . . . , f n}, V = [v 1 , . . . , v n].<br />
In Algorithm 2, all the columns k j , j = i, . . . , n are updated in one outer loop. In<br />
Algorithm 5, all the updates <strong>for</strong> each k i column are finished at a time. This left-looking<br />
approach is suggested in [1,5]. From [1], a left-looking version is sometimes more robust<br />
and efficient. In Section 8 our preconditioners are computed by Algorithm 5.<br />
In the next section, we will use Algorithm 5 as our preconditioning algorithm.<br />
Since we cannot control the sparsity of V , and V can be very dense, we try not to<br />
store V . Note that when column a j is recognized as a linearly independent column,<br />
the corresponding column becomes v j = A(e j − k j ). Hence, we do not have to store<br />
v j . When we need v j in the 4th line in Algorithm 5, we can compte θ = a T i A(e j − k j ),<br />
where a T i A is used <strong>for</strong> i − 1 times and discarded. For the v j corresponding to a linearly<br />
dependent column, we need to store it.<br />
8 Numerical Examples<br />
In this section, we use matrices from the Florida University Sparse Matrices Collection<br />
[11] to test our algorithms, where zero rows are omitted and if the original matrix<br />
has more columns than rows we use its transpose. All computations were run on a<br />
Dell Precision 690, where the CPU is 3 GHz and the memory is 16 GB, and the<br />
programming language and compiling environment was GNU C/C++ 3.4.3 in Redhat<br />
Linux. Detailed in<strong>for</strong>mation of the matrices is given in Table 1.