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