Académique Documents
Professionnel Documents
Culture Documents
Este es uno de los mtodos mas interesantes siendo una herramienta importante del anlisis numrico y particualmente til ya que nos permite encontrar la solucin de un sistema de n ecuaciones con n incgnitas.
Normalmente este tema tiene procesos largos y por ello son ideales para programar por computadora a travs de programas como Mat. LAB y visual Basic y no solamente para hacerlos sobre el papel. Programar estos temas permite incluso obtener una mejor comprensin de la teora aqu presentada.
OBJETIVOS
OBJETIVO GENERAL
Comprender
las diferentes formas de solucionar sistemas de ecuaciones lineales por medio del mtodo de descomposicin de Gauss-Seidel.
OBJETIVOS ESPECFICOS tener una idea clara y comprensible del mtodo de descomposicin de Gauss-Seidel.
facilitar
la
solucin
de
de
ecuaciones
Elaborando
ejercicios
conocimientos
Desde la formula anterior resultan las frmulas que se debern ir aplicando en las diferentes iteraciones. Para comenzar a aplicar el mtodo debemos asignar un valor arbitrario a las variables x2,xn con el fin de obtener x1.
Lo ms conveniente en este caso es que comiencen en cero, lo cual nos facilitara el trabajo ya que se reduce el clculo de las primeras soluciones, entonces de esto resulta que:
Ahora despejamos x2 de la ecuacin 2 y reemplazamos a x1 por el valor obtenido en la ecuacin anterior. De esto nos queda:
Una vez que tenemos x2, despejamos x3 de la ecuacin 3 y as sucesivamente con la n ecuaciones, cada vez asignando el valor de las x1, x2, xn-1 obtenido en el paso anterior. Cuando hemos despejado las xn, tenemos lo que se conoce como primera solucin o solucin de la primera iteracin:
Con los nuevos valores de x1, x2,,xn aplicamos los mismos pasos anteriores pero con los nuevos valores de las xn, de esta manera conseguimos una segunda solucin:
Al tener esta segunda solucin estamos en condiciones de calcular el error que se calcula como sigue:
PROBLEMA:
y x3 = 0 en la segunda ecuacin
en la tercera
Puesto que todava no se puede calcular ningn error aproximado, se repite el proceso pero ahora con los ltimos datos obtenidos para las incgnitas:
Sustituyendo
en la ecuacin 1 se obtiene
Sustituyendo
en la ecuacin 2 se obtiene
y .
en la
Ahora se pueden calcular los errores absolutos para cada una de las incgnitas:
Ya que no se ha logrado el objetivo se debe repetir el mismo proceso con los ltimos valores obtenidos omitiendo los pasos intermedios,
Ntese que aunque el error aproximado ya cumple con ser menor al 1%, esto se debe cumplir para los tres 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 solucin aproximada es:
Luego cargo la matriz b que es la que contiene el valor de los resultados de las ecuaciones:
Hago clic en el botn verificar convergencia y si el programa me dice que se verifica, indico cuantas iteraciones quiero realizar y pulso en el botn Calcular solucin. De esta forma el programa me arroja la solucin del sistema (el valor de x1, x2,xn) y me muestra el error, denominado por el programa como Norma Infinito.
Se puede apreciar que la norma infinito no las muestra en notacin cientfica, ya que es un error muy pequeo. Tambin el programa tiene la opcin de guardar todas las iteraciones que hizo, hasta llegar a la ltima.
for(y=0;y<n;y++) { for(x=0;x<n;x++) CX[y]-=(A[y][x]*X[x])/A[y][y]; CX[y]+=(C[y]/A[y][y]); X[y]=CX[y]; tabla[i]=CX[y]; //tabla sirve para imprimir la tabla de resultados i++; }
void titulo(int n) { int o=10,i=1; clrscr(); for(i=1;i<n+1;i++) { o=o+10; gotoxy(o,3); cout<<"X"<<i; } gotoxy(15,4);cout<<"--------------------------------------------"; } void resultados() { int q=0,i=1,t=3,s=n,r=0; int sw=0,w=0,ite=0,h=0; while((sw==0)&&(w<20)) { h=0; while(h<n) { if(tabla[r]==tabla[r+s]) { cont++; } if(cont==n) sw=1; r++; s++; h++; } ite++; w++; } w=ite-1; for(int j=0;j<w;j++) { t=t+2; if((i%10==0)) { textcolor(LIGHTRED+BLINK); gotoxy(5,t-2); cprintf("\n\n Presione una tecla para ver la siguiente parte de la tabla!!! "); getch(); textcolor(GREEN); clrscr(); t=5; titulo(n); } gotoxy(15,t);cout<<i<<""; int y=20,z=0; for(int r=0;r<n;r++) { gotoxy(y+z,t);cout<<tabla[q]; q++; z=z+10; } i++; } }
void main() { textcolor(GREEN); clrscr(); cout<<" Solucion de ecuaciones simultaneas\n\n\n Metodo de Gauss-Seidel"; cout<<"\n\n Cuantas incognitas tendra el sistema: "; scanf("%d",&n); Gauss_Seidel(n); titulo(n); resultados(); cout<<"\n\nLos resultado son "; for(x=0;x<n;x++) { RESULTADOS[x]=X[x]; cout<<"\nX["<<x<<"]= "<<RESULTADOS[x];
CONCLUSIN
Luego de haber estudiado a profundidad este tema o herramientas para resolver sistemas de ecuaciones, se concluye que para resolver estos sistemas de ecuaciones lineales existen diferentes mtodos, pero depender del
gusto de cada persona elegir uno en especfico pues cada mtodo tiene sus ventajas y sus desventajas. Algunos mtodos son ms exactos, otros ms fciles de programar, otros ms cortos, etc. Para ser capaces de elegir un mtodo apropiado, lo primero que se necesita es comprender cmo se desarrolla cada uno de estos procesos. El aprendizaje adquirido en esta investigacin ha sido de gran valor y seguramente servir de la misma manera a aquellos quienes posteriormente lean estas explicaciones y lo expuesto en este proyecto.
Universidad Tcnica de Manab Facultad de Ciencias Matemticas Fsicas y Qumicas Proyecto de Mtodos Numricos Tema: Mtodo de Gauss-Seidel 4 C Rizzo Ponce Jonathan Alfonso Catedrtico: Ing. Hernn Nieto Septiembre 2010-Febrero 2011