METODE GAUSS TUJUAN 1. Menentukan sistem persamaan linier dari kasus fisika 2. Mengubah bentuk sistem persamaan linier kedalam bentuk matriks 3. Membuat program metode eliminasi Gauss (hingga membentuk eselon baris) DASAR TEORI Eliminasi Gauss Salah satu metode yang dapat digunakan untuk menyelesaikan sistem persamaan linier adalah metode eliminasi Gauss. Metode ini diberi nama Gauss untuk menghormati CarlFriedrich Gauss. Metode Gauss ini menghasilkan matriks dengan bentuk baris eselon (row echelon form). Metode Eliminasi Gauss : metode yang dikembangkan dari metode eliminasi, yaitu menghilangkan atau mengurangi jumlah variable sehingga dapat diperoleh nilai dari suatu variable yang bebas. PEMBAHASAN Pada praktikum kali ini, contoh sistem persamaan linier yang dijadikan latihan adalah sebagai berikut. 2X1 + 4X2 + X3 = 3 4 X1 + 6X2 + 3 X3 = 4 8 X1 + 2 X2 + 8X3 = 9 Dari persamaan linier diatas dapat diubah kedalam bentuk matriks A.X = B 2 4 1 ๐ฅ1 3 (4 6 3) (๐ฅ2 ) = (4) 8 2 8 ๐ฅ3 9 Dimana, untuk mencari nilai X, maka digunakan persamaan X = A-1 B Eliminasi Gauss adalah suatu cara mengoperasikan nilai-nilai didalam matriks sehingga menjadi matriks yang lebih sederhana. Caranya adalah dengan melakukan operasi baris ehingga matriks tersebut menjadi matriks eselon baris. Algoritma atau langkah-langkah dalam menyelesaikan sistem persamaan linier (SPL) dengan menggunakan metode eliminasi gauss yaitu : 1. Mengubah matriks tersebut kedalam bentuk teraugmentasi dan mengoperasikannya sehingga membentuk matriks segitiga bawah (eselon-baris). 2. Melakukan substitusi balik untuk mendapatkan nilai dari variabel-variabel tersebut. Namun, dalam laporan ini hanya akan dibahas hingga langkah pertama saja. Analisis : Langkah pertama adalah melakukan eliminasi pertama (eliminasi ke-1)
Matrik yang akan diubah bentuknya menjadi matriks eselon baris yaitu (matriks A) 2 4 (4 6 8 2
1 โฎ 3 3 โฎ 4) 8 โฎ 9
Agar A21 ( matriks A baris 2 kolom 1) bernilai 0, maka bilangan pada A11 menjadi bilangan utamanya, sehingga operasi bilangannya adalah sebagai berikut. J = 1 s/d 4; dengan j adalah nilai variabel untuk kolom ke 1 hingga 4. B2โ = B2 โ 2B1 [B2โ(baris kedua yang baru) = B2(baris kedua yang lama) โ 2*B1 (baris pertama yang lama)] B3โ = B3โ 4B1 [B3โ(baris kedua yang baru) = B3(baris kedua yang lama) โ 4*B1 (baris pertama yang lama)]
Sehingga, pada coding delphi dapat menggunakan script sebagai berikut. A1(2,j) = A(2,j) โ 2A(1,j) atau A1(2,j) = A(2,j) โ (A(2,1)/A(1,1))*A(1,j) A1(3,j) = A(2,j) โ 4A(1,j) atau A1(3,j) = A(2,j) โ (A(3,1)/A(1,1))*A(1,j) [ A adalah matriks sebelum dieliminasi, A1 adalah matriks setelah dilakukan eliminasi.] Sehingga diperoleh : Matris A 2 4 (4 6 8 2
1 โฎ 3 3 โฎ 4) 8 โฎ 9
Matriks A1 2 (0 0
4 1 3 โ2 1 โ2) โ14 4 โ3
Langkah kedua adalah melakukan eliminasi kedua (eliminasi ke-2) Matrik yang akan diubah bentuknya menjadi matriks eselon baris yaitu (matriks A1) 2 (0 0
4 1 3 โ2 1 โ2) โ14 4 โ3
Agar A32 bernilai 0, maka bilangan pada A22 menjadi bilangan utamanya, sehingga operasi bilangannya adalah sebagai berikut. J = 2 s/d 4; dengan j adalah nilai variabel untuk kolom ke 2 hingga 4. B3โโ = B3โโ 7*B2
[B3โโ(baris ketiga yang baru) = B3โ(baris ketiga yang lama) + 7*B2 (baris kedua yang lama)]
Sehingga, pada coding delphi dapat menggunakan script sebagai berikut. A2(3,j) = A1(3,j) -7A(2,j) atau A2(3,j) = A1(3,j) โ (A1(3,2)/A(2,2))* A(2,j) [ A1 adalah matriks sebelum dieliminasi, A2 adalah matriks setelah dilakukan eliminasi.] Dan diperoleh : Matris A1 2 (0 0
4 1 3 โ2 1 โ2) โ14 4 โ3
Matriks A2 2 (0 0
4 1 3 โ2 1 โ2) 0 โ3 11
Langkah ketiga adalah mencari nilai X1 , X2 dan X3 . Dari matriks A2 diatas kita peroleh sistem persamaan linier sebagai berikut. -3X3 = 11, X3 = -11/3 = -3,67 -2 X2 + X3 = -2 , X2 = (-2 + 11/3)/(-2) = -5/6 = -0,83 2X1+ 4X2+ X3 = 3 , X1 = (3 โ 4*0,83 โ 3,67 )/2 = -1,995 Langkah ketiga disebut substitusi balik sehingga diperoleh nilai X1 = - 1,995 ; X2 = 0,83 ; X3 = 3,67 .
Dari hasil pembahasan tersebut, dapat dibuat analisis script deplhi sebagai berikut. Untuk matriks 3x3 (jxj), diperoleh script untuk eliminasi ke 1 yaitu : A1(2,j) = A(2,j) โ (A(2,k)/A(1,1))*A(1,j) A1(3,j) = A(2,j) โ (A(3,k)/A(1,1))*A(1,j)
Untuk eliminasi ke 2 yaitu : A2(3,j) = A1(3,j) โ (A1(3,j)/A(2,2))* A(2,j)
๏จ Ak(i,j) = A(i,j)-pivot*A(kj) , pivot = A(i,k)/A/(kk) Sehingga, jika variabel k untuk menunjukkan eliminasi ke k, dan variabel i untuk menunjukkan baris ke i dan j adalah untuk menunjukkan kolom ke j, maka : for k:=0 to 1 do begin for i:=k+1 to 2 do begin pivot:=matriksA[i,k]/matriksA[k,k];
for j:=k to 3 do begin matriksA[i,j]:=matriksA[i,j]-pivot*matriksA[k,j]; end; end; end;
Pada pembuatan script delphi untuk membuat eliminasi gauss diperlukan Stringgrd1 untuk input data matriks sebelum dieliminasi, Stringgrid 2 data untuk menampilkan data setelah dieliminasi dan Button untuk eksekusi eliminasi Gauss Dari pembahasan diatas, diperoleh script Delphi untuk menyelesaikan SPL dengan eliminasi Gauss yaitu : Var matriksA:array[0..10,0..10] of real; i,j,k:integer; pivot:real; begin //MENGAMBIL DATA DARI STRINGGRID1 with stringgrid1 do begin for i:=0 to 2 do //jumlah baris 3 begin for j:=0 to 3 do // jumlah kolom 4 begin matriksA[i,j]:=strtofloat(cells[j,i]); // matriksA(baris,kolom) dan cells(kolom,baris) end; end; end; //PROSES ELIMINASI GAUSS for k:=0 to 1 do // eliminasi ke-k begin for i:=k+1 to 2 do // yang dieliminasi adalah baris k+1 hingga jumlah baris begin pivot:=matriksA[i,k]/matriksA[k,k]; for j:=k to 3 do // jumlah kolom begin matriksA[i,j]:=matriksA[i,j]-pivot*matriksA[k,j]; end; end; end; //MENAMPILKAN HASIL ELIMINASI GAUSS with stringgrid2 do begin for i:=0 to 3 do begin for j:=0 to 2 do begin cells[i,j]:=floattostr(matriksA[j,i]); end; end; end;
end; end.
Hasil running delphi
TUGAS 1. Contoh soal matriks untuk matriks 4 x 4 1 2 4 6
2 5 2 4
3 4 2 -1
-1 8 1 -2
| 10 |8 | -2 |4
Script delphinya Var matriksA:array[0..10,0..10] of real; i,j,k:integer; pivot:real; begin with stringgrid1 do begin for i:=0 to 3 do // jumlah baris begin for j:=0 to 4 do // jumlah kolom begin matriksA[i,j]:=strtofloat(cells[j,i]); end; end; end; for k:=0 to 2 do begin for i:=k+1 to 3 do begin pivot:=matriksA[i,k]/matriksA[k,k]; for j:=k to 4 do begin
matriksA[i,j]:=matriksA[i,j]-pivot*matriksA[k,j]; end; end; end; with stringgrid2 do begin for i:=0 to 3 do //jumlah baris begin for j:=0 to 4 do // jumlah kolom begin cells[j,i]:=floattostr(matriksA[i,j]); end; end; end; end;
hasil tampilan running tanpa fungsi pembulatan adalah sebagai berikut.
2. Lima orang penerjun payung duhubungkan dengan kabel tanpa berat. Gayagaya yang berpengaruh adalah gaya gravitasi dan gaya gesek udara Fu = cv. Pada saat jatuh bebas kecepatannya 9 m/dt. a) Selesaikan kasus di atas menjadi sistem persamaan linier! b) Buat program metode Eliminasi Gauss untuk menentukan percepatan tim tersebut, tegangan tali T1, T2, T3, dan T4 bila diberikan
Catatan: Gunakan x1=a; x2=T1; x3=T2, x4=T3; x5=T4 dan urutan persamaan sesuai dengan urutan penerjun, g=10 m/dt. Penyelesaian Tugas : a) Dengan menggunakan prinsip hukum Newton โF = ma, diperoleh SPL dari sistem tersebut yaitu : 392 = 50a + T1 692 = 8a โ T1 + T2 474 = 60a โ T2 + T3 556 = 70a โ T3 + T4 810 = 90a โ T4 b) Program Eliminasi Gauss Var matriksA:array[0..10,0..10] of real; i,j,k:integer; pivot:real; begin with stringgrid1 do begin for i:=0 to 4 do // jumlah baris begin for j:=0 to 5 do //jumlah kolom begin matriksA[i,j]:=strtofloat(cells[j,i]); end; end; end; for k:=0 to 3 do begin for i:=k+1 to 4 do begin pivot:=matriksA[i,k]/matriksA[k,k]; for j:=k to 5 do begin matriksA[i,j]:=matriksA[i,j]-pivot*matriksA[k,j]; end; end; end; with stringgrid2 do begin for i:=0 to 4 do //jumlah baris begin for j:=0 to 5 do // jumlah kolom
begin cells[j,i]:=floattostr(matriksA[i,j]); end; end; end; end;
hasil running delphinya :
LAMPIRAN Lampiran (1) Flowchart Metode Gauss Mulai
Input data Matriks di stringgrid1
Looping k (eliminasi ke-k)
Looping i (baris)
pivot:= matriksA[i,k]/matri ksA[k,k];
Selesai
Looping j (kolom)
matriksA[i,j]:=matriks A[i,j]pivot*matriksA[k,j];
Tampil matriksA[i,j]di stringgrid2
Selesai
Selesai
Lampiran (2) Script delphi menggunakan fungsi Pembulatan. function bulatkan(bilangandesimal:REAL;bildibelakangkoma:integer):string ; var s:string ; begin str(bilangandesimal:0:bildibelakangkoma,s); //s adalah jumlah angka dibelakang koma result := trim(s) ; end;
pendeklarasian fungsi pembulatan Var matriksA:array[0..10,0..10] of real; i,j,k, bildibelakangkoma:integer; pivot,bilangandesimal:real; begin bulatkan(bilangandesimal,bildibelakangkoma) ; with stringgrid1 do begin for i:=0 to n do // ganti n dengan jumlah baris begin for j:=0 to p do //ganti p dengan jumlah kolom begin matriksA[i,j]:=strtofloat(cells[j,i]); end; end; end; for k:=0 to q do // ganti q dengan banyak eliminasi begin for i:=k+1 to n do // ganti n dengan jumlah baris begin pivot:=matriksA[i,k]/matriksA[k,k]; for j:=k to p do //ganti p dengan jumlah kolom begin matriksA[i,j]:=matriksA[i,j]-pivot*matriksA[k,j]; end; end; end; with stringgrid2 do begin for i:=0 to 4 do //jumlah baris begin for j:=0 to 5 do // jumlah kolom begin cells[j,i]:=(bulatkan(matriksA[i,j],2)); end; end; end; end;
dengan script coding yang sama dan dengan perubahan pada bagian yang di-bold maka diperoleh hasil running dari tugas 1 dan 2 sebagai berikut.