oracular (3) cbdsrq.3.gz

Provided by: manpages-zh_1.6.4.0-1_all bug

NAME

       CBDSQR  -  計算一個實  (real) NxN 上/下 (upper/lower) 三角 (bidiagonal) 矩陣 B 的單值分解 (singular value
       decomposition (SVD))

總覽 SYNOPSIS

       SUBROUTINE CBDSQR( UPLO, N, NCVT, NRU, NCC, D, E, VT, LDVT, U, LDU, C, LDC, RWORK, INFO )

           CHARACTER      UPLO

           INTEGER        INFO, LDC, LDU, LDVT, N, NCC, NCVT, NRU

           REAL           D( * ), E( * ), RWORK( * )

           COMPLEX        C( LDC, * ), U( LDU, * ), VT( LDVT, * )

PURPOSE

       CBDSQR computes the singular value decomposition (SVD) of a  real  N-by-N  (upper  or  lower)  bidiagonal
       matrix  B: B = Q * S * P' (P' denotes the transpose of P), where S is a diagonal matrix with non-negative
       diagonal elements (the singular values of B), and Q and P are orthogonal matrices.

       The routine computes S, and optionally computes U * Q, P' * VT, or  Q'  *  C,  for  given  complex  input
       matrices U, VT, and C.

       See  "Computing  Small Singular Values of Bidiagonal Matrices With Guaranteed High Relative Accuracy," by
       J. Demmel and W. Kahan, LAPACK Working Note #3 (or SIAM J. Sci. Statist. Comput.  vol.  11,  no.  5,  pp.
       873-912, Sept 1990) and
       "Accurate  singular  values  and  differential  qd  algorithms," by B. Parlett and V. Fernando, Technical
       Report CPAM-554, Mathematics Department, University of California at Berkeley, July 1992 for  a  detailed
       description of the algorithm.

ARGUMENTS

       UPLO    (input) CHARACTER*1
               = 'U':  B is upper bidiagonal;
               = 'L':  B is lower bidiagonal.

       N       (input) INTEGER
               The order of the matrix B.  N >= 0.

       NCVT    (input) INTEGER
               The number of columns of the matrix VT. NCVT >= 0.

       NRU     (input) INTEGER
               The number of rows of the matrix U. NRU >= 0.

       NCC     (input) INTEGER
               The number of columns of the matrix C. NCC >= 0.

       D       (input/output) REAL array, dimension (N)
               On  entry,  the n diagonal elements of the bidiagonal matrix B.  On exit, if INFO=0, the singular
               values of B in decreasing order.

       E       (input/output) REAL array, dimension (N)
               On entry, the elements of E contain the offdiagonal elements of of the  bidiagonal  matrix  whose
               SVD  is  desired.  On normal exit (INFO = 0), E is destroyed.  If the algorithm does not converge
               (INFO > 0), D and E will contain the diagonal and superdiagonal elements of a  bidiagonal  matrix
               orthogonally equivalent to the one given as input. E(N) is used for workspace.

       VT      (input/output) COMPLEX array, dimension (LDVT, NCVT)
               On  entry,  an N-by-NCVT matrix VT.  On exit, VT is overwritten by P' * VT.  VT is not referenced
               if NCVT = 0.

       LDVT    (input) INTEGER
               The leading dimension of the array VT.  LDVT >= max(1,N) if NCVT > 0; LDVT >= 1 if NCVT = 0.

       U       (input/output) COMPLEX array, dimension (LDU, N)
               On entry, an NRU-by-N matrix U.  On exit, U is overwritten by U * Q.  U is not referenced if  NRU
               = 0.

       LDU     (input) INTEGER
               The leading dimension of the array U.  LDU >= max(1,NRU).

       C       (input/output) COMPLEX array, dimension (LDC, NCC)
               On entry, an N-by-NCC matrix C.  On exit, C is overwritten by Q' * C.  C is not referenced if NCC
               = 0.

       LDC     (input) INTEGER
               The leading dimension of the array C.  LDC >= max(1,N) if NCC > 0; LDC >=1 if NCC = 0.

       RWORK   (workspace) REAL array, dimension (4*N)

       INFO    (output) INTEGER
               = 0:  successful exit
               < 0:  If INFO = -i, the i-th argument had an illegal value
               > 0:  the algorithm did not converge; D and E contain the elements of a bidiagonal  matrix  which
               is  orthogonally  similar to the input matrix B;  if INFO = i, i elements of E have not converged
               to zero.

PARAMETERS

       TOLMUL  REAL, default = max(10,min(100,EPS**(-1/8)))
               TOLMUL controls the convergence criterion of the QR loop.  If it is positive, TOLMUL*EPS  is  the
               desired   relative   precision   in   the   computed   singular   values.   If  it  is  negative,
               abs(TOLMUL*EPS*sigma_max) is the desired  absolute  accuracy  in  the  computed  singular  values
               (corresponds  to  relative  accuracy  abs(TOLMUL*EPS) in the largest singular value.  abs(TOLMUL)
               should be between 1 and 1/EPS, and preferably between 10 (for fast convergence) and  .1/EPS  (for
               there  to  be some accuracy in the results).  Default is to lose at either one eighth or 2 of the
               available decimal digits in each computed singular value (whichever is smaller).

       MAXITR  INTEGER, default = 6
               MAXITR controls the maximum number of passes  of  the  algorithm  through  its  inner  loop.  The
               algorithms  stops  (and  so  fails  to  converge)  if the number of passes through the inner loop
               exceeds MAXITR*N**2.

[中文版維護人]

       姓名 <email>

[中文版最新更新]

       yyyy.mm.dd

《中國linux論壇man手冊頁翻譯計劃》:

       http://cmpp.linuxforum.net

       本頁面中文版由中文 man 手冊頁計劃提供。
       中文 man 手冊頁計劃:https://github.com/man-pages-zh/manpages-zh