Monday, May 27, 2013

Gauss Jordan Elimination & Pivoting algorithm in Matlab

Gauss Jordan Elimination & Pivoting algorithm in Matlab :

%Gauss Jordan elimination with pivoting
%copy this file to the command window and press enter
%Bangladesh University of Engineering & Technology
%Nadim Chowdhury
%Department Of Electrical & Electronics Engineering
%if You have any problem in understanding this  feel free to e-mail me At
%nadim_eee_buet@yahoo.com
A=0;
x=0;
n=input('How many variables=');
disp('Enter the coefficients along with constants For instance if x+y+3z=-5 then enter 1 1 3 -5 each number followed by an enter not space');
for i=1:n
    for j=1:n+1
        A(i,j)=input('');
    end
end
%pivoting
for i=1:n-1
    for j=i+1:n
        if abs(A(j,i))>abs(A(i,i))
            T=A(j,:);
            A(j,:)=A(i,:);
            A(i,:)=T;
        end
    end
end
disp('After pivoting');
disp(A);
for k=1:n-1
    for i=k+1:n
        m=A(i,k)/A(k,k);
        for j=k:n+1
            A(i,j)=A(i,j)-m*A(k,j);
        end
    end
end
disp('Triangularize Form  ');
disp(A);
            
if A(n,n)==0
    disp('No unique solution');
end
    x(n)=A(n,n+1)/A(n,n);
    for j=n-1:-1:1
        sum=0;
    for i=1:n
        sprintf('x%.0f=%.10f',i,x(i))
    end
        

        for i=1:n-j
            sum=sum+A(j,n+1-i)*x(n+1-i);
        end
        x(j)=(A(j,n+1)-sum)/A(j,j);
    end    

No comments:

Post a Comment