Previous: invit Up: ../eispas.html Next: ortbak


MINFIT(NM,M,N,A,W,IP,B,IERR,RV1)

       SUBROUTINE MINFIT(NM,M,N,A,W,IP,B,IERR,RV1)
 C
       INTEGER I,J,K,L,M,N,II,IP,I1,KK,K1,LL,L1,M1,NM,ITS,IERR
       REAL A(NM,N),W(N),B(NM,IP),RV1(N)
       REAL C,F,G,H,S,X,Y,Z,TST1,TST2,SCALE,PYTHAG
 C
 C     THIS SUBROUTINE IS A TRANSLATION OF THE ALGOL PROCEDURE MINFIT,
 C     NUM. MATH. 14, 403-420(1970) BY GOLUB AND REINSCH.
 C     HANDBOOK FOR AUTO. COMP., VOL II-LINEAR ALGEBRA, 134-151(1971).
 C
 C     THIS SUBROUTINE DETERMINES, TOWARDS THE SOLUTION OF THE LINEAR
 C                                                        T
 C     SYSTEM AX=B, THE SINGULAR VALUE DECOMPOSITION A=USV  OF A REAL
 C                                         T
 C     M BY N RECTANGULAR MATRIX, FORMING U B RATHER THAN U.  HOUSEHOLDER
 C     BIDIAGONALIZATION AND A VARIANT OF THE QR ALGORITHM ARE USED.
 C
 C     ON INPUT
 C
 C        NM MUST BE SET TO THE ROW DIMENSION OF TWO-DIMENSIONAL
 C          ARRAY PARAMETERS AS DECLARED IN THE CALLING PROGRAM
 C          DIMENSION STATEMENT.  NOTE THAT NM MUST BE AT LEAST
 C          AS LARGE AS THE MAXIMUM OF M AND N.
 C
 C        M IS THE NUMBER OF ROWS OF A AND B.
 C
 C        N IS THE NUMBER OF COLUMNS OF A AND THE ORDER OF V.
 C
 C        A CONTAINS THE RECTANGULAR COEFFICIENT MATRIX OF THE SYSTEM.
 C
 C        IP IS THE NUMBER OF COLUMNS OF B.  IP CAN BE ZERO.
 C
 C        B CONTAINS THE CONSTANT COLUMN MATRIX OF THE SYSTEM
 C          IF IP IS NOT ZERO.  OTHERWISE B IS NOT REFERENCED.
 C
 C     ON OUTPUT
 C
 C        A HAS BEEN OVERWRITTEN BY THE MATRIX V (ORTHOGONAL) OF THE
 C          DECOMPOSITION IN ITS FIRST N ROWS AND COLUMNS.  IF AN
 C          ERROR EXIT IS MADE, THE COLUMNS OF V CORRESPONDING TO
 C          INDICES OF CORRECT SINGULAR VALUES SHOULD BE CORRECT.
 C
 C        W CONTAINS THE N (NON-NEGATIVE) SINGULAR VALUES OF A (THE
 C          DIAGONAL ELEMENTS OF S).  THEY ARE UNORDERED.  IF AN
 C          ERROR EXIT IS MADE, THE SINGULAR VALUES SHOULD BE CORRECT
 C          FOR INDICES IERR+1,IERR+2,...,N.
 C
 C                                   T
 C        B HAS BEEN OVERWRITTEN BY U B.  IF AN ERROR EXIT IS MADE,
 C                       T
 C          THE ROWS OF U B CORRESPONDING TO INDICES OF CORRECT
 C          SINGULAR VALUES SHOULD BE CORRECT.
 C
 C        IERR IS SET TO
 C          ZERO       FOR NORMAL RETURN,
 C          K          IF THE K-TH SINGULAR VALUE HAS NOT BEEN
 C                     DETERMINED AFTER 30 ITERATIONS.
 C
 C        RV1 IS A TEMPORARY STORAGE ARRAY.
 C
 C     CALLS PYTHAG FOR  SQRT(A*A + B*B) .
 C
 C     QUESTIONS AND COMMENTS SHOULD BE DIRECTED TO BURTON S. GARBOW,
 C     MATHEMATICS AND COMPUTER SCIENCE DIV, ARGONNE NATIONAL LABORATORY
 C
 C     THIS VERSION DATED AUGUST 1983.
 C
 C     ------------------------------------------------------------------
 C