| qrSVD {bootSVD} | R Documentation |
Wrapper for svd, which uses random preconditioning to restart when svd fails to converge
Description
In order to generate the SVD of the matrix x, qrSVD calls genQ to generate a random orthonormal matrix, and uses this random matrix to precondition x. The svd of the preconditioned matrix is calculated, and adjusted to account for the preconditioning process in order to find svd(x).
Usage
qrSVD(x, lim_attempts = 50, warning_type = "silent",
warning_file = "qrSVD_warnings.txt", ...)
Arguments
x |
a matrix to calculate the svd for |
lim_attempts |
the number of tries to randomly precondition x. We generally find that one preconditioning attempt is sufficient. |
warning_type |
controls whether the user should be told if an orthogonal preconditioning matrix is required, or if |
warning_file |
gives the location of a file to print warnings to, if |
... |
parameters passed to |
Value
Solves svd(x)=UDV', where U is an matrix containing the left singular vectors of x, D is a diagonal matrix containing the singular values of x; and V is a matrix containing the right singular vectors of x (output follows the same notation convention as the svd function).
qrSVD will attempt the standard svd function before preconditioning the matrix x.
See Also
Examples
x <-matrix(rnorm(3*5),nrow=3,ncol=5)
svdx <- qrSVD(x)
svdx