Vous êtes sur la page 1sur 10

Comparacin de los mtodos de Eliminacin Gaussiana,

Jacobi y Gauss-Seidel en la solucin de un sistema de


ecuaciones Ax=b

Ph. D. Zenaida Castillo

Jordy Sarmas

Tercer Semestre D

Marzo 7, 2016

ndice
1. Resumen
2. Introduccin
3. Cuerpo
3.1. Base terica: Mtodos para resolver sistemas de ecuaciones.
3.1.1. Mtodos directos.
3.1.1.1. Mtodo de Eliminacin Gaussiana
3.1.2. Mtodos iterativos
3.1.2.1. Mtodo de Jacobi
3.1.2.2. Mtodo de Gauss-Seidel
3.2. Conceptos referentes a matrices
3.3. Definiciones de parmetros en Matlab
3.4. Descripcin del problema
3.5. Herramientas
3.6 Anlisis y resultados
4. Conclusiones
5. Bibliografa

1.

Resumen

Existen sistemas de ecuaciones, que debido a su gran tamao y complejidad, su resolucin puede
convertirse en un proceso sumamente engorroso; por ello, se han diseado algoritmos orientados a
encontrar soluciones aproximadas a dichos sistemas, entre los cuales se encuentran los mtodos
directos y los iterativos. La comparacin entre dichos mtodos ha demostrado que en trminos de
precisin, el mtodo directo de eliminacin gaussiana es el mejor para las dos clases de matrices
analizadas, por otra parte, la comparacin tambin revel que en trminos de rapidez, no siempre la
eliminacin gaussiana es la mejor opcin, por ello la utilidad de los mtodos iterativos como
aproximadores eficientes.
2.

Introduccin

El siguiente trabajo tiene como objetivo la comparacin entre mtodos directos (Eliminacin
Gaussiana) e iterativos (Jacobi y Gauss-Seidel) para la resolucin de sistemas de ecuaciones regulares
de la forma Ax=b; en trminos de rapidez de CPU y precisin.
Para ello, utilizaremos las matrices de coeficientes generadas por A=sprandn(n(i), n(i), 0.5) y A =
gallery('gcdmat',n), y las transformaremos en matrices Diagonales Dominantes para que sean
convergentes y tengan solucin. Los resultados afirman que el mtodo de Eliminacin Gaussiana es
implacable frente a los iterativos en trminos de precisin, e incluso en muchos casos, es el que ms
rpido se ejecuta. Se discutirn estos aspectos con mayor detalle en la seccin Anlisis y resultados.
3.

Cuerpo
3.1. Base terica: Mtodos para resolver sistemas de ecuaciones.

Existen varias maneras de resolver un sistema de ecuaciones, entre ellas destacaremos, los mtodos
directos y los iterativos.
3.1.1
Mtodos directos._ Son todos aquellos procedimientos que, siguiendo una secuencia
finita de pasos y en ausencia de errores, nos permiten encontrar una solucin exacta para un sistema
de ecuaciones. Es importante puntualizar que, en la prctica, la exactitud no siempre se alcanza debido
a los errores de redondeo. Algunos de los mtodos directos ms conocidos son: la factorizacin LU, la
factorizacin de Cholesky, la factorizacin QR y la eliminacin gaussiana, este ltimo ser objeto de
comparacin con dos mtodos iterativos en el presente informe.
3.1.1.1 Eliminacin Gaussiana._ Tambin conocida como eliminacin de Gauss-Jordan,
es un algoritmo de algebra lineal que sirve para encontrar soluciones a sistemas regulares Ax=b,
reducindolos a un sistema triangular superior de la forma Ux= B. Para reducir el sistema, se puede
interactuar con las diferentes ecuaciones, haciendo multiplicaciones, sumas y reubicaciones de filas
entre ellas, de modo que no se alteran los valores de la solucin.
3.1.2.
Mtodos iterativos._ Se utilizan para dar soluciones aproximadas a sistemas de
ecuaciones. Son muy eficaces cuando el orden es superior a 1000, sin embargo, tienen la desventaja
de no poderse aplicar a todo sistema de ecuaciones de la forma Ax=b. Para que estas tcnicas
funcionen, se deben cumplir ciertos requisitos, por ejemplo, el conjunto de ecuaciones debe tener una

diagonal dominante, la cual es una condicin necesaria pero no suficiente. Entre ellos tenemos el
mtodo de Jacobi y el mtodo de Gauss-Seidel.
3.1.2.1 Mtodo de Jacobi._ Se conoce tambin como desplazamiento simultneo. En este
mtodo el orden de operacin de las ecuaciones no es importante debido a que este procedimiento las
aborda de manera independiente, de ah el porqu de su nombre, sin embargo es necesario mantener
la Diagonal dominante. Para una mejor comprensin, ilustraremos el mtodo.
Dado el siguiente sistema:
11. 1
21. 1
31. 1

12. 2
22. 2
32. 2

13. 3 1
23. 3 = 2
33. 3 3
()

()

(3)

El mtodo de Jacobi comienza definiendo un vector inicial de la forma, = (1 , 2 , 3 ) el cual


ser el primer estimador del vector solucin, y despejando las ecuaciones anteriores para 1 , 2 y
3 respectivamente, introduciendo adems el ndice k que indicar el nmero de iteraciones, entonces
tenemos:
(+1)

1
()
(=1 ^ , . )
,

Ntese que, cuando el proceso termina un ciclo, los valores del vector solucin xk se actualizan en
(+1)

xk+1. El proceso contina hasta que |

()
| <

3.1.2.2 Mtodo de Gauss-Seidel._ Por lo general, este mtodo converge ms rpido que
el de Jacobi pero posee sus mismas limitaciones debido a que se podra considerar a este mtodo como
una variante del anterior. El mtodo de Gauss-Seidel podra ofrecer una mejor aproximacin debido a
que, al momento de efectuar las sustituciones, trabaja con los valores parcialmente calculados. De
igual manera, procederemos a ilustrar el mtodo.
Dado el siguiente sistema:
11. 1
21. 1
31. 1

12. 2
22. 2
32. 2

13. 3 1
23. 3 = 2
33. 3 3

Empezaremos despejando las ecuaciones anteriores pero adicionando, cuando sea posible, los
valores parcialmente calculados. Es decir:
()

(+1)
1

(+1)

(+1)
2

()

1 12 2 13 3
=
11

2 21 1

22

()

23 3

(+1)

(+1)
3

3 31 1

(+1)

32 2

33

Y as sucesivamente se calculan los valores para 1 , 2 y 3 , hasta que se cumple que


|(+1) () | <
3.2.

Conceptos referentes a matrices.

Diagonal dominante._ Un sistema de ecuaciones se considera Diagonal Dominante si se cumple que

|, | >

|, |
=1 ^

Es decir, si el valor absoluto de los elementos en la diagonal principal es mayor a la suma de los valores
absolutos de los elementos en el mismo regln. No siempre las matrices son Diagonales dominantes,
sin embargo, algunas de ellas pueden convertirse en Diagonales dominantes al reorganizar sus
ecuaciones.
Matrices dispersas._ Tambin llamada matriz rala o matriz hueca, es una matriz de orden elevado en
la que la mayor parte de sus elementos son cero.
3.3.

Definiciones de parmetros en Matlab.

tol._ Abreviacin de tolerancia, es una medida de bondad para los estimadores y se considera como la
diferencia mxima que puede existir entre un valor de y su valor obtenido en la iteracin anterior,
tal que permita la aceptacin del nuevo valor como aproximacin de la solucin.
sprandn._ Matriz aleatoria dispersa normalmente distribuida.
gcdmat._ Matriz de mximo comn divisor.
nmaxiter._ Nmero mximo permitido de iteraciones.
3.4.

Descripcin del problema.

Desde el bachillerato, los estudiantes aprenden a resolver un sistema de ecuaciones pequeo, utilizando
el mtodo de Eliminacin Gaussiana, segn el cual utilizan su intuicin para realizar los arreglos
permitidos necesarios para encontrar una solucin. Sin embargo, cuando se toma la misma idea para
la resolucin de sistemas de ecuaciones enormes, el nmero de operaciones a realizarse puede suponer
un martirio para el solucionador, es por ello que se han ideado varias formas algortmicas para
encontrar resultados aproximados a sistemas de ecuaciones de gran tamao. Entre ellos figuran los
mtodos directos e iterativos que se definieron en la seccin 3.1. Aunque bien se podra elegir uno
cualquiera, es importante saber identificar en qu situaciones y para qu matrices un mtodo resulta
ser mejor que el otro. Finalmente, otro de los problemas a considerarse es que para poder utilizar
alguno de estos mtodos, es necesario convertir las matrices dispersas en convergentes mediante la
aplicacin de un algoritmo, con el objetivo de que el sistema tenga solucin.

3.5.

Herramientas.

Aunque los cdigos sern anexados en forma digital, la relativa ausencia de comentarios en los mismos
pone de manifiesto la necesidad de explicar el porqu de cada funcin.
Funcin

Descripcin

[A]=Diagonal_D(A,d1,d2)

Se utiliza para hacer que la matriz se vuelva


Diagonal Dominante, y eventualmente para
volverla convergente
Devuelve una matriz aleatoria de tamao nxn,
A=sprandn(n, n, 0.5)
es una matriz dispersa con aproximadamente
0.5*n*n entradas no cero distribuidas
normalmente
Regresa una matriz nxn con (i,j) entrada
A = gallery('gcdmat',n)
gcd(i,j). La matriz A es simtrica positiva
definida, y A.^r es simtrica positiva
semidefinida para todos los r no negativos.
x=A\b
Nos permite hallar la solucin al sistema por el
mtodo de Eliminacin Gaussiana
[x1, iter]=jacobi(A,b, x0, tol, nmaxiter)
Nos permite hallar la solucin al sistema por el
mtodo de Jacobi
[x1, iter]=seiddel(A,b, x0, tol, nmaxiter)
Nos permite hallar la solucin al sistema por el
mtodo de Gauss-Seidel
Tabla1._ Herramientas utilizadas en la ejecucin con Matlab.
3.6.

Anlisis y resultados.

Cuando ingresamos la primera matriz Diagonal dominante generada por


function [A] = Diagonal_D(A,d1,d2);
[m,n]=size(A);
for i=1:n suma = sum(abs(A(i,:)))-abs(A(i,i));
A(i,i) = suma + 40*(d1+d2); end;
>> A=sprandn(n, n, 0.5); A=full (A); A=Diagonal_D(A)
Con los parmetros preestablecidos de: tol = 1e-5; nmaxiter = 5000; n = 5000; d1=6; d2=6; los
resultados obtenidos se muestran en Tabla2.
Mtodo

Precisin

Tiempo de CPU (s)

Nmero de Iteraciones

Eliminacin Gaussiana

2.7624e-13

15.3906

---

Jacobi

7.0331e-09

6.0781

Gauss-Seidel

1.2357e-08

12.5

Tabla2. Comparacin entre mtodos directos e iterativos en la resolucin de un sistema de ecuaciones


generado por sprandn.

Las grficas que se muestran a continuacin muestran la variacin del tiempo de CPU y la precisin,
a medida que el orden de nuestra matriz cuadrada crece.

Fig1._ Comparacin del tiempo de CPU entre el mtodo de eliminacin Gaussiana, Jacobi y Gauss
Seidel para una matriz generada por A=sprandn(n, n, 0.5); A=full (A).
Gracias a Fig1, podemos observar que a medida que el orden de la matriz (n) crece, naturalmente,
todos los mtodos requieren ms tiempo para aproximar una solucin. En especial parece ser que, a
partir de n=2200, el tiempo que necesita la eliminacin gaussiana es mayor a los dems mtodos
iterativos con una brecha significativa. De igual manera, a partir de ese mismo orden, el mtodo de
Jacobi saca notoria ventaja frente a los dems como el mtodo ms rpido.

Fig2._ Comparacin de la precisin entre el mtodo de eliminacin Gaussiana, Jacobi y Gauss


Seidel.

Como se mencion anteriormente, el mtodo de eliminacin gaussiana es impecable en trminos de


precisin, sea cual sea el orden de la matriz. En cuanto a los mtodos iterativos, para matrices de orden
menor o igual a 800, el mtodo de Seidel es ms preciso que el de Jacobi, pero para rdenes mayores
a 800 la situacin se revierte.
Ahora bien cuando ingresamos la segunda matriz A, simtrica y definida positiva, generada por los
siguientes comandos:
>> A = gallery('gcdmat',n); A=Diagonal_D(A,d1,d2); con los mismos parmetros que la matriz
anterior.
Muestra los resultados observados en Tabla3, Fig3 y Fig4.
Mtodo
Eliminacin Gaussiana
Jacobi
Gauss-Seidel

Precisin
1.231e-12
4.9014e-6
9.7798e-7

Tiempo de CPU (s)


7.9531
785.4531
28.5313

Nmero de Iteraciones
--866
12

Tabla3._ Comparacin entre mtodos directos e iterativos en la resolucin de un sistema de ecuaciones


generado por gallery.
Las grficas que se muestran a continuacin muestran la variacin del tiempo de CPU y la precisin,
a medida que el orden de la matriz crece.

Fig3._ Comparacin del tiempo de CPU entre el mtodo de eliminacin Gaussiana, Jacobi y Gauss
Seidel para una matriz generada por A = gallery('gcdmat',n).
Los resultados observados en este tipo de matriz contrastan fuertemente con los vistos anteriormente,
pues aqu, se puede decir que los tiempos de CPU, para matrices cuyo orden es menor a 1000, es
similar en los tres mtodos; sin embargo, a partir de ese tamao el tiempo de CPU entre eliminacin

Gaussiana y Seidel crecen a un ritmo similar, siendo la eliminacin gaussiana ligeramente ms rpida;
mientras que el tiempo de CPU para Jacobi crece casi exponencialmente, posiblemente debido a que
realiza un nmero de iteraciones considerablemente mayor, convirtindose as en el mtodo ms lento.

Fig4._ Comparacin de la precisin entre el mtodo de eliminacin Gaussiana, Jacobi y Gauss Seidel.
El mtodo ms preciso es la eliminacin Gaussiana, mientras que le menos preciso es el de Jacobi sin
importar el tamao de la matriz.
El anlisis de las grficas nos lleva a pensar que:
_ Para las matrices aleatorias dispersas normalmente distribudas generadas por A=sprandn(n, n, 0.5);
A=full (A); A=Diagonal_D(A), se recomienda el mtodo de eliminacin gaussiana si lo que se busca
es una precisin mayor, pero si se busca mayor rapidez se recomienda el de Jacobiexcepto para
ordenes de entre 1100 y 1800. Adems, si se opta por un mtodo cuya precisin y rapidez sea
intermedia para matrices de rdenes menores a 900, se recomienda el mtodo de Seidel.
_ Para las matrices de mximo comn divisor, generadas por A = gallery('gcdmat',n) y
A=Diagonal_D(A,d1,d2). El mtodo ms recomendable para una matriz de cualquier orden, es la
eliminacin gaussiana, ya sea si se busca mayor precisin o un tiempo de CPU inferior.
4.

Conclusiones

Aunque los mtodos iterativos proporcionan soluciones numricas aproximadas a la solucin exacta,
su utilidad radica en el hecho de que algunas veces convergen ms rpidamente que los mtodos
directos. En estos dos casos particulares, el error por redondeo para el mtodo directo utilizado fue
minsculo en comparacin a los errores producidos por los mtodos iterativos. Por tal razn, es
necesaria la organizacin de las prioridades a la hora de tomar decisiones en las ejecuciones.

5.

Bibliografa

Hernndez, M. 2004. Gauss-Seidel, Jacobi, Relajacin y Convergencia. Instituto Tecnolgico de


Costa Rica. Escuela de Ingeniera Electrnica.
Villatoro et al. 2002. Universidad de Mlaga. Lenguajes y Ciencias de la Computacin. Disponible
en http://www.lcc.uma.es/~villa/tn/tema04.pdf
Mathworks.com. 2016. Documentation. Disponible en http://www.mathworks.com/help/

Vous aimerez peut-être aussi