Page 296 - Chapra y Canale. Metodos Numericos para Ingenieros 5edición_Neat
P. 296

272                     ELIMINACIÓN DE GAUSS

              SUB Gauss (a, b, n, x, tol, er)                 SUB Pivot (a, b, s, n, k)
                DIMENSION s (n)                                 p = k
                er = 0                                          big = ABS(a k,k /s k )
                DOFOR i = 1, n                                  DOFOR ii = k + 1, n
                  s i  = ABS(a i,1 )                              dummy = ABS(a ii,k /s ii )
                  DOFOR j = 2, n                                  IF dummy > big THEN
                    IF ABS(a i,j )>s i  THEN s i  = ABS(a i,j )        big = dummy
                  END DO                                            p = ii
                END DO                                            END IF
                CALL Eliminate(a, s, n, b, tol, er)             END DO
                IF er ≠ —1 THEN                                 IF p ≠ k THEN
                   CALL Substitute(a, n, b, x)                     DOFOR jj = k, n
                END IF                                              dummy = a p,jj
              END Gauss                                             a p,jj  = a k,jj
                                                                    a k,jj  = dummy
              SUB Eliminate (a, s, n, b, tol, er)                  END DO
                DOFOR k = 1, n — 1                                 dummy = b p
                  CALL Pivot (a, b, s, n, k)                       b p  = b k
                  IF ABS (a k,k /s k ) < tol THEN                  b k  = dummy
                    er = —1                                        dummy = s p
                    EXIT DO                                        s p  = s k
                  END IF                                           s k  = dummy
                  DOFOR i = k + 1, n                            END IF
                                                              END pivot
                    factor = a i,k /a k,k
                    DOFOR j = k + 1, n
                                                              SUB Substitute (a, n, b, x)
                      a i,j  = a i,j  — factor*a k,j
                    END DO                                      x n  = b n /a n,n
                                                                DOFOR i = n — 1, 1, —1
                    b i  = b i  – factor * b k
                  END DO                                          sum = 0
                END DO                                            DOFOR j = i + 1, n
                IF ABS(a k,k /s k ) < to1 THEN er = —1             sum = sum + a i,j  * x j
              END Eliminate                                       END DO
                                                                  x i  = (b i  — sum) / a i,i
                                                                END DO
                                                              END Substitute

              FIGURA 9.6
              Seudocódigo para instaurar la eliminación de Gauss con pivoteo parcial.






















                                                                                                         6/12/06   13:52:40
          Chapra-09.indd   272                                                                           6/12/06   13:52:40
          Chapra-09.indd   272
   291   292   293   294   295   296   297   298   299   300   301