BAB I
PENDAHULUAN
1.1 latar belakang
Matlab
adalah singkatan dari Matrix Laboratory, software yang dibuat dengan
menggunakan bahasa ini dibuat oleh The Mathworks.inc dan telah memilki berbagai
versi, kekuatan matlab terletak pada :
1. Kemudahan manipulasi struktur matriks.
2. Jumlah routine-routine powerful yang
berlimpah yang terus berkembang.
3. Kekuatan fasilitas grafik tiga dimensi yang
sangat memadai.
4. Sistem scripting yang memberikan keleluasaan
bagi pengguna mengembangkan dan memodifikasi software untuk kebutuhan sendiri.
5.
Kemampuan interface( misal dengan bahasa
C, word dan mathematica).
6. Dilengkapi dengan toolbox, simulink,
stateflow dan sebagainya,
serta
mulai melimpahnya source code di internet yang dibuat dalam matlab( contoh toolbox misalnya : signal processing, control
system, neural networks dan sebagainya). Semua itu merupakan perangkat yang
powerful untuk menyelesaikan permasalahan sains dan teknik terutama untuk wilayah dimana komputasi
numerik harus dibuat.
Salah satu yang cukup
menarik dari matlab ini adalah kemudahan dan kejelasannya dalam memahami contoh
dan demo serta help yang ada pada matlab. Kita akan berkenalan lebih dekat
dengan yang satu ini. Kita bisa lihat dari demo ini ternyata begitu banyak
persoalan yang dapat dibangun dengan matlab dengan cara lebih mudah dan lebih
singkat, tanpa mengurangi kepahaman kita pada suatu persoalan(bisa dibandingkan
dengan bahasa C, pascal, delphi atau visual lainnya). Dengan dilengkapinya
matlab dengan toolbox, simulink dan
sebagainya maka semakin menambah kekuatan matlab untuk menyelesaikan
permasalahan yang rumit menjadi lebih mudah.
I. 2 TUJUAN PRATIKUM
a. . Mahasiswa
mampu mengoperasikan MATLAB dan memanfaatkannya sebagai perangkat Simulasi
untuk praktikum Sinyal dan Sistem
b . Mahasiswa
dapat menyelesaikan pemasalahan dalam metode numerit dengan mengunakan sistem
MATLAB.
c. Mempelajari
penggunaan sistem help untuk
mengetahui commands dan syntax dasar MATLAB
d. Dapat menggunakan MATLAB untuk desain filter
1.3 MANFAAT PRAKTIKUM
Adapun maksud dan tujuan dari pembuatan laporan ini adalah :
a. Mampu melakukan perhitungan matematis dengan
menggunakan matlab
b. Mampu membuat program dengan kondisi
IF…END, FOR …END, WHILE…END dan SWITCH CASE
c. Mampu menggambarkan plot/grafik dari suatu
fungsi atau persamaan menggunakan matlab
d. Mampu menyelesaikan persamaan non linear seperti
metode bisection, newton raphson dan
secant dengan matlab.
BAB
II
LANDASAN
TEORI II. DASAR TEORI
2.1 Metode Numerik
Persoalan yang melibatkan model matematika
banyak muncul dalam berbagai disiplin ilmu pengetahuan, seperti dalam bidang
fisika, kimia, ekonomi, atau pada persoalan rekayasa (engineering), seperti
Teknik Sipil, Teknik Mesin, Elektro, Teknik Informatika dan sebagainya. Seringkali model matematika tersebut muncul
dalam bentuk yang tidak ideal alias rumit. Model matematika yang rumit ini
adakalanya tidak dapat diselesaikan dengan metode analitik yang sudah umum untuk
mendapatkan solusi sejatinya (exact solution). Yang dimaksud dengan metode
analitik adalah metode penyelesaian model matematika dengan rumus-rumus aljabar
yang sudah baku (lazim).
Bila metode analitik tidak dapat lagi
diterapkan, maka solusi persoalan sebenarnya masih dapat dicari dengan menggunakan metode numerik. Metode
numerik adalah teknik yang digunakan untuk memformulasikan persoalan matematik
sehingga dapat dipecahkan dengan operasi perhitungan/aritmetika biasa (tambah,
kurang, kali, dan bagi). Metode artinya cara, sedangkan numerik artinya angka.
Jadi metode numerik secara harafiah berarti cara berhitung dengan menggunakan
angka-angka.
Perbedaan utama antara metode numerik
dengan metode analitik terletak pada dua hal.
Pertama, solusi dengan menggunakan metode numerik selalu berbentuk angka.
Bandingkan dengan metode analitik yang
biasanya menghasilkan solusi dalam bentuk fungsi matematik yang selanjutnya fungsi mateamtik
tersebut dapat dievaluasi untuk menghasilkan nilai dalam bentuk angka.
Kedua, dengan metode numerik, kita hanya memperoleh
solusi yang menghampiri atau mendekati solusi sejati sehingga solusi numerik
dinamakan juga solusi hampiran (approxomation)
atau solusi pendekatan, namun
solusi hampiran dapat dibuat seteliti yang kita inginkan. Solusi hampiran jelas tidak tepat sama dengan
solusi sejati, sehingga ada selisih antara keduanya. Selisih inilah yang
disebut dengan galat (error).
2.2 Pengenalan Matlab
MATLAB
adalah sebuah bahasa dengan (high-performance) kinerja tinggi untuk komputasi
masalah teknik. Matlab mengintegrasikan
komputasi, visualisasi, dan pemrograman dalam suatu model yang sangat mudah
untuk pakai dimana masalah-masalah dan penyelesaiannya diekspresikan dalam
notasi matematika yang familiar. Penggunaan Matlab meliputi bidang-bidang:
• Matematika dan Komputasi
• Pembentukan Algorithm
• Akusisi Data
• Pemodelan, simulasi, dan pembuatan prototipe
• Analisa data, explorasi, dan visualisasi
• Grafik Keilmuan dan bidang Rekayasa
MATLAB
merupakan suatu sistem interaktif yang memiliki elemen data dalam suatu array
sehingga tidak lagi kita dipusingkan dengan masalah dimensi. Hal ini
memungkinkan kita untuk memecahkan banyak masalah teknis yang terkait dengan
komputasi, kususnya yang berhubungan dengan matrix dan formulasi vektor, yang
mana masalah tersebut merupakan momok apabila kita harus menyelesaikannya
dengan menggunakan bahasa level rendah seperti Pascall, C dan Basic. Nama MATLAB
merupakan singkatan dari matrix laboratory. MATLAB pada awalnya ditulis untuk
memudahkan akses perangkat lunak matrik yang telah dibentuk oleh LINPACK dan
EISPACK. Saat ini perangkat MATLAB telah menggabung dengan LAPACK dan BLAS
library, yang merupakan satu kesatuan dari
sebuah seni tersendiri dalam perangkat lunak untuk komputasi
matrix. Dalam lingkungan perguruan
tinggi teknik, Matlab merupakan perangkat standar untuk memperkenalkan dan
mengembangkan penyajian materi matematika, rekayasa dan kelimuan. Di industri,
MATLAB merupakan perangkat pilihan untuk penelitian dengan produktifitas yang
tingi, pengembangan dan analisanya.
Fitur-fitur MATLAB sudah banyak dikembangkan, dan lebih kita kenal dengan nama
toolbox. Sangat penting bagi seorang pengguna Matlab, toolbox mana yang
mandukung untuk learn dan apply
technologi yang sedang dipelajarinya. Toolbox toolbox ini merupakan kumpulan
dari fungsi-fungsi MATLAB (M-files) yang telah dikembangkan ke suatu lingkungan
kerja MATLAB untuk memecahkan masalah dalam kelas particular. Area-area yang sudah bisa dipecahkan dengan toolbox
saat ini meliputi pengolahan sinyal, system
kontrol, neural networks, fuzzy logic, wavelets, dan lain-lain.
2.3 bagian dari Sistem MATLAB
Sebagai
sebuah system, MATLAB tersusun dari 5 bagian utama:
1.
Development Environment. Merupakan
sekumpulan perangkat dan fasilitas yang
membantuanda untuk menggunakan fungsi-fungsi dan file-file MATLAB.
Beberapa perangkat ini merupakan sebuah
graphical user interfaces (GUI). Termasuk didalamnya adalah MATLAB desktop dan
Command Window, command history, sebuah editor dan debugger, dan browsers untuk
melihat help, workspace, files, dan search path.
2.
MATLAB Mathematical Function Library. Merupakan sekumpulan algoritma komputasi mulai dari fungsi-fungsi dasar sepertri: sum, sin, cos, dan complex
arithmetic, sampai dengan fungsi-fungsi yang lebih kompek seperti matrix inverse, matrix eigenvalues, Bessel
functions, dan fast Fourier transforms.
3.
MATLAB Language. Merupakan suatu high-level
matrix/array language dengan control flow statements, functions, data
structures, input/output, dan fitur-fitur object-oriented programming. Ini
memungkinkan bagi kita untuk melakukan kedua hal baik "pemrograman dalam lingkup sederhana
" untuk mendapatkan hasil yang cepat, dan "pemrograman dalam lingkup
yang lebih besar" untuk memperoleh hasil-hasil dan aplikasi yang
komplek.
4.
Graphics. MATLAB memiliki fasilitas
untuk menampilkan vector dan matrices sebagai
suatu grafik. Didalamnya melibatkan high-level functions (fungsi-fungsi
level tinggi) untuk visualisasi data dua
dikensi dan data tiga dimensi, image
processing, animation, dan presentation graphics. Ini juga melibatkan fungsi
level rendah yang memungkinkan bagi anda untuk membiasakan diri untuk
memunculkan grafik mulai dari benutk yang sederhana sampai dengan tingkatan
graphical user interfaces pada aplikasi MATLAB anda.
5.
MATLAB Application Program Interface (API).
Merupakan suatu library yang
memungkinkan program yang telah anda tulis dalam bahasa C dan Fortran
mampu berinterakasi dengan MATLAB. Ini melibatkan fasilitas untuk pemanggilan
routines dari MATLAB (dynamic linking), pemanggilan MATLAB sebagai sebuah
computational engine, dan untuk membaca dan menuliskan MAT-files.
2. 5 VARIABEL DAN OPERTOR
2.4.1 Variabel
Seperti
bahasa pemrograman lainnya, matlab pun memiliki variabel, tetapi dalam
penulisannya, variabel di dalam matlab tidak perlu dideklarasikan, karena
matlab mampu mengenali tipe data dari variable dari isi variabel tersebut. Aturan penulisan variabel pada matlab
sama dengan aturan pada bahasa
pemrograman lainnya, yaitu bersifa case sensitive, diawali dengan huruf dan
selanjutanya boleh menggunakan gabungan huruf-angka atau tanda garis bawah.
Matlab mampu mengenali sampai 31 karakter pertama, selanjutnya diabaikan.
Contoh:
>>
var1=7.1
var1
=
7.1
>>
var_2=[4 6 7]
Var_2
=
4
6 7
Semua
tipe data di matlab memiliki bentuk yang sama, yaitu array. Array minimal
berukuran 0x0 dan dapat bertambah menjadi array n x m dimensi dengan sebarang
ukuran. Matlab mempunyai beberapa tipe data dasar (atau class), yaitu: logical,
char, numeric, cell, structure, java classes, function handles.
2.5.2 Operator
Di
dalam matlab, operator diklasifikasikan menjadi tiga bagian, yaitu:
a)
Operator
Arimatika
Operator
aritmatika digunakan untuk mengerjakan komputasi numeric.
opertor
|
Arti
|
+
|
Penjumlaha
|
-
|
Pengurangan
|
*
|
Perkalian
(aturan matrik)
|
.*
|
Perkalian
masing-masing ellemen yang bersesauian (aturan array)
|
/
|
Pembagian
kanan (matrik)
|
./
|
Pembagian
kana (array)
|
\
|
Pembagian
kiri (matrik)
|
.\
|
Pembagian kiri (array)
|
^
|
Perpangkatan (matrik)
|
.^
|
Perpangkatan (array)
|
:
|
Langkah
|
b).
Operator Relasional
Operator
relasional digunakan untuk membandingkan operand-operand secara kuantitatif .
Operator
|
Arti
|
==
|
Sama
dengan
|
~=
|
Tidak
sama dengan
|
<
|
Kurang
dari
|
>
|
Lebih
dari
|
<=
|
Kurang
dari sama dengan
|
>=
|
Lebih
dari sama dengan
|
c)
Operator Logika
Operator
|
arti
|
%
|
Akan
menghasilkan nilai 1 jika kedua elemen yang bersesuaian memilki nilai true
dan 0 untuk lain nya
|
|
|
Akan
bernilai 1 jika salh satu elemen nya true
|
~
|
Komplen
dari elemen yang di inputkan
|
xor
|
Akan
bernilai 1 jika salah satu dari kedua elemen memilki nilai berbeda dan
bernilai nol jika sama
|
Input
Data
Terdapat
dua cara untuk memasukkan data yaitu:
a. inisialisasi
data, dimana data diberikan secara langsung pada saat pembuatan program
Bentuk
umum:
variabel
= ekspresi
b. menggunakan
perintah input, dimana data diberikan pada saat program di-running.
Bentuk
umum:
variabel
= input(‘text’) numerik dan string
atau
variabel = input(‘text’, ‘s’) string
pada layar akan
tampil apa yang tertulis di antara tanda petik (text), menanti masukan data
yang diikuti dengan menekan enter melalui keyboard
BAB III
ANALISA DAN HASIL
PERCOBAAN
3.1 Operasi-operasi Dasar Pada MATLAB
MATLAB dapat
melakukan operasi-operasi aritmatika dasar sebagai berikut :
Operasi
|
Simbol
|
Penambahan, a + b
|
+
|
Pengurangan a-b
|
-
|
Perkalian a x b
|
*
|
Pembagian a : b
|
/ atau \
|
Pemangkatan ab
|
^
|
Urutan operasi
tersebut yang dikerjakan dalam suatu ekspresi yang mengikuti aturan prioritas
yang biasa (hirarki). Aturan tersebut dapat diringkas sebagai berikut :
Ekspresi dikejakan dari kiri ke kanan
dengan pemangkatan mempunyai prioritas tertinggi, diikuti dengan perkalian atau
pembagian yang mempunyai prioritas yang sama, diikuti dengan penambahan dan
pengurangan yang juga memiliki prioritas yang sama. Tanda kurung dapat
digunakan untuk merubah urutan pengerjaan yang biasa dimana bagian yang
dikerjakan terlebih dahulu adalah bagian yang yang ada di bagian kurung paling
dalam kemudian keluar.Seperti contoh berikut :
>> x = (5*5+7*7+2*2+5*4)/(5+7+2+5)
ans =5.1579
3.2 Tipe Data
Software MATLAB
mengenal 3 tipe data yaitu : string, scalar, dan matriks. Array merupakan
matriks yang hanya memiliki satu baris. MATLAB juga memiliki banyak fungsi
built-in untuk bejkerja memanipulasi tipe data tersebut. Berikut ini beberapa
contoh yang menjelaskan ketiga tipe data tersebut di atas.
3.2.1
String
String dalam MATLAB adalah type data
yang terdiri atas huruf-huruf dan atau nilai-nilai ASCII yang ditampilkan
representasinya. String adalah teks yang diawali dan diakhiri dengan apostrof
‘ ‘.
Contoh :
>>
p='haii how are you??'
p
=
haii
how are you??
>>
size (p)
ans
=
1
18
>>
whos
Name
Size Bytes Class
ans 1x2 16 double array
p
1x18 36 char array
Grand
total is 20 elements using 52 bytes
Setiap karakter dalam suatu string adalah satu elemen dalam array, dengan
setiap elemennya sebesar 2 byte.
Untuk
melihat representasi ASCII karakter string dapat dilakukan dengan melakukan
operasi aritmetik terhadap string atau mengkonversikannya menggunakan fungsi
double.
Contoh :
double(p)
ans =
Columns 1 through 16
104 97
105 105 32
104 111 119
32 97 114
101 32 121
111 117
Columns 17 through 18
63 63
>> abs(p)
ans =
Columns 1 through 16
104 97 105
105 32 104 111
119 32 97
114 101 32
121 111 117
Columns 17 through 18
63 63
selain fungsi-fungsi di atas fungsi-fungsi string lainnya
adalah :
1.
Fungsi disp
Fungsi disp memungkinkan
untuk menampilkan string tanpa menampilkan nama variabelnya.
Contoh :
teks bantuan dalam suatu file script
>>disp('Ini
contoh tampilan dari text')
Ini contoh tampilan dari text
Syarat
digunakannya disp , isi didalamnya harus merupakan strings, jadi jika
ingin menampilkan sebuah angka terlebih dahulu dirubah kedalam bentuk strings
dengan menggunakan function num2str( ).
Sebagai contoh :
>> nim=090170021;
>> disp(['Nim saya adalah ',num2str(nim)])
Nim saya adalah 90170021
2.
Fungsi input
Contoh:
» nama=input('Masukkan nama anda !','s')
Masukkan nama anda !
» disp('Nama yang anda masukkan=');
Nama yang anda masukkan=
» disp(nama);
3. fungsi
fprintf
Command ini berfungsi untuk
menampilkan output di layar atau menyimpan output di suatu external file ( sama
halnya dengan command fprint di C/C++). Fungsi ini mempunyai argumen sbb:
fprintf( ' nama file ' ,' format string ' ,
list)
dimana list adalah nama variabel
yang dipisahkan dengan koma. Untuk
format string :
%P.Qe
untuk eksponensial
%P.Qf
untuk fixed point
/n
untuk membuat baris baru
dan lebih detailnya dapat dilihat di help untuk fprintf. Dibawah
ini diberikan contoh penggunaannya.
Contoh 1.
>> z='cuma mencoba..';
>> y='semoga sukses';
>> fprintf('%s\n',z,y);
cuma mencoba..
semoga sukses
Contoh 2.
x=1007.46 ; y=2.1278;k=17;
fprintf('x= %8.2f y=%8.2f k=%2.0f',x,y,k)
x= 1007.46 y= 2.13 k=17
Catatan
: Teks atau string di Matlab dapat di tampilkan dengan cara
menggunakan ( ') di awal dan( ')
diakhir contoh: ' ini cara menulis string '.
perintah ini mirip dengan disp, namun lebih memiliki
fleksibilitas dalam format output yang diinginkan.
3.2.1
Scalar
Scalar adalah nama lain
dari data numeric, Dalam MATLAB data scalar dapat dimanipulasikan dengan
menggunakan beberapa fungsi, seperti type string sebelumnya. Berikut ini
beberapa contohnya:
» x=0:0.1:1;
» y=[x;tan(x)];
» fid=fopen('c:\backup\tan.txt','w');
» fprintf(fid,'&6.2f %12.8f\n',y);
» fclose(fid);
akan menyimpan tabel berisikan x dan
tan(x) di file tan.txt (nama ini sebarang, sesuai dengan keinginan anda) yang
disimpan di direktori c:\backup berisikan data berikut :
0.00 0.00000000
0.10 0.10033467
0.20 0.20271004
0.30 0.30933625
0.40 0.42279322
0.50 0.54630249
0.60 0.68413681
0.70 0.84228838
0.80 1.02963856
0.90 1.26015822
1.00 1.55740772
3.2.2
Array
MATLAB menangani array secara
intuitif. Untuk membuat array dalam MATLAB, yang perlu dilakukan hanyalah
mengetikkan kurung kotak kiri, memasukkan elemen-elemen denagn dipisahkan oleh
spasi atau koma, kemudian menutup array dengan kurung kotak kanan.
Berikut ini akan diberikan
beberapa contoh assignment untuk array :
a. Pengalamatan array
Dalam MATLAB elemen-elemen array
diakses menggunkan subcript; misalnya x(1) adalah elemen pertama x, x(2) adalah
elemen kedua x, dan seterusnya.
Contoh :
» >>
x=[3 4 1 6 4 8 10 4]
x = 3
4 1 6
4 8 10
4
>>
x(5) %elemen
keempat x
ans =
4
>>
x([1 3 5])=[0.2 0.5 0.7]
x =
0.2000 4.0000
0.5000 6.0000 0.7000
8.0000 10.0000 4.0000
maka x(1)=0.1, x(3)=0.5, x(5)=0.7
dan x(i) untuk i=2,3,4 bernilai 0.
nilai array dapat juga diisikan sebagai berikut :
x= 3:1:4
x =
3 4
artinya bahwa nilai array yang
diisikan dengan angka dari 4 sampai 9 dengan penambahan 1 (default). Penambahan
dapat bernilai sebarang, bahkan dapat juga negatif, seperti contoh berikut :
>> z=9:-3:1
z = 9 6 3
Memisahkan elemen dengan titik koma membuat elemen berada dalam
baris yang berbeda, seperti contoh berikut :
>> y=[3,6,7,8,4,3]
y =
3 6
7 8 4
3
b.
Menambahkan
elemen array
>>
x=[x 2 4] % array sebelumnya
x =
3
4 2 4
>>
x=[x 2 4] %menambahkan 2 elemen dibelakang
x =
3 4
2 4 2
4
c. Mengakses sebagian elemen array
Dari contoh sebelumnya misalkan
hanya diakses elemen ke 2 sampai ke empat
>> y=x(2:4)
y =
4 2
4
d. Menghapus elemen array
Dapat dilihat contoh berikut :
Menghapus elemen terakhir dari
array
» n=[1 3 5 7 9]
n =
1
3 5 7
9
» n=n(1:length(n)-1)
n =
1
3 5 7
Menghapus
elemen pada index tertentu
Misalkan
z =[1 2 3 4 5 ] dan ingin dihapus z pada index ke 2 dan 4 maka:
» z=[1 2 3 4 5]
z =
1
2 3 4
5
» z([2 4])=[]
z =
1
3 5
3.2.3
Matrik
Matriks
merupakan bentuk utama dari MATLAB, seperti halnya array matriks juga
didefenisikan elemen demi elemen. Sebagai contoh jika diketahui matriks berikut
ini :
A=
Maka
matriks di atas dapat diinputkan ke MATLAB dengan beberapa cara yaitu:
a.
Mengentri satu persatu data matriks A
»
A(1,1)=3;A(1,2)=5;A(2,1)=4;A(2,2)=1
A =
3
5
4 1
b.
Menggunakan operator titik koma
» A=[3 5;4 1]
A =
3
5
4 1
untuk
mengetahui ukuran matriks di atas dapat dilakukan dengan menggunakan command
size berikut :
» [baris kolom]=size(A)
baris =
2
kolom =
2
atau
jika hanya ingin mengetahui jumlah baris atau kolom saja maka digunakan perintah berikut :
» baris=size(A,1)
» kolom=size(A,2)
Sebagai
latihan dapat dicoba contoh berikut ini:
>> A = [1 2 3;4 5 6;7 8 9];
>> B = [1 1 1;2 2 2;3 3 3];
>> C = [1 2;3 4;5 6];
>> whos
Name Size Bytes Class
A 3x3 72 double array
B 3x3 72 double array
C 3x2 48 double array
Grand total is 24 elements using 192 bytes
>> A+B
ans =
2 3 4
6 7 8
10 11 12
>> A+C
??? Error using ==> +
Matrix dimensions must agree.
Matrix multiplication is also defined:
>> A*C
ans =
22 28
49 64
76 100
>> C*A
??? Error using ==> *
Inner matrix dimensions must agree.
If A
is a square matrix and m is a positive integer, then
A^m
is the product of m factors of A.
However, no notion of multiplication is defined for
multi-dimensional arrays with more than 2 dimensions:
>> C = cat(3,[1 2;3 4],[5 6;7 8])
C(:,:,1) =
1 2
3 4
C(:,:,2) =
5 6
7 8
>> D = [1;2]
D =
1
2
>> whos
Name Size Bytes Class
C 2x2x2 64 double array
D 2x1 16 double array
Grand total is 10 elements using 80 bytes
>> C*D
??? Error using ==> *
No functional support for matrix inputs.
By the
same token, the exponentiation operator
^
is only
defined for square 2-dimensional arrays (matrices).
Dan
operasi-operasi lainnya seperti :
1. >>x=A/f
2. >>A=A’
3.
>>2*A
4.
>>inv(B)
3.1 Membuat file matlab (M-FILE)
M-file merupakan
sederetan perintah matlab yang dituliskan secara berurutan sebagai sebuah file.
Nama file yang tersimpan akan memiliki ekstensi .m yang menandakan bahwa file
yang dibuat adalah file matlab. M-file dapat ditulis sebagai sebuah script atau
dapat pula ditulis sebagai sebuah fungsi yang menerima argument atau masukan
yang menghasilkan output.
Untuk
menuliskan skrip M-file, Anda bisa mulai dengan membuka file baru. Caranya ialah melalui menu di main window: File>Open atau
File>New>M-file; atau dengan mengklik ikon yang ada di jendela utama.
seperti
pada contoh di atas, file matlab (m-file) sudah berisi listing program
untuk menghitung rata-rata. Di dalam
M-file, setiap command diakhiri dengan
titik-koma supaya hasil perhitungan di tiap baris tidak ditampilkan di command
window. Kecuali pada hasil perhitungan
yang ingin
kita tampilkan, tidak diakhiri titik-koma.
Variabel yang didefinisikan di dalam M-file akan disimpan oleh MATLAB ketika
M-file telah dieksekusi.
Di dalam editor, skrip
yang kita tuliskan akan memiliki warna tertentu:
•
hijau untuk komentar
•
hitam untuk variabel dan command
•
biru untuk statement pemrograman.
3.1 Grafik
Salah satu keunggulan
MATLAB ialah kemampuannya dalam menampilkan/mengolah grafik dengan command yang sederhana dan fleksibel. Pada bagian ini saya akan mengulas sedikit mengenai
visualisasi data (plot grafik 2-dimensi dan 3-dimensi).
3.4.1
Plot
2-Dimensi
Contoh Fungsi plot digunakan untuk
menggambar grafik 2D dengan skala linear pada kedua sumbunya :
>> x=-10:15;
>> y=x*4;
>> plot(x,y)
3.4.1
Plot
3-Dimensi
Untuk menampilkan grafik 3 dimensi
digunakan fungsi plot3. Plot3 memerlukan 3 argumen dengan bentuk plot3(x,y,z),
dimana x, y, z merupakan 3 bagian vector yang sama panjang.
t=0:pi/125:12*pi;
plot3(sin(3*t),cos(3*t),t)
3.4.3
Bar
Fungsi bar digunakan
untuk menampilkan data yang berbentuk vector maupun matriks. grafIk bar digunakan untuk menampilkan sekumpulan
data selama kurun waktu terentu dan cocok untuk menampilkan data dalam bentuk
diskrit.
Contoh:
>> t=[20 10 17 50; 27 32 10 13; 80, 31, 34, 24; 50 87
35 52];
>> bar(t)
>> grid on
Matlab juga menyediakan dalam bentuk 3 dimensi, yaitu bar3.
Missal grafik diatas disajikan dalambar3, maka kita ketik perintah berikut:
>>bar3(t)
3.4.3
Pie
Fungsi pie digunakan untuk menampilkan
data secara prosentase, dimana setiap lemen data akan dibandingkan dengan
penjumlahan seluruh data yang ada. Grafik pie dapat disajikan dalam bentuk 2
dimensi maupun 3 dimensi.
Contoh:
>>
x=[10 30 21 52];
>> pie(x, {'A', 'B', 'C', 'D'}) %pie 2 dimensi
>> pie3(x,
{'A', 'B', 'C', 'D'}) %pie 3 dimensi
3.4.3
Stem
Fungsi stem cocok digunakan untuk menampilkan data dalam
bentuk diskrit.
Contoh:
>> x=1:10;
>> y=rand(1,10);
>> stem(x,y)
3.1 Persamaan Non Linear
Menyelesaikan persamaan atau mencari akar persamaan f(x)=0 berarti mencari nilai-nilai x
sehingga menyebabkan pernyataan f(x)=0 menjadi
benar. Dengan kata lain, akar persamaan f(x)=0
adalah absis perpotongan grafik fungsi f(x) dengan
sumbu x. Untuk menyelesaikan persamaan ini, ada dua metode, yaitu metode
tertutup dan metode terbuka. Dengan metode tertutup, kita memberikan dua nilai
misal a dan buntuk
inisialisasi proses. Dua nilai ini harus mengapit akar yang sebenarnya. Untuk
melihat apakah di antara range (a, b) ada akar
atau tidak, kita bisa memanfaatkan teorema berikut: Jika nilai fungsi di a dan b berlawanan,
maka ada akar di antara a dan b, namun hal ini tidak berlaku sebaliknya. Sedangkan
dengan metode terbuka, kita memberikan satu tebakan awal untuk inisialisasi
proses, tebakan awal ini diusahakan sedekat mungkin dengan akar sebenarnya.
Ada 2 kelompok metode dalam penyelesaian persamaan
metode numerik, yaitu :
1.
Metode
Tertutup
Ciri-ciri dalam metode tertutup :
§ Mencari akar pada range [a,b] tertentu
§ Dalam range [a,b] dipastikan terdapat satu akar
§
Hasil selalu
konvergen maka sering disebut juga metode konvergen
Yang termasuk dalam metode tertutup, yaitu :
· Metode Tabel
· Metode Biseksi
· Metode Regulasi Falsi
2.
Metode
Terbuka
Ciri-ciri dalam metode terbuka :
§ Diperlukan tebakan awal
§ xn dipakai untuk menghitung xn+1
§
Hasil dapat
konvergen atau divergen
Yang termasuk dalam metode terbuka, yaitu :
· Metode Iterasi Sederhana
· Metode Newton-Raphson
· Metode Secant
3.6.1
Metode
Bisection
Ide awal metode ini adalah metode table, dimana area
dibagi menjadi N bagian. Hanya saja metode biseksi ini membagi range menjadi 2
bagian, dari dua bagian ini dipilih bagian mana yang mengandung akar dan bagian
yang tidak mengandung akar dibuang.
Algoritma
Metode Biseksi
1.
Definisikan
fungsi f(x) yang akan dicari akarnya
2.
Tentukan
nilai a dan b
3.
Tentukan
toleransi e (error) dan iterasi
maksimum N
4.
Hitung f(a) dan f(b)
5.
Jika f(a).f(b)>0 maka proses dihentikan karna
tidak ada akar, bila tidak
dilajutkan
6.
Hitung x=a+b/2
7.
Hitung f(x)
8.
Jika f(x).f(a)<0 maka b=x dan f(b)=f(x)
Jika tidak a=x
dan f(a)=f(x)
9.
Jika
|b-a|<e atau iterasi > iterasi maksimum maka proses dihentikan dan
didapatkan akar = x, dan bila tidak ulangi langkah 6.
Implementasi metode Bisection dengan matlab adalah sebagai berikut :
%contoh program mencari akar persamaan dengan metode
bisection
%dari fungsi f = log (2-exp(x)-x+alpa
function bisection;
disp('METODE BISECTION')
disp('================')
a = input ('masukkan batas kiri interval :');
b = input ('masukkan batas kanan interval :');
esp = input ('masukkan epsilon / batas ketelitian : ');
itemax = input (' masukkan jumlah iterasi maksimum : ');
alfa = a;
disp(' ');
disp('memulai proses interasi');
disp('=======================');
tic
for i = 1:1:itemax
t =(a+b)/2;
if
(fn(a,alfa)*fn(t,alfa)<=0)
b = t;
else
a = t;
end
disp (['interasi ke',num2str(i),',',' akarnya :',num2str(t)])
if
(abs(a-b))<=eps;
break
end
end
waktu =toc;
disp(' ');
disp(['akarnya adalah
:',num2str(t)]);
disp(['jumlah interasi
:',num2str(i)]);
disp(['selang waktu konvergensi
:',num2str(waktu)]);
function f = fn(x,alfa)
f = log (2-exp(-x))-x +alfa;
maka setelah di running dan kita
masukkan nilainya maka akan nampak seperti dibawah ini
>> bisection
METODE BISECTION
================
masukkan batas kiri interval :4
masukkan batas kanan interval :5
masukkan epsilon / batas ketelitian
: 4
masukkan jumlah iterasi maksimum : 5
memulai proses interasi
=======================
interasi ke1, akarnya :4.5
interasi ke2, akarnya :4.75
interasi ke3, akarnya :4.625
interasi ke4, akarnya :4.6875
interasi ke5, akarnya :4.7188
akarnya adalah :4.7188
jumlah interasi :5
selang waktu konvergensi :0.76786
3.6.2
Metode
Newton Rapshon
Metode pendekatan yang menggunakan satu titik awal dan
mendekatinya dengan memperhatikan slope atau gradien pada titik tersebut.Titik
pendekatan ke n+1 dituliskan dengan : Xn+1=xn-F(Xn)/F1(Xn)
Algoritma
Metode Newton-Rapshon
1.
Definisikan
fungsi f(x) dan f 1(x)
2.
Tentukan
toleransi error (e) dan iterasi maksimum (n)
3.
Tentukan
nilai pendekatan awal x0
4.
Hitung f(x0) dan f ’(x0)
5.
Untuk
iterasi I = 1 s/d n atau |f(xi)|> e
Hitung f(xi) dan f 1(xi)
Hitung n+1=xn-F(Xn)/F1(Xn)
6.
Akar persamaan adalah nilai xi
yang terakhir diperoleh.
Implementasi
metode Bisection dengan matlab adalah sebagai berikut :
function newtonrapson;
clc
clear;
disp('programm metode newton rapson');
disp('=============================');
E= 0.0001;
x0 = input ('masukkan x awal :');
i = 0;
m = 9;
xb = 0;
disp('__________________________________________');
disp(' i xi f(xi) epsilon ') ;
disp('__________________________________________');
while(E<m);
fx = exp(x0)-4*x0;
gx=exp(x0)- 4;
xb=x0-(fx/gx);
m=abs(x0-xb);
x0=xb;
i=i+1;
fprintf('%3.0f %12.6f
%12.6f %12.6f\n', 1, xb, fx, m);
end
disp('-------------------------------------------');
fprintf('Akarnya adalah
= %10.8f\n, xb');
end
maka setelah di running akan nampak
seperti dibawah ini
programm metode newton rapson
=============================
masukkan x awal :4
__________________________________________
i
xi f(xi) epsilon
__________________________________________
1 3.237163 38.598150 0.762837
1 2.654128 12.512729 0.583035
1 2.302006 3.596077 0.352122
1 2.170848 0.786188 0.131158
1 2.153574 0.082324 0.017274
1 2.153292
0.001300 0.000282
1 2.153292 0.000000 0.000000
-------------------------------------------
Akarnya adalah = >> 3
ans =
3
3.6.3
Metode
Secant
Tidak semua fungsi mudah dicari turunannya
terutama fungsi yang bentuknya rumit.
Apalagi masalah yang di dapat dalam metode Newton Raphson
adalah terkadang sulit mendapatkan turunan pertama, yakni f ’(x). Turunan
fungsi dapat dihilangkan dengan cara menggantinya dengan bentuk lain yang
equivalen dengan cara memodifikasi metode Newton Raphson yang dinamakan metode
Secant dengan jalan pendekatan :
Algoritma
Metode Secant
1.
Definisikan
fungsi F(x)
2.
Definisikan torelansi error (e) dan iterasi maksimum (n)
3.
Masukkan dua nilai pendekatan awal yang di antaranya terdapat akar yaitu x0 dan x1, sebaiknya gunakan metode tabel atau grafis untuk menjamin
titik pendakatannya adalah titik pendekatan yang konvergensinya pada akar
persamaan yang diharapkan.
4.
Hitung F(x0) dan F(x1) sebagai y0 dan y1
5. Untuk
iterasi I = 1 s/d n atau |F(xi)|
hitung yi+1 = F(xi+1)
6.
Akar persamaan adalah nilai x yang terakhir.
Implementasi metode Bisection dengan
matlab adalah sebagai berikut :
Metode second
function secant;
clc;
clear;
disp('Program Metode Secant');
disp('=============================');
E=0.0001;
x0=input('Masukkan X0 :');
xb=input('Masukkan X1 :');
i=0;
M=9;
disp('_______________________________________________');
disp(' i xi f(xi) epsilon');
disp('_________________________________________________');
while (E<M)
fx=exp(x0)-5*x0^2;
fxb=exp(xb)-5*xb^2;
d = xb -
(fxb*(xb-x0)/(fxb-fx));
M=abs(x0-xb);
x0 = xb;
xb = d;
i=i+1;
fprintf('%3.0f %12.6f
%12.6f %12.6f\n',i,xb,fx,M);
end;
disp('_______________________________________________');
fprintf('Akarnya Adalah = %10.8f\n',xb);
end
tampilan hasil running dan stelah
di masukkan nilai.
Program Metode Secant
=============================
Masukkan X0 :3
Masukkan X1 :2
_______________________________________________
i
xi f(xi) epsilon
_________________________________________________
1 0.975013 -24.914463 1.000000
2 0.769989 -12.610944 1.024987
3 0.642827 -2.102052 0.205024
4 0.610205 -0.804674 0.127162
5 0.605439 -0.164283 0.032622
6 0.605268 -0.020944 0.004766
7 0.605267 -0.000725 0.000171
8 0.605267 -0.000003 0.000001
_______________________________________________
Akarnya Adalah = 0.60526712
BAB IV
PENUTUP
4.1 Kesimpulan
Dari pembahasan diatas dapat disimpulkan bahwa :
v
Program matlab sangat memudahkan kita dalam
menghitung perhitungan numeric dan matematika lainnya dari yang sederhana
hingga rumit.
v
Dengan matlab dapat dengan mudah menggambarkan
kurva dari suatu persamaan atau pun fungsi-fungsi lainnya.
v
Penyelesaian persamaan non linear dapat dengan
mudah diselesaikan dengan matlab.
thank's atas postingannya gan . .
ReplyDeletesangat membantu . .
ok sama2
ReplyDeleteTerimakasih....
ReplyDeletesangat membantu sekali.... :)
mantap..
ReplyDelete