naginterfaces.library.lapackeig.dbdsvdx¶
- naginterfaces.library.lapackeig.dbdsvdx(uplo, jobz, erange, d, e, vl, vu, il, iu)[source]¶
dbdsvdx
computes all or selected singular values and, optionally, the corresponding left and right singular vectors of a real (upper or lower) bidiagonal matrix .For full information please refer to the NAG Library document for f08mb
https://support.nag.com/numeric/nl/nagdoc_30.3/flhtml/f08/f08mbf.html
- Parameters
- uplostr, length 1
Indicates whether is upper or lower bidiagonal.
is upper bidiagonal.
is lower bidiagonal.
- jobzstr, length 1
Indicates whether singular vectors are computed.
Only singular values are computed.
Singular values and singular vectors are computed.
- erangestr, length 1
Indicates which singular values should be returned.
All singular values will be found.
All singular values in the half-open interval will be found.
The th through th singular values will be found.
- dfloat, array-like, shape
The diagonal elements of the bidiagonal matrix .
- efloat, array-like, shape
The off-diagonal elements of the bidiagonal matrix .
- vlfloat
If , the lower bound of the interval to be searched for singular values.
If or , is not referenced.
- vufloat
If , the upper bound of the interval to be searched for singular values.
If or , is not referenced.
- ilint
If , and specify the indices (in ascending order) of the smallest and largest singular values to be returned, respectively.
If or , and are not referenced.
- iuint
If , and specify the indices (in ascending order) of the smallest and largest singular values to be returned, respectively.
If or , and are not referenced.
- Returns
- nsint
The total number of singular values found. .
If , .
If , .
- sfloat, ndarray, shape
The first elements contain the selected singular values in ascending order.
- zfloat, ndarray, shape
If , then if the first columns of contain the singular vectors of the matrix corresponding to the selected singular values, with in rows to and in rows to .
- Raises
- NagValueError
- (errno )
On entry, error in parameter .
Constraint: or .
- (errno )
On entry, error in parameter .
Constraint: or .
- (errno )
On entry, error in parameter .
Constraint: , or .
- (errno )
On entry, error in parameter .
Constraint: .
- (errno )
On entry, error in parameter .
Constraint: .
- (errno )
On entry, error in parameter .
Constraint: .
- (errno )
On entry, error in parameter .
- (errno )
On entry, error in parameter .
- (errno )
The algorithm failed to converge; eigenvectors of the associated eigenproblem did not converge. Their indices are stored in array .
- Notes
dbdsvdx
computes the singular value decomposition (SVD) of a real (upper or lower) bidiagonal matrix aswhere is a diagonal matrix with non-negative diagonal elements (the singular values of ), and and are orthogonal matrices. The columns of and are the left and right singular vectors of , respectively.
Given an upper bidiagonal matrix with diagonal and superdiagonal ,
dbdsvdx
computes the singular value decomposition of through the eigenvalues and eigenvectors of the tridiagonal matrixIf is a singular triplet of with , then and , , are eigenpairs of , with , and .
Given a matrix, you can either
compute and change signs so that the singular values (and corresponding vectors) are already in descending order (as in
dgesvd()
) orcompute and reorder the values (and corresponding vectors).
dbdsvdx
implements (i) by callingdstevx()
(bisection plus inverse iteration, to be replaced with a version of the Multiple Relative Robust Representation algorithm. (See Williams and Lang (2013).)Alternative to computing all singular values of , a selected set can be computed. The set is either those singular values lying in a given interval, , or those whose index (counting from largest to smallest in magnitude) lies in a given range . In these cases, the corresponding left and right singular vectors can optionally be computed.
- References
Anderson, E, Bai, Z, Bischof, C, Blackford, S, Demmel, J, Dongarra, J J, Du Croz, J J, Greenbaum, A, Hammarling, S, McKenney, A and Sorensen, D, 1999, LAPACK Users’ Guide, (3rd Edition), SIAM, Philadelphia, https://www.netlib.org/lapack/lug
Williams, P and Lang, B, 2013, A framework for the Algorithm: theory and implementation, SIAM J. Sci. Comput. (35), 740–766