C----------------------------------------------------------------------- C IMSL Name: LFIDS/DLFIDS (Single/Double precision version) C C Purpose: Use iterative refinement to improve the solution of a C real symmetric positive definite system of linear C equations. C C Usage: CALL LFIDS (N, A, LDA, FAC, LDFAC, B, X, RES) C C Example 1: C Declare variables INTEGER LDA, LDFAC, N PARAMETER (LDA=3, LDFAC=3, N=3) REAL A(LDA,LDA), B(N), COND, FAC(LDFAC,LDFAC), RES(N,3), & X(N,3) C C Set values for A and B C C A = ( 1.0 -3.0 2.0) C ( -3.0 10.0 -5.0) C ( 2.0 -5.0 6.0) C C B = ( 1.0 -3.0 2.0) C DATA A/1.0, -3.0, 2.0, -3.0, 10.0, -5.0, 2.0, -5.0, 6.0/ DATA B/1.0, -3.0, 2.0/ C Factor the matrix A CALL LFCDS (N, A, LDA, FAC, LDFAC, COND) C Print the estimated condition number CALL UMACH (2, NOUT) WRITE (NOUT,99999) COND, 1.0E0/COND C Compute the solutions DO 10 I=1, 3 CALL LFIDS (N, A, LDA, FAC, LDFAC, B, X(1,I), RES(1,I)) B(2) = B(2) + .2E0 10 CONTINUE C Print solutions and residuals CALL WRRRN ('The solution vectors are', N, 3, X, N, 0) CALL WRRRN ('The residual vectors are', N, 3, RES, N, 0) C 99999 FORMAT (' COND = ',F5.3,/,' L1 Condition number = ',F9.3) END C COND = 0.001 C L1 Condition number = 673.839 C C The solution vectors are C 1 2 3 C 1 1.000 2.600 4.200 C 2 0.000 0.400 0.800 C 3 0.000 -0.200 -0.400 C C The residual vectors are C 1 2 3 C 1 0.0000 0.0000 0.0000 C 2 0.0000 0.0000 0.0000 C 3 0.0000 0.0000 0.0000