Terapan
Oleh:
1
Program Studi Teknik Kimia
2019
Pengenalan Matlab
SEKILAS MATLAB
Matlab merupakan bahasa untuk komputasi teknik. Matlab merupakan integrasi dari
komputasi, visualisasi dan pemograman dalam suatu lingkungan yang mudah digunakan,
2
Matlab adalah sistem interaktif dengan elemen dasar array yang memungkinkan
Ketika mulai membuka program Matlab, akan muncul desktop matlab yang berisi tools
(Graphical User Interface) untuk mengatur file, variable, dan aplikasi yang berhubungan
1. Current Directory
Path Browser memungkinkan Anda melihat dan mengubah alamat Pencarian MATLAB
3
2. Workspace (Pencari tempat kerja)
Workspace browser memungkinkan Anda melihat isi dari tempat kerja Matlab yang sedang
aktif atau Workspace browser juga menyediakan keluaran dari perintah whos,
3. M-File editor/Debuger
Digunakan untuk menuliskan program berupa fungsi-fungsi dan disimpan sesuai dengan
nama fungsinya dan dapat dilakukan eksekusi program. M-File dapat diaktifkan dengan
mengklik File – New – M-File. M-files dapat berisi program, scripts, persamaan atau data
yang dipanggil selama eksekusi. Jika M-files adalah definisi fungsi, selanjutnya bagian yang
terpenting dari jenis m-file ini adalah baris pertama. Baris pertama harus mengandung
4
definisi fungsi sehingga matlab dapat menemukan m-files yang dipanggil. M-files tipe ini
disebut dengan fungsi m-files atau fungsi file. Kode yang digunakan untuk mendefinisikan
’file_name’ adalah nama sederhana m-file (nama file harus sama dalam definisi dan nama
file. Baris script selanjutnya dalam m-file dapat mendefinisikan fungsi dan label beberapa
4. Command Windows
Command windows dapat digunakan seperti kalkulator dan juga dapat untuk menuliskan
5
SINTAK (PEMROGRAMAN) DASAR MATLAB
Tipe data yang dikenal dalam pemrograman Matlab hanya dua yaitu Numeric dan String.
Beberapa hal penting yang harus diperhatikan dalam penulisan sintak yaitu:
1. Penamaan Variabel bersifat Case Sensitive artinya Matlab akan membedakan adanya
huruf besar dan kecil dalam penamaan (misalnya lbr akan tidak sama dengan Lbr)
3. Penamaan variabel harus selalu diawali dengan huruf, tidak boleh dengan bilangan
6
Matlab menggunakan variabel sebagai media bagi pemrograman untuk menempatkan data
input/output. Ada beberapa cara penulisan yang dapat digunakan sesuai jenis data yang
Cara penulisan
a = 12
a=
12
Cara penulisan
a = [12 30 ; 10 20]
pada layar
Tanda ( [ ] ) digunakan untuk penulisan batas awal dan batas akhir elemen matrik
Tanda ( ; ) dalam deklarasi matrik digunakan untuk pemisahan antar baris dalam
Tanda ( , ) dalam deklarasi matrik berarti sama dengan spasi atau pemisah antar
a=
12 30
7
10 20
3. Data String/Teks
Cara penulisan
>> a=’ali’
a=
ali
matrik/array. Maka untuk variabel yang memiliki elemen lebih dari satu,
>> a = [2 3 6 ; 6 4 7 ; 8 2 9]
a=
2 3 6
6 4 7
8 2 9
8
Cara mengakses elemen tunggal, adalah sebagai berikut:
>> a ( 2, 3 )
ans =
Artinya anda sedang mengakses elemen pada baris ke 2 kolom ke 3 dari variabel a.
>> a ( 2, : )
ans =
6 4 7
Artinya anda sedang mengakses elemen-elemen pada baris ke 2 dari variabel a. Tanda titik
dua (:) pada bagian ”kolom ke” memiliki arti semua kolom.
>> a ( :, 3 )
ans =
Artinya anda sedang mengakses elemen-elemen pada kolom ke 3 dari variabel a. Tanda titik
dua (:) pada bagian ”baris ke” memiliki arti semua baris.
Cara mengakses beberapa elemen sekaligus pada baris dan kolom tertentu, adalah sebagai
berikut:
9
>> a (1 : 2, 2 : 3)
ans =
3 6
4 7
Artinya anda sedang mengakses elemen-elemen dari baris ke 1 sampai ke 2 dan elemen-
elemen pada kolom ke 2 sampai ke 3 dari variabel a. Penulisan (1:2) pada bagian ”baris ke”
memiliki arti dari baris 1 ke baris 2). Penulisan (2:3) pada bagian ”kolom ke” memiliki arti dari
Matematika Sederhana
Contoh : 5 + 4 = 9
Pi = 3.14
4 x 25 + 6 x 52 + 2 x 99 = 610
Penambahan, a + b + 5+3
10
Pengurangan, a – b – 23 – 12
Perkalian, a x b * 3.14 * 5
Pemangkatan, ab ^ 5^2
Fungsi Trigonometri
cos Kosinus
cot Kotangen
csc Kosekan
11
sec Sekan
sin Sinus
tan Tangen
Exp Eksponensial
Vektor dan matriks merupakan konsep dasar perhitungan dalam Matlab. Berbagai
perhitungan dapat diselesaikan dengan lebih mudah, ringkas, dan cepat bila bentuknya
dikonversi ke dalam bentuk vektor/matriks. Untuk itu, harus dipahami benar dasar operasi
dengan menggunakan vektor/matriks.
1. Skalar
Di dalam Matlab, skalar adalah sebuah data dengan satu baris dan satu
12
kolom. Variabel-variabel yang memuat data skalar tersebut dapat mengalami operasi
penjumlahan, pengurangan, perkalian, dan pembagian.
2. Vektor
Di dalam Matlab, vektor adalah sekumpulan data yang membentuk hanya satu baris
atau satu kolom.
Penulisan elemen dilakukan di dalam kurung siku [ ] yang diantarai dengan spasi atau titik
koma. Pengecualian berlaku hanya untuk penulisan data yang berbentuk deret dengan pola
tertentu.
Vektor dapat mengalami operasi dengan skalar atau dengan vektor lain asalkan mempunyai
dimensi yang sama.
>> a = 1:5
a =
1 2 3 4 5
>> a = [1:5]
a =
1 2 3 4 5
>> a = [1 2 3 4 5]
a =
1 2 3 4 5
>> 1:10
ans =
1 2 3 4 5 6 7 8 9 10
>> 1:2:10
13
ans =
1 3 5 7 9
>> 0:2:10
(ii) Penggunaan increment
Bentuk umum penulisan data dengan pola tertentu atau deret:
variabel = n : i : m dimana n = nilai awal, m = nilai akhir, dan i = increment/langkah; bila I
tidak didefinisikan, maka Matlab akan
menggunakan default-nya yaitu 1.
1 2 3
2 1 0
3. Matriks
Matriks merupakan himpunan data yang membentuk beberapa baris dan kolom.
Aturan operasi penjumlahan dan pengurangan yang berlaku pada vektor juga berlaku untuk
matriks apabila matriks mempunyai dimensi yang sama.
15
Perkalian antara 2 buah matriks misalkan matriks A dan matriks B. Perkalian matriks
A x B, harus memenuhi aturan bahwa banyaknya kolom pada matriks A harus sama dengan
banyaknya baris pada matriks B.
𝑎′
atau dapat ditulis juga menjadi 𝐴 = ( 1′ )
𝑎2
dimana
Dimana
18
3
𝑐11 = 𝑎1′ 𝑏1 = ∑ 𝑎1𝑗 𝑏𝑗1 = 𝑎11 𝑏11 + 𝑎12 𝑏21 + 𝑎13 𝑏31
𝑗=1
𝑐12 = 𝑎1′ 𝑏2 = ∑ 𝑎1𝑗 𝑏𝑗2 = 𝑎11 𝑏12 + 𝑎12 𝑏22 + 𝑎13 𝑏32
𝑗=1
𝑐21 = 𝑎2′ 𝑏1 = ∑ 𝑎2𝑗 𝑏𝑗1 = 𝑎21 𝑏11 + 𝑎22 𝑏21 + 𝑎23 𝑏31
𝑗=1
𝑐22 = 𝑎2′ 𝑏2 = ∑ 𝑎2𝑗 𝑏𝑗2 = 𝑎21 𝑏12 + 𝑎22 𝑏22 + 𝑎23 𝑏32
𝑗=1
det(𝐴) = |𝐴| = 𝑎𝑑 − 𝑏𝑐
Misal:
2 7 −3 8
Diketahui ( )𝑋 = ( ), hitunglah determinan X dan matriks X.
5 3 7 −9
Jawab:
>> A=[2 7;5 3]
A=
2 7
19
5 3
B=
-3 8
7 -9
>> X=inv(A)*B
X=
2.0000 -3.0000
-1.0000 2.0000
>> det(X)
ans =
1.0000
20
Teknik Dasar Manipulasi Data
1. Teknik Membangun Data
Membangun data dengan elemen yang telah ditentukan
>> x=[2 4 6]
x=
2 4 6
>> x=[2;4;6]
x=
2
4
6
Membangun data dengan batas awal dan batas akhir, tetapi jumlah data
ditentukan
>> sdt=linspace(30,90,5)
sdt =
21
30 45 60 75 90
Membangun data logaritmik dengan batas awal dan batas akhir, tetapi jumlah
data ditentukan
Misalkan membuat data 5 nilai yang berada dalam interval 102 dan 104
>> x=logspace(2,4,5)
x=
1.0e+004 *
0.0100 0.0316 0.1000 0.3162 1.0000
>>zeros(3,4)
x=
0 0 0 0
0 0 0 0
0 0 0 0
>>eye(4,4)
x=
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
22
0.9501 0.8913 0.8214 0.9218
0.2311 0.7621 0.4447 0.7382
0.6068 0.4565 0.6154 0.1763
0.4860 0.0185 0.7919 0.4057
>>a=(7-(rand(4)*(7-5)))
a=
6.0985 6.4905 5.1832 6.8432
5.5682 5.2688 6.5362 5.7184
5.2143 6.5353 6.5214 6.6182
6.4538 5.3903 6.9005 5.3123
>>a=a’
a=
2 6
3 4
6 7
23
>>b=[2 2 2]
b=
2 2 2
>>aug=[a;b]
aug =
2 3 6
6 4 7
2 2 2
>>b=[9;9]
b=
9
9
>>aug=[a b]
aug =
2 3 6 9
6 4 7 9
Tipe data logika mempresentasikan logika benar atau salah menggunakan angka 1
untuk benar dan angka 0 untuk salah.
24
A B A&B atau A|B atau ~A atau
and(A,B) or(A,B) not(A)
0 0 0 0 1
0 1 0 1 1
1 0 0 1 0
1 1 1 1 0
3. Pengurutan Data
var2=sort(var1,1)
>>b=sort(a,1)
b=
2 3 1
7 6 5
9 9 7
var2=sort(var1,2)
>>a=[2 3 1;9 6 7;7 9 5]
a=
2 3 1
9 6 7
7 9 5
>>b=sort(a,2)
b=
1 2 3
6 7 9
25
5 7 9
4. Pengurutan Data
Cara menuliskan syarat menggunakan ekspresi matematika (operator relasi) adalah
sebagai berikut;
== sama dengan
~= tidak sama dengan
> lebih besar dari
>= lebih besar atau sama dengan
< lebih kecil dari
<= lebih kecil atau sama dengan
>>b=(a>7).*a
b=
0 0 0
9 0 0
0 9 0
Program diatas maksudnya adalah menyeleksi elemen pada data a dengan syarat
elemen tersebut lebih besar dari 7, lalu hasilnya disimpan pada variable b.
>>c=(a~=7)
c=
1 1 1
1 1 0
0 1 1
26
Untuk mendapatkan nilai yang terseleksi, kalikan hasil diatas dengan data asal. Gunakan
perkalian elemen.
>>c=(a~=7).*a
c=
2 3 1
9 6 0
0 9 5
2. Tekan enter, selanjutnya muncul Matlab editor dan anda ketiklah program berikut:
% -------------------------------------------
% Program latihan 1
% Matlab programming
% Oleh: Dian
% -------------------------------------------
clear all;
clc;
disp(‘---------------------------------------‘);
27
disp(‘Program latihan 1’);
disp(‘---------------------------------------‘);
pjg = 10;
lbr = 10;
luas = pjg*lbr;
disp([‘luas -> ’ num2str(luas)]);
3. Setelah selesai, simpanlah data tersebut dengan mengklik tombol File kemudian
Save As, dan gantilah file namenya dengan nama latihan01 dengan extensi (*.m)
Contoh latihan 2
Berikut adalah contoh penggunaan fungsi trigonomentri:
1. Pada command window, ketikkan:
>>edit
2. Tekanlah enter, selanjutnya muncul MATLAB editor dan anda ketiklah program
dibawah ini
% ------------------------------------------
28
% Program latihan 2
% Matlab programming
% Oleh: Dian
% -------------------------------------------
clear all;
clc;
disp(‘---------------------------------------‘);
disp(‘Program latihan 2’);
disp(‘---------------------------------------‘);
x = [0:10:180];
y1 = sin(x*pi/180);
y2 = cos(x*pi/180);
3. Setelah selesai, simpanlah data tersebut dengan mengklik tombol File kemudian
Save As, dan gantilah file namenya dengan nama latihan02 dengan extensi (*.m)
out =
0 0 1.0000
29
10.0000 0.1736 0.9848
20.0000 0.3420 0.9397
30.0000 0.5000 0.8660
40.0000 0.6428 0.7660
50.0000 0.7660 0.6428
60.0000 0.8660 0.5000
70.0000 0.9397 0.3420
80.0000 0.9848 0.1736
90.0000 1.0000 0.0000
100.0000 0.9848 -0.1736
110.0000 0.9397 -0.3420
120.0000 0.8660 -0.5000
130.0000 0.7660 -0.6428
140.0000 0.6428 -0.7660
150.0000 0.5000 -0.8660
160.0000 0.3420 -0.9397
170.0000 0.1736 -0.9848
180.0000 0.0000 -1.0000
Contoh latihan 3
Berikut adalah contoh penulisan sintak untuk menerima input yang dilanjutkan dengan
menampilkan hasil proses program ke layar:
1. Pada command window, ketikkan:
>> edit
2. Tekan enter, selanjutnya muncul MATLAB editor dan anda ketiklah program dibawah
ini:
% ------------------------------------------
% Program latihan 3
% Matlab programming
% Oleh: Dian
% -------------------------------------------
clear all;
30
clc;
disp(‘---------------------------------------‘);
disp(‘Program latihan 3’);
disp(‘---------------------------------------‘);
3. Setelah selesai, simpanlah data tersebut dengan mengklik tombol File kemudian
Save As, dan gantilah file namenya dengan nama latihan03 dengan extensi (*.m)
Data panjang = 5
Data lebar = 6
Luas -> 30
Kondisional/Percabangan
Kondisional nilai relative (if….elseif….else….end)
Contoh latihan 4
31
1. Pada command window, ketikkan:
>> edit
2. Tekan enter, selanjutnya muncul MATLAB editor dan anda ketiklah program dibawah
ini:
% ------------------------------------------
% Program latihan 4
% Matlab programming
% Oleh: Dian
% -------------------------------------------
clear all;
clc;
disp(‘---------------------------------------‘);
disp(‘Program latihan 4’);
disp(‘---------------------------------------‘);
na = (uts1*20/100)+(uts2*30/100)+(uas*50/100);
if na>80
disp(‘grade anda = A’);
elseif na<=80 & na>70
disp(‘grade anda = B’);
elseif na<=70 & na>60
disp(‘grade anda = C’);
elseif na<=60 & na>50
disp(‘grade anda = D’);
32
else
disp(‘grade anda = E’);
end;
3. Setelah selesai, simpanlah data tersebut dengan mengklik tombol File kemudian
Save As, dan gantilah file namenya dengan nama latihan04 dengan extensi (*.m)
nilai uts1 = 50
nilai uts2 = 35
nilai uas = 78
nilai akhir = 59.5
grade anda = D
>>
2. Tekan enter, selanjutnya muncul MATLAB editor dan anda ketiklah program dibawah
ini:
% ------------------------------------------
% Program latihan 5
33
% Matlab programming
% Oleh: Dian
% -------------------------------------------
clear all;
clc;
disp(‘---------------------------------------‘);
disp(‘Program latihan 5’);
disp(‘---------------------------------------‘);
switch pilih
case 1
disp(‘Hitung Luas Kotak’);
disp(‘------------------------------‘);
pjg=input(‘panjang kotak = ‘);
lbr=input(‘lebar kotak = ‘);
tg=input(‘tinggi kotak = ‘);
luas=2*pjg+2*lbr+2*tg;
disp([‘luas kotak = ‘ num2str(luas)]);
case 2
disp(‘Hitung Volume Kotak’);
disp(‘------------------------------‘);
pjg=input(‘panjang kotak = ‘);
lbr=input(‘lebar kotak = ‘);
tg=input(‘tinggi kotak = ‘);
34
volume=pjg*lbr*tg;
disp([‘volume kotak = ‘ num2str(vol)]);
case 3
disp(‘Hitung Luas Silinder’);
disp(‘------------------------------‘);
r=input(‘jari-jari silinder = ‘);
tg=input(‘tinggi silinder = ‘);
luas=(2*pi*r*tg)+2*(pi*r^2);
disp([‘luas silinder = ‘ num2str(luas)]);
case 4
disp(‘Hitung Volume Silinder’);
disp(‘------------------------------‘);
r=input(‘jari-jari silinder = ‘);
tg=input(‘tinggi silinder = ‘);
vol=pi*r^2*tg;
disp([‘volume silinder = ‘ num2str(vol)]);
otherwise
disp(‘pilihan anda salah!’)
end;
3. Setelah selesai, simpanlah data tersebut dengan mengklik tombol File kemudian
Save As, dan gantilah file namenya dengan nama latihan05 dengan extensi (*.m)
35
Pilihan Rumus Perhitungan
1. Luas Kotak
2. Volume Kotak
3. Luas Silinder
4. Volume Silinder
Latihan Soal:
Buatlah perintah untuk penilaian akhir mahasiswa mata kuliah Komputasi Numerik
berikut dengan menggunakan MATLAB.
Komponen penilaian:
Tugas =20%
UTS = 30%
UAS = 50%
Total Nilai = Tugas + UTS + UAS
36
Dimana bila nilai mahasiswa A->C maka Lulus, dan D->E maka tidak lulus. Dari hasil yang
diperoleh mahasiswa bernama Dian pada akhir semester mendapatkan nilai tugas 80,
UTS 70 dan UAS 50.
2x + y = 5 persamaan linear
Metode-metode solusi numerik yang banyak dipakai dalam menyelesaikan suatu sistem
persamaan linear dapat diklasifikasikan sebagai berikut:
1. Metode Langsung
a. Metode Langsung Eliminasi Gauss (EGAUSS), prinsipnya: merupakan operasi
eliminasi dan substitusi variabel-variabelnya sedemikian rupa sehingga dapat
terbentuk matriks segitiga atas, dan akhirnya solusinya diselesaikan menggunakan
teknik substitusi balik (backsubstitution),
b. Metode Eliminasi Gauss ini. Eliminasi Gauss-Jordan (EGJ), prinsipnya: mirip sekali
dengan metode EG, namun dalam metode ini jumlah operasi numerik yang
dilakukan jauh lebih besar, karena matriks A mengalami inversi terlebih dahulu
untuk mendapatkan matriks identitas (I). Karena kendala tersebut, maka metode ini
sangat jarang dipakai, namun sangat bermanfaat untuk menginversikan matriks,
37
c. Dekomposisi LU (DECOLU), prinsipnya: melakukan dekomposisi matriks A terlebih
dahulu sehingga dapat terbentuk matriks-matrik segitiga atas dan bawah,
kemudian secara mudah dapat melakukan substitusi balik (backsubstitution) untuk
berbagai vektor VRK (vektor ruas kanan).
d. Solusi sistem TRIDIAGONAL (S3DIAG), prinsipnya merupakan solusi SPL dengan
bentuk matrik pita (satu diagonal bawah, satu diagonal utama, dan satu diagonal
atas) pada matriks A.
Metode-metode tak-langsung seperti di atas pada umunya sangat tidak efisien dan ‘time
consuming’ (memerlukan CPU- time) yang jauh lebih besar dari metode langsung.
Metode Eliminasi Gauss, metode Dekomposisi LU dan Metode Iterasi Jacobi merupakan
metode yang dapat dijadikan sebagai alternatif untuk menyelesaikan model matematika.
Metode Eliminasi Gauss mereduksi matriks koefisien A ke dalam bentuk matriks segitiga,
dan nilai-nilai variabel diperoleh dengan teknik substitusi. Pada metode Dekomposisi LU,
matriks A difaktorkan menjadi matriks L dan matriks U, dimana dimensi atau ukuran
matriks L dan U harus sama dengan dimensi matriks A.
Pada metode iterasi Jacobi, penyelesaian dilakukan secara iterasi, dimana proses iterasi
dilakukan sampai dicapai suatu nilai yang konvergen dengan toleransi yang diberikan.
Dari hasil pengujian dapat diketahui bahwa metode Iterasi Jacobi memiliki hasil ketelitian
yang lebih baik dan waktu komputasi yang lebih cepat dari metode Eliminasi Gauss dan
metode Dekomposisi LU.
38
1. Metode Gauss/Eliminasi Gauss
Eliminasi yang digunakan untuk mengubah matriks lengkap sistem persamaan linear
menjadi matriks eselon dengan bantuan operasi baris elementer.
Matriks eselon apabila memenuhi syarat berikut:
- Baris-baris yang semua elemennya nol diletakkan setelah baris yang memuat
elemen tidak nol.
- Baris-baris yang mempunyai elemen tidak nol, elemen tidak nol pertama harus
terletak sebelah kiri elemen tidak nol dari baris berikutnya.
Misal:
2 5 −6 0 3
0 0 −1 0 0
0 0 0 2 4
0 0 0 0 0
[0 0 0 0 0]
Contoh Soal:
39
1. Selesaikan sistem persamaan linear berikut dengan menggunakan eliminasi Gauss.
3x + y + 4z = 0
x + 2y + z = 0
3x – 4y + 5z = 0
Jawab:
Karena ruas kanan pada persamaan diatas bernilai nol, maka kolom yang berisi nilai nol
pada matriksnya dapat dihilangkan atau tidak ditulis, sehingga matriks augmentednya
menjadi sebagai berikut:
>> B(2,:)=B(2,:)-(1/3)*B(1,:)
B=
3.0000 1.0000 4.0000
0 1.6667 -0.3333
3.0000 -4.0000 5.0000
>> B(3,:)=B(3,:)-B(1,:)
B=
3.0000 1.0000 4.0000
0 1.6667 -0.3333
0 -5.0000 1.0000
>> B(3,:)=B(3,:)+(5/1.6667)*B(2,:)
B=
3.0000 1.0000 4.0000
0 1.6667 -0.3333
0 0.0000 0.0000
40
Dari baris kedua dapat dibentuk persamaan
1.6667y – 0.3333z = 0
y = 0.3333z/1.6667
Jawab:
>> C=[0 2 3 1;3 -4 0 2;3 1 4 5]
C=
0 2 3 1
3 -4 0 2
3 1 4 5
>> C([1,2],:)=C([2,1],:)
C=
3 -4 0 2
0 2 3 1
3 1 4 5
>> C(3,:)=C(3,:)-C(1,:)
C=
3 -4 0 2
0 2 3 1
0 5 4 3
>> C(3,:)=C(3,:)-(5/2)*C(2,:)
41
C=
3.0000 -4.0000 0 2.0000
0 2.0000 3.0000 1.0000
0 0 -3.5000 0.5000
>> z=0.5/-3.5
z=
-0.1429
>> y=(1-(3*(-0.1429)))/2
y=
0.7144
>> x=(2+(4*0.7144))/3
x=
1.6192
Persamaan diatas dapat ditulis dalam bentuk matriks seperti berikut ini.
42
𝑎11 𝑎12 𝑎13 𝑎14 𝑎15 𝑥1 𝑏1
𝑎21 𝑎22 𝑎23 𝑎24 𝑎25 𝑥2 𝑏2
𝑎31 𝑎32 𝑎33 𝑎34 𝑎35 𝑥3 = 𝑏3
𝑎41 𝑎42 𝑎43 𝑎44 𝑎45 𝑥4 𝑏4
[𝑎51 𝑎52 𝑎53 𝑎54 𝑎55 ] [𝑥5 ] [𝑏5 ]
Contoh Soal:
1. Carilah nilai x, y dan z dari sistem persamaan linear dibawah ini dengan
menggunakan Matlab metode Gauss-Jordan.
x + y + 2z = 9
2x + 4y – 3z = 1
3x + 6y – 5z = 0
Jawab:
>> A=[1 1 2 9;2 4 -3 1;3 6 -5 0]
A=
1 1 2 9
2 4 -3 1
3 6 -5 0
>> A(2,:)=A(2,:)-2*A(1,:)
43
A=
1 1 2 9
0 2 -7 -17
3 6 -5 0
>> A(3,:)=A(3,:)-3*A(1,:)
A=
1 1 2 9
0 2 -7 -17
0 3 -11 -27
>> A(2,:)=A(2,:)/2
A=
1 1 2 9
0 1 -3.5 -8.5
0 3 -11 -27
>> A(3,:)=A(3,:)-3*A(2,:)
A=
1 1 2 9
0 1 -3.5 -8.5
0 0 -0.5 -1.5
>> A(3,:)=A(3,:)/-0.5
A=
1 1 2 9
0 1 -3.5 -8.5
0 0 1 3
>> A(2,:)=A(2,:)+3.5*A(3,:)
A=
1 1 2 9
0 1 0 2
0 0 1 3
44
>> A(1,:)=A(1,:)-A(2,:)
A=
1 0 2 7
0 1 0 2
0 0 1 3
>> A(1,:)=A(1,:)-2*A(3,:)
A=
1 0 0 1
0 1 0 2
0 0 1 3
Jawab:
>> A=[3 1 -1 5;4 7 -3 20;2 -2 5 10]
A=
3 1 -1 5
4 7 -3 20
2 -2 5 10
>> A(1,:)=A(1,:)/3
A=
1.0000 0.3333 -0.3333 1.6667
4.0000 7.0000 -3.0000 20.0000
2.0000 -2.0000 5.0000 10.0000
45
>> A(2,:)=A(2,:)-4*A(1,:)
A=
1.0000 0.3333 -0.3333 1.6667
0.0000 5.6667 -1.6667 13.3333
2.0000 -2.0000 5.0000 10.0000
>> A(3,:)=A(3,:)-2*A(1,:)
A=
1.0000 0.3333 -0.3333 1.6667
0.0000 5.6667 -1.6667 13.3333
0.0000 -2.6667 5.6667 6.6667
>> A(2,:)=A(2,:)/5.68
A=
1.0000 0.3333 -0.3333 1.6667
0.0000 1.0000 -0.2941 2.3528
0.0000 -2.6667 5.6667 6.6667
>> A(3,:)=A(3,:)-(-2.6667)*A(2,:)
A=
1.0000 0.3333 -0.3333 1.6667
0.0000 1.0000 -0.2941 2.3528
0.0000 0.0000 4.8824 12.9412
>> A(3,:)=A(3,:)/4.8824
A=
1.0000 0.3333 -0.3333 1.6667
0.0000 1.0000 -0.2941 2.3528
0.0000 0.0000 1.0000 2.6506
>> A(2,:)=A(2,:)-(-0.2941)*A(3,:)
A=
1.0000 0.3333 -0.3333 1.6667
46
0.0000 1.0000 0.0000 3.1324
0.0000 0.0000 1.0000 2.6506
>> A(1,:)=A(1,:)-0.3333*A(2,:)
A=
1.0000 0.0000 -0.3333 0.6226
0.0000 1.0000 0.0000 3.1324
0.0000 0.0000 1.0000 2.6506
>> A(1,:)=A(1,:)+(0.3333)*A(3,:)
A=
1.0000 0.0000 0.0000 1.5061
0.0000 1.0000 0.0000 3.1324
0.0000 0.0000 1.0000 2.6506
b. 2y + 3z = 1
3x – 4y = 2
3x + y + 4z = 5
c. 2x1 + x2 = 7
x1 + x2 – 3x3 = -10
6x2 – 2x3 + x4 = 7
2x3 – 3x4 = 13
d. 3x + y + 4z = 0
x + 2y + z = 0
47
3x – 4y + 5z = 0
4. Berikut ini ada 4 vitamin yang masing-masing terbentuk dari substansi S1, S2, S3 dan
S4. Susunan komposisinya sebagai berikut:
Vitamin S1(%) S2(%) S3(%) S4(%)
A 25 19 20 3
B 2 14 2 14
C 8 4 1 0
D 25 31 25 16
Campuran S1, S2, S3 dan S4 sedemikian hingga didapatkan 3.85 gram vitamin A, 2.3
gram vitamin B, 0.8 gram vitamin C, 5.95 gram vitamin D. Dengan menggunakan
matlab, tentukan berapa gram tiap substansi harus dicampurkan untuk
mendapatkan campuran tersebut.
48
disp('--------------------------------------------------')
disp('solusi persamaan linear dengan metode Gauss-Jordan')
disp('--------------------------------------------------')
disp(' ')
disp('siapkan ruang untuk matriks A')
m=input('masukan jumlah baris = ');
n=input('masukan jumlah kolom = ');
A=zeros(m,n);
disp(' ')
disp('--------------------------')
disp('menginput elemen matriks A')
disp('--------------------------')
disp(' ')
for i=1:m
for j=1:n
disp(['A' num2str(i) ',' num2str(j)'])
A(i,j)=input(' = ');
end
end
disp('Matriks A')
disp(' ')
disp('A =')
disp(A)
B=zeros(m,1);
disp(' ')
disp('--------------------------')
disp('menginput elemen matriks B')
disp('--------------------------')
disp(' ')
for i=1:m
disp(['B' num2str(i) ',1'])
B(i,1)=input(' = ');
end
disp('Matriks B')
49
disp('B =')
disp(B)
disp('-----------------------------')
disp('faktor eliminasi Gauss-Jordan')
disp('-----------------------------')
pause
[L,U]=lu(A)%faktor eliminasi Gauss-Jordan
disp('-----------------------------')
disp('solusi akhir persamaan linear')
disp('-----------------------------')
pause
X=zeros(m,1);
%mengisi matriks X (solusi) dengan metode eliminasi Gauss-Jordan
y=L\B;
x=U\y;
X=x;
disp(' ')
disp('X =')
disp(X)
2. Simpan koding diatas dengan nama latihan06 dan ujilah dengan menginput data
dari persamaan linear pada soal-soal sebelumnya.
Penjelasan:
[L,U] = lu(A) memfaktorkan matriks A kedalam matriks segitiga atas U dan matriks
segitiga bawah L, dimana nilai matriks A adalah L*U.
Misal:
AX = B
Apabila menyelesaikan dengan metode invers matriks, maka penyelesaian X adalah
X = A-1.B atau dituliskan dalam koding matlab X = inv(A)*B atau X = A\B
50
X=U\Y
Tambahan Catatan.
Persamaan linear berikut, carilah nilai x, y dan z.
x + y + 2z = 9
2x + 4y – 3z = 1
3x + 6y – 5z = 0
>> rref(A)
ans =
1 0 0 1
0 1 0 2
0 0 1 3
Dari matriks diatas, didapatkan nilai x = 1, y = 2, dan z=3.
2. Dengan menggunakan perintah Koef\Konst.
>> Koef=[1 1 2;2 4 -3;3 6 -5];Konst=[9;1;0]
Konst =
9
1
0
51
y=
2.0000
z=
3.0000
Penggunaan Koef\Konst ini dapat diterapkan pada persamaan linear yang apabila
dibuat dalam bentuk matriks misal Matriks Aixj, nilai i=j atau i≠j.
3. Metode/Iterasi Jacobi
Metode ini merupakan suatu teknik penyelesaian SPL berukuran n x n, AX = b, secara
iteratif. Proses penyelesaian dimulai dengan suatu hampiran awal terhadap penyelesaian,
X0, kemudian membentuk suatu serangkaian vector X1, X2, … yang konvergen ke X.
Teknik iteratif jarang digunakan untuk menyelesaikan SPL berukuran kecil karena
metode-metode langsung seperti metode eliminasi Gauss lebih efisien dari pada metode
iteratif. Akan tetapi, untuk SPL berukuran besar dengan persentase elemen nol pada
matriks koefisien besar, teknik iteratif lebih efisien daripada metode langsung dalam hal
penggunaan memori komputer maupun waktu komputasi. Metode iterasi Jacobi,
prinsipnya: merupakan metode iteratif yang melakuakn perbaharuan nilai x yang
diperoleh tiap iterasi (mirip metode substitusi berurutan, successive substitution).
INPUT : n, A, b, dan Himpunan awal Y = (y1 y2 y3…yn)T, batas toleransi T, dan maksimum
iterasi N.
LANGKAH – LANGKAH :
1. set penghitung iterasi ke =1
2. WHILE k ≤ n DO
52
bi j i aij y j
(a) FOR i = 1, 2, 3, ..., n, hitung xi
aii
(b) Set X = (x1 x2 x3 ..xn)T
(c) IF X Y < T THEN STOP
(d) Tambahan penghitung iterasi, k = k + 1
(e) FOR i = 1, 2, 3, ..., n, Set yi = xi
(f) set Y = (y1 y2 y3 ..yn)T
3. STOP
START
AX = b
Input A, b, X0, T, N
[X, g, H]=
jacobi(A,b,X0,T,N)
xi = ( x1 x2 x3 …xn)
STOP
53
C. Iterasi Jacobi dengan Menggunaan Matlab 7
Mula – mula kita nyatakan setiap variabel dalam ketiga variabel yang lainnya
1. Nyatakan x1 dari persamaan (P1) dalam x2, x3, dan x4,
2. Nyatakan x2 dari persamaan (P2) dalam x1, x3, dan x4,
3. Nyatakan x3 dari persamaan (P3) dalam x1, x3, dan x4,
4. Nyatakan x4 dari persamaan (P4) dalam x1, x2, dan x3.
54
x 2 x3 3
x1
10 5 5
x x 3x 25
x2 1 3 4
11 11 11 11
x1 x2 x4 11
x3
5 10 10 10
3x2 x3 15
x4
8 8 8
Misalkan kita pilih hapiran penyelesaian awal (0 0 0 0)T, maka hampiran pertama
terhadap penyelesaian SPL tersebut adalah
3
x1 0 .6 = 1
5
25
x2 2.2727 = 2
11
11
x3 1.1 = -1
10
15
x4 1.8750 = 2
8
Sekarang dengan menggunakan nilai – nilai ini pada ruas kanan persamaan (P5) – (P8),
kita dapat menghitung hampiran kedua. Proses ini dapat diulang-ulang sampai
keakuratan hampiran yang diinginkan tercapai. Berikut adalah hasil proses iterasi dengan
menggunakan komputer.
No x1 x2 x3 x4
1 0.6 2.27273 -1.1 1.875
2 1.04727 1.71591 -0.805227 0.885227
3 0.932636 2.05331 -1.04934 1.13088
4 1.0152 1.9537 -0.968109 0.973843
5 0.988991 2.01141 -1.01029 1.02135
6 1.0032 1.99224 -0.994522 0.994434
7 0.998128 2.00231 -1.00197 1.00359
8 1.00063 1.99867 -0.999036 0.998888
55
2. Selesaikan contoh SPL berikut ini dengan menggunakan metode iterasi Jacobi.
2x1 – x2 + 10x3 = -11
3x2 – x3 + 8x4 = -11
10x1 – x2 + 2x3 =6
-x1 + 11x2 – x3+ 3x4 = 25
56
E. Hasil Output fungsi MATLAB 7
Berikut adalah contoh pemakaian fungsi MATLAB 7 jacobi dan hasil keluaran
dari yang diperoleh:
>> A=[2 -1 10 0;0 3 -1 8;10 -1 2 0;-1 11 -1 3]
A=
2 -1 10 0
0 3 -1 8
10 -1 2 0
-1 11 -1 3
>> b=[-11;-11;6;25]
b=
-11
-11
6
25
>> X0=[0;0;0;0]
X0 =
0
0
0
0
>> T=.00001
57
T=
1.0000e-005
>> N=25
N=
25
>> [X,g,H]=jacobi(A,b,X0,T,N)
X=
1.0e+017*
-4.1950
0.5698
2.1380
0.0451
g=
1.0e+017*
3.7699
0.5442
1.2965
0.1535
H=
1.0e+017*
0 . 0000 0 . 0000 0 . 0000 0 . 0000
0 . 0000 0 . 0000 0 . 0000 0 . 0000
0 . 0000 0 . 0000 0 . 0000 0 . 0000
0 . 0000 0 . 0000 0 . 0000 0 . 0000
0 . 0000 0 . 0000 0 . 0000 0 . 0000
0 . 0000 0 . 0000 0 . 0000 0 . 0000
0 . 0000 0 . 0000 0 . 0000 0 . 0000
0 . 0000 0 . 0000 0 . 0000 0 . 0000
0 . 0000 0 . 0000 0 . 0000 0 . 0000
0 . 0000 0 . 0000 0 . 0000 0 . 0000
0 . 0000 0 . 0000 0 . 0000 0 . 0000
0 . 0000 0 . 0000 0 . 0000 0 . 0000
0 . 0000 0 . 0000 0 . 0000 0 . 0000
0 . 0000 0 . 0000 0 . 0000 0 . 0000
58
0 . 0000 0 . 0000 0 . 0000 0 . 0000
0 . 0000 0 . 0000 0 . 0000 0 . 0000
0 . 0000 0 . 0000 0 . 0000 0 . 0000
0 . 0000 0 . 0000 0 . 0000 0 . 0000
0 . 0000 0 . 0000 0 . 0000 0 . 0000
-0 . 0007 0 . 0000 0 . 0013 -0 . 0002
-0 . 0066 0 . 0009 0 . 0036 0 . 0000
-0 . 0173 0 . 0011 0 . 0333 -0 . 0042
-0 . 1661 0 . 0224 0 . 0873 0 . 0013
-0 . 4251 0 . 0256 0 . 8415 -0 . 1085
-4 . 0000 0 . 5698 2 . 1380 0 . 0451
Dari hasil diatas, metode Jacobi belum konvergen setelah melakukan iterasi.
Untuk mengetahui penyelesaian SPL kita, selanjutnya gunakan metode langsung
dengan menggunakan invers matriks A. MATLAB memberikan penyelesaian
sebagai berikut.
>> X=inv(A)*b
X=
1.1039
2.9965
-1.0211
-2.6263
59
0 3 -1 8
>> b=[6;25;-11;-11]
b=
6
25
-11
-11
>> X0=[-2;1;3;-1]
X0 =
-2
1
3
-1
>> [X,g,H]=jacobi(A,b,X0,T,N)
X=
1.1039
2.9965
-1.0211
-2.6263
g=
0.0795
0.2004
0.0797
0.1511
H=
-2 . 0000 1 . 0000 3 . 0000 -1 . 0000
1 . 1000 2 . 6364 -1 . 6000 -2 . 3750
1 . 9836 2 . 6023 -1 . 8564 -2 . 4386
1 . 0315 2 . 9494 -1 . 0365 -2 . 4579
1 . 1022 2 . 9426 -1 . 0114 -2 . 6106
1 . 1065 2 . 9930 -1 . 0262 -2 . 6049
1 . 1045 2 . 9895 -1 . 0200 -2 . 6256
1 . 1030 2 . 9965 -1 . 0220 -2 . 6236
1 . 1040 2 . 9856 -1 . 0209 -2 . 6264
60
1 . 1037 2 . 9966 -1 . 0212 -2 . 6260
1 . 1039 2 . 9964 -1 . 0211 -2 . 6264
1 . 1039 2 . 9965 -1 . 0211 -2 . 6263
1 . 1039 2 . 9965 -1 . 0211 -2 . 6263
1 . 1039 2 . 9965 -1 . 0211 -2 . 6263
Dari contoh di atas bahwa urutan persamaan di dalam suatu SPL sangat
berpengaruh terhadap penampilan metode iterasi Jacobi. Kalau kita amati lebih
lanjut contoh di atas, kekonvergenan iterasi Jacobi pada strategi kedua
dikarenakan kita telah mengubah susunan SPL sedemikian hingga elemen-
elemen aiimerupakan elemen-elemen terbesar pada setiap baris. Dengan kata
lain, apabila matriks koefisien A merupakan matriks dominan secara diagonal,
61
maka metode iterasi Jacobi akan konvergen. Suatu matrik A berukuran n x n
dikatakan dominansecaradiagonal apabila
| aii || ai ,1 | ... | ai ,i 1 | | ai ,i 1 | ... | ai ,n | untuk i = 1, 2, 3, ..., n.
62