Métodos de Punto Fijo

3
Métodos de punto fijo Aldo Leggs González El problema num 1, plantea lo siguiente: Supongamos que queremos resolver el sistema de ecuaciones lineales dados por Ax=b, donde A es una matriz de n x n, x es un vector de n variables y b un vector con n números reales a) Construye una función MDED(A) que tome por entrada la matriz A de (1) e imprima en consola si la matriz es estrictamente diagonal dominante. El código que se empleó para realizar este problema fue el siguiente : functionout=MDED (A, n) a=0; b=0; for i=1:1:n for j=1:1:n a=a+A(i,j); end if abs(A(i,i))>abs(a-A(i,i))then b=b+1; else disp('la matriz no es diagonalmente dominante\n') break; end if b==n then disp('la matrz es diagonalmente dominante\n') end a=0; end out=MDED endfunction MDED (A,n) Los datos que se ingresaron fueron los siguientes: A=[4,2,1,0;3,7,-1,1;3,0,-5,1;1,-2,1,8] y n=4, arrojando como resultado: La matriz es diagonalmente dominante b) Construye una función Jacobi que tome por entradas A y el vector b de (1) y arroje la solución del sistema de ecuaciones.

description

metodos

Transcript of Métodos de Punto Fijo

Page 1: Métodos de Punto Fijo

Métodos de punto fijo

Aldo Leggs González

El problema num 1, plantea lo siguiente:

Supongamos que queremos resolver el sistema de ecuaciones lineales dados por Ax=b, donde A es una matriz de n x n, x es un vector de n variables y b un vector con n números reales

a) Construye una función MDED(A) que tome por entrada la matriz A de (1) e imprima en consola si la matriz es estrictamente diagonal dominante.

El código que se empleó para realizar este problema fue el siguiente :

functionout=MDED(A, n)a=0;b=0; for i=1:1:n for j=1:1:n a=a+A(i,j); end if abs(A(i,i))>abs(a-A(i,i))then b=b+1; else disp('la matriz no es diagonalmente dominante\n') break; end if b==n then disp('la matrz es diagonalmente dominante\n') end a=0; endout=MDEDendfunction

MDED(A,n)

Los datos que se ingresaron fueron los siguientes: A=[4,2,1,0;3,7,-1,1;3,0,-5,1;1,-2,1,8] y n=4, arrojando como resultado: La matriz es diagonalmente dominante

b) Construye una función Jacobi que tome por entradas A y el vector b de (1) y arroje la solución del sistema de ecuaciones.Para este problema se genero el siguiente código:

L=[0,0,0,0;3,0,0,0;3,0,0,0;1,-2,1,0]D=[4,0,0,0;0,7,0,0;0,0,-5,0;0,0,0,8]U=[0,2,1,0;0,0,-1,1;0,0,0,1;0,0,0,0]A=L+D+U;x0=[0;0;0;0]b=[1;2;7;3]n=4

function out=MDED(A)b=0;r=0;

Page 2: Métodos de Punto Fijo

for i=1:1:n for j=1:1:n b=b+A(i,j); end if abs(A(i,i))>abs(b-A(i,i))then r=r+1; else disp('matriz no es diagonalmente estrictamente dominante') break; end if r==n then disp('matriz es diagonalmente estrictamente dominante') end b=0;endout=AendfunctionMDED(A)Function out=Jacobi(A, b)i=1;m=20; whilei<m x1=inv(D)*[b-(L+U)*x0] x0=x1 i=i+1 disp(string(i)) disp(string(x1)) end disp('la respuesta de este sistema son')out=x0endfunctionJacobi(A,b)MDED(A)

Introduciéndose el sistema de ecuaciones propuesto en el pdf, y arrojando como resultados:0.5721694 - 0.1547105 - 0.9792567 0.3872083

2 b) en este problema se solicita construir una función Gauss.Seidel, que tome por entradas una matriz A y un vector b.para esto se creó el siguiente código:

D=[3,0,0;0,4,0;0,0,5]L=[0,0,0;2,0,0;-1,2,0]U=[0,1,-1;0,0,1;0,0,0]A=L+D+Uxk=[0;0;0]b=[4;1;1]functionout=gauss(A, b)i=1;m=15; while(i<m) xk1=-inv(D+L)*(U*xk)+inv(D+L)*b xk=xk1 disp(string(i)) disp(string(xk1)) i=i+1 end

Page 3: Métodos de Punto Fijo

disp('las raices son')out=xkendfunctiongauss(A,b)

Evaluándose el mismo sistema de ecuaciones del problema anterior y arrojando como resultados:1.9999843 - 0.9999875 0.9999919

Siendo estos las raíces del sistema