La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

METODOS ITERATIVOS PARA LA SOLUCION DE SISTEMAS DE ECUACIONES LINEALES

Presentaciones similares


Presentación del tema: "METODOS ITERATIVOS PARA LA SOLUCION DE SISTEMAS DE ECUACIONES LINEALES"— Transcripción de la presentación:

1 METODOS ITERATIVOS PARA LA SOLUCION DE SISTEMAS DE ECUACIONES LINEALES
Se busca la solución de un problema de la forma Ax = b o Ax – b =0, donde A es una matriz cuadrada formada por los coeficientes de un sistema de ecuaciones lineales de la forma, y x las variables del sistema y b las soluciones K11 x1 + K12 x K13 x3 + K14 X4 … = B1 K21 x1 + K22 x K23 x3 + K24 X = B2 .... KN1 x1 + KN2 x KN3 x3 + KN4 X4 …= BN KM1 x1 + KM2 x2+ KM3 x3 + KM4 X = BM K11 K K K14 … xx B1 K21 K K K x B2 A = x = … B = …. KN1 KN2 KN3 KN4 … xN BN KM1 KM2 KM3 KM xM BM

2 METODOS USADOS EJEMPLO Sea el siguiente sistema de ecuaciones lineales resolver por el método de Jacobi y Gauss-Seidel 10x x x = 6 -x1 + 11x x x4 = 25 2x x2 + 10x x4 = -11 - 3x x x4 = 15 Solucionando el problema por Jacobi:

3 Y se obtiene el siguiente archivo de programación en SCILAB
function [x]= jacobi(x0,tol) // Nombre del Archivo: jacobi.sci // // Programa para resolver el siguiente sistema de // ecuaciones lineales por el metodo de Jacobi : // 10x1 - x2 + 2x = 6 // -x1 + 11x2 - x3 + 3x4 = 25 // 2x1 - x2 + 10x3 - x4 = -11 // x2 - x3 + 8x4 = 15 // Utilizacion: x = jacobi(x0,tol) // Input: x0= Punto inicial de iteracion // tol= tolerancia del error // Output: x=Aproximacion de solucion del // sistema de ecuaciones

4 Xant=[x0(1);x0(2);x0(3);x0(4);1];
0,-3/8,1/8,0,15/8]; Xnew=[9999;9999;9999;9999;9999]; n=0; while (norm(Xnew-Xant)/norm(Xnew)) > tol if n>=1 then Xant=Xnew;end; Xnew=T*Xant, Xnew=[Xnew;1] n=n+1, end; x=Xnew(1:4) disp(n,'Numero de iteraciones ')

5 Los resultados obtenidos son los siguientes:
-->getf('C:\jacobi.sci');disp('getf done'); getf done -->x0=[0,0,0,0]; -->tol=10^(-5); -->x=jacobi(x0,tol) Numero de iteraciones 15. ans = ! ! ! ! ! ! ! !

6 Si disminuimos la tolerancia o error (tol), obtendremos un valor mas exacto
-->x=jacobi(x0,tol) Numero de iteraciones 26. x = ! 1. ! ! 2. ! ! - 1. ! Como vemos hemos obtenido el valor exacto de la solución del sistema de ecuaciones 4x4, en 26 iteraciones,

7 Para el método de Gauss-Seidel, se tiene la siguiente función:
function [x]=gauss(x0,tol) // Nombre del Archivo: gaussseidel.sci // // Programa para resolver el siguiente sistema de // ecuaciones lineales por el metodo de Gauss-Seidel: // 10x1 - x2 + 2x = 6 // -x1 + 11x2 - x3 + 3x4 = 25 // 2x1 - x2 + 10x3 - x4 = -11 // x2 - x3 + 8x4 = 15 // Utilizacion: x = gauss(x0,tol) // Input: x0= Punto inicial de iteracion // tol= tolerancia del error // Output: x=Aproximacion de solucion del // sistema de ecuaciones

8 Xant=[x0(1);x0(2);x0(3);x0(4);1];
0,-3/8,1/8,0,15/8]; Xnew=[9999;9999;9999;9999;9999]; n=0; while (norm(Xnew - Xant)/norm(Xnew)) > tol Xnew=Xant; Xant(1,1)=T(1,:)*Xant; Xant(2,1)=T(2,:)*Xant; Xant(3,1)=T(3,:)*Xant; Xant(4,1)=T(4,:)*Xant; n=n+1; end; x=Xant(1:4); disp(n,'Numero de iteraciones')

9 Del cual se obtienen los siguientes resultados:
-->getf('C:\gaussseidel.sci');disp('getf done'); getf done -->x0=[0,0,0,0]; -->tol=10^(-5); -->x=gauss(x0,tol) Numero de iteraciones 7. x = ! ! ! ! ! ! ! !

10 Disminuyendo también la tolerancia se obtiene:
-->x0=[0,0,0,0]; -->tol=10^(-9); -->x=gauss(x0,tol) Numero de iteraciones 10. x = ! 1. ! ! 2. ! ! - 1. ! Como Podemos ver se logra alcanzar la solución exacta del sistema de ecuaciones lineales 4x4 , en 10 iteraciones

11 Como podemos ver Gauss-Seidel convergió a la solución exacta mucho mas rápido que Jacobi, casi en un tercio del tiempo empleado por este. Además si comparamos de igual modo las soluciones aproximadas, vemos que Gauss también convergió más rápido que Jacobi, e incluso con un error algo menor.


Descargar ppt "METODOS ITERATIVOS PARA LA SOLUCION DE SISTEMAS DE ECUACIONES LINEALES"

Presentaciones similares


Anuncios Google