0% encontró este documento útil (0 votos)
577 vistas2 páginas

Método Gauss-Seidel con Relajación en MATLAB

Este documento presenta el código MATLAB para implementar el método iterativo de Gauss-Seidel con relajación para resolver sistemas de ecuaciones lineales. El código solicita la entrada de la matriz de coeficientes, el vector de términos independientes, las aproximaciones iniciales, el número máximo de iteraciones y la tolerancia. Luego calcula la matriz de transición de Gauss-Seidel con relajación y realiza las iteraciones hasta que el error sea menor a la tolerancia o se alcance el número máximo de iteraciones, mostrando los resultados en una tabla.

Cargado por

Brayan Perez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
577 vistas2 páginas

Método Gauss-Seidel con Relajación en MATLAB

Este documento presenta el código MATLAB para implementar el método iterativo de Gauss-Seidel con relajación para resolver sistemas de ecuaciones lineales. El código solicita la entrada de la matriz de coeficientes, el vector de términos independientes, las aproximaciones iniciales, el número máximo de iteraciones y la tolerancia. Luego calcula la matriz de transición de Gauss-Seidel con relajación y realiza las iteraciones hasta que el error sea menor a la tolerancia o se alcance el número máximo de iteraciones, mostrando los resultados en una tabla.

Cargado por

Brayan Perez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

CDIGO MATLAB GAUSS SEIDEL CON RELAJACIN

% METODO ITERATIVO DE GAUSS SEIDEL CON RELAJACION


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 CON RELAJACION\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 trminos independientes:\n ');
x=input('\nIngrese el vector con las aproximacimaciones Iniciales:\n ');
iter=input('\nIngrese el nmero mximo de iteraciones:\n ');
tol=input('\nIngrese la tolerancia:\n ');
w=input('\nIngrese el landa de la relajacion:\n ');
k=norm(a)*norm(a^-1);%Se calcula el condicional de la matriz de coeficientes
disp('condicional=')
% la funcion disp nos permite imprimir una variable en el espacio de trabajo
determinante=det(a); %se calcula el determinante de la matriz de coeficientes
if determinante==0
disp('El determinante es cero, el problema no tiene solucin nica')
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')
Tw=((d-w*l)^-1)*((1-w)*d+w*u); % matriz de transicin de gauss con relajacin
disp(Tw)
re=max(abs(eig(T))) %calculo del radio espectral
disp('Radio Espectral mayor que 1')
disp('el mtodo no converge')
fprintf('\nEl vector constante es::\n')
Cw=w*(d-w*l)^-1*b; % vector constante C, para el mtodo con relajacin
disp(Cw)
err=tol+1;
z=[i,x(1),x(2),x(3),err]; %vector que me permite graficar la tabla
while err>tol & i<iter
xi=Tw*x+Cw;
err=max(sqrt((xi(1)-x(1))^2+(xi(2)-x(2))^2+(xi(3)-x(3))^2));
%err=norm(Xmejor-x); %norma 2
%err=max(abs(xi-x)); %norma 1
%err=norm(xi-x)/norm(xi); %norma relativa
z(i,1)=i;
z(i,2)=x(1);
z(i,3)=x(2);
z(i,4)=x(3);
z(i,5)=err;
fprintf('\nTABLA:\n\n n x1 x2 x3 Error\n\n ')
disp(z) %impresin de la tabla.

También podría gustarte