PARAMETER (MM = 5, NN = 3) REAL A(MM,NN), B(MM), X(NN), QRAUX(NN), WORK(NN), TOL INTEGER JPVT(NN) DATA B / 1.0, 2.3, 4.6, 3.1, 1.2/ C C SET UP LEAST-SQUARES PROBLEM C QUADRATIC MODEL, EQUALLY-SPACED POINTS C M = 5 N = 3 DO 10 I = 1,M A(I,1) = 1.0 DO 10 J = 2,N A(I,J) = A(I,J-1)*I 10 CONTINUE TOL = 1.E-6 WRITE (*,*) ' COEFFICIENT MATRIX' WRITE (*,800) ((A(I,J), J = 1,N), I = 1,M) WRITE (*,*) ' RIGHT-HAND SIDE' WRITE (*,810) (B(I), I = 1,M) C C SOLVE LEAST-SQUARES PROBLEM C ITASK = 1 CALL SQRLS (A, MM, M, N, TOL, KR, B, X, B, JPVT, QRAUX, WORK, * ITASK, IND) C C PRINT RESULTS C WRITE (*,*) WRITE (*,*) 'SQRLS RESULTS' IF (IND .NE. 0) WRITE (*,*) ' ERROR CODE =', IND WRITE (*,*) ' RANK OF MATRIX =', KR WRITE (*,*) ' PARAMETERS' WRITE (*,800) (X(J), J = 1,N) WRITE (*,*) ' RESIDUALS' WRITE (*,810) (B(I), I = 1,M) C WRITE (*,*) WRITE (*,*) 'REFERENCE RESULTS FROM IBM PC/AT' WRITE (*,*) ' RANK OF MATRIX = 3' WRITE (*,*) ' PARAMETERS' WRITE (*,*) ' -3.020005 4.491431 -0.728572' WRITE (*,*) ' RESIDUALS' WRITE (*,*) * ' 0.257143 -0.748571 0.702857 -0.188572 -0.022857' C STOP 800 FORMAT (3F12.6) 810 FORMAT (5F12.6) END