Kamis, 12 April 2012

Metode Gauss dengan Matlab

Ini adalah contoh metode Gauss untuk menyelesaikan persamaan linier dengan 2 atau lebih variabel. Saya rasa script ini sudah cukup sempurna karena belum saya jumpai error. Silahkan dicoba....
disp('=====================================================================')

a=[cosd(30) 0 -cosd(45) 0 0 0 0; sind(30) 0 sind(45) 0 0 0 0; -cosd(30) -1 0 0 0 0 0; -sind(30) 0 0 0 -1 0 0; 0 0 cosd(45) 1 0 -1 0; 0 0 -sind(45) 0 0 0 -1; 0 1 0 -1 0 0 0];
b=[1200; -600; 0; 0; 0; 0; 0];
c=a;
d=b;
n=7;
for i=1:n-1;
    if a(1,1)==0;
    a(1,:)=a(i+1,:);
    b(1,:)=b(i+1,:);
    a(i+1,:)=c(i,:);
    b(i+1,:)=d(i,:);
    end
end
for k=[1:n-1];
    for i=[k+1:n];
        c=a;
        d=b;
        if a(k,k)==0;
            a(k,:)=a(k+1,:);
            b(k,:)=b(k+1,:);
            a(k+1,:)=c(k,:);
            b(k+1,:)=d(k,:);
        end
        factor=a(k,k)/a(i,k);
        for j=[k+1:n];
            if a(i,k)==0;
                a(i,j)=a(i,j);
            else a(i,j)=a(i,j)*factor-a(k,j);
            end
        end
        if a(i,k)==0;
            b(i)=b(i);
        else b(i)=b(i)*factor-b(k);
        end
    end
end
x(n)=b(n)/a(n,n);
for i=[n-1:-1:1];
    sum=b(i);
    for j=[i+1:n];
        sum=sum-a(i,j)*x(j);
    end
    x(i)=sum/a(i,i)
end

Finish=input('\nTekan Enter untuk melanjutkan.....');

Ada komentar, kritik, saran, atau request?