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


No comments:

Post a Comment