Sunteți pe pagina 1din 5

TECNOLÓGICO DE ESTUDIOS SUPERIORES DE JOCOTITLÁN

PERIODO EDUCATIVO
FEBRERO 2019 - AGOSTO 2019

MATERIA
METODOS NUMERICOS

DOCENTE
M. EN C.C. JUAN CARLOS SUÁREZ SÁNCHEZ

ALUMNO
NICOLÁS ALEJANDRO MONROY MERCADO

CUARTO SEMESTRE

GRUPO
IC-0401
% METODO ITERATIVO DE GAUSS SEIDEL

clc %permite borrar el area de trabajo


clear %permite borrar las variables almacenadas
format long %permite utilizar la maxima capacidad de la maquina

fprintf(' METODO ITERATIVO DE GAUSS


SEIDEL\n\n\n')
%fprintf me permite ingresar comentarios de manera textual que pueden
%orientar al usuario en el uso del programa

%input es un comando de solicitud de entrada de datos del usuario.


a=input('Ingrese la matriz de coeficientes:\n ');
b=input('\nIngrese los términos independientes:\n ');
x=input('\nIngrese el vector con las aproximacimaciones Iniciales:\n ');
iter=input('\nIngrese el número máximo de iteraciones:\n ');
tol=input('\nIngrese la tolerancia:\n ');

k=norm(a).*norm(a^-1);%Se calcula el condicional de la matriz de


coeficientes
disp('condicional=')
disp(k)
% la funcion disp nos permite imprimir una variable en el espacio de
trabajo
determinante=det(a);%se calcula el determinante de la matriz de
coeficiente
if determinante==0
disp('El determinante es cero, el problema no tiene solución única')
end

n=length(b); %numero de elementos del vector b


d=diag(diag(a)); %obtencion de la matriz diagonal
l=d-tril(a); %obtencion de la matriz diagonal superior L
u=d-triu(a); %obtencion de la matriz diagonal inferior u

fprintf('\n SOLUCION:\n')
fprintf('\nLa matriz de transicion de gauss seidel:\n')
T=((d-l)^-1).*u; % matriz de transicion de gauss
disp(T)
re=max(abs(eig(T))); %calculo del radio espectral

if re>1
disp('Radio Espectral mayor que 1')
disp('el método no converge')

return
end
fprintf('\nEl vector constante es::\n')
C=(((d-l)^-1).*b); % vector constante C, para el metodo
disp(C)
i=0;

err=tol+1;
X=[i,x(1),x(2),x(3),err]; %vector que me permite graficar la tabla
while err>tol && i<iter
xi=T.*x+C;
%disp(xi)
i=i+1;
err=norm(xi-x); %norma 2
%err=max(abs(xi-x)); %norma 1
%err=norm(xi-x)/norm(xi); %norma relativa

x=xi;
X(i,1)=i;
X(i,2)=x(1);
X(i,3)=x(2);
X(i,4)=x(3);
X(i,5)=err;
end
fprintf('\nTABLA:\n\n n x1 x2
x3 Error\n\n ')
disp(X) %impresion de la tabla.

METODO ITERATIVO DE GAUSS SEIDEL

Ingrese la matriz de coeficientes:

[4 -1 0 0;-1 4 -1 0;0 -1 4 -1;0 0 -1 4]

Ingrese los términos independientes:

[1 1 1 1]

Ingrese el vector con las aproximacimaciones Iniciales:

[0 0 0 0]

Ingrese el número máximo de iteraciones:

20

Ingrese la tolerancia:

0.0001

condicional=

2.358570173636287

SOLUCION:

La matriz de transicion de gauss seidel:

0 0.250000000000000 0 0

0 0.062500000000000 0.250000000000000 0

0 0.015625000000000 0.062500000000000 0.250000000000000

0 0.003906250000000 0.015625000000000 0.062500000000000


El vector constante es::

0.250000000000000 0 0 0

0.062500000000000 0.250000000000000 0 0

0.015625000000000 0.062500000000000 0.250000000000000 0

0.003906250000000 0.015625000000000 0.062500000000000 0.250000000000000

TABLA:

n x1 x2 x3 Error

1.000000000000000 0.250000000000000 0.062500000000000 0.015625000000000


0.310569760372639

2.000000000000000 0.265625000000000 0.070312500000000 0.018554687500000


0.092275983912741

3.000000000000000 0.267578125000000 0.071533203125000 0.019042968750000


0.025806546667789

4.000000000000000 0.267883300781250 0.071731567382813 0.019123077392578


0.006389363007097

5.000000000000000 0.267932891845703 0.071763992309570 0.019136190414429


0.001112837437719

6.000000000000000 0.267940998077393 0.071769297122955 0.019138336181641


0.000183742473387

7.000000000000000 0.267942324280739 0.071770165115595 0.019138687290251


0.000030104838655

Como documentación tenemos que este método es iterativo o de aproximación y es


similar a las técnicas que se usan en los métodos anteriores para obtener raíces.
Aquellos métodos consisten en la determinación de un valor inicial a partir del cual,
mediante una técnica sistemática se obtiene una mejor aproximación a la raíz.
La razón por la cual los métodos iterativos son útiles en la disminución de los errores
de redondeo en sistemas, se debe a que un método de aproximación se puede
continuar hasta que converja dentro de alguna tolerancia de error previamente
especificada.
El método de Gauss-Seidel converge a la solución del sistema si se cumple la
condición de que la matriz de coeficientes del sistema sea una matriz diagonalmente
dominante, es decir, si se cumple la siguiente condición:
La condición de ser una matriz diagonalmente dominante simplemente significa que
los elementos de la diagonal son mayores (en valor absoluto) que la suma de los
valores absolutos de los demás elementos del mismo renglón.
Sin embargo, la condición de la matriz diagonalmente dominante, solamente es una
condición suficiente pero no necesaria, es decir, existen sistemas de ecuaciones
que no cumplen con la condición y que sí convergen a la solución y también existen
sistemas de ecuaciones que no cumplen con la condición y que no convergen a la
solución.
Finalmente como conclusión tenemos que aunque un sistema no cumpla con la
condición de ser diagonalmente dominante, es posible a veces, lograr que sí se
cumpla con esta condición mediante un intercambio de renglones hasta un punto
de eficiencia que nos permita la resolución del problema.

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