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

316                     MATRICES ESPECIALES Y EL MÉTODO DE GAUSS-SEIDEL

                                                   SUBROUTINE Gseid (a, b, n, x, imax, es, lambda)
                                                   DOFOR i = 1,n
                                                     dummy = a i,i
                                                     DOFOR j = 1,n
                                                      a i,j  = a i,j /dummy
                                                     END DO
                                                     b i  = b i /dummy
                                                   END DO
                                                   DOFOR i = 1, n
                                                    sum = b i
                                                    DOFOR j = 1, n
                                                     IF i≠j THEN sum = sum – a i,j *x j
                                                    END DO
                                                    x i =sum
                                                   END DO
                                                   iter=1
                                                   DOFOR
                                                    centinela = 1
                                                    DOFOR i = 1,n
                                                     old = x i
                                                     sum = b i
                                                     DOFOR j = 1,n
                                                      IF i≠j THEN sum = sum – a i,j *x j
                                                     END DO
                                                     x i  = lambda*sum +(1.–lambda)*old
                                                     IF centinela = 1 AND x i  ≠ 0. THEN
                                                        ea = ABS((x i  – old)/x i )*100.
                                                        IF ea > es THEN centinela = 0
                                                     END lF
                                                    END DO
                                                    iter = iter + 1
                                                    IF centinela = 1 OR (iter ≥ imax) EXIT
                                                   END DO
                                                 END Gseid

                                      FIGURA 11.6
                                      Seudocódigo para el método de Gauss-Seidel con relajación.


                                      el criterio de paro (e ), entonces se permite continuar con las iteraciones. El uso de la
                                                      s
                                      variable centinela ayuda a evitar cálculos innecesarios de estimación de error una vez
                                      que las ecuaciones excedan el criterio.


                                      11.2.4 Contextos del problema en el método de Gauss-Seidel

                                      Además de evitar el problema de redondeo, la técnica de Gauss-Seidel tiene muchas otras
                                      ventajas que la hacen particularmente atractiva en el contexto de ciertos problemas de
                                      ingeniería. Por ejemplo, cuando la matriz en cuestión es muy grande y esparcida (es
                                      decir, cuando la mayoría de los elementos son cero), los métodos de eliminación desper-
                                      dician grandes cantidades de memoria de cómputo al guardar ceros.




                                                                                                         6/12/06   13:54:13
          Chapra-11.indd   316
          Chapra-11.indd   316                                                                           6/12/06   13:54:13
   335   336   337   338   339   340   341   342   343   344   345