Fast Truncated Singular Value Decomposition and Principal Components Analysis for Large Dense and Sparse Matrices