Tuesday, May 15, 2018

algoritma crout dan doolittle v2

Doolitle

function[x]=doolitle(a,b)
  n=size(a,1)
  u=zeros(n,n)
  l=eye(n,n)

  for k=1:n
     u(1,k)=a(1,k)
  end
  for j=2:n
     l(j,1)=a(j,1)/u(1,1)
  end

for j=2:n-1
    for k=j:n
        for s=1:j-1
            p=l(j,s)*u(s,k)
        end
        u(j,k)=a(j,k)-p
        for t=j:n-1
            for r=t+1:n
            q=l(r,s)*u(s,t)
            l(r,t)=1/u(t,t)*(a(r,t)-q)
           end
        end
    end
end

w=0;
for s=1:n-1,
   w=w+l(n,s)*u(s,n);
end
  u(n,n)=a(n,n)-w;
 
y=l\b
x=u\y
endfunction

Crout
function [x]=crout(a,b)
    n=size(a,1)
    l=zeros(n,n)
    u=eye(n,n)
    
    for j=1:n
        l(j,1)=a(j,1)
    end
    for k=2:n
        u(1,k)=a(1,k)/l(1,1)
    end

    for k=2:n-1
        for j=k:n
            for s=1:k-1
                p=l(j,s)*u(s,k)
            end
            l(j,k)=a(j,k)-p
            
            for r=k:n-1
                for t=r+1:n
                    q=l(r,s)*u(s,t)
                u(r,t)=1/l(r,r)*(a(r,t)-q)
                end
            end
        end
    end
    w=0
    for s=1:n-1
        w=w+l(n,s)*u(s,n)
    end
    l(n,n)=a(n,n)-w
    y=l\b
    x=u\y
endfunction

No comments:

Post a Comment