Académique Documents
Professionnel Documents
Culture Documents
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)
1
()
(=1 ^ , . )
,
Ntese que, cuando el proceso termina un ciclo, los valores del vector solucin xk se actualizan en
(+1)
()
| <
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
|, | >
|, |
=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.
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.
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)
Anlisis y resultados.
Precisin
Nmero de Iteraciones
Eliminacin Gaussiana
2.7624e-13
15.3906
---
Jacobi
7.0331e-09
6.0781
Gauss-Seidel
1.2357e-08
12.5
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.
Precisin
1.231e-12
4.9014e-6
9.7798e-7
Nmero de Iteraciones
--866
12
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