Tuesday, May 15, 2018

Doolittle dan crout v3

Doolitle
function [x]=doolitle(a,b)
    n=size(a,1)
    l=eye(n,n)
    u=zeros(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)
                end
                l(r,t)=(1/u(t,t))*(a(r,t)-q)
            end
        end
    end
    v=0
    for s=1:n-1
        v=v+l(n,s)*u(s,n)
    end
    u(n,n)=a(n,n)-v
    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)
                end
                u(r,t)=(1/l(r,r))*(a(r,t)-q)
            end
        end
    end
    v=0
    for s=1:n-1
        v=v+l(n,s)*u(s,n)
    end
    l(n,n)=a(n,n)-v
    y=l\b
    x=u\y
endfunction


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

Sunday, May 13, 2018

Crout

function [l, u, x]=crout(a, b)
   n=size(a,1)
   a(1,2:n)=a(1,2:n)/a(1,1)
   for m=2:n,
       for k=2:m,
           v=a(m,1:k-1)
           w=a(1:k-1,k)
           a(m,k)=a(m,k)-v*w
       end,
       v=a(m,1:m-1)
       for k=m+1:n,
           w=a(1:m-1,k)
           a(m,k)=(a(m,k)-v*w)/a(m,m)
       end,
   end,
   l=tril(a)
   u=triu(a,1)+eye(n,n)
   y=l\b
   x=u\y
endfunction


function [l, u, x]=crout(a, b)
   n=size(a,1)
   a(1,2:n)=a(1,2:n)/a(1,1)
   for k=2:n,
       for j=2:k
           v=a(k,1:j-1)
           w=a(1:j-1,j)
           a(k,j)=a(k,j)-v*w
       end
       v=a(k,1:k-1)
       for j=k+1:n,
           w=a(1:k-1,j)
           a(k,j)=(a(k,j)-v*w)/a(k,k)
       end
   end
   l=tril(a)
   u=triu(a,1)+eye(n,n)
   y=l\b
   x=u\y
endfunction

Doolitle Algorithm

Hello, di postingan kali ini akan dibahas mengenai algoritma doolitle. Algoritma ini digunakan untuk mencari nilai x dari Ax=b.


function [l, u, x]=doolitle(a, b)
   n=size(a,1)
   a(2:n,1)=a(2:n,1)/a(1,1)
   for k=2:n-1,
       v=a(k,1:k-1)
       for j=k:n,
           w=a(1:k-1,j)
           a(k,j)=a(k,j)-v*w
       end
       w=a(1:k-1,k)
       for j=k+1:n,
           v=a(j,1:k-1)
           a(j,k)=(a(j,k)-v*w)/a(k,k)
       end
   end
   a(n,n)=a(n,n)-a(n,1:n-1)*a(1:n-1,n)
   l=tril(a,-1)+eye(n,n)
   u=triu(a)
   y=l\b
   x=u\y
endfunction