Está en la página 1de 2

clc%limpiar la hoja de trabajo

clear%borrar la memoria

A = input('Ingrese la matriz A: ');%ingrese la matriz de coeficientes


b = input('Ingresar el Termino independiente b: ');%Ingrese el termino
independiente
x = input('Aproximacion Inicial X0: ');%Ingrese una aproximación inicial para x0
w = input('Factor de relajacion: ');%Ingrese el factor de relajación
itera = input('Numero maximo de iteraciones: ');%ingrese el número máximo de
iteraciones
tole = input('Tolerancia: ');%Ingrese la tolerancia
condicional = norm(A) * norm(A^-1);%Calcule el condicional
disp('El Condicional es:')%Muestre el condicional
disp(condicional)

x=x';
b=b';
n = length(b);
d = diag(diag(A));
l = d - tril(A);
u = d - triu(A);
T = (d-w*l)^-1 *((1-w)*d+w*u)

val_propios = eig(T)
radioe=max(abs(val_propios))%Calcule el radio espectral

if radioe > 1
disp('El Radio Espectral es mayor que 1, por lo tanto el metodo diverge')
%Muestre que el método diverge
elseif det(A)==0
dis('el sistema no tiene solucion porque el determinante es 0')%Muestre
que el sistema no tiene solución
else
C = w * (d-w*l)^-1*b
i = 0;
error = tole + 1;
while error > tole && i < itera

xi = T * x + C
i = i + 1
error = norm(xi-x)/ norm(xi)
x = xi;
disp('La solucion aproximada al sistema es xi:')%Muestre la
solución apróximada
disp(xi)
disp('El Numero de iteraciones es:')%Muestre el número de
iteraciones
disp(i)
disp('El Error es:')%Muestre el error
disp(error)
end
end

También podría gustarte