FACULTAD DE INGENIERÍA DE PROCESOS ESCUELA PROFESIONAL DE INGENIERÍA DE MATERIALES Métodos Numéricos Aplicados a Ingeniería de Materiales
SISTEMAS DE ECUACIONES LINEALES PRÁCTICA 9 ELIMINACIÓN DE GAUSS En la eliminación gaussiana se aplica técnicas sistemáticas para la eliminación hacia adelante y la sustitución hacia atrás para resolver ecuaciones lineales simultaneas. Esta técnica es adecuada para utilizarla en computadoras, pero se requiere de algunas modificaciones para obtener un algoritmo confiable. En particular, el programa debe evitar la división entre cero. El método de eliminación gaussiana “simple” no evita el problema de división entre cero. Otros métodos tienen algunas características adicionales necesarias para obtener un programa de cómputo efectivo. El método está ideado para resolver un sistema si stema general de n ecuaciones: (1a) (1b)
1c La técnica para resolver n ecuaciones consiste en dos fases:
eliminación de las incógnitas, y solución por sustitución hacia atrás
Eliminación hacia adelante de incógnitas i ncógnitas La primera fase consiste en reducir el conjunto de ecuaciones a un sistema triangular superior
El paso inicial será eliminar la primera incógnita, x1, desde la segunda hasta la n-ésima ecuación. Para ello, se multiplica la ecuación (1a) por a21/a11 para obtener
Edwin Urday
Página 1 de 13
FACULTAD DE INGENIERÍA DE PROCESOS ESCUELA PROFESIONAL DE INGENIERÍA DE MATERIALES Métodos Numéricos Aplicados a Ingeniería de Materiales
(2) Ahora, esta ecuación se resta de la ecuación (1b) para dar
o
donde el superíndice prima indica que los elementos han cambiado sus valores originales. El procedimiento se repite después con las ecuaciones restantes. Por ejemplo, la ecuación (1a) se puede multiplicar por a31/a11 y el resultado se resta de la tercera ecuación. Se repite el procedimiento con las ecuaciones restantes y da como resultado el siguiente sistema modificado: (3a) (3b) (3c)
(3d ) En los pasos anteriores, la ecuación (1a) se llama la ecuación pivote, y a11 se denomina el coeficiente o elemento pivote. Observe que el proceso de multiplicación del primer renglón por a21/a11 es equivalente a dividirla entre a11 y multiplicarla por a21. Algunas veces la operación de división es referida a la normalización. Se hace esta distinción porque un elemento pivote cero llega a interferir con la normalización al causar una división entre cero. Más adelante se regresará a este punto importante, una vez que se complete la descripción de la eliminación de Gauss simple. Ahora se repite el procedimiento antes descrito para eliminar la segunda incógnita en las ecuaciones ( 3c) hasta (3d). Para realizar esto, multiplique la ecuación (3b) por a'32/a'22 y reste el resultado de la ecuación (3c). Se realiza la eliminación en forma similar en las ecuaciones restantes para obtener
donde el superíndice biprima indica que los elementos se han modificado dos veces. El procedimiento puede continuar usando las ecuaciones pivote restantes. La última manipulación en esta secuencia es el uso de la (n - 1)ésima ecuación para eliminar el término xn-1 de la n-ésima ecuación. Aquí el sistema se habrá transformado en un sistema triangular superior
Edwin Urday
Página 2 de 13
FACULTAD DE INGENIERÍA DE PROCESOS ESCUELA PROFESIONAL DE INGENIERÍA DE MATERIALES Métodos Numéricos Aplicados a Ingeniería de Materiales (4a) (4b) (4c)
(4d )
Sustitución hacia atrás D e la ecuación (4d ) ahora se despeja xn
Este resultado se puede sustituir hacia atrás en la (n - 1) ésima ecuación y despegar xn - 1. El procedimiento, que se repite para evaluar las x restantes, se representa mediante la fórmula:
Desventajas de la Eliminación de Gauss Simple
División entre cero El factor de pivoteo es pequeño con relación a los otros términos de la fila de pivoteo: errores de redondeo
EJERCICIO 1 Use la eliminación de Gauss para resolver
Efectúe los cálculos con seis cifras significativas. a) Resuelva con una hoja de cálculo b) Desarrolle un script o una función de usuario de Matlab para resolver este sistema c) Elabore una subrutina o una función de usuario de VBA para resolver este sistema
Homework
SOLUCIÓN. Usando una hoja de cálculo a) Eliminación hacia adelante 1° En una hoja de cálculo, introduzca el sistema lineal como en la figura
Edwin Urday
Página 3 de 13
FACULTAD DE INGENIERÍA DE PROCESOS ESCUELA PROFESIONAL DE INGENIERÍA DE MATERIALES Métodos Numéricos Aplicados a Ingeniería de Materiales
2° Para eliminar x1,en la celda A9 escriba =A3 y pulse ENTER. A continuación, seleccione la celda A9 y arrastre hasta la celda E9 para copiar la primera ecuación.
3° Aplique esta fórmula a la segunda ecuación a las celdas A10:C10 =A4-A3*($A$4/$A$3)
4° Realice los mismos cálculos para la tercera ecuación usando el factor =A5-A3*($A$5/$A$3) en las celdas A11:C11.
5° Para eliminar x2, en la celda A14 inserte la formula =A9 y copiarla hasta la celda E14 para copiar la primera ecuación del sistema lineal obtenido después de eliminar x1. También en la celda E15 copie la formula =A10 para copiar la segunda ecuación.
Edwin Urday
Página 4 de 13
FACULTAD DE INGENIERÍA DE PROCESOS ESCUELA PROFESIONAL DE INGENIERÍA DE MATERIALES Métodos Numéricos Aplicados a Ingeniería de Materiales
6° La celda A16 debe ser igual a la celda A11. Aplique el factor =B11-B10*($B$11/$B$10) a las celdas B16 y C16.
El sistema queda reducido a una forma triangular superior, que se puede usar para resolver estas ecuaciones por sustitución hacia atrás y, por lo tanto, encontrar los valores de las variables. 7° Inserte las formulas en la hoja de cálculo de acuerdo a la siguiente tabla para calcular el valor de las variables. x3 E19 =E16/C16 x2 E20 =(E15-C15*E21)/B15 x1 E21 =(E14-C14*E21-B14*E20)/A14
Usando una función de usuario de Matlab 1° Abrir el archivo GaussSimple.m y active la función con el editor de Matlab 2° En la ventana Command de Matlab es criba los argumentos de la función A=[3 -0.1 -0.2; 0.1 7 -0.3; 0.3 -0.2 10]; b=[7.85 -19.3 71.4]';
Edwin Urday
Página 5 de 13
FACULTAD DE INGENIERÍA DE PROCESOS ESCUELA PROFESIONAL DE INGENIERÍA DE MATERIALES Métodos Numéricos Aplicados a Ingeniería de Materiales 3° Introduzca el nombre de la función con los nombres de los argumentos entre paréntesis y haga clic sobre ENTER para visualizar el resultado
Edwin Urday
Página 6 de 13
FACULTAD DE INGENIERÍA DE PROCESOS ESCUELA PROFESIONAL DE INGENIERÍA DE MATERIALES Métodos Numéricos Aplicados a Ingeniería de Materiales
ELIMINACIÓN DE GAUSS CON PIVOTEO Ocurren problemas obvios cuando un elemento pivote es cero porque origina una división entre cero. También llegan a surgir problemas cuando el elemento pivote es pequeño comparado con los otros elementos, entonces se pueden introducir errores de redondeo. Por lo tanto, antes de normalizar cada fila, resulta conveniente determinar el coeficiente más grande disponible en la columna debajo del elemento pivote. Las filas se pueden intercambiar de manera que el elemento más grande sea el elemento pivote; esto se conoce como pivoteo parcial . Al procedimiento, donde tanto en las columnas como en las filas se busca el elemento más grande y luego se intercambian, se le conoce como pivoteo completo, el cual se usa en muy raras ocasiones debido a que al intercambiar columnas se cambia el orden de las x y, en consecuencia, se agrega complejidad significativa y usualmente injustificada al programa de computadora. El siguiente ejemplo ilustra las ventajas del pivoteo parcial. Además de evitar l a división entre cero, el pivoteo también minimiza el error de redondeo. Como tal, sirve también para resolver parcialmente el mal condicionamiento de un sistema lineal.
EJERCICIO 2 Utilice la eliminación de Gauss con pivoteo parcial para resolver
La solución exacta es x1 = 1/3 y x2 = 2/3. a) Resuelva con una hoja de cálculo b) Desarrolle una función de usuario de Matlab para resolver este sistema c) Elabore una subrutina o una función de usuario de VBA para resolver este sistema
Homework
SOLUCIÓN. Con una hoja de cálculo 1° Ordene el sistema con la fila con el coeficiente más grande de x1 como la primera ecuación del sistema.
2° Aplique el procedimiento de Eliminación de Gauss simple.
Edwin Urday
Página 7 de 13
FACULTAD DE INGENIERÍA DE PROCESOS ESCUELA PROFESIONAL DE INGENIERÍA DE MATERIALES Métodos Numéricos Aplicados a Ingeniería de Materiales
Con una función de usuario de Matlab 1° 2° 3° 4°
Abrir y cargar el archivo GaussPivot y/o GaussPivot2 con Matlab Escribir la matriz de los coeficientes en la ventana Introducir los términos independientes como vector columna Escribir el nombre de la función con sus argumentos respectivos para obtener A=[0.0003 3.0000; 1.0000 1.0000]; a=[0.0003 3.0000; 1.0000 1.0000]; b=[2.0001; 1.0000];
Con una subrutina o una función de usuario de VBA para resolver este sistema Homework
Edwin Urday
Página 8 de 13
FACULTAD DE INGENIERÍA DE PROCESOS ESCUELA PROFESIONAL DE INGENIERÍA DE MATERIALES Métodos Numéricos Aplicados a Ingeniería de Materiales
MÉTODO DE GAUSS-JORDAN El método de Gauss-Jordan es una variación de la eliminación de Gauss. La principal diferencia consiste en que cuando una incógnita se elimina en el método de Gauss-Jordan, ésta es eliminada de todas las otras ecuaciones, no sólo de las subsecuentes. Además, todas las filas se normalizan al dividirlas entre su elemento pivote. De esta forma, el paso de eliminación genera una matriz identidad en vez de una triangular (figura 2). En consecuencia, no es necesario usar la sustitución hacia atrás para obtener la solución. La técnica de Gauss-Jordan involucra aproximadamente 50 por ciento más operaciones que la eliminación de Gauss. Por tanto, la eliminación de Gauss es el método de eliminación simple que se prefiere para obtener las soluciones de ecuaciones algebraicas lineales. Sin embargo, una de las razones principales por las que se ha introducido la técnica de Gauss-Jordan, es que aún se utiliza tanto en la ingeniería como en ciertos algoritmos numéricos.
EJERCICIO 3 Con la técnica de Gauss-Jordan resuelva el sistema
a) Resuelva con una hoja de cálculo b) Desarrolle un script o una función de usuario de Matlab para resolver este sistema c) Elabore una subrutina o una función de usuario de VBA para resolver este sistema
Homework
SOLUCIÓN. a) Con una hoja de cálculo 1° Exprese los coeficientes y el lado derecho como una matriz aumentada:
2° Eliminación de x1 introduciendo las formulas en cada celda y completando los cálculos de cada fila:
Fila
Celda
Formula
1 2 3
A8 A9 A10
=A3/$A$3 =A4-A3*($A$4/$A$3) =A5-A3*($A$5/$A$3)
Edwin Urday
Página 9 de 13
FACULTAD DE INGENIERÍA DE PROCESOS ESCUELA PROFESIONAL DE INGENIERÍA DE MATERIALES Métodos Numéricos Aplicados a Ingeniería de Materiales
3° Eliminación de x2 introduciendo las formulas en cada celda y completando los cálculos de cada fila:
Fila
Celda
1 2 3
B11 B12 B13
Formula =B7-B8*($B$7/$B$8) =B8/$B$8 =B9-B8*($B$9/$B$8)
4° Eliminación de x3 introduciendo las formulas en cada celda y completando los cálculos de cada fila:
Fila
Celda
Formula
1 2 3
C15 C16 C17
=C11-C13*($C$11/$C$13) =C12-C13*($C$12/$C$13) =C13/$C$13
Edwin Urday
Página 10 de 13
FACULTAD DE INGENIERÍA DE PROCESOS ESCUELA PROFESIONAL DE INGENIERÍA DE MATERIALES Métodos Numéricos Aplicados a Ingeniería de Materiales De esta forma, como se muestra en la figura siguiente, la matriz de coeficientes se ha transformado en la matriz identidad, y la solución se obtiene en el vector del lado derecho. Observe que no se requiere la sustitución hacia atrás para llegar a la solución.
Por lo tanto, la solución del sistema con una hoja de cálculo es x1 = x2 = x3 =
3 -2.5 7
b) Con un script de Matlab Aplique el procedimiento del archivo script GaussJordanS1.m 1° En la ventana de comandos de Matlab escriba el nombre del archivo script para introducir la matriz aumentada del sistema de acuerdo a la secuencia del script:
Edwin Urday
Página 11 de 13
FACULTAD DE INGENIERÍA DE PROCESOS ESCUELA PROFESIONAL DE INGENIERÍA DE MATERIALES Métodos Numéricos Aplicados a Ingeniería de Materiales 2° Al pulsar Enter secuencialmente se elimina x1
3° Al pulsar Enter secuencialmente se elimina x2 y x3
Edwin Urday
Página 12 de 13
FACULTAD DE INGENIERÍA DE PROCESOS ESCUELA PROFESIONAL DE INGENIERÍA DE MATERIALES Métodos Numéricos Aplicados a Ingeniería de Materiales 4° Al final aparece el mensaje resultado
5° Se obtiene el mismo resultado con el script GaussJordan_s2.m A= [3 -0.1 -0.2; 0.1 7 -0.3; 0.3 -0.2 10]; b= [7.85; -19.3; 71.4];
c) Con una función de usuario de Matlab La salida de la función gauss_jordan_elim.m es:
d) Elabore una subrutina o una función de usuario de VBA para resolver este sistema
Edwin Urday
Homework
Página 13 de 13