Modul 1- Pengenalan MATLAB untuk Komputasi Numerik
Solusi SPL dengan Metode Gauss-Jordan
Priyanka Kusuma Wardhani (081117029) Dosen: Akif Rahmatillah, ST, MT. Tanggal Percobaan: 13 Maret 2014 Praktikum Komputasi Biomedis T3 Laboratorium Komputer Departemen Fisika Universitas Airlangga Abstrak Penggunaan MATLAB sebagai aplikasi komputasi numerik sangat diperlukan. Sebagai dasar, pada praktikum ini dilakukan pengenalan software MATLAB dengan perhitungan sederhana. Pengenalan dasar MATLAB dilakukan dengan membuat fungsi dan perhitungan solusi SPL menggunakan metode Gauss dan Gauss-Jordan. Pada akhir praktikum, praktikan membuat suau fungsi universal metode Gauss-Jordan untuk penyelesaian SPL matriks ordo 3x3. Kata kunci: matlab, komputasi, sistem persamaan linier, gauss-jordan 1. Pendahuluan Implementasi numerik dilakukan dengan menggunakan MATLAB untuk komputasi teknik. Pengenalan MATLAB sangat diperlukan sebagai basis praktikan untuk penyelesaian masalah komputasi selanjutnya. Pengenalan dasar MATLAB seperti interface MATLAB, pembuatan script dasar, fungsi, dan beberapa hal dasar lain cukup menunjang untuk dasar komputasi numerik.
2. Studi Pustaka 2.1 Komputasi Numerik Komputasi numerik merupakan suatu pendekatan penyelesaian masalah matematika dengan menggunakan beberapa metode numerik. Metode numerik adalah suatu metode untuk menyelesaikan masalah- masalah matematika dengan menggunakan sekumpulan operasi aritmetika sederhana dan operasi logika pada sekumpulan bilangan atau data numerik yang diberikan [2].
2.2 MATLAB MATLAB, singkatan dari matrix laboratory, adalah bahasa pemrograman dengan performa tinggi untuk komputasi teknis. MATLAB merupakan sistem interaktif dengan elemen basis data berupa array. Artinya setiap data yang dimasukkan pada MATLAB diinterpretasikan sebagai array.[1]
Gambar 1. Tampilan awal MATLAB
2.3 Sistem Persamaan Linier Bidang matematika terapan dan komputasi banyak menghasilkan masalah yang diselesaikan dalam sistem persamaan linier (SPL). Dalam notasi matriks-vektor, SPL mempunyai bentuk umum: Ax=b Dimana A adalah matriks koefisien berukuran mxn, b vektor berukuran mx1. Vektor x berukuran nx1 merupakan variabel tak diketahui yang akan ditentukan.[1] 2.4 Metode Eliminasi Gauss Jordan Merupakan sebuah metode untuk menyelesaikan sistem persamaan linear. Metode ini dilakukan dengan mengeliminasi matriks augmented menjadi bentuk eselon baris dengan cara operasi baris elementer (OBE).[3]
3. Metodologi Praktikum ini menggunakan software MATLAB 2008b dan dilakukan di Laboratorium Komputer Departemen Fisika Universitas Airlangga. Tahapan praktikum: a. Pengenalan MATLAB b. Latihan membuat fungsi sederhana c. Menyelesaikan SPL dengan menggunakan metode Gauss dan metode Gauss Jordan secara manual d. Tugas membuat fungsi metode Gauss Jordan Step mengerjakan operasi metode Gauss-Jordan seperti pada flowchart lampiran 1.
4. Hasil dan Pembahasan 4.1 Script MATLAB Script MATLAB fungsi Gauss-Jordan ini praktikan modifikasi dari script pada sumber [4]. Penjelasan setiap langkah dijelaskan dalam comment. function [x]=gauss_jordan3(A,b) %A=matriks persamaan ruas kiri. Matriks ini berordo 3x3 %b=matriks persamaan ruas kanan. Berupa vektor 3x1 %x=hasil eliminasi metode Gauss-Jordan: x,y,z
Aa=[A,b]; %matriks augmented dari matriks A dan vektor b for i=1:3 [Aa(i:3,i:4)]=pivot(Aa(i:3,i:4)); %proses pivot --pertukaran rows Aa(1:3,i:4)=step(Aa(1:3,i:4),i); %proses eliminasi end x=Aa(:,4); %hasil diambil dari kolom 4 saja end
%-----------------------------------------
function A1=step(A,i) A1=A; %pembentukan matriks baru s=A1(i,1); %nilai elemen pada matriks A kolom ke satu pada baris i A1(i,:) = A(i,:)/s; %nilai elemen baru matriks A1 baris 1, hasil dari pembagian elemen matriks A1 baris 1 dan nilai s k=[[1:i-1],[i+1:3]]; %penentuan baris baru untuk perhitungan masing2 kolom for j=k s=A1(j,1); A1(j,:)=A1(j,:)-A1(i,:)*s; %proses eliminasi end end
%-----------------------------------------
function [A1]=pivot(A) A1=A; if A1(1,1) == 0 check = logical(1); %mengecek apakah nilai elemen baris 1 kolom 1=0 i = 1; while check %perintah mengecek banyaknya elemen pada matriks i = i + 1; A(i,1) ~= 0 & check %melakukan operasi ketika nilai elemen tidak sama dengan nol check = logical(0); b=A1(i,:); % operasi selanjutnya merubah row 1 dan i A1(i,:)=A1(1,:); A1(1,:)=b; end end end 4.2 Hasil SPL yang diselesaikan menggunakan metode Gauss Jordan: 2x+3y-z=5 x+2y+z=2 4x+4y-3z=3 3x+6y=9 -2x+3y-z=1 2x+8y+4=6
Hasil eliminasi:
4.3 Pembahasan Pembuatan fungsi pada MATLAB dilakukan dengan menuliskan script pada mfile. Pembuatan fungsi diawali dengen menuliskan function kemudian diikuti dengan variabel dan nama fungsi. function [x]=gauss_jordan3(A,b)
Fungsi ini bisa dipanggil pada command window dengan menuliskan nama fungsinya dan variabel yang bersesuaian. Nama variabel ketika pemanggilan pada command window tidak harus sama namun harus bersesuaian. Untuk penyelesaian SPL dengan metode Gauss-Jordan, matriks A harus diaugmented dengan vektor b. Kemudian dilakukan pertukaran baris (proses pivot) dan eliminasi. Pada fungsi yang praktikan buat, terdapat blok fungsi dalam fungsi. Blok fungsi ini berguna untuk memudahkan perhitungan pada main function. Blok fungsi ini terdiri dari fungsi pivot dan fungsi step. Fungsi pivot ini digunakan untuk melakukan pengecekan nilai elemen matriks dan pertukaran baris. Sedangkan fungsi step diperlukan untuk melakukan eliminasi. Pemanggilan fungsi di dalam fungsi sama dengan pemanggilan fungsi pada command window: [Aa(i:3,i:4)]=pivot(Aa(i:3,i:4)); Aa(1:3,i:4)=step(Aa(1:3,i:4),i);
Namun, blok fungsi step maupun fungsi pivot tidak bisa dipanggil dalam command window. User hanya bisa memanggil fungsi utama saja:
[x]=gauss_jordan3(A,b) 5. Kesimpulan Penyelesaian SPL bisa menggunakan metode Gauss-Jordan dan bisa menggunakan fungsi pada MATLAB. Hasil penyelesaian persamaan 2x+3y-z=5 4x+4y-3z=3 -2x+3y-z=1 adalah x=1, y=2, dan z=3. Sedangkan hasil untuk persamaan: 2x+8y+4=6 3x+6y=9 x+2y+z=2 adalah x=1, y=1, dan z=-1. Daftar Pustaka [1] Hernadi, Julan,2012, Matematika Numerik dengan Implementasi MATLAB, Penerbit Andi, Yogyakarta [2] Sahid, 2007, Pengantar Komputasi Numerik, Penerbit Andi, Yogyakarta [3] http://www.mathwords.com/g/gauss- jordan_elimination.htm diases pada 18 Maret 2014 pukul 17.36 WIB [4] http://www.colorado.edu/MCEN/programs/undergr aduate/matlab_tutorials/numerical/cp1.htm diakses pada 17 Maret 2014 pukul 22.30 WIB
Lampiran 1 - Flowchart
START Input matriks A dan vektor b For elemen 1:3 Pivot pertukaran baris [A1]=pivot(A) Step Eliminasi data A1=pivot(A,i) Hasil=x END Pivot pertukaran baris [A1]=pivot(A) Input matrik A A1=A Augmented matriks A dan vektor b If A1(1,1)=0 i=1 While check i=1+1 If A1(i,1)0 b=A1(i,:) A1(i,:)=A1(1,:) A1(1,:)=b Step Eliminasi data A1=pivot(A,i) Input matrik A A1=A S=A1(i,1) A1(i,:)=A(i,:)/s K=[[1:i-1],[i+1:3]] For j=k S=A1(j,1) A1(j,:)=A(j,:)-A1(i,:)