Sunteți pe pagina 1din 9

PRACTICA ANALISIS COMPARATIVO DE METODOS DE SOLUCION DE ECUCIONES SIMULTNEAS

BEIMAR PEREIRA MENDEZ

PRESENTADO A ALFONSO MENDOZA CASTELLANOS

UNIVERSIDAD INDUSTRIAL DE SANTANDER FACULTAD DE INGENIERIA FISICO-MECANICAS ESCUELA DE INGENERIA DE SISTEMAS E INFORMATICA BUCARMANGA 2011

OBJETIVOS Identificar los mtodos directos e indirectos que se pueden utilizar para hallar soluciones aproximadas al sistema. Analizar cada mtodo para encontrar fortalezas y debilidades que presenta este en tiempo de ejecucin. Comparar las distintas variaciones presentadas entre cada uno de los mtodos y encontrar aquel cuya precisin y eficacia sea la ms alta.

1. MATRICES DISPERSAS

Las matrices dispersas o sparse son matrices de un gran tamao con la mayor parte de sus elementos cero. Operar sobre este tipo de matrices con los mtodos convencionales lleva a obtener tiempos de clculo prohibitivos. Por esta razn se han desarrollado tcnicas especiales para este tipo de matrices. En ingeniera es muy frecuente encontrar aplicaciones en las que aparecen matrices sparse. Para manejar estas matrices se trata de aprovechar el hecho que tienen gran cantidad de elementos nulos para no almacenar dichos elementos, con lo que ello supone de ahorro en memoria y en tiempo de computacin. Para poder trabajar con las matrices sin almacenar los elementos nulos se utilizan distintos esquemas de almacenamiento. 2. METODOS DIRECTOS E INDIRECTOS PARA LA SOLUCION DE ECUACIONES SIMULTNEAS

2.1 Mtodos Directos 2.1.1 Gauss El mtodo de Gauss, conocido tambin como de triangulacin o de cascada, nos permite resolver sistemas de ecuaciones lineales con cualquier nmero de ecuaciones y de incgnitas. La idea es muy simple; por ejemplo, para el caso de un sistema de tres ecuaciones con tres incgnitas se trata de obtener un sistema equivalente cuya primera ecuacin tenga tres incgnitas, la segunda dos y la tercera una. 2.1.1.1 Implementacin Matlab El mtodo de Gauss proporciona una clara herramienta de solucin, capaz de hacer las operaciones pertinentes sobre la matriz en un instante corto de tiempo para obtener los resultados. Es uno de los mejores mtodos conocidos para implementaciones computacionales debido a su rapidez y menor nmero de operaciones. En matlab existe un operador destinado a la solucin de matrices y sistemas de ecuaciones utilizando este mtodo, el operador \ utiliza el sistema y el vector b para dar solucin al sistema. A continuacin vemos su implementacin en cdigo y posteriormente validamos la matriz dispersa en la cual trabajamos:

n=input('Indique el tamao de la matriz cuadrada: '); [A,b]=Leer_dispersa(n); tic X=A\(b') toc;

2.1.2 Gauss-Jordan

Este mtodo, que constituye una variacin del mtodo de eliminacin de Gauss, permite resolver hasta 15 o 20 ecuaciones simultneas, con 8 o 10 dgitos significativos en las operaciones aritmticas de la computadora. Este procedimiento se distingue del mtodo Gaussiano en que cuando se elimina una incgnita, se elimina de todas las ecuaciones restantes, es decir, las que preceden a la ecuacin pivote as como de las que la siguen. Aunque los mtodos de Gauss-Jordan y de eliminacin de Gauss pueden parecer casi idnticos, el primero requiere aproximadamente 50% menos operaciones. Por lo tanto, la eliminacin gaussiana es el mtodo simple por excelencia en la obtencin de soluciones exactas a las ecuaciones lineales simultneas. Una de las principales razones para incluir el mtodo de Gauss-Jordan, es la de proporcionar un mtodo directo para obtener la matriz inversa.

2.2 Metodo Indirecto 2.2.1 Gauss-Seidel El mtodo de Gauss-Seidel hace parte de los mtodos llamados indirectos o iterativos. En ellos se comienza con x0 = (x01; x02; :::; x0n), una aproximacin inicial de la solucin. A partir de x0 se construye una nueva aproximacin de la solucin, x1 = (x11; x12; :::; x1n). A partir de x1 se construye x2. As sucesivamente se construye una sucesin de vectores {xk}, con el objetivo, no siempre garantizado, de que lim xk = x*: k~

2.2.1.1Implementacion Matlab Para este tipo de mtodos indirectos se crea un algoritmo que representa la manera en la cual trabaja, inicializando valores, definiendo tolerancias y analizando su nmero de iteraciones. El cdigo del mtodo lo vemos entonces a continuacin:
function [time_out,k,norma]=Seidel(A,b) [n] = size (A); x0=zeros(n); x = x0; C=-A; k=0; tol=0.0001; maxit=10000000; norma=1; tic for i = 1 : n C(i ,i) = 0; end while ((norma > tol) && (k <=maxit)) k=k+1; for i=1:n sum=0; for j=1:n sum=sum+C(i,j)*(x(j)); end x(i)=(b(i)-sum)/A(i,i); end norma=norm(x0-x); x0=x; end time_out=toc;

2.2.1.2 Evidencias y Resultados

En las imgenes vemos la implementacin del mtodo, mostrando iteracin por iteracin los valores de las variables solucin, acercndonos cada vez ms a la tolerancia requerida. Vemos que despus de 130 iteraciones obtenemos los valores con las condiciones indicadas y comprobamos una vez ms la similitud con los otros mtodos. Lo que nos queda por descubrir es si este mtodo nos permitir competir con los anteriores haciendo factible su implementacin en procesos futuros.

Vemos que este algoritmo se dispara completamente, no es buena su implementacin para matrices grandes, el tiempo de ejecucin es completamente excesivo.

Evidentemente la grafica se dispara aunque no est lo suficientemente escalada para apreciarlo con mas detalle, no es aconsejable utilizar este mtodo.

3. Comparacin de Mtodos y anlisis de resultados

Una vez estudiado cada uno de los mtodos, pudimos observar las diversas propuestas para la solucin de matrices y sistemas de ecuaciones. Las tres implementaciones nos dejan ver resultados favorables y poco favorables con respecto a los resultados obtenidos. Resumiremos parte de estos resultados en la siguiente tabla: Tiempos Promedios de ejecucin:

Metodo/Tamao Gauss Gauss-Jordan Gauss-Seidel

50x50 1.5972e-4 0.3896 30.99

200x200 1.6168e-4 9.7264 -----

500x500 2.8367e-4 108.2558 ------

Gauss-Seidel Definitivamente evidenciamos una gran diferencia entre los 3.Identificamos que el Mtodo de Gauss es el ms efectivo, y el mtodo de Gauss-Seidel el menos efectivo, aunque es el mas pertinente para adaptar a ambientes computacionales y lenguajes de tercera generacin.

CONCLUSIONES

Los mtodos directos permiten obtener soluciones prcticamente exactas y poseen buenas condiciones en sus procesos de implementacin. El mtodo de Gauss-Seidel permite llegar a soluciones por medio de aproximaciones, es necesario establecer indiscutiblemente tolerancias y mximo nmero de iteraciones cercanos para no extender el proceso. El mtodo de Gauss es el mejor mtodo de solucin de matrices y sistemas de ecuaciones. La convergencia puede llegar a ser lenta en Gauss-Seidel limitando las condiciones de las matrices y sistemas procesados.

S-ar putea să vă placă și