57


4        MÉTODOS DIRECTOS PARA RESOLVER SISTEMAS DE
         ECUACIONES LINEALES
En este capítulo se estudia el componente algorítmico y computacional de los métodos directos
para resolver sistemas de ecuaciones lineales.

Ejemplo. Un comerciante compra tres productos: A, B, C, pero en las facturas únicamente
consta la cantidad comprada y el valor total de la compra. Se necesita determinar el precio
unitario de cada producto. Para esto dispone de tres facturas con los siguientes datos:

         Factura Cantidad de A Cantidad de B Cantidad de C                        Valor pagado
           1           4             2             5                                $18.00
           2           2             5             8                                $27.30
           3           2             4             3                                $16.20

Análisis
Sean x1,x 2 ,x 3 variables que representan al precio unitario de cada producto. Entonces, se
puede escribir:
        4x1 + 2x 2 + 5x 3 =18.00
         2x1 + 5x 2 + 8x 3 =
                           27.30
         2x1 + 4x 2 + 3x 3 =
                           16.20

El modelo matemático resultante es un sistema lineal de tres ecuaciones con tres variables.


En general, se desea resolver un sistema de n ecuaciones lineales con n variables
         a1,1x1 + a1,2 x1 + ... + a1,n xn =
                                          b1
         a2,1x1 + a2,2 x1 + ... + a2,n xn =b2
                            ...
         an,1x1 + an,2 x1 + ... + an,n xn =
                                          bn
En donde
       ai,j ∈ ℜ : Coeficientes
         bi ∈ ℜ : Constantes
         xi ∈ ℜ : Variables cuyo valor debe determinarse

En notación matricial:
          a1,1   a1,2     ...   a1,n   x1   b1 
         a       a2,2     ...   a2,n   x 2  b2 
          2,1                          =  
          ...                    ...   ...   ... 
                                        
          an,1
                 an,1     ...   an,n   xn  bn 
                                      

Simbólicamente
        AX = B

Siendo
        a1,1            a1,2    ...    a1,n              b1          x1 
       a                a2,2    ...    a2,n             b           x 
    =                                       ; B         =
          2,1                                                 2         2
     A                                   =                        ; X
        ...                             ...              ...         ... 
                                                                     
        an,1
                        an,1    ...    an,n 
                                                         bn           xn 
58


4.1      Determinantes y sistemas de ecuaciones lineales
                                                            -1
Sea A la matriz de coeficientes del sistema AX = B. Sea A su inversa y |A| su determinante.
La relación entre |A| y la existencia de la solución X se establece con la siguiente definición:
                        [adj(A)]t
                 A −1 =           ,
                          |A|
                    t
En donde [adj(A)] es la transpuesta de la adjunta de la matriz A.

Si |A| ≠ 0 , entonces A −1 existe, y se puede escribir:

         AX = B     ⇒ A −1AX = A −1B    ⇒ IX = A −1B ⇒ X = A −1B

En donde I es la matriz identidad. En resumen, si |A| ≠ 0 entonces X existe y además es único.


4.2      Método de Gauss - Jordan
La estrategia de este método consiste en transformar la matriz A del sistema AX = B y reducirla
a la matriz identidad I. Según el enunciado anterior, esto es posible si | A | ≠ 0. Aplicando
simultáneamente las mismas transformaciones al vector B, este se convertirá en el vector
solución A −1B .

En caso de que esta solución exista, el procedimiento debe transformar las ecuaciones mediante
operaciones lineales que no modifiquen la solución del sistema original, estas pueden ser:

         a) Intercambiar ecuaciones
         b) Multiplicar ecuaciones por alguna constante no nula
         c) Sumar alguna ecuación a otra ecuación


Ejemplo. Con el Método de Gauss-Jordan resuelva el siguiente sistema de ecuaciones lineales
correspondiente al problema planteado al inicio del capítulo

          4x1 + 2x 2 + 5x 3 =
                            18.00
          2x1 + 5x 2 + 8x 3 =
                            27.30
          2x1 + 4x 2 + 3x 3 =
                            16.20


Solución: Se define la matriz aumentada A | B para transformar simultáneamente A y B:

         4 2 5 18.00 
A | B =  2 5 8 27.30 
                     
         2 4 3 16.20 
                     

Las transformaciones sucesivas de la matriz aumentada se describen en los siguientes pasos:

Dividir fila 1 para 4

         1.0000    0.5000 1.2500 4.5000
         2.0000    5.0000 8.0000 27.3000
         2.0000    4.0000 3.0000 16.2000
59

Restar de cada fila, la fila 1 multiplicada por el elemento de la columna 1

         1.0000 0.5000 1.2500 4.5000
            0   4.0000 5.5000 18.3000
            0   3.0000 0.5000 7.2000


Dividir fila 2 para 4

         1.0000 0.5000       1.2500   4.5000
            0   1.0000       1.3750   4.5750
            0   3.0000       0.5000   7.2000


Restar de cada fila, la fila 2 multiplicada por el elemento de la columna 2

         1.0000    0    0.5625         2.2125
            0   1.0000 1.3750          4.5750
            0      0   -3.6250        -6.5250


Dividir fila 3 para -3.625

         1.0000    0   0.5625         2.2125
            0   1.0000 1.3750         4.5750
            0      0   1.0000         1.8000


Restar de cada fila, la fila 3 multiplicada por el elemento de la columna 3

         1.0000    0            0     1.2000
            0   1.0000          0     2.1000
            0      0         1.0000   1.8000


La matriz de los coeficientes ha sido transformada a la matriz identidad.

Simultáneamente, las mismas transformaciones han convertido a la última columna en el vector
solución:

             1.2 
         X =  2.1
              
              
             1.8 

Como antes, la solución debe verificarse en el sistema
60

Práctica computacional

Resolver el ejemplo anterior en la ventana de comandos con la notación matricial

>> a=[4 2 5; 2 5 8; 2 4 3]                                     Definición de la matriz
a=
   4 2 5
   2 5 8
   2 4 3
>> b=[18.0; 27.3; 16.2]                                        Vector de constantes
b=
 18.0000
 27.3000
 16.2000
>> a=[a, b]                                                    Matriz aumentada
a=
  4.0000 2.0000 5.0000 18.0000
  2.0000 5.0000 8.0000 27.3000
  2.0000 4.0000 3.0000 16.2000
>> a(1,1:4)=a(1,1:4)/a(1,1)                                    Normalizar fila 1
a=
  1.0000 0.5000 1.2500 4.5000
  2.0000 5.0000 8.0000 27.3000
  2.0000 4.0000 3.0000 16.2000
>> a(2,1:4)=a(2,1:4)-a(2,1)*a(1,1:4)                           Reducir fila 2
a=
  1.0000 0.5000 1.2500 4.5000
       0 4.0000 5.5000 18.3000
  2.0000 4.0000 3.0000 16.2000
>> a(3,1:4)=a(3,1:4)-a(3,1)*a(1,1:4)                           Reducir fila 3
a=
  1.0000 0.5000 1.2500 4.5000
     0 4.0000 5.5000 18.3000
     0 3.0000 0.5000 7.2000
>> a(2,2:4)=a(2,2:4)/a(2,2)                                    Normalizar fila 2
a=
  1.0000 0.5000 1.2500 4.5000
     0 1.0000 1.3750 4.5750
     0 3.0000 0.5000 7.2000
>> a(1,2:4)=a(1,2:4)-a(1,2)*a(2,2:4)                           Reducir fila 1
a=
  1.0000       0 0.5625 2.2125
     0 1.0000 1.3750 4.5750
     0 3.0000 0.5000 7.2000
>> a(3,2:4)=a(3,2:4)-a(3,2)*a(2,2:4)                           Reducir fila 3
a=
  1.0000       0 0.5625 2.2125
     0 1.0000 1.3750 4.5750
     0      0 -3.6250 -6.5250
>> a(3,3:4)=a(3,3:4)/a(3,3)                                    Normalizar fila 3
a=
  1.0000       0 0.5625 2.2125
     0 1.0000 1.3750 4.5750
     0      0 1.0000 1.8000
61

>> a(1,3:4)=a(1,3:4)-a(1,3)*a(3,3:4)                                   Reducir fila 1
a=
  1.0000      0       0 1.2000
     0 1.0000 1.3750 4.5750
     0      0 1.0000 1.8000
>> a(2,3:4)=a(2,3:4)-a(2,3)*a(3,3:4)                                   Reducir fila 2
a=
  1.0000      0       0 1.2000
     0 1.0000         0 2.1000
     0      0 1.0000 1.8000
>> x=a(1:3,4)                                                          Vector solución
x=
  1.2000
  2.1000
  1.8000

>> a*x                                                                 Verificar la solución
ans =
 18.0000
 27.3000
 16.2000


4.2.1 Formulación del método de Gauss-Jordan
Para establecer la descripción algorítmica, conviene definir la matriz aumentada A con el vector
B pues deben realizarse simultáneamente las mismas operaciones:
                a1,1 a1,2 ... a1,n a1,n+1 
               a                              
                  2,1 a 2,2 ... a 2,n a 2,n+ 1 
        A |B = 
                ...   ... ... ...       ... 
                                              
                an,1 an,2 ... an,n an,n+ 1 
                                              

En donde se ha agregado la columna n+1 con el vector de las constantes:
                 ai,n+1 = bi, i = 1, 2, 3, ..., n    (columna n+1 de la matriz aumentada)
El objetivo es transformar esta matriz y llevarla a la forma de la matriz identidad I:

                 a1,1 a1,2    ... a1,n    a1,n+1        1 0       ... 0 a1,n+ 1 
                a                                                               
                   2,1 a 2,2   ... a2,n    a2,n+1          0 1      ... 0 a2,n+ 1 
         A |B =                                     →...→
                 ...   ...    ... ...       ...         ... ...   ... ... ... 
                                                                                
                 an,1 an,2
                              ... an,n    an,n+ 1 
                                                         0 0
                                                                    ... 1 an,n+ 1 
                                                                                   

Si es posible realizar esta transformación, entonces los valores que quedan en la última columna
constituirán el vector solución X

Las transformaciones deben ser realizadas en forma sistemática en n etapas, obteniendo
sucesivamente en cada etapa, cada columna de la matriz identidad, de izquierda a derecha.

En cada etapa, primero se hará que el elemento en la diagonal tome el valor 1. Luego se hará
que los demás elementos de la columna tomen el valor 0.
62


                       1 0              ... 0 a1,n+ 1 
                                                      
                       0 1              ... 0 a2,n+ 1 
                       ... ...          ... ... ... 
                                                      
                       0 0
                                        ... 1 an,n+ 1 
                                                       

       Etapa 1
                                                 Etapa n
                           Etapa 2
Etapa 1
          Normalizar la fila 1:                  (colocar 1 en el lugar del elemento a 1,1
          a1,j ← a1,j / a1,1                     j=1, 2, ..., n+1; supones que a1,1 ≠ 0

          Reducir las otras filas: (colocar 0 en los otros elementos de la columna 1)
          ai,j ← ai,j − ai,1a1,j ,               j=1, 2, ..., n+1; i=2, 3, ..., n

         a1,1      a1,2     ...         a1,n a1,n+ 1    1     a1,2       ...   a1,n a1,n+ 1 
                                                                                            
A |B     a2,1      a2,2     ...         a2,n a2,n+ 1 
                                                        →
                                                           0     a2,2       ...   a2,n a2,n+ 1 
         ...                             ...   ...      ...                     ...   ... 
                                                                                            
         an,1
                   an,1     ...         an,n an,n+ 1 
                                                         0
                                                                an,1       ...   an,n an,n+ 1 
                                                                                               
                                                                    Valores
                                                                    transformados
Etapa 2
          Normalizar la fila 2: (colocar 1 en el lugar del elemento a2,2
          a2,j ← a2,j / a2,2                     j=2, 3, ..., n+1; a 2,2 ≠ 0

          Reducir las otras filas: (colocar 0 en los otros elementos de la columna 2
          ai,j ← ai,j − ai,2 a2,j ,  j=2, 3, ..., n+1; i=1, 3, ..., n

                                                                                                         Valores
              1     a1,2          ...     a1,n a1,n+ 1    1          0         ...   a1,n a1,n+ 1    transformados
                                                                                                  
             0      a2,2          ...     a2,n a2,n+1      0          1         ...   a2,n a2,n+1 
                                                          →
             ...                           ...   ...      ...                         ...   ... 
                                                                                                  
          
             0       an,1         ...     an,n an,n+ 1 
                                                           0
                                                                       0         ...   an,n an,n+ 1 
                                                                                                     

La última columna contendrá e; vector solución

La formulación obtenida de estas dos etapas se puede generalizar y construir el agoritmo:
63

ALGORITMO BÁSICO DE GAUSS-JORDAN

  a: matriz aumentada del sistema de n ecuaciones lineales
  Para e = 1, 2, . . ., n
     Para j=e, e+1, ..., n+1
         a e,j ← a e,j / a e,e                     Normalizar la fila e ( a e,e ≠ 0 )
     Fin
     Para i=1, 2, …, i -1, i +1,… n
         Para j=e, e+1, ..., n+1
             ai,j ← ai,j − ai,e a e,j              Reducir las otras filas
         Fin
     Fin
  Fin
  Para i=1,2,...,n
      xi ← ai,n+ 1                                 La última columna contendrá la solución
  Fin


4.2.2 Eficiencia del método de Gauss-Jordan
El método de Gauss-Jordan es un método directo. Los métodos directos pueden estar afectados
por el error de redondeo, es decir los errores en la representación de los números que se
producen en las operaciones aritméticas. Para cuantificar la magnitud del error de redondeo se
define la función de eficiencia del método.

Sea n el tamaño del problema y T(n) la cantidad de operaciones aritméticas que se realizan
                                          2
       En la normalización:    T(n) = O(n )            (Dos ciclos anidados)
                                          3
       En la reducción:        T(n) = O(n )            (Tres ciclos anidados)
                                                             3
Por lo tanto, este método es de tercer orden: T(n) = O(n )

Mediante un conteo recorriendo los ciclos del algoritmo, se puede determinar la función de
eficiencia para este método directo:

                      e           i      j
                      1          n-1    n+1
                      2          n-1     n
                      .           .      .
                      .           .      .
                      .           .      .
                     n-1         n-1     3
                      n          n-1     2
                                                         3       2
T(n) = (n-1)(2 + 3 + n + (n+1)) = (n-1) (3 + n ) (n/2) = n /2 + 2n /2 + 3n/2
64


4.2.3 Instrumentación computacional
En esta primera versión del algoritmo se supondrá que el determinante de la matriz es diferente
de cero y que no se requiere intercambiar filas.

La     codificación en MATLAB sigue directamente la formulación matemática descrita
anteriormente. Se usa notación compacta para manejo de matrices

        function x=gaussjordan(a,b)
        n=length(b);
        a=[a,b];                                                            %matriz aumentada
        for e=1:n
             a(e,e:n+1)=a(e,e:n+1)/a(e,e);                                  %normalizar fila e
             for i=1:n
                  if i~=e
                       a(i,e:n+1)=a(i,e:n+1)-a(i,e)*a(e,e:n+1);             %reducir otras filas
                  end
             end
        end
        x=a(1:n,n+1);                                                       %vector solución

Ejemplo. Desde la       ventana de comandos de MATLAB, use la función Gauss-Jordan para
resolver el sistema:
               2 3     7   x1   3 
                −2 5          
                       6   x2  =
                                   5 
               8 9
                           x 3  8 
                        4    

Escriba en la ventana de comandos de MATLAB

        >> a=[2, 3, 7; -2, 5, 6; 8, 9, 4];                 Matriz de coeficientes
        >> b=[3; 5; 8];                                    Vector de constantes
        >> x=gaussjordan(a,b)                              Llamada a la función
        x=
          -0.0556                                          Solución proporcionada por MATLAB
           0.9150
           0.0523
        >> a*x                                             Verificar la solución
        ans =
          3.0000                                           La solución satisface al sistema
          5.0000
          8.0000

Cuando se dispone de la instrumentación computacional de un algoritmo, se puede obtener
experimentalmente su eficiencia registrando, para diferentes valores de n, el tiempo de ejecución
del algoritmo. Este tiempo depende de la velocidad del procesador del dispositivo computacional,
pero es proporcional a T(n).

MATLAB dispone de las funciones tic, toc para registrar tiempo de ejecución, mientras que para
las pruebas se pueden generar matrices y vectores con números aleatorios. Se presentan
algunos resultados con obtenidos con un procesador intel core i5 y la versión 7.01 de MATLAB:
       n=100, t=0.0781 seg.
       n=200, t=0.3859 seg.
       n=300, t=1.0336 seg.
       n=400, t=2.0758 seg.
Se observa que T(n) tiene crecimiento tipo potencial
65


4.2.4 Obtención de la inversa de una matriz
Para encontrar la matriz inversa se puede usar el método de Gauss-Jordan.

Sea A una matriz cuadrada cuyo determinante es diferente de cero.
Sean t 1 ,t 2 , . . . ,t m−1 ,t m las transformaciones lineales del método de Gauss-Jordan que
transforman la matriz A en la matriz identidad I incluyendo intercambios de filas

            t m t m-1 . . . t 2 t 1 A = I

Entonces se puede escribir
            t m t m-1 . . . t 2 t 1 A −1 A = A −1 I   ⇒    t m t m-1 . . . t 2 t 1 I = A −1

Lo cual significa que las mismas transformaciones que convierten              A en la matriz I, convertirán
la matriz    I en la matriz A −1 .
                                                                                        −1
Para aplicar este algoritmo, suponiendo que se desea conocer la matriz A , se debe aumentar
la matriz anterior con la matriz I: A | B | I
Las transformaciones aplicadas simultáneamente proporcionarán finalmente el vector solución X
y la matriz identidad     A −1

Ejemplo. Con el Método de Gauss-Jordan resuelva el sistema de ecuaciones siguiente y
simultáneamente obtenga la matriz inversa:

                     4x1 + 2x 2 + 5x 3 =
                                       18.00
                     2x1 + 5x 2 + 8x 3 =
                                       27.30
                     2x1 + 4x 2 + 3x 3 =
                                       16.20

Solución. La matriz aumentada es:

                    4 2 5         18.00      1 0 0
            A | B = 2 5 8
                                  27.30      0 1 1
                                                   
                    2 4 3
                                  16.20      0 0 1
                                                   

Cálculos

Normalizar fila 1 y reducir filas 2 y 3

   1.0000 0.5000 1.2500                 4.5000         0.2500      0      0
      0   4.0000 5.5000                18.3000        -0.5000   1.0000    0
      0   3.0000 0.5000                 7.2000        -0.5000      0   1.0000
66

Normalizar fila 2 y reducir filas 1 y 3

   1.0000    0    0.5625            2.2125    0.3125 -0.1250    0
      0   1.0000 1.3750             4.5750   -0.1250 0.2500     0
      0      0   -3.6250           -6.5250   -0.1250 -0.7500 1.0000

Normalizar fila 3 y reducir filas 1 y 2

   1.0000    0      0             1.2000      0.2931 -0.2414 0.1552
      0   1.0000    0              2.1000    -0.1724 -0.0345 0.3793
      0   0      1.0000            1.8000     0.0345 0.2069 -0.2759


Solución del sistema
             1.2 
        X =  2.1
              
             1.8 
              

Matriz inversa
               0.2931 −0.2414 0.1552 
               −0.1724 −0.0345 0.3793 
         A −1 =
                                      
               0.0345
                       0.2069 −0.2759 
                                       

Más contenido relacionado

DOCX
Algoritmos para matlab
PDF
Método de Gauss Jordan
PPT
Metodos iterativos
PPT
Presentación funciones y gráficas v2
PDF
Inversa, transpuesta y determinante de una matriz
PDF
Eliminación de Gauss-Jordan
PDF
11.sistemas singulares
DOC
Ecuaciones Cuadráticas Y Sus Gráficas
Algoritmos para matlab
Método de Gauss Jordan
Metodos iterativos
Presentación funciones y gráficas v2
Inversa, transpuesta y determinante de una matriz
Eliminación de Gauss-Jordan
11.sistemas singulares
Ecuaciones Cuadráticas Y Sus Gráficas

La actualidad más candente (17)

PDF
9.metododegauss
PDF
2.metodo iterativo
PDF
Matemática II exámenes
PDF
Bernoulli y ricatti
PDF
Ecuacion diferencial de segundo orden
PDF
Cap13 matrices
PDF
Ejercicios jacobi
PPTX
Teoría de un método Iterativo
PDF
Cap14 siste. linel.
PDF
PDF
Ecuaciones diferenciales de primer orden
PPT
Metodos numericos 5
PDF
Metodos iterativos para reslver sistemas lineales
PPT
Exposicion 8 Algebra, Cuadratica, Funciones
PDF
Metodos numericos capitulo 4
DOCX
Metodos jacobi y gauss seidel
PPTX
Sistema de ecuaciones exponenciales
9.metododegauss
2.metodo iterativo
Matemática II exámenes
Bernoulli y ricatti
Ecuacion diferencial de segundo orden
Cap13 matrices
Ejercicios jacobi
Teoría de un método Iterativo
Cap14 siste. linel.
Ecuaciones diferenciales de primer orden
Metodos numericos 5
Metodos iterativos para reslver sistemas lineales
Exposicion 8 Algebra, Cuadratica, Funciones
Metodos numericos capitulo 4
Metodos jacobi y gauss seidel
Sistema de ecuaciones exponenciales
Publicidad

Similar a 8.gaussjordan (20)

PDF
10.sistemas mal condicionados
DOCX
Algebralineal.docx
PPTX
Matrices operaciones
DOC
3.2 ecuaciones , func... word
PPT
Matrices y determinantes
PPTX
UTPL-MATEMÁTICAS PARA CIENCIAS BIOLÓGICAS-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2...
PPTX
Fundamentos matrices y determinantes
PDF
Sistemas lineales casos especiales
DOCX
Unidad4
PDF
sistemas_lineales_Print_I2020.pdf
PPTX
Unidad 2 matrices
PPT
Cap 01 1 matrices
PDF
Metodos numericos capitulo 2
DOCX
Matrices y determinantes
PDF
Digitalizacion
PPT
Funcion lineal ultima
PDF
Mate II
PDF
Teoría de matrices
PPT
Matrices y determinantes
PPTX
LAS MATRICES PRENDIZAJE PARA ALUMNOS.pptx
10.sistemas mal condicionados
Algebralineal.docx
Matrices operaciones
3.2 ecuaciones , func... word
Matrices y determinantes
UTPL-MATEMÁTICAS PARA CIENCIAS BIOLÓGICAS-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2...
Fundamentos matrices y determinantes
Sistemas lineales casos especiales
Unidad4
sistemas_lineales_Print_I2020.pdf
Unidad 2 matrices
Cap 01 1 matrices
Metodos numericos capitulo 2
Matrices y determinantes
Digitalizacion
Funcion lineal ultima
Mate II
Teoría de matrices
Matrices y determinantes
LAS MATRICES PRENDIZAJE PARA ALUMNOS.pptx
Publicidad

Más de rjvillon (6)

PDF
7.metodo de newton2
PDF
6.metodo de newton
PDF
5.metodo del punto fijo
PDF
4.metodo de la biseccion
PDF
3.metodo directo
PDF
1.introduccion analisis
7.metodo de newton2
6.metodo de newton
5.metodo del punto fijo
4.metodo de la biseccion
3.metodo directo
1.introduccion analisis

Último (20)

PDF
ciencia_tecnologia_sociedad Mitcham Carl. (1994)..pdf
PDF
Manual del Gobierno Escolar -MINEDUC.pdf
PPTX
MATEMATICAS GEOMETRICA USO TRANSPORTADOR
PPTX
TEMA 1ORGANIZACIÓN FUNCIONAL DEL CUERPO, MEDIO INTERNO Y HOMEOSTASIS (3) [Aut...
PPTX
4. Qué es un computador PARA GRADO CUARTO.pptx
DOCX
Programa_Sintetico_Fase_4.docx 3° Y 4°..
PDF
Como usar el Cerebro en las Aulas SG2 NARCEA Ccesa007.pdf
PDF
Modelo Educativo SUB 2023versión final.pdf
PDF
Aqui No Hay Reglas Hastings-Meyer Ccesa007.pdf
PDF
E1 Guía_Matemática_5°_grado.pdf paraguay
PDF
Ernst Cassirer - Antropologia Filosofica.pdf
PDF
Telos 127 Generacion Al fa Beta - fundaciontelefonica
PDF
Aumente su Autoestima - Lair Ribeiro Ccesa007.pdf
PDF
Introducción a la historia de la filosofía
PDF
ACERTIJO EL CONJURO DEL CAZAFANTASMAS MATEMÁTICO. Por JAVIER SOLIS NOYOLA
PDF
Los10 Mandamientos de la Actitud Mental Positiva Ccesa007.pdf
DOCX
PLANES DE área ciencias naturales y aplicadas
PDF
La Inteligencia Emocional - Fabian Goleman TE4 Ccesa007.pdf
PDF
Mi Primer Millon - Poissant - Godefroy Ccesa007.pdf
PPTX
Clase 3 del silabo-gestion y control financiero
ciencia_tecnologia_sociedad Mitcham Carl. (1994)..pdf
Manual del Gobierno Escolar -MINEDUC.pdf
MATEMATICAS GEOMETRICA USO TRANSPORTADOR
TEMA 1ORGANIZACIÓN FUNCIONAL DEL CUERPO, MEDIO INTERNO Y HOMEOSTASIS (3) [Aut...
4. Qué es un computador PARA GRADO CUARTO.pptx
Programa_Sintetico_Fase_4.docx 3° Y 4°..
Como usar el Cerebro en las Aulas SG2 NARCEA Ccesa007.pdf
Modelo Educativo SUB 2023versión final.pdf
Aqui No Hay Reglas Hastings-Meyer Ccesa007.pdf
E1 Guía_Matemática_5°_grado.pdf paraguay
Ernst Cassirer - Antropologia Filosofica.pdf
Telos 127 Generacion Al fa Beta - fundaciontelefonica
Aumente su Autoestima - Lair Ribeiro Ccesa007.pdf
Introducción a la historia de la filosofía
ACERTIJO EL CONJURO DEL CAZAFANTASMAS MATEMÁTICO. Por JAVIER SOLIS NOYOLA
Los10 Mandamientos de la Actitud Mental Positiva Ccesa007.pdf
PLANES DE área ciencias naturales y aplicadas
La Inteligencia Emocional - Fabian Goleman TE4 Ccesa007.pdf
Mi Primer Millon - Poissant - Godefroy Ccesa007.pdf
Clase 3 del silabo-gestion y control financiero

8.gaussjordan

  • 1. 57 4 MÉTODOS DIRECTOS PARA RESOLVER SISTEMAS DE ECUACIONES LINEALES En este capítulo se estudia el componente algorítmico y computacional de los métodos directos para resolver sistemas de ecuaciones lineales. Ejemplo. Un comerciante compra tres productos: A, B, C, pero en las facturas únicamente consta la cantidad comprada y el valor total de la compra. Se necesita determinar el precio unitario de cada producto. Para esto dispone de tres facturas con los siguientes datos: Factura Cantidad de A Cantidad de B Cantidad de C Valor pagado 1 4 2 5 $18.00 2 2 5 8 $27.30 3 2 4 3 $16.20 Análisis Sean x1,x 2 ,x 3 variables que representan al precio unitario de cada producto. Entonces, se puede escribir: 4x1 + 2x 2 + 5x 3 =18.00 2x1 + 5x 2 + 8x 3 = 27.30 2x1 + 4x 2 + 3x 3 = 16.20 El modelo matemático resultante es un sistema lineal de tres ecuaciones con tres variables. En general, se desea resolver un sistema de n ecuaciones lineales con n variables a1,1x1 + a1,2 x1 + ... + a1,n xn = b1 a2,1x1 + a2,2 x1 + ... + a2,n xn =b2 ... an,1x1 + an,2 x1 + ... + an,n xn = bn En donde ai,j ∈ ℜ : Coeficientes bi ∈ ℜ : Constantes xi ∈ ℜ : Variables cuyo valor debe determinarse En notación matricial:  a1,1 a1,2 ... a1,n   x1   b1  a a2,2 ... a2,n   x 2  b2   2,1   =    ... ...   ...   ...        an,1  an,1 ... an,n   xn  bn   Simbólicamente AX = B Siendo  a1,1 a1,2 ... a1,n   b1   x1  a a2,2 ... a2,n  b  x  =  ; B = 2,1 2  2 A = ; X  ... ...   ...   ...         an,1  an,1 ... an,n   bn   xn 
  • 2. 58 4.1 Determinantes y sistemas de ecuaciones lineales -1 Sea A la matriz de coeficientes del sistema AX = B. Sea A su inversa y |A| su determinante. La relación entre |A| y la existencia de la solución X se establece con la siguiente definición: [adj(A)]t A −1 = , |A| t En donde [adj(A)] es la transpuesta de la adjunta de la matriz A. Si |A| ≠ 0 , entonces A −1 existe, y se puede escribir: AX = B ⇒ A −1AX = A −1B ⇒ IX = A −1B ⇒ X = A −1B En donde I es la matriz identidad. En resumen, si |A| ≠ 0 entonces X existe y además es único. 4.2 Método de Gauss - Jordan La estrategia de este método consiste en transformar la matriz A del sistema AX = B y reducirla a la matriz identidad I. Según el enunciado anterior, esto es posible si | A | ≠ 0. Aplicando simultáneamente las mismas transformaciones al vector B, este se convertirá en el vector solución A −1B . En caso de que esta solución exista, el procedimiento debe transformar las ecuaciones mediante operaciones lineales que no modifiquen la solución del sistema original, estas pueden ser: a) Intercambiar ecuaciones b) Multiplicar ecuaciones por alguna constante no nula c) Sumar alguna ecuación a otra ecuación Ejemplo. Con el Método de Gauss-Jordan resuelva el siguiente sistema de ecuaciones lineales correspondiente al problema planteado al inicio del capítulo 4x1 + 2x 2 + 5x 3 = 18.00 2x1 + 5x 2 + 8x 3 = 27.30 2x1 + 4x 2 + 3x 3 = 16.20 Solución: Se define la matriz aumentada A | B para transformar simultáneamente A y B:  4 2 5 18.00  A | B =  2 5 8 27.30     2 4 3 16.20    Las transformaciones sucesivas de la matriz aumentada se describen en los siguientes pasos: Dividir fila 1 para 4 1.0000 0.5000 1.2500 4.5000 2.0000 5.0000 8.0000 27.3000 2.0000 4.0000 3.0000 16.2000
  • 3. 59 Restar de cada fila, la fila 1 multiplicada por el elemento de la columna 1 1.0000 0.5000 1.2500 4.5000 0 4.0000 5.5000 18.3000 0 3.0000 0.5000 7.2000 Dividir fila 2 para 4 1.0000 0.5000 1.2500 4.5000 0 1.0000 1.3750 4.5750 0 3.0000 0.5000 7.2000 Restar de cada fila, la fila 2 multiplicada por el elemento de la columna 2 1.0000 0 0.5625 2.2125 0 1.0000 1.3750 4.5750 0 0 -3.6250 -6.5250 Dividir fila 3 para -3.625 1.0000 0 0.5625 2.2125 0 1.0000 1.3750 4.5750 0 0 1.0000 1.8000 Restar de cada fila, la fila 3 multiplicada por el elemento de la columna 3 1.0000 0 0 1.2000 0 1.0000 0 2.1000 0 0 1.0000 1.8000 La matriz de los coeficientes ha sido transformada a la matriz identidad. Simultáneamente, las mismas transformaciones han convertido a la última columna en el vector solución: 1.2  X =  2.1     1.8  Como antes, la solución debe verificarse en el sistema
  • 4. 60 Práctica computacional Resolver el ejemplo anterior en la ventana de comandos con la notación matricial >> a=[4 2 5; 2 5 8; 2 4 3] Definición de la matriz a= 4 2 5 2 5 8 2 4 3 >> b=[18.0; 27.3; 16.2] Vector de constantes b= 18.0000 27.3000 16.2000 >> a=[a, b] Matriz aumentada a= 4.0000 2.0000 5.0000 18.0000 2.0000 5.0000 8.0000 27.3000 2.0000 4.0000 3.0000 16.2000 >> a(1,1:4)=a(1,1:4)/a(1,1) Normalizar fila 1 a= 1.0000 0.5000 1.2500 4.5000 2.0000 5.0000 8.0000 27.3000 2.0000 4.0000 3.0000 16.2000 >> a(2,1:4)=a(2,1:4)-a(2,1)*a(1,1:4) Reducir fila 2 a= 1.0000 0.5000 1.2500 4.5000 0 4.0000 5.5000 18.3000 2.0000 4.0000 3.0000 16.2000 >> a(3,1:4)=a(3,1:4)-a(3,1)*a(1,1:4) Reducir fila 3 a= 1.0000 0.5000 1.2500 4.5000 0 4.0000 5.5000 18.3000 0 3.0000 0.5000 7.2000 >> a(2,2:4)=a(2,2:4)/a(2,2) Normalizar fila 2 a= 1.0000 0.5000 1.2500 4.5000 0 1.0000 1.3750 4.5750 0 3.0000 0.5000 7.2000 >> a(1,2:4)=a(1,2:4)-a(1,2)*a(2,2:4) Reducir fila 1 a= 1.0000 0 0.5625 2.2125 0 1.0000 1.3750 4.5750 0 3.0000 0.5000 7.2000 >> a(3,2:4)=a(3,2:4)-a(3,2)*a(2,2:4) Reducir fila 3 a= 1.0000 0 0.5625 2.2125 0 1.0000 1.3750 4.5750 0 0 -3.6250 -6.5250 >> a(3,3:4)=a(3,3:4)/a(3,3) Normalizar fila 3 a= 1.0000 0 0.5625 2.2125 0 1.0000 1.3750 4.5750 0 0 1.0000 1.8000
  • 5. 61 >> a(1,3:4)=a(1,3:4)-a(1,3)*a(3,3:4) Reducir fila 1 a= 1.0000 0 0 1.2000 0 1.0000 1.3750 4.5750 0 0 1.0000 1.8000 >> a(2,3:4)=a(2,3:4)-a(2,3)*a(3,3:4) Reducir fila 2 a= 1.0000 0 0 1.2000 0 1.0000 0 2.1000 0 0 1.0000 1.8000 >> x=a(1:3,4) Vector solución x= 1.2000 2.1000 1.8000 >> a*x Verificar la solución ans = 18.0000 27.3000 16.2000 4.2.1 Formulación del método de Gauss-Jordan Para establecer la descripción algorítmica, conviene definir la matriz aumentada A con el vector B pues deben realizarse simultáneamente las mismas operaciones:  a1,1 a1,2 ... a1,n a1,n+1  a  2,1 a 2,2 ... a 2,n a 2,n+ 1  A |B =   ... ... ... ... ...     an,1 an,2 ... an,n an,n+ 1    En donde se ha agregado la columna n+1 con el vector de las constantes: ai,n+1 = bi, i = 1, 2, 3, ..., n (columna n+1 de la matriz aumentada) El objetivo es transformar esta matriz y llevarla a la forma de la matriz identidad I:  a1,1 a1,2 ... a1,n a1,n+1  1 0 ... 0 a1,n+ 1  a    2,1 a 2,2 ... a2,n a2,n+1  0 1 ... 0 a2,n+ 1  A |B =  →...→  ... ... ... ... ...  ... ... ... ... ...       an,1 an,2  ... an,n an,n+ 1   0 0  ... 1 an,n+ 1   Si es posible realizar esta transformación, entonces los valores que quedan en la última columna constituirán el vector solución X Las transformaciones deben ser realizadas en forma sistemática en n etapas, obteniendo sucesivamente en cada etapa, cada columna de la matriz identidad, de izquierda a derecha. En cada etapa, primero se hará que el elemento en la diagonal tome el valor 1. Luego se hará que los demás elementos de la columna tomen el valor 0.
  • 6. 62 1 0 ... 0 a1,n+ 1    0 1 ... 0 a2,n+ 1  ... ... ... ... ...    0 0  ... 1 an,n+ 1   Etapa 1 Etapa n Etapa 2 Etapa 1 Normalizar la fila 1: (colocar 1 en el lugar del elemento a 1,1 a1,j ← a1,j / a1,1 j=1, 2, ..., n+1; supones que a1,1 ≠ 0 Reducir las otras filas: (colocar 0 en los otros elementos de la columna 1) ai,j ← ai,j − ai,1a1,j , j=1, 2, ..., n+1; i=2, 3, ..., n  a1,1 a1,2 ... a1,n a1,n+ 1   1 a1,2 ... a1,n a1,n+ 1      A |B  a2,1 a2,2 ... a2,n a2,n+ 1  → 0 a2,2 ... a2,n a2,n+ 1   ... ... ...   ... ... ...       an,1  an,1 ... an,n an,n+ 1    0  an,1 ... an,n an,n+ 1   Valores transformados Etapa 2 Normalizar la fila 2: (colocar 1 en el lugar del elemento a2,2 a2,j ← a2,j / a2,2 j=2, 3, ..., n+1; a 2,2 ≠ 0 Reducir las otras filas: (colocar 0 en los otros elementos de la columna 2 ai,j ← ai,j − ai,2 a2,j , j=2, 3, ..., n+1; i=1, 3, ..., n Valores  1 a1,2 ... a1,n a1,n+ 1   1 0 ... a1,n a1,n+ 1  transformados      0 a2,2 ... a2,n a2,n+1  0 1 ... a2,n a2,n+1  →  ... ... ...   ... ... ...        0 an,1 ... an,n an,n+ 1    0  0 ... an,n an,n+ 1   La última columna contendrá e; vector solución La formulación obtenida de estas dos etapas se puede generalizar y construir el agoritmo:
  • 7. 63 ALGORITMO BÁSICO DE GAUSS-JORDAN a: matriz aumentada del sistema de n ecuaciones lineales Para e = 1, 2, . . ., n Para j=e, e+1, ..., n+1 a e,j ← a e,j / a e,e Normalizar la fila e ( a e,e ≠ 0 ) Fin Para i=1, 2, …, i -1, i +1,… n Para j=e, e+1, ..., n+1 ai,j ← ai,j − ai,e a e,j Reducir las otras filas Fin Fin Fin Para i=1,2,...,n xi ← ai,n+ 1 La última columna contendrá la solución Fin 4.2.2 Eficiencia del método de Gauss-Jordan El método de Gauss-Jordan es un método directo. Los métodos directos pueden estar afectados por el error de redondeo, es decir los errores en la representación de los números que se producen en las operaciones aritméticas. Para cuantificar la magnitud del error de redondeo se define la función de eficiencia del método. Sea n el tamaño del problema y T(n) la cantidad de operaciones aritméticas que se realizan 2 En la normalización: T(n) = O(n ) (Dos ciclos anidados) 3 En la reducción: T(n) = O(n ) (Tres ciclos anidados) 3 Por lo tanto, este método es de tercer orden: T(n) = O(n ) Mediante un conteo recorriendo los ciclos del algoritmo, se puede determinar la función de eficiencia para este método directo: e i j 1 n-1 n+1 2 n-1 n . . . . . . . . . n-1 n-1 3 n n-1 2 3 2 T(n) = (n-1)(2 + 3 + n + (n+1)) = (n-1) (3 + n ) (n/2) = n /2 + 2n /2 + 3n/2
  • 8. 64 4.2.3 Instrumentación computacional En esta primera versión del algoritmo se supondrá que el determinante de la matriz es diferente de cero y que no se requiere intercambiar filas. La codificación en MATLAB sigue directamente la formulación matemática descrita anteriormente. Se usa notación compacta para manejo de matrices function x=gaussjordan(a,b) n=length(b); a=[a,b]; %matriz aumentada for e=1:n a(e,e:n+1)=a(e,e:n+1)/a(e,e); %normalizar fila e for i=1:n if i~=e a(i,e:n+1)=a(i,e:n+1)-a(i,e)*a(e,e:n+1); %reducir otras filas end end end x=a(1:n,n+1); %vector solución Ejemplo. Desde la ventana de comandos de MATLAB, use la función Gauss-Jordan para resolver el sistema: 2 3 7   x1   3   −2 5      6   x2  =  5  8 9    x 3  8  4     Escriba en la ventana de comandos de MATLAB >> a=[2, 3, 7; -2, 5, 6; 8, 9, 4]; Matriz de coeficientes >> b=[3; 5; 8]; Vector de constantes >> x=gaussjordan(a,b) Llamada a la función x= -0.0556 Solución proporcionada por MATLAB 0.9150 0.0523 >> a*x Verificar la solución ans = 3.0000 La solución satisface al sistema 5.0000 8.0000 Cuando se dispone de la instrumentación computacional de un algoritmo, se puede obtener experimentalmente su eficiencia registrando, para diferentes valores de n, el tiempo de ejecución del algoritmo. Este tiempo depende de la velocidad del procesador del dispositivo computacional, pero es proporcional a T(n). MATLAB dispone de las funciones tic, toc para registrar tiempo de ejecución, mientras que para las pruebas se pueden generar matrices y vectores con números aleatorios. Se presentan algunos resultados con obtenidos con un procesador intel core i5 y la versión 7.01 de MATLAB: n=100, t=0.0781 seg. n=200, t=0.3859 seg. n=300, t=1.0336 seg. n=400, t=2.0758 seg. Se observa que T(n) tiene crecimiento tipo potencial
  • 9. 65 4.2.4 Obtención de la inversa de una matriz Para encontrar la matriz inversa se puede usar el método de Gauss-Jordan. Sea A una matriz cuadrada cuyo determinante es diferente de cero. Sean t 1 ,t 2 , . . . ,t m−1 ,t m las transformaciones lineales del método de Gauss-Jordan que transforman la matriz A en la matriz identidad I incluyendo intercambios de filas t m t m-1 . . . t 2 t 1 A = I Entonces se puede escribir t m t m-1 . . . t 2 t 1 A −1 A = A −1 I ⇒ t m t m-1 . . . t 2 t 1 I = A −1 Lo cual significa que las mismas transformaciones que convierten A en la matriz I, convertirán la matriz I en la matriz A −1 . −1 Para aplicar este algoritmo, suponiendo que se desea conocer la matriz A , se debe aumentar la matriz anterior con la matriz I: A | B | I Las transformaciones aplicadas simultáneamente proporcionarán finalmente el vector solución X y la matriz identidad A −1 Ejemplo. Con el Método de Gauss-Jordan resuelva el sistema de ecuaciones siguiente y simultáneamente obtenga la matriz inversa: 4x1 + 2x 2 + 5x 3 = 18.00 2x1 + 5x 2 + 8x 3 = 27.30 2x1 + 4x 2 + 3x 3 = 16.20 Solución. La matriz aumentada es: 4 2 5 18.00 1 0 0 A | B = 2 5 8  27.30 0 1 1  2 4 3  16.20 0 0 1  Cálculos Normalizar fila 1 y reducir filas 2 y 3 1.0000 0.5000 1.2500 4.5000 0.2500 0 0 0 4.0000 5.5000 18.3000 -0.5000 1.0000 0 0 3.0000 0.5000 7.2000 -0.5000 0 1.0000
  • 10. 66 Normalizar fila 2 y reducir filas 1 y 3 1.0000 0 0.5625 2.2125 0.3125 -0.1250 0 0 1.0000 1.3750 4.5750 -0.1250 0.2500 0 0 0 -3.6250 -6.5250 -0.1250 -0.7500 1.0000 Normalizar fila 3 y reducir filas 1 y 2 1.0000 0 0 1.2000 0.2931 -0.2414 0.1552 0 1.0000 0 2.1000 -0.1724 -0.0345 0.3793 0 0 1.0000 1.8000 0.0345 0.2069 -0.2759 Solución del sistema 1.2  X =  2.1   1.8    Matriz inversa  0.2931 −0.2414 0.1552   −0.1724 −0.0345 0.3793  A −1 =    0.0345  0.2069 −0.2759  