Gauss SeidelPágina 2
Gauss SeidelPágina 1
Universidad Nacional de Ingeniería
R.U.P.A.P.
Uso del Método de Gauss-Seidel en la solución de ecuaciones lineales.
Integrantes:
Gerald Gabriel Sánchez Campos
Kenia Esmeralda Tórrez Chávez
Roberto Carlos Martínez Sandoval
Gerald Paúl Gutiérrez Santos
Profesora:
Melvis
Grupo: 2T3-IND
02 de Agosto del 2011.
Dedicatoria
Se dedica esta investigación a nuestros padres y a nosotros mismos.
A nuestros padres que con su esfuerzo y dedicación por hacer de nosotros mejores personas y forjando en nuestro criterio valores que nos conviertan en personas útiles a la sociedad se han dado a la tarea de mantener nuestros estudios a través de su arduo trabajo y sus sabios consejos.
A nosotros que con nuestro empeño y dedicación, y la valoración del esfuerzo de las demás personas para con nosotros hemos sabido aprovechar este trabajo para aprender, no solamente sobre el tema de investigación sino también a trabajar en equipo, a ser más responsables y a ser conscientes de la importancia de nuestro aprendizaje para el buen desarrollo de nosotros mismos en lo que a nuestra carrera corresponde.
Agradecimientos
Gracias al esfuerzo del equipo de trabajo nos sentimos satisfechos por los resultados obtenidos en nuestra investigación, todos y cada uno de nosotros los integrantes fuimos pieza clave en el desarrollo de la investigación y con nuestro aporte al trabajo logramos complementarnos para poder cumplir con el objetivo que nos propusimos al desarrollar este tema.
Contenido
Dedicatoria 2
Agradecimientos 3
Introducción 5
Justificación 6
Antecedentes 7
Tema 8
Tema específico 8
Objetivo general 9
Objetivos específicos 9
Hipótesis 10
Preguntas Directrices 10
Bosquejo del Marco Teórico 11
Marco Teórico 12
1) MÉTODO DE GAUSS-SEIDEL 12
2) DESCRIPCIÓN DEL MÉTODO DE GAUSS-SEIDEL 12
3) APLICACIÓN DEL MÉTODO DE GAUSS-SEIDEL 13
4) EXPLICACIÓN DEL MÉTODO DE GAUSS-SEIDEL 15
a) Teorema 1: 17
b) Teorema 2: 18
c) Teorema 3: 18
i) EJEMPLO DEL TEOREMA 3 19
6) ALGORITMO PARA LA APLICACIÓN DEL MÉTODO DE GAUSS-SEIDEL 23
a) Algoritmo descrito paso a paso 24
7) EJEMPLO DEL MÉTODO DE GAUSS-SEIDEL 24
Diseño Metodológico 27
Conclusiones 28
Recomendaciones 29
Bibliografía 30
Anexos 31
Introducción
La presente investigación documental fue elaborada como conclusión del curso de Programación I del tercer semestre de la carrera Ingeniería Industrial, enfocado en la definición y aplicación del método iterativo Gauss-Seidel para la resolución de matrices en las ecuaciones lineales.
La información recopilada para esta investigación fue obtenida por medio de consultas a documentos, videos y algoritmos referentes a la definición y aplicación del método de Gauss-Seidel los cuales encontramos en compilaciones de docentes y la red.
La investigación se enfoca en la utilidad del método para la resolución de las ecuaciones lineales y en comparación con otros métodos iterativos parecidos su precisión, su facilidad de aplicación, su complejidad, sus condiciones de aplicación, etc.
Justificación
El tema planteado en esta investigación es de gran relevancia porque hace una interesante comparación y documentación acerca de las diferentes maneras de resolución de sistemas de ecuaciones lineales en la aplicación de problemas de esta índole.
Con este trabajo se pretende resaltar el método específico de Gauss-Seidel como uno de los métodos más efectivos, aunque complejo en la resolución de sistemas de ecuaciones lineales.
Se espera que esta investigación sirva de consulta para otras temáticas relacionadas con el fin de tomar en cuenta al método de Gauss-Seidel como uno de los más importantes en la aplicación de la resolución de problemas que involucran sistemas de ecuaciones lineales.
Antecedentes
El presente trabajo investigativo pertenece a la asignatura de "Métodos Numéricos" y complementa una serie de investigaciones elaboradas por otros profesionales, ingenieros y estudiantes que han contribuido a conocer más acerca de la importancia de la utilización del método de Gauss-Seidel en diferentes campos de aplicación como:
Sistemas computacionales
Problemas de ecuaciones lineales
Aplicaciones en la Ingeniería
Etc.
Entre las publicaciones relacionadas a este tema tenemos:
Método de Gauss-Seidel. Elaborado por: Diego López
Descomposición LU y Métodos de Gauss-Seidel. Elaborado por: Jaime Montoya
Resolución de Sistemas de Ecuaciones Lineales. Elaborado por: Lourdes Sánchez Guerrero
Métodos Iterativos. Elaborado por: Wladimiro Díaz Villanueva
Estas publicaciones han ayudado a comprender, aprender a implementar el método de Gauss-Seidel. El trabajo que hemos realizado es un complemento de esto.
Tema
Solución de ecuaciones lineales en algoritmos de programación
Tema específico
Uso del método de Gauss-Seidel en la solución de sistemas de ecuaciones lineales
Objetivo general
Aplicar los conocimientos de programación para resolver un sistema de ecuaciones lineales por el método de Gauss-Seidel para aplicaciones en algoritmos del Programa Turbo Pascal.
Objetivos específicos
Mostrar la implementación de uno de los métodos de solución iterativos de sistemas de ecuaciones lineales.
Mostrar cómo aplicar el método mencionado para facilitar la solución de sistemas de ecuaciones, y poder así programar dichos métodos en la computadora.
Proporcionar al estudiante una idea clara y comprensible del método de Gauss-Seidel.
Hipótesis
El método Gauss-Seidel permite resolver un sistema de ecuaciones lineales en una matriz cuadrada de tal manera que el resultado de las variables obtenido sea exacto.
Preguntas Directrices
¿Se puede implementar el método de Gauss-Seidel para resolver un sistema de ecuaciones lineales?
¿Al utilizar el método de Gauss-Seidel será necesario que la matriz sea cuadrada?
¿El resultado del uso del método de Gauss-Seidel es completamente exacto?
Bosquejo del Marco Teórico
MÉTODO DE GAUSS-SEIDEL
DESCRIPCIÓN DEL MÉTODO DE GAUSS-SEIDEL
APLICACIÓN DEL MÉTODO DE GAUSS-SEIDEL
EXPLICACIÓN DEL MÉTODO DE GAUSS-SEIDEL
CONVERGENCIA PARA LA APLICACIÓN DEL MÉTODO DE GAUSS-SEIDEL
Teorema 1
Teorema 2
Teorema 3
Ejemplo del teorema 3
ALGORITMO PARA LA APLICACIÓN DEL MÉTODO DE GAUSS-SEIDEL
Algoritmo descrito paso a paso
EJEMPLO DEL MÉTODO DE GAUSS-SEIDEL
Marco Teórico
MÉTODO DE GAUSS-SEIDEL
En análisis numérico el método de Gauss-Seidel es un método iterativo utilizado para resolver sistemas de ecuaciones lineales. El método se llama así en honor a los matemáticos alemanes Carl Friedrich Gauss y Philipp Ludwig von Seidel y es similar al método de Jacobi.
Aunque este método puede aplicarse a cualquier sistema de ecuaciones lineales que produzca una matriz (cuadrada, naturalmente pues para que exista solución el sistema debe tener tantas ecuaciones como incógnitas) de coeficientes con los elementos de su diagonal no-nulos, la convergencia del método solo se garantiza si la matriz es diagonalmente dominante o si es simétrica y, a la vez, definida positiva.
DESCRIPCIÓN DEL MÉTODO DE GAUSS-SEIDEL
Es un método iterativo, lo que significa que se parte de una aproximación inicial y se repite el proceso hasta llegar a una solución con un margen de error tan pequeño como se quiera. Buscamos la solución a un sistema de ecuaciones lineales, en notación matricial:
Donde:
El método de iteración Gauss-Seidel se computa, para la iteración:
Donde:
Definimos:
y
,
donde los coeficientes de la matriz N se definen como si , si .
Considerando el sistema con la condición de que . Entonces podemos escribir la fórmula de iteración del método
(*)
La diferencia entre este método y el de Jacobi es que, en este último, las mejoras a las aproximaciones no se utilizan hasta completar las iteraciones.
APLICACIÓN DEL MÉTODO DE GAUSS-SEIDEL
El método de Gauss-Seidel es un método iterativo y por lo mismo resulta ser bastante eficiente. Se comienza planteando el sistema de ecuaciones con el que se va a trabajar:
De la ecuación 1 despejar x1, de la ecuación 2 despejar x2, …, de la ecuación n despejar xn. Esto da el siguiente conjunto de ecuaciones:
Este último conjunto de ecuaciones son las que forman las fórmulas iterativas con las que se va a estar trabajando. Para comenzar el proceso iterativo, se le da el valor de cero a las variables x2,…, xn; esto dará un primer valor para x1. Más precisamente, se tiene que:
Enseguida, se sustituye este valor de x1 en la ecuación 2, y las variables x3,…, xn siguen teniendo el valor de cero. Esto da el siguiente valor para x2:
Estos últimos valores de x1 y x2, se sustituyen en la ecuación 3, mientras que x4,…, xn siguen teniendo el valor de cero; y así sucesivamente hasta llegar a la última ecuación. Todo este paso arrojará una lista de primeros valores para las incógnitas, la cual conforma el primer paso en el proceso iterativo. Para una mejor comprensión esto se simbolizará de esta forma:
Se vuelve a repetir el proceso, pero ahora sustituyendo estos últimos datos en vez de ceros como al inicio. Se obtendrá una segunda lista de valores para cada una de las incógnitas, lo cual se simbolizará así:
En este momento se pueden calcular los errores aproximados relativos, respecto a cada una de las incógnitas. La lista de errores se presenta a continuación:
El proceso se vuelve a repetir hasta que:
donde se debe prefijar convenientemente.
EXPLICACIÓN DEL MÉTODO DE GAUSS-SEIDEL
Se elige una aproximación inicial para .
Se calculan las matrices M y el vector c con las fórmulas mencionadas. El proceso se repite hasta que xk sea lo suficientemente cercano a xk 1, donde k representa el número de pasos en la iteración. Se tiene que despejar de la ecuación una de variable distinta y determinante. Si al sumar los coeficientes de las variables divididos entre si da 1 y -1 es más probable que el despeje funcione. Y se debe de despejar en cada ecuación una variable distinta, una forma de encontrar que variable despejar es despejando la variable que tenga el mayor coeficiente.
Ecuaciones:
3x-y+z=1
x-5y+z=8
x-y+4z=11
Despejes:
x=(1+y-z)/3
y=(8-x-z)/-5
z=(11-x+y)/4
Después se necesita iniciar con las iteraciones, el valor inicial no es importante lo importante es usar las iteraciones necesarias, para darte cuenta cuantas iteraciones son necesarias necesitas observar cuando los decimales se estabilicen en dos decimales pero se tiene que tener en cuenta que se tiene que seguir con las iteraciones aunque una de las variables sea estable si las demás no han llegado al valor buscado. Se sustituye los valores en los despejes, usando para cada despeje el nuevo valor encontrado.
k
X
Y
Z
0
0
0
0
1
0.333
-1.600
2.750
2
-1.117
-0.983
2.267
3
-0.750
-1.370
2.783
4
-1.051
-1.193
2.595
...
...
...
...
10
-0.982
-1.259
2.679
11
-0.979
-1.261
2.681
12
-0.980
-1.260
2.680
13
-0.980
-1.260
2.680
-0.980
-1.260
2.680
Estos son los resultados estimados para las variables y podemos observar que los decimales se estabilizaron en dos decimales.
CONVERGENCIA PARA LA APLICACIÓN DEL MÉTODO DE GAUSS-SEIDEL
Teorema 1: Suponga una matriz es una matriz no singular que cumple la condición de
ó .
Entonces el método de Gauss-Seidel converge a una solución del sistema de ecuaciones, y la convergencia es por lo menos tan rápida como la convergencia del método de Jacobi.
Para ver los casos en que converge el método primero mostraremos que se puede escribir de la siguiente forma:
(**)
(El término es la aproximación obtenida después de la k-ésima iteración) este modo de escribir la iteración es la forma general de un método iterativo estacionario.
Primeramente debemos demostrar que el problema lineal Ax = b que queremos resolver se puede representar en la forma (**), por este motivo debemos tratar de escribir la matriz A como la suma de una matriz triangular inferior, una diagonal y una triangular superior A=(L+D+U), D=diag(). Haciendo los despejes necesarios escribimos el método de esta forma
por lo tanto M=-(L+D)-1 U y c=(L+D)-1b
Ahora podemos ver que la relación entre los errores, el cual se puede calcular al substraer x=Bx+c de (**)
Supongamos ahora que, i= 1,..., n, son los valores propios que corresponden a los vectores propios ui, i= 1,..., n, los cuales son linealmente independientes, entonces podemos escribir el error inicial
(***)
Por lo tanto la iteración converge si y sólo si " λi"<1, i= 1, ..., n. De este hecho se desprende el siguiente teorema:
Teorema 2: Una condición suficiente y necesaria para que un método iterativo estacionario converja para una aproximación arbitraria x^{(0)} es que
donde ρ(M) es el radio espectral de M.
Importante observación respecto al método de Gauss-Seidel: Es lógico preguntarse si siempre el método de Gauss-Seidel converge a la solución del sistema de ecuaciones y también es lógico esperar que la respuesta es NO.
Un resultado de Análisis numérico da una condición suficiente para la convergencia del método.
Teorema 3: El método de Gauss-Seidel converge a la solución del sistema si se cumple la condición de que la matriz de coeficientes del sistema sea una matriz diagonalmente dominante, es decir, si se cumple la siguiente condición:
La condición de ser una matriz diagonalmente dominante simplemente significa que los elementos de la diagonal son mayores (en valor absoluto) que la suma de los valores absolutos de los demás elementos del mismo renglón. Nótese que en el ejemplo anterior, la matriz sí es diagonalmente dominante y por lo tanto, el método de Gauss-Seidel sí converge a la solución del sistema.
Sin embargo, la condición de la matriz diagonalmente dominante, solamente es una condición suficiente pero no necesaria, es decir, existen sistemas de ecuaciones que no cumplen con la condición y que sí convergen a la solución y también existen sistemas de ecuaciones que no cumplen con la condición y que no convergen a la solución.
Finalmente, obsérvese que aunque un sistema no cumpla con la condición de ser diagonalmente dominante, es posible a veces, lograr que sí se cumpla con esta condición mediante un intercambio de renglones, como se verá en el siguiente ejemplo:
EJEMPLO DEL TEOREMA 3
Usar el método de Gauss-Seidel para aproximar la solución del sistema:
hasta que
Solución:
En este caso se puede observar que el sistema no es diagonalmente dominante, lo cual se comprueba con los siguientes cálculos:
Primera fila:
"a11" > ("a12" + "a13")
5 > (1.4 + 2.7)
5 > 4.1; es cierto.
La condición se cumple para la primera fila.
Segunda fila:
"a22" > ("a21" + "a23")
2.5 > (0.7 + 15)
2.5 > 15.7; no es cierto.
La condición no se cumple para la segunda fila.
"a33" > ("a31" + "a32")
4.4 > (3.3 + 11)
4.4 > 14.3; no es cierto.
La condición no se cumple para la tercera fila.
Para que el sistema sea diagonalmente dominante, la condición debe cumplirse para todas las filas. Por lo tanto, el sistema anterior no es diagonalmente dominante.
NOTA: Recuérdese que la diagonal principal está compuesta por a11, a22 y a33.
Sin embargo, al hacer el intercambio del renglón 2 por el renglón 3, se tiene el siguiente sistema:
En este caso se puede observar que el sistema sí es diagonalmente dominante, lo cual se comprueba con los siguientes cálculos:
Primera fila:
"a11" > ("a12" + "a13")
5 > (1.4 + 2.7)
5 > 4.1; es cierto.
La condición se cumple para la primera fila.
Segunda fila:
"a22" > ("a21" + "a23")
11 > (3.3 + 4.4)
11 > 7.7; es cierto.
La condición se cumple para la segunda fila.
"a33" > ("a31" + "a32")
15 > (0.7 + 2.5)
15 > 3.2; es cierto.
La condición se cumple para la tercera fila.
Para que el sistema sea diagonalmente dominante, la condición debe cumplirse para todas las filas. En este caso efectivamente la condición se cumple para todas las filas, por lo cual el sistema anterior es diagonalmente dominante. Por lo tanto se procede a despejar x1, x2 y x3 de las ecuaciones 1, 2 y 3 respectivamente:
Se comienza el proceso iterativo sustituyendo los valores de x2 = 0 x3 = 0 en la ecuación 1 para obtener x1:
Ahora se sustituye x1 = -18.84 y x3 = 0 en la ecuación 2 para obtener x2:
Por lo tanto los valores obtenidos en la primera iteración son:
Puesto que sólo se tiene la primera aproximación de la solución del sistema, se debe seguir avanzando en el proceso iterativo. Sustituyendo x2 = -3.152 y x3 = -0.04613 en la ecuación 1, se obtiene x1 = -19.69765; sustituyendo x1 = -19.69765 y x3 = -0.04613 en la ecuación 2, se obtiene x2 = -3.42775; sustituyendo x1 = -19.69765 y x2 = -3.42775 en la ecuación 3, se obtiene x3 = -0.05207. Por lo tanto, la segunda aproximación es:
Ahora se pueden calcular los errores aproximados para cada una de las incógnitas:
Puesto que no se ha cumplido el objetivo, se debe seguir avanzando en el proceso iterativo. Se resumen los resultados de esta manera:
Tercera iteración:
Cuarta iteración:
Así, el objetivo se ha logrado hasta la cuarta iteración y se tiene que los valores aproximados de la solución del sistema son:
ALGORITMO PARA LA APLICACIÓN DEL MÉTODO DE GAUSS-SEIDEL
El método de Gauss-Seidel se puede escribir en forma de algoritmo de la siguiente manera:
Función Gauss-Seidel (A, x0)
//x0 es una aproximación inicial a la solución//
para hasta convergencia hacer
para hasta hacer
para hasta hacer
si entonces
σ = σ + aijxj
fin para
fin para
comprobar si se alcanza convergencia
fin para
Algoritmo descrito paso a paso
Se debe despejar de cada ecuación la variable sobre la diagonal principal.
Dar un valor inicial a las incógnitas (generalmente se establecen ceros).
Sustituir los valores iniciales en la primera ecuación para obtener un nuevo valor para la primera incógnita.
Ese nuevo valor es usado para obtener el valor de la siguiente incógnita. Este procedimiento se repite hasta obtener los nuevos valores de todas las incógnitas despejadas.
Se evalúa la aproximación relativa de todas las incógnitas hasta que la solución converja bastante cerca de la solución real, según la tolerancia establecida para el método.
La iteración de Gauss-Seidel se define al tomar Q como la parte triangular inferior de A incluyendo los elementos de la diagonal.
Si, como en el caso anterior, definimos la matriz R=A-Q
EJEMPLO DEL MÉTODO DE GAUSS-SEIDEL
Usar el método de Gauss-Seidel para aproximar la solución del sistema:
hasta que
Solución:
Primero se despejan las incógnitas x1, x2 y x3 de las ecuaciones 1, 2 y 3 respectivamente. Se tiene:
Estas últimas son el juego de fórmulas iterativas que se estará utilizando.
Se comienza el proceso iterativo sustituyendo los valores de x2 = x3 = 0 en la primera ecuación, para calcular el valor de x1:
Ahora se sustituye y x3 = 0 en la segunda ecuación para obtener x2:
Ahora se sustituye y en la tercera ecuación para obtener x3:
Así se tiene la primera aproximación a la solución del sistema:
Puesto que todavía no se puede calcular ningún error aproximado, se repite el proceso pero ahora con los últimos datos obtenidos para las incógnitas:
Sustituyendo y en la ecuación 1 se obtiene Sustituyendo y en la ecuación 2 se obtiene finalmente, sustituyendo y en la ecuación 3 se obtiene. Es así como se tiene la segunda lista de valores de aproximación a la solución del sistema:
Ahora se pueden calcular los errores absolutos para cada una de las incógnitas:
Puesto que no se ha logrado el objetivo, se debe repetir el mismo proceso con los últimos valores obtenidos de cada una de las incógnitas. Nótese que aunque el error aproximado ya cumple con ser menor al 1%, esto se debe cumplir para los tres errores aproximados. Por lo tanto se repite el mismo proceso. Omitiendo los pasos intermedios, se obtiene:
En este caso se tienen los siguientes errores aproximados:
Se puede observar que ahora se ha cumplido el objetivo para cada uno de los errores aproximados. Por lo tanto, se concluye que la solución aproximada es:
Diseño Metodológico
Presupuesto:
Cien Córdobas (C$100.00)
Tipo de investigación:
Pura - porque esta investigación busca acrecentar los conocimientos teóricos para el proceso de soluciones de ecuaciones lineales, sin definir concretamente la aplicación en una práctica del mundo real. Esto no quiere decir que está desligada de la práctica real ni que no puede ser utilizada en concreto en el futuro.
Acopio de información:
Recopilación de datos obtenidos de diversas fuentes
Medios:
Canales utilizados para recopilar la información (Internet, Libros)
Síntesis:
Resumen de la información obtenida
Análisis:
Análisis de la información para establecer las conclusiones
Conclusiones
Luego de haber estudiado el método para resolver un sistema de ecuaciones lineales Gauss-Seidel se concluye que puede trasladarse a un algoritmo de programación y ser resuelto satisfactoriamente lo cual reduce el tiempo de resolución y hace que el método sea más eficaz. El cálculo que realiza el programa es exacto; sin embargo existen desventajas, ya que este es exclusivo para la resolución de sistemas de ecuaciones lineales. Algunos métodos son más exactos, otros más fáciles de programar, otros más cortos, etc. Para ser capaces de elegir un método apropiado, lo primero que se necesita es comprender cómo se desarrolla cada uno de estos procesos.
El aprendizaje adquirido en esta investigación ha sido de gran valor y seguramente servirá de la misma manera a aquellos quienes posteriormente lean estas explicaciones y lo expuesto en este reporte.
Recomendaciones
El método Gauss-Seidel se utiliza para resolver ecuaciones lineales que sean diagonalmente dominante.
Puede ser de gran utilidad al resolver sistemas de ecuaciones con gran cantidad de variables.
La resolución del sistema con este método tiende a alargarse mucho, lo cual puede resultar tedioso al momento de realizarse a mano, se recomienda se utilice el método que satisfaga las necesidades de cada persona.
Se recomienda antes de utilizar el programa aquí expuesto hacer un estudio aparte para conocer el proceso de solución que este implementa.
Bibliografía
C. Chapra, S.; P. Canale, R. Métodos Numéricos para Ingenieros. (3ª ed.). McGrawHill.
Factorización LU. Wikipedia. de http://es.wikipedia.org/wiki/Factorizaci%C3%B3n_LU
MÉTOTO DE GAUSS-SEIDEL. Universidad Autónoma de Ciudad Juárez (UACJ).
http://metododegauss-seidel.blogspot.com/
INTRODUCCION AL ÁLGEBRA LINEAL. Antón Howard. 2da Ed
METODOS NUMERICOS PARA INGENIEROS. Chapra/Canale Mc-Graw Hill. 4a Ed
http://www.youtube.com/watch?v=m44X6aRW5C0
http://aprendeenlinea.udea.edu.co/lms/moodle/mod/resource/view.php?inpopup=true&id=24491
http://www.monografias.com/trabajos45/descomposicion-lu/descomposicion-lu.shtml
http://luda.uam.mx/curso2/tema3/sistem04.html
http://www.uv.es/diaz/mn/node36.htm
Anexos
CRONOGRAMA
Nº
Actividad
Julio
Agosto
21
23
24
25
26
27
28
29
30
31
1
2
1
Selección del tema
1
2
Recopilación de Datos
2
2
2
3
Selección de información
3
4
Delimitación del tema
4
5
Determinación de los objetivos
5
6
Formulación de la hipótesis
6
7
Realización del bosquejo
7
8
Desarrollo del marco teórico
8
9
Redacción de introducción
9
10
Redacción de antecedentes
10
11
Redacción de justificación
11
12
Realización del diseño metodológico
12
13
Análisis del trabajo
13
14
Redacción de las conclusiones
14
15
Realización del agradecimiento
15
16
Realización de dedicatoria
16
17
Establecimiento del cronograma
17
18
Organización de los anexos
18
19
Redacción del índice
19
20
Desarrollo del algoritmo en Pascal
20
20
20
20
20
20
20
20
21
Entrega del trabajo
21
22
Defensa del trabajo
22