Wednesday, November 19, 2014

Fisika Komputasi: Penyelesaian Persamaan Linear Simultan, Ax = B

Penyelesaian Persamaan Linear Simultan, Ax = B

Telah dilakukan percobaan 3 yaitu penyelesaian persamaan linear simultan, Ax=B dengan menggunakan tiga buah metode, yaitu metode Gauss, metode eliminasi Gauss Jordan dan metode iteratif Gauss Seidel. Pada metode eliminasi gauss diperoleh hasil berupa matriks berorde 3x1 dan berupa vektor kolom yang bernilai [-4;10;5]. Dan diperoleh hasil x senilai 3.6167; 2.6500; dan 2.8333. Sedangkan pada penggunaan metode gauss-jordan hasil yang diperoleh tidak jauh berbeda dengan penggunaan metode gauss sendiri, hanya hasil x yang berbeda. Pada metode gauss-seidel hasil yang diperoleh juga tidak berbeda dengan kedua metode sebelumnya. Pada gauss-seidel dicari dengan penggunaan iterasi hingga seratus. Penyelesaian suatu sistem persamaan linier adalah suatu himpunan nilai yang memenuhi secara serentak (simultan) semua persamaan-persamaan dari sistem tersebut. Atau secara sederhana penyelesaian sistem persamaan linier adalah menentukan titik potong dari dua persamaan linier.

Persamaan linier simultan adalah suatu bentuk persamaan-persamaan yang secara bersama-sama menyajikan banyak variabel bebas.  Penyelesaian suatu sistem persamaan linier adalah suatu himpunan nilai yang memenuhi secara serentak (simultan) semua persamaan-persamaan dari sistem tersebut. Atau secara sederhana penyelesaian sistem persamaan linier adalah menentukan titik potong dari dua persamaan linier. Untuk menyelesaikan permasalahan-permasalahan persamaan linier simultan dapat dilakukan dengan menggunakan metode-metode analitik seperti pemakaian metode grafis, aturan Crammer, atau invers matrik. Metode-metode tersebut dapat dilakukan dengan mudah bila jumlah variabel dan jumlah persamaannya di bawah 4, tetapi bila ukurannya besar maka metode-metode di atsa menjadi sulit dilakukan, sehingga pemakaian metode numerik menjadi suatu alternatif yang banyak digunakan. Metode numerik yang dapat digunakan untuk menyelesaikan permasalahan persamaan linier simultan antara lain:

(1) Metode Eliminasi Gauss

function x=GAUSS(n,A,b)
vb=(1:n);
for i=1:n-1
    ib=vb(i);   %proses pivoting
    maxi=abs(A(ib,i));
    bar=i;
    ibx=ib;
    for bars=i+1:n
        ib=vb(bars);
        if(abs(A(ib,i)))>maxi
            maxi=abs(A(ib,i));
            bar=bars;
            ibx=ib;
        end
    end
    ib=vb(i);
    vb(i)=ibx;
    vb(bar)=ib;
   
    ib=vb(i);   %proses eliminasi
    for j=i+1:n
        ibx=vb(j);
        m=-A(ibx,i)/A(ib,i);
        for k=i:n
            A(ibx,k)=A(ibx,k)+m*A(ib,k);
        end
        b(ibx)=b(ibx)+m*b(ib);
    end
end
ib=vb(n);   %subtitusi balik
x(n)=b(ib)/A(n,n);
for i=n-1:-1:1
    ib=vb(i);
    sum=b(ib);
    for j=i+1:n
        sum=sum-A(ib,j)*x(j);
    end
    x(i)=sum/A(ib,i);
end
return

%SPL-sistem persamaan linier
clear;help splgaus;
A=input('matriks A:');
b=input('vektor kolom b:');
n=length(b);
x=GAUSS(n,A,b);

x

(2) Metode Eliminasi Gauss-Jordan

function x=GJORD(n,A,b)
%fungsi untuk melakukan eliminasi Gauss-Jordan
%untuk menyelesaikan SPL Ax=b
%n=dimensi matriks
%b=vektor ruas kanan
vb=(1:n);
for kol=1:n
    for bar=1:n
        if(kol==bar)
            %proses vipoting
            ib=vb(kol);
            maxi=abs(A(ib,kol));
            i=kol;
            ibx=ib;
            for bars=i+1:n
                ib=vb(bars);
                if(abs(A(ib,kol)))>maxi
                    maxi=abs(A(ib,kol));
                    i=bars;
                    ibx=ib;
                end
            end
            ib=vb(kol);
            vb(kol)=ibx;
            vb(i)=ib;
        else
            %proses eliminasi
            ib=vb(bar);
            ibx=vb(kol);
            m=-A(ib,kol)/A(ibx,kol);
            for j=kol:n
                A(ib,j)=A(ib,j)+m*A(ibx,j);
            end
            b(ib)=b(ib)+m*b(ibx);
        end
    end

end
%nilai elemen X
for i=1:n
    ib=vb(i);
    x(i)=b(ib)/A(ib,i);
end
return

%SPL-sistem persamaan linier
clear;help spljord;
A=input('matriks A:');
b=input('vektor kolom:');
n=length(b);
x=GJORD(n,A,b);
x

3) Metode Iterasi Gauss-Seidel

function x=SEIDEL(n,A,b)
%fungsi untuk melakukan iterasi Gauss-Seidel
%mencari solusi sistem persamaan linier Ax=b
%n=dimensi vektor x
%A=matriks koefisien
%x=vektor variabel
%b=vektor ruas kanan
%pivoting matriks A
vb=1:n;
for i=1:n
    ib=vb(i);
    bar=i;
    ibx=ib;
    m=abs(A(ib,i));
    for j=i+1:n
        ib=vb(j);
        if(abs(A(ib,i))>m)
            m=abs(A(ib,i));
            bar=j;
            ibx=ib;
        end
    end
    ib=vb(i);
    vb(i)=ibx;
    vb(bar)=ib;
end
%proses iterasi
k=0;
for i=1:n
    xk(i)=0.0;
end
tol=5.0e-5;
delta=1.6e-4;
maxstep=300;
while((ktol))
    for i=1:n
        ib=vb(i);
        m=b(ib);
        for j=i+1:n
            m=m-A(ib,j)*xk(j);
        end
        for j=1:i
            if(i==j)
                x(i)=m/A(ib,i);
            else
                m=m-A(ib,j)*x(j);
end
        end
    end
    %periksa error
    delta=0.0;
    for i=1:n
        a=(x(j)-xk(i));
        dx(i)=abs(a);
        xk(i)=x(i);
        if(dx(i)>delta)
            delta=dx(i);
        end
    end
    k=k+1;
    fprintf('iterasi ke-%g',k);
    x
end
return

%SPL-sistem persamaan linier
clear;help splseid;
A=input('matriks A:');
b=input('vektor kolom b:');
n=length(b);
x=SEIDEL(n,A,b);

x


Metode eliminasi Gauss-Jordan merupakan teknik lain untuk menyelesaikan persamaan linear simultan. Proses penyelesaian pada metode ini hampir sama dengan metode eliminasi Gauss. Perbedaanya adalah dalam eliminasi Gauss-Jordan elemen-elemen diatas pivot dieliminasi pada saat yang bersamaan sebagaimana dilakukan pada elemen-elemen dibawahnya. Dengan demikian tahap substitusi mundur tidak diperlukan dalam metode eliminasi Gauss-Jordan. Karenanya langkah penyelesainnya lebih singkat, jika dibandingkan pada penyelesaian dengan metode eliminasi Gauss. Sebagaimana dalam eliminasi Gauss, operasi perputaran antar baris dan antar kolom atau antar kolom saja juga dapat diterapkan dalam metode Gauss-Jordan. Selipun demikian metode ini relative kurang efisien dibandingkan dengan eliminasi Gauss, hal itu dikarenakan adanya kebutuhan operasi-operasi aritmatika yang banyak pada langkah-langkah penyelesainnya.

Untuk mendapatkan laporan lengkapnya silahkan mengikuti tautan berikut untuk: Download Penyelesaian Persamaan Linear Simultan, Ax = B.