Programas

METODO DE JACOBI

function x=jacobi(A,b)
[n,n]=size(A);
x=zeros(n,1);
y=zeros(n,1);
e=0.0005;
nt=50;
k=0;
fprintf('%5d',k);
for m=1:n
fprintf('%10.5f',x(m));
end;
while 1
flag=1;
for i=1:n
s=0;
for j=1:n
if i~=j
s=s+A(i,j)*x(j)/A(i,i);
end
end
y(i)=b(i)/A(i,i)-s;
end
k=k+1;
fprintf('\n%5d',k);
for i=1:n
if abs(y(i)-x(i))>e
flag=0;
end
x(i)=y(i);
fprintf('%10.5f',x(i));
end
if (nt==k)|(flag==1)
break
end
end


METODO DE SEIDEL

function x=gseidel(A,b)
[n,n]=size(A);
x=zeros(n,1);
y=zeros(n,1);
e=0.0005;
nt=50;
k=0;
fprintf('%5d',k);
for m=1:n
    fprintf('%10.5f',x(m));
end;
while 1
    flag=1;
    for i=1:n
        s=0;
        for j=1:n
            if i~=j
                s=s+A(i,j)*x(j)/A(i,i);
            end
        end
        y(i)=b(i)/A(i,i)-s;
        if abs(y(i)-x(i))>e
            flag=0;
        end
        x(i)=y(i);
    end
    k=k+1;
    fprintf('\n%5d',k);
    for i=1:n
                fprintf('%10.5f',x(i));
    end
    if (nt==k)|(flag==1)
        break
    end
end
FACTORIZACION LU


function [l,u]=LUdoolitle(a)

n=length(a);
l=a*0; u=a*0;
for k=1:n
    u(k,k:n)=a(k,k:n)-l(k,1:k-1)*u(1:k-1,k:n);
    l(k,k)=1;
    l(k+1:n,k)=(a(k+1:n,k)-l(k+1:n,1:k-1)*u(1:k-1,k))/u(k,k);
end
disp(l);
disp(u);

Tomado de :Factorizacion LU