T4 Gauss Seidel

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 6

Tarea-Método de Gauss Seidel

Benjamín Rodríguez Limón A01741333

Table of Contents
Solución de x en Ax=b :............................................................................................................................................1
Algoritmo: Método de Gauss Seidel......................................................................................................................... 4

INSTRUCCIONES: Resuelve agregando el código Matlab correspondiente y entrega tu solución en la


plataforma Canvas como archivo PDF (Opción Save/Export to PDF...)

Utilizando los scripts de programación vistos en clase, resuelve los siguientes Sistemas de Ecuaciones
Lineales, completando este LiveScript. Considera una Tolerancia Porcentual Prefijada de :

Primer Sistema de Ecuaciones Lineales:

Segundo Sistema de Ecuaciones Lineales:

Solución de x en Ax=b :
• Inicializa 'A' 'b' & valor inicial de 'x' complementando el código para cada de los sistemas de
ecuaciones:

Revisa los mensajes de los comentarios para orientarte respecto al código Matlab a incluir.

% Para el primer sistema de ecuaciones:


% Inicializa A, b y el vector X.
% Inicializa la Tolerancia Porcentual Prefijada.

A1= [12 3 -5;1 5 3;3 7 13];


b1=[1 28 76]';
x1=[0 0 0]';
tol=1e-5;

% Invoca a la función GaussSeidel para el primer sistema de Ecuaciones:


GaussSeidel(A1,b1,x1,tol)

1
Iteration1 :
x = 3×1
0.0833
5.5833
2.8205
Iteration2 :
x = 3×1
-0.1373
3.9351
3.7589
Iteration3 :
x = 3×1
0.6658
3.2115
3.9632
Iteration4 :
x = 3×1
0.9318
3.0357
3.9965
Iteration5 :
x = 3×1
0.9896
3.0042
4.0002
Iteration6 :
x = 3×1
0.9990
3.0001
4.0002
Iteration7 :
x = 3×1
1.0000
2.9999
4.0000
Iteration8 :
x = 3×1
1.0000
3.0000
4.0000
Iteration9 :
x = 3×1
1.0000
3.0000
4.0000
Iteration10 :
x = 3×1
1.0000
3.0000
4.0000
Iteration11 :
x = 3×1
1.0000
3.0000
4.0000
Solution of the system:
x = 3×1
1.0000
3.0000
4.0000
Iterations Total:11

% Para el segundo sistema de ecuaciones:

2
% Inicializa A, b y el vector X.
% Inicializa la Tolerancia Porcentual Prefijada.

A2= [10 -1 2 0;-1 11 -1 3;2 -1 10 -1;0 3 -1 8];


b2= [6 25 -11 15]';
x2= [0 0 0 0]';
tol= 1e-5;

% Invoca a la función GaussSeidel para el segundo sistema de Ecuaciones:


GaussSeidel(A2,b2,x2,tol)

Iteration1 :
x = 4×1
0.6000
2.3273
-0.9873
0.8789
Iteration2 :
x = 4×1
1.0302
2.0369
-1.0145
0.9843
Iteration3 :
x = 4×1
1.0066
2.0036
-1.0025
0.9984
Iteration4 :
x = 4×1
1.0009
2.0003
-1.0003
0.9998
Iteration5 :
x = 4×1
1.0001
2.0000
-1.0000
1.0000
Iteration6 :
x = 4×1
1.0000
2.0000
-1.0000
1.0000
Iteration7 :
x = 4×1
1.0000
2.0000
-1.0000
1.0000
Solution of the system:
x = 4×1
1.0000
2.0000
-1.0000
1.0000
Iterations Total:7

3
• Comprueba tu solución utilizando la función nativa de la inversa y/o el operador \ de Matlab:

% Para cada sistema de ecuaciones, comprueba tu solución con la funcion


% nativa de la inversa y/o el operador \ de Matlab
%
% Comprobación para el primer sistema de ecuaciones usando la función nativa inversa:
display(['Comprobacion usando la inversa en Matlab:'])

Comprobacion usando la inversa en Matlab:

X1= A1\b1

X1 = 3×1
1.0000
3.0000
4.0000

% Comprobación para el segundo sistema de ecuaciones usando el operador \:


X2= A2\b2

X2 = 4×1
1.0000
2.0000
-1.0000
1.0000

Algoritmo: Método de Gauss Seidel


Utilizando el código de Gauss Seidel del script visto en clase crea la función GaussSeidel indicada para
utilizarla en la solución de los Sistemas de Ecuaciones indicados. Complementa el código que se te ofrece.

% Agrega el algoritmo del Método de Gauss Seidel como funcion Matlab

function GaussSeidel(A,b,x,tol)
%% PARAMETROS:
%% A=Matriz de coeficientes del sistema de ecuaciones
%% b=Vector de resultados del sistema de ecuaciones
%% x=Vector solución inicial
%% tol=Tolerancia Porcentual Prefijada

n=size(x,1);
normVal=Inf;
itr=0;
while normVal>tol
x_old=x;

for i=1:n

sigma=0;

for j=1:i-1

4
sigma=sigma+A(i,j)*x(j);
end

for j=i+1:n
sigma=sigma+A(i,j)*x_old(j);
end

x(i)=(1/A(i,i))*(b(i)-sigma);
end
display([strcat('Iteration ',num2str(itr+1),' :')])
x

itr=itr+1;
normVal=norm(x_old-x);
end

display(['Solution of the system:'])


x
display([strcat('Iterations Total: ',num2str(itr))])
end

Ejercicio manual.-

Resuelve a mano el primer sistema de ecuaciones lineales aplicando el método de Gauss Seidel incluyendo tu
demostración de porque este método sí ofrece solución.Agrega tu solución a continuación (puedes mostrarla
con una imagen de tu cuaderno o utilizar el editor de ecuaciones de Matlab). Realiza 3 iteraciones solamente.

Solución:

5
6

También podría gustarte