Subido por Len Martínez Pavetti

gaus seidel codigo matlab

Anuncio
function [X,iter]=gausseid(A,B,PK,maxiter,Eabs)
%%%%ENTRADAS
%n es el número de incógnitas
%P0 es el vector de valores iniciales
%A es la matriz de coeficientes
%b es la matriz de términos independientes
%PK es el vector que guarda los valores de las incógnitas luego de cada
%iter
%maxiter es el número máximo de iteraciones admisible
%%%%SALIDAS
%X es el vector de incógnitas
%iter es el número de iteraciones
%%%%MÉTODO DE GAUSS-SEIDEL
%para todo i~=j (i diferente de j)
% x(i)=( (b(i)-SUMA( (A(i,j)*PK(j) ) )/(A(i,i)
n=length(PK);
X=zeros(n,1);
for k=1:maxiter
%for k=1:4
nor1=0;
nor2=0;
for i=1:n
X(i)=B(i);
for j=1:n
if i~=j
X(i)=X(i)-A(i,j)*PK(j);
end
end
X(i)=X(i)/A(i,i);
nor1 = nor1 + abs(X(i)-PK(i));
nor2 = nor2 + sqrt((X(i)-PK(i))^2);
PK(i)=X(i); %el vector de incógnitas se actualiza cada vez que se
calcula una de ellas
end
if nor1 <= Eabs | nor2 <= Eabs
break
end
iter=k;
end
nor1
nor2
Descargar