scalation.linalgebra

SVD

class SVD extends SVDecomp

The SVD class is used to solve Singular Value Decomposition for bidiagonal matrices.

It computes the singular values and, optionally, the right and/or left singular vectors from the singular value decomposition (SVD) of a real n-by-n (upper) bidiagonal matrix B using the implicit zero-shift QR algorithm. The SVD of B has the form

B = Q * S * P.t

where S is the diagonal matrix of singular values, Q is an orthogonal matrix of left singular vectors, and P is an orthogonal matrix of right singular vectors. If left singular vectors are requested, this subroutine actually returns U*Q instead of Q, and, if right singular vectors are requested, this subroutine returns P.t * VT instead of P.T, for given real input matrices U and VT. When U and VT are the orthogonal matrices that reduce a general matrix A to bidiagonal form: A = U*B*VT, as computed by DGEBRD, then

A = (U*Q) * S * (P.t*VT)

is the SVD of the general matrix A. A positve tolerance (TOL) gives relative accurracy; for absolute accurracy negate it.

See also

LAPACK SUBROUTINE DBDSQR (UPLO, N, NCVT, NRU, NCC, D, E, VT, LDVT, U, LDU, C, LDC, WORK, INFO)

fortranwiki.org/fortran/show/svd

"Accurate singular values and differential qd algorithms," B. Parlett and V. Fernando, Technical Report CPAM-554, Mathematics Department, University of California at Berkeley, July 1992

"Computing Small Singular Values of Bidiagonal Matrices With Guaranteed High Relative Accuracy," J. Demmel and W. Kahan, LAPACK Working Note #3 (or SIAM J. Sci. Statist. Comput. 11:5, pp. 873-912, Sept 1990)

Linear Supertypes
SVDecomp, AnyRef, Any
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. SVD
  2. SVDecomp
  3. AnyRef
  4. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Instance Constructors

  1. new SVD(b: BidMatrixD, vt: MatrixD = new MatrixD (0, 0), u: MatrixD = new MatrixD (0, 0))

    vt

    the right orthogonal matrix from b = bidiagonalize (a)

    u

    the left orthogonal matrix from b = bidiagonalize (a)

Value Members

  1. final def !=(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  5. def calcThreshold(): Double

    Calculate the desired threshold for setting elements to zero.

  6. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  7. def countNonzeroElements(): Int

    Count the number of nonzero elemennts in the superdiagonal.

    Count the number of nonzero elemennts in the superdiagonal. Call if the maximum number of iterations exceeded, failure to converge

  8. def deflate(): VectorD

    Deflate the bidiagonal matrix by iteratively turning superdiagonal elements to zero.

    Deflate the bidiagonal matrix by iteratively turning superdiagonal elements to zero. Then return the vector of singular values (i.e., the main diagonal).

    Definition Classes
    SVDSVDecomp
  9. def deflateV(): (VectorD, MatrixD, MatrixD)

    Deflate the bidiagonal matrix by iteratively turning superdiagonal elements to zero.

    Deflate the bidiagonal matrix by iteratively turning superdiagonal elements to zero. Then return the vector of singular values and the matrices of singular vectors.

    Definition Classes
    SVDSVDecomp
  10. def deflate_2by2(ll: Int): Unit

    Deflate 2 by 2 block, handle separately.

    Deflate 2 by 2 block, handle separately.

    ll

    the lower index

  11. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  12. def equals(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  13. def finalize(): Unit

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  14. final def getClass(): Class[_]

    Definition Classes
    AnyRef → Any
  15. def hashCode(): Int

    Definition Classes
    AnyRef → Any
  16. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  17. def max3(x: Double, y: Double, z: Double): Double

  18. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  19. final def notify(): Unit

    Definition Classes
    AnyRef
  20. final def notifyAll(): Unit

    Definition Classes
    AnyRef
  21. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  22. def toString(): String

    Definition Classes
    AnyRef → Any
  23. final def wait(): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  24. final def wait(arg0: Long, arg1: Int): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  25. final def wait(arg0: Long): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from SVDecomp

Inherited from AnyRef

Inherited from Any

Ungrouped