qrSVD {bootSVD} | R Documentation |
svd
, which uses random preconditioning to restart when svd fails to convergeIn 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)
.
qrSVD(x, lim_attempts = 50, warning_type = "silent", warning_file = "qrSVD_warnings.txt", ...)
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 |
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.
x <-matrix(rnorm(3*5),nrow=3,ncol=5) svdx <- qrSVD(x) svdx