  In many applications, it is of interest to approximate data, given by mxn
matrix A, by a matrix B of at most rank k, which is much smaller than m and n.
The best approximation is given by singular value decomposition, which is too
time consuming for very large m and n. We present here a Monte Carlo algorithm
for iteratively computing a k-rank approximation to the data consisting of mxn
matrix A. Each iteration involves the reading of O(k) of columns or rows of A.
The complexity of our algorithm is O(kmn). Our algorithm, distinguished from
other known algorithms, guarantees that each iteration is a better k-rank
approximation than the previous iteration. We believe that this algorithm will
have many applications in data mining, data storage and data analysis.
