Matlab Hari 1
-
Upload
arrester97 -
Category
Documents
-
view
4.598 -
download
10
Transcript of Matlab Hari 1
MATLAB Terapan 1
1. Apa itu MATLAB
MATLAB merupakan bahasa pemrograman dengan performansi tinggi
untuk komputasi numerik dan visualisasi. Kombinasi kemampuan,
fleksibilitas, reability dan powerfull grafik membuat MATLAB menjadi
program yang sangat cocok digunakan untuk keteknikan. MATLAB
merupakan suatu bahasa pemrograman sederhana dengan fasilitas yang
jauh lebih hebat dan lebih mudah digunakan dari bahasa pemrograman
lain, seperti BASIC, Pascal, atau PC, melalui kemampuan grafisnya,
MATLAB menyediakan banyak pilihan untuk visualisasi data. MATLAB
adalah suatu lingkungan untuk membuat aplikasi dimana anda dapat
membuat antarmuka grafis dan menyediakan pendekatan visual untuk
menyelesaikan program-program tertentu. Lebih dari itu MATLAB
menyediakan sekelompok alat penyelesaian masalah untuk problem-
problem khusus, yang dinamakan Toolbox. Sebagai contoh menyediakan
Control System Toolbox, Signal Processing Toolbox, Symbolix Math
Toolbox dan bahkan anda dapat membuat toolbox sendiri..
MATLAB mengintegrasikan komputasi, visualisasi dan pemrograman
dalam ruang yang mudah digunakan dimana masalah dan solusi
diekpresikan dalam notasi matematika yang umum. MATLAB adalah
sebuah sistem interaktif dimana elemen dasar data berupa array yang
tidak perlu definisi dimensi. Ini memberikan kebebasan untuk
menyelesaikan banyak masalah komputasi teknik, terutama yang
berkaitan rumus vektor dan matriks.
2. Bagaimana memulai MATLAB
Apabila telah diinstal MATLAB pada PC anda, maka untuk menjalankan
MATLAB, anda cukup klik double pada icon MATLAB. Beberapa saat
Ansar Suyuti - ikhlas kitta 1
kemudian muncul command window dari MATLAB. Commond Window
merupakan jendela utama dimana penggunaannya untuk berkomunikasi
dengan interpreter MATLAB. Tampilan prompt interpreter MATLAB ( » )
menunjukkan bahwa MATLAB siap untuk menerima perintah dari
pengguna. Adapun tampilan command window seperti dibawah ini.
Cara termudah untuk menggambarkan MATLAB adalah menganggapnya
sebagai sebuah kalkulator. Seperti umumnya kalkulator biasa, MATLAB
sanggup mengerjakan perhitungan sederhana seperti penambahan,
pengurangan, perkalian dan pembagian. Seperti kalkulator sains, MATLAB
dapat menangani bilangan kompleks, akar dan pangkat, logaritma,
operasi trigonometri seperti sinus, cosinus dan tangen. Seperti kalkulator
yang dapat diprogram, MATLAB dapat digunakan untuk menyimpan dan
memanggil data. Anda dapat membuat, menjalankan dan menyimpan
sederetan perintah untuk mengotomatisasi perhitungan suatu persamaan
penting; anda dapat melakukan perbandingan logika dan mengatur
urutan pelaksanaan perintah. Seperti kalkulator terbaik saat ini, MATLAB
memungkinkan anda untuk menggambarkan data dengan berbagai cara,
mengerjakan aljabar matriks, memanipuasi polinomial, mengintegralkan
fungsi, memanipulasi persamaan secara simbol, dll. Sesungguhnya
MATLAB menyediakan lebih banyak lagi fasilitas dan jauh lebih kompleks
Ansar Suyuti – ikhlas kitta 2
MATLAB Terapan 1
dari kalkulator manapun. MATLAB adalah alat untuk melakukan
perhitungan matematika.
Sebagai contoh, untuk menginput sebuah matrik 3x2, dapat diketik :
» A=[1 2;3 4;5 6]
setelah ditekan Enter, maka respon MATLAB berupa hasil
A =
1 2 3 4 5 6
3. Ruang Kerja MATLAB
Ruang kerja MATLAB, merupakan kumpulan tool dan fasilitas dimana kita
bekerja dalam pemrograman MATLAB. Termasuk fasilitas untuk mengatur
variabel dalam ruang kerja dan untuk import dan eksport data, termasuk
tool untuk pengembangan. Perintah dan variabel yang telah dibuat,
dikatakan tinggal dalam ruang kerja MATLAB dan dapat dipanggil
kapanpun anda menghendakinya.
Jika anda tidak dapat mengingat nama variabel, maka anda tinggal mengetik who:
» whoYour variables are:
A
Untuk memanggil perintah sebelumnya, MATLAB menggunakan tombol
panah [ ] pada keyboard anda, Sebagai alternatif mouse dapat
digunakan bersama dengan cip-bord untuk menghapus (cut), mengcopy
(copy), mengeluarkan kembali (paste), dan mengedit teks yang ada di
prompt command.
Ansar Suyuti - ikhlas kitta 3
4. Variabel
Pada program MATLAB, expresi tanpa nama variabel tetap diproses dan
hasilnya dengan nama variabel ans (singkatan answer). Tetapi untuk
pemrograman dimana beberapa konstanta dioperasikan, maka nama
variabel mutlat ada. Variabel adalah nama atau simbol yang digunakan
untuk mewakili suatu nilai.
Contoh 4-1:
» A=10;» B=20;» C=A*B
C =
200
Pada program contoh di atas, A B, dan C disebut dengan variabel.
Variabel A mewakili nilai 10 dan B mewakili nilai 20, sedangkan variabel C
mewakili hasil perhitungan, yang mana nilai yang diwakili dapat berubah
tergantung dari nilai variabel A dan B.
Aturan penulisan nama variabel MATLAB adalah :
1. Nama variabel dibedakan antara huruf kecil dan huruf kapital, contoh ;
Jumlah, jumlah, juMlah, jumlaH dan JUMLAH.
2. Panjang maksimal nama variabel adalah 31 karakter, dan karakter
setelah karakter ke-31 diabaikan.
3. Nama variabel harus diawali dengan huruf, diikuti dengan sembarang
bilangan, huruf, atau garis bawah. Karakter-karakter tanda baca tidak
diperbolehkan karena banyak diantaranya mempunyai arti tersendiri
dalam MATLAB, contoh; biaya_rata_rata, x25065.
Ansar Suyuti – ikhlas kitta 4
MATLAB Terapan 1
4. Tidak menggunakan variabel khusus.
Beberapa variabel khusus pada MATLAB adalah :
anseps i,j
NaN atu nanpirealmaxrealmin
hasil/jawaban untuk untuk statemen yang tidak nama variabelbilangan terkecil sedemikian rupa sehingga bila ditambahkan satu, menghasilkan bilangan lebih besar dari satu
atau simbol yang mewakili bilangan imajiner pada bilangan kompleksbukan suatu bilangan/ hasil bukan numerik.nilai dari bilangan bilangan real positip terbesarbilangan real positif terkecil
Variabel dalam ruang kerja MATLAB dapat dihapus dengan menggunakan
perintah clear.
» clear A
untuk menghapus variabel A
» clear B*
untuk menghapus semua variabel yang diawali dengan huruf B
» clear
untuk menghapus semua variabel diruang kerja
Syarat pemberian nama variabel numerik dan variabel string dalam
MATLAB tidak dibedakan. Tetapi penulisan konstanta variabel string harus
diapit dengan tanda apostrop tunggal ( ' ).
Contoh 4-2:
Ansar Suyuti - ikhlas kitta 5
» c='Selamat'
c =
Selamat
» cd=[c,' datang']
cd =
Selamat datang
5. Komentar
Jika program dibuat cukup panjang dan rumit, akan lebih baik bila di
dalam program diberi penjelasan seperlunya sehingga mereka yang
membaca program akan dapat mengerti maksud dari program dengan
lebih jelas. Komentar pada MATLAB berupa tanda persen (%), sehingga
semua teks sesudah tanda persen (%) dianggap sebagai statemen
komentar
Contoh 5-1:
» A=[1 2;3 4]; % matriks A(2x2)» B=[5 6 7;8 9 0]; %matriks B(2x3)» Mat_C=A*B
Mat_C =
21 24 7 47 54 21
Kalimat matriks A(2x2) dan matriks B(2x3) setelah tanda %
diabaikan/tidak diproses oelh MATLAB.
Ansar Suyuti – ikhlas kitta 6
MATLAB Terapan 1
Beberapa perintah dapat diletakkan pada baris yang sama jika dipisahkan
dengan koma ( , ) atau titik koma ( ; ). Tanda koma memberitahu MATLAB
untuk menampilkan hasil dan titik koma untuk tidak menampilkan hasil.
Contoh 5-2 :
» jml=10; harga=1000, bayar =jml*harga
harga =
1000
bayar =
10000
Deretan tiga titik berfungsi sebagai tanda sambung/lanjutan statemen
pada baris berikutnya. Biasanya digunakan apabila sebuah statemen
melebihi dari satu baris.
tetapi nama variabel tidak bisa dipisah menjadi dua baris
Terlihat bahwa perintah yang diinput tidak dapat diproses oleh MATLAB
6. Bilangan Kompleks
Ansar Suyuti - ikhlas kitta 7
» bayar=jml*har...ga??? bayar=jml*harga |Missing operator, comma, or semi-colon.
» harga=bayar/...jml
harga =
1000
Salah satu kelebihan MATLAB adalah bahwa ia tidak memerlukan
penanganan khusus untuk bilangan kompleks. Bagian imajiner ( )
dalam MATLAB, diwakili oleh variabel i atau j.
Contoh 6-1:
Carilah nilai V =Zc Cosh g + Sinh g/Zc,
Dimana : Zc= 200 + j300 dan g=0,02 + j1,5.
» Zc=200+300j;» g=0.02+1.5j;» V=Zc*cosh(g)+sinh(g)/Zc
V =
8.1672 +25.2172i
Perubahan bentuk polar bilangan kompleks ke bentuk rectanguler-nya
juga dapat dilakukan ;
dengan bentuk polar diberikan oleh besarnya M dan sudut , sedangkan
bentuk rectanguler diberikan dengan a+bi. Hubungan antara bentuk-
bentuk ini adalah:
M=
a= M cos
b=M sin
Dalam MATAB, konversi antara bentuk polar dan rectanguler
menggunakan fungsi-fungsi real, imag dan angle.
Ansar Suyuti – ikhlas kitta 8
MATLAB Terapan 1
Untuk merubah bentuk rectanguler ( V ) menjadi bentuk polar, maka
dapat dilakukan :
Contoh 6-2:
» Real_V=abs(V)
Real_V =
26.5068
» Sudut_V=angle(V)*180/pi
Sudut_V =
72.0542
Sedangkan untuk merubah polar ke rectanguler, maka dapat dilakukan :
» P_V=Real_V*exp(j*Sudut_V*pi/180)
P_V =
8.1672 +25.2172i
» real_PV=real(P_V)
real_PV =
8.1672
» imaj_PV=imag(P_V)
imaj_PV =
25.2172
Fungsi abs menghitung besarnya bilangan kompleks atau harga mutlak
dari bilangan real, tergantung argumen apa yang diberikan. Fungsi angle
menghitung sudut bilangan kompleks dalam radian.
7. Menyimpan dan memanggil data
Ansar Suyuti - ikhlas kitta 9
MATLAB dapat menyimpan dan memanggil data dari file. Pilihan Save
Workspace as... dalam menu File akan membuka kotak dialog untuk
menyimpan semua variabel yang ada. Mirip dengan itu, pilihan Load
workspace as.. dari menu File akan membuka kotak dialog untuk
memanggil variabel yang telah disimpan sebelumnya. Memanggil variabel
yang bernama sama dengan variabel yang aktif akan membuat isi
variabel aktif ditimpa oleh isi variabel yang dipanggil dari file.
Jika menu File belum cukup bagi anda, MATLAB menyediakan dua perintah Save dan load yang jauh
lebih fleksibel. Perintah save membuat anda dapat menyimpan satu atau lebih variabel dalam file
format yang sesuai dengan pilihan anda.
» save
Saving to: matlab.mat
Menyimpan semua variabel MATLAB dalam format biner di file matlab.mat
» save data
menyimpan semua variabel MATLAB dalam format biner di file data.mat
» clear» load matlab
memanggil data/variabel-variabel yang telah di save dengan nama
matlab setelah dihapus dengan perintah clear dari ruang kerja MATLAB.
8. M- File
Script M-FILE
Ansar Suyuti – ikhlas kitta 10
MATLAB Terapan 1
Jika masalah yang dihadapi sederhana, mengetikkan beberapa perintah
langsung di jendela command memang cukup tepat dan efektif. Akan
tetapi jika jumlah perintahnya sangat banyak, atau jika anda ingin
mengubah nilai beberapa variabel dan kemudian mengulang kembali
perhitungannya, maka mengetikkan perintah-perintah langsung akan
sangat menyusahkan. Untuk menyelesaikan masalah ini, MATLAB
memungkinkan anda untuk mengetikkan sederetan perintah tersebut
dalam suatu teks file dan kemudian memerintahkan MATLAB untuk
membuka file tersebut dan menjalankannya seolah-olah diketikkan
langsung di jendela Command. File seperti ini dinamakan file Script atau
M-File. Ketika file scrip dipanggil, MATLAB langsung mengeksekusi
perintah-perintah yang ditemui dalam file. Statemen file scrip dioperasi
secara global terhadap data di workspace. Scrip berguna untuk
menyelesaikan analisis atau desain dengan urutan-urutan statemen yang
cukup panjang.
MATLAB menyediakan beberapa fungsi pada M-File, perintah-perintah itu
adalah
Disp(ans)Echo
inputkeyboard
pausepause (n)waitforbuttonpress
menampilkan hasil tanpa menampilkan nama variabelmengatur jendela command dalam penampilan kembali perintah yang sedang dikerjakan meminta pemakai untuk memberikan inputmemberikan kontrol pada keyboard sementara waktu. Ketikkan retour untuk kembaliberhenti sampai pemakai menekan semarang tombolberhenti selama n detikberhenti sampai ada penekanan tombol mouse atau tombol keyboard
Jika perintah MATLAB tidak diakhiri dengan titik koma, hasil dari perintah
itu serta nama variabelnya akan ditampilkan kembali dalam jendela
command.
Function M-File
Ansar Suyuti - ikhlas kitta 11
File fungsi dari MATLAB, tidak sama dengan file script dalam hal bahwa
variabel yang dioperasikan didalamnya bersifat lokal terhadap fungsi itu
saja. File script akan bersifat global terhadap variabel yang ada di
workspace. File fungsi digunakan untuk suatu keperluan yang berulang
satu atau beberapa kali dalam suatu program. File fungsi pada sama
fungsinya dengan functions pada bahasa C, subroutines pada FORTRAN
dan BASIC dan procedures pada PASCAL. M-file berisi kata function pada
awal program adalah file fungsi. File fungsi diawali dengan kata function
dengan perintah
function [output variabel]=nama fungsi (input variabel)
output variabel berada dalam kurung segi empat atau [ ] dan input
variabel dalam kurung parentheses atau ( ). Nama file fungsi harus di
save sama dengan nama fungsi. Misalnya function[S]=tegangan(Z,I),
nama file fungsi tersebut harus tegangan.m.
Contoh 8-1 :
function [S]=tegangan(V,I)S=V.*conj(I);
File tersebut bernama tegangan dengan variabel output V dan variabel
input V dan I
Untuk menjalankan program tersebut, pada command window dibuat
suatu statemen sebagai berikut :
Jika nilai V dan I hanya mempunyai masing-masing satu elemen , maka
» S=tegangan(10+12j,5+10j)
S = 1.7000e+002 -4.0000e+001i
Ansar Suyuti – ikhlas kitta 12
MATLAB Terapan 1
Jika nilai V dan I hanya mempunyai merupakan matrik, maka
» s=tegangan([1 2;3 4],[10 10;10 10])s = 10 20
30 40
Dari hasil diperoleh terlihat bahwa, input untuk varibel V dan I dapat
berupa skalar maupun matrik.
9. Operator Aritmetik
Operator aritmetik adalah simbol-simbol yang digunakan untuk maksud
operasi numerik. MATLAB menyediakan operator aritmatik dasar berikut :
Operasi Simbol ContohPenambahan a+b + 15+10Pengurangan, a-b - 15-10Perkalian, a.b * 15*10Pembagian, a: b / atau \ 15/10=10\15Pemangkatan, ab ^ 15^10
Urutan operasi ini dikerjakan dalam suatu ekspresi yang mengikuti aturan
prioritas yang biasa. Aturan ini diringkas sebagai berikut : Ekspresi
dikerjakan 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 mempunyai prioritas yang sama. Tanda kurung dapat digunakan
untuk mengubah urutan pengerjaan yang biasa, dimana bagian yang
dikerjakan lebih dulu adalah bagian yang ada dibagian kurung paling
dalam kemudian keluar.
Contoh : Carilah nilai
A=P , untuk P=1000, I=12% dan N=10
Ansar Suyuti - ikhlas kitta 13
» P=1000; i=0.12; N=10;» A=P*((i*(1+i)^N)/((1+i)^N-1))
A =
176.9842
% Contoh penggunaan pembagian kiri dan kanan» C=P/N
C =
100
» D=N\P
D =
100
10. Operator relasi dan logika
Matlab menyediakan operasi relasi dan logika. Kegunaan dari operator
dan fungsi tersebut ialah untuk menyediakan jawaban atas pertanyaan
benar salah. Salah satu kegunaan penting dari kemampuan ini ialah untuk
mengontrol urutan eksekusi sederetan perintah MATLAB berdasarkan
pada hasil benar/salah. MATLAB menganggap semua angka tidak nol
sebagai benar, dan nol sebagai salah. Hasil dari ekspresi relasi dan logika
adalah satu untuk Benar dan nol untuk Salah dengan tipe array logika,
yaitu hasilnya membuat bilangan 1 dan 0 yang tidak saja dapat
digunakan untuk statemen matematika, tetapi juga dapat digunakan
untuk pengalamatan.
Operator Relasi
Operator relasi MATLAB terdiri dari :
Operator relasi Deskripsi<
<=Kurang dariKurang dari atau sama dengan
Ansar Suyuti – ikhlas kitta 14
MATLAB Terapan 1
>>==
~=
Lebih dariLebih dari atau sama denganSama denganTidak sama dengan
Operator relasi MATLAB dapat dipergunakan untuk membandingkan dua
array berukuran sama atau untuk membandingkan array dengan skalar.
Skalar dibandingkan dengan semua elemen array dan hasilnya berukuran
sama.
Contoh penggunaan :
» A=1:9,B=9-AA = 1 2 3 4 5 6 7 8 9B = 8 7 6 5 4 3 2 1 0» tf=A>4tf = 0 0 0 0 1 1 1 1 1» tf=(A==B)tf = 0 0 0 0 0 0 0 0 0
Operator Logika
Operator logika menyediakan cara untuk menggabung ekspresi logika.
Operator logika terdiri dari :
Operator Logika Deskripsi&|~
ANDORNOT
Contoh penggunaan :
Ansar Suyuti - ikhlas kitta 15
» A=1:9; b=9-A;» tf=A>4tf = 0 0 0 0 1 1 1 1 1» tf=~(A>4)tf = 1 1 1 1 0 0 0 0 0» tf=(A>2)&(A<6)tf = 0 0 1 1 1 0 0 0 0
» x=[1,1,0,0];» y=[1,1,1,1];» z1=~y>x
z1 = 0 0 0 0» z2=x&yz2 = 1 1 0 0» z3=x|yz3 = 1 1 1 1
» z4=xor(x,y)z4 = 0 0 1 1
» A=[1,1,0,0]';» B=[0,0,1,1]';» [A,B,~A,A|B,A&B,xor(A,B)]
ans =
1 0 0 1 0 1 1 0 0 1 0 1 0 1 1 1 0 1 0 1 1 1 0 1
11. Fungsi-fungsi Dasar Matematis
Ansar Suyuti – ikhlas kitta 16
MATLAB Terapan 1
Sebagian dari fungsi-fungsi dasar matematis yang dimiliki MATLAB dapat
dilihat berikut :
Fungsi trigonometri
abs (x)acos(x)acosh(x)angle(x)asin(x)asinh(x)atan(x)atan2(x)atanh(x)ceil(x)conj(x)cos(x)cosh(x)exp(x)fix(x)floor(x)gdc(x,y)imag(x)lcm(x)log(x)log10(x)real(x)rem(x,y)round(x)sign(x)sin(x)sinh(x)sqrt(x)tan(x)
harga mutlak atau besarnya bilangan kompleksinvers cosinusinvers cosinus hiperboliksudut pada suatu bilangan kompleksinvers sinusinvers sinus hiperbolikinvers tangeninvers tangen empat kuadraninvers tangen hiperbolikpembulatan ke arah plus tak berhinggakonjuget bilangan komplekscosinuscosinus hiperbolikeksponensialpembulatan ke arah nolpembulatan ke arah minus tak berhinggafaktor persekutuan terbesar bilangan bulat x dan ybilangan imajinerkelipatan persekutuan terkecil bilangan bulat x dan ylogaritma naturallogaritma biasabagian real suatu bilangan komplekssisa pembagian x dibagi ypembulatan ke arah bilangan bulat terdekatmenghasilkan tanda dari argumensinussinus hiperbolikakar kuadrattangen
contoh :
carilah nilai V(t)= A sin wt +30o, dimana A=10 dan t=1,2,3,4,5
Ansar Suyuti - ikhlas kitta 17
» t=1:1:5;» A=10;f=100;» Vt=A*sin(2*pi*f*t+30*180/pi)
Vt =
-4.0977 -4.0977 -4.0977 -4.0977 -4.0977
Fungsi dasar MATLAB
exploglog10sqrtabsangleconjimagrealfixfloorceilroundmodremsign
exponensiallogaritma naturallogaritma biasa (basis 10)akar kuadratharga mutlaksudut fasakompleks konjugatebagian imajiner bilangan kompleksbagian real bilangan kompleksmembulatkan ke arah nolmembulatkan ke arah minus tak terhinggamembulatkan ke arah plus tak terhinggamembulatkan ke arah bilangan bulat terdekatmodulus (sisa pembagian)pembagian bilangan bulattanda bilangan
Contoh :
» x=exp(-0.2696*.2)*sin(2*pi*0.2)/(0.01*sqrt(3)*log(18))
x = 18.0001
12. Format Input
Ansar Suyuti – ikhlas kitta 18
MATLAB Terapan 1
Pemberian nilai pada variabel dalam MATLAB dapat dilakukan dengan
mengetikkan nama variabel kemudian tanda sama dengan ( = ) dan nilai
variabel yang diinginkan.
Contoh 12-1;
Untuk variabel skalar
» A=10
A = 10
» B=5;» C=A*BC = 50
dari contoh terlihat bahwa saat kita mengetik nilai A = 10 kemudian
ditekan enter, maka MATLAB akan merespon dengan menampilkan hasil,
sedangkan pada saat kita ketik B = 10; lalu dienter, MATLAB tidak
menampilkan hasilnya karena kita menambahkan tanda titik koma ( ; ).
Contoh 12-2:
Untuk variabel bentuk array/matriks
» A=[1 2 3;4 5 6]
A =
1 2 3 4 5 6
» B=[7,6,5;3,2,1];
» C=A+B
C =
8 8 8 7 7 7
Ansar Suyuti - ikhlas kitta 19
untuk program yang mempunyai data yang banyak, maka pemberian nilai
variabel dapat dilakukan secara terpisah.Data dapat dibuatkan M-file
tersendiri, selanjutnya kapan data tersebut dibutuhkan maka tinggal
mengetikkan nama file M-file yang telah dibuat.
Contoh 12-3:
Data Y dan I disimpan pada M-file dengan nama data1.m
Y=[0-8.5i 0+2.50i 0+5.0i 0+0i 0+2.5i 0-8.75i 0+5.0i 0+0i 0+5.0i 0+5.00i 0-22.5i 0+12.5i 0+0.0i 0+0.00i 0+12.5i 0-12.5i];I=[0-1.1i;0-1.25i;0;0];
Untuk mengguanakan data tersebut, kita tinggal menulis nama M-file
( data1) pada program
data1 % nama file data berisi Y dan I% I=Y.V ===>V=inv(Y)*IZ=inv(Y) % membuat invers YV=Z*I % perkalian
Hasil program
Z =
0 + 0.5000i 0 + 0.4000i 0 + 0.4500i 0 + 0.4500i0 + 0.4000i 0 + 0.4800i 0 + 0.4400i 0 + 0.4400i0 + 0.4500i 0 + 0.4400i 0 + 0.5450i 0 + 0.5450i0 + 0.4500i 0 + 0.4400i 0 + 0.5450i 0 + 0.6250i
V =
1.0500 1.0400 1.0450 1.0450
Ansar Suyuti – ikhlas kitta 20
MATLAB Terapan 1
Dalam program contoh di atas, kita membuat dua buah M-file, satu M-file
khusus berisi data sedangkan M-file lainnya berisi program. File yang
berisi data yang kita beri nama data1.m dapat digunakan dengan hanya
mengetikkan data1 pada program, walaupun file tersebut tidak aktif
diruang kerja MATLAB.
Tetapi kadang-kadang pada kondisi tertentu kita menginginkan bahwa
suatu variabel, dapat mempunyai nilai yang berubah sesuai dengan
keinginan si pengguna yang dapat di input dari keyboard. Pada M-file
input nilai variabel dapat dilakukan dari keyboard dengan menggunakan
perintah
x = input (' komentar')
dimana x adalah nama variabel, komentar akan ditampilkan dilayar saat
program dijalankan.
Contoh 12-4 :
R=input (' input nilai R (ohm) =');I=input (' input nilai I (Amp) =');V=I*R
Jika program tersebut di run, maka hasilnya :
» input nilai R (ohm) =10 input nilai I (Amp) =2
V =
20
dengan demikian nilai variabel R dan I dapat berubah sesuai besar nilai
yang diinput.
Ansar Suyuti - ikhlas kitta 21
Sedangkan untuk variabel string, maka perintahnya
x=input ( 'komentar' , 'string' )
string harus berisi hurup 's' atau ' S ',yang menunujukkan string,
sedangkan komentar dapat berisi apa saja yang inginkan
contoh 12-5:
tanya=input (' anda ingin lanjut ? Y/N :','s');if(isempty(tanya))|(tanya=='Y')|(tanya=='y') tanya='Y'else tanya='N'end
Hasil program
anda ingin lanjut ? Y/N :
tanya =
Y
13. Format Output
Saat MATLAB menampilkan hasil proses numerik, MATLAB mengikuti
beberapa aturan. Dalam keadaan biasa, jika hasilnya berupa bilangan
bulat, maka akan ditampilkan sebagai bilangan bulat. Jika hasilnya suatu
bilangan real, MATLAB akan menampilkan sebagai bilangan dengan
empat digit desimal. Perintah format ini hanya mengendalikan format
numerik nilai yang ditampilkan dilayar, hanya berefek pada berapa jumlah
Ansar Suyuti – ikhlas kitta 22
MATLAB Terapan 1
angka yang ditampilkan, bukan bagaimana MATLAB menghitung atau
menyimpannya.
MATLAB COMMAND
Average_Cost Keterangan
Format short 50.833 5 digitsFormat long 50.83333333333334 16 digitsFormat short e 5.0833e+01 5 digits plus exponentFormat long e 5.083333333333334e+01 16 digits plus exponentFormat short g 50.833 Better of format short or
format short eFormat long g 50.83333333333333 Better of format longt or
format long eFormat hex 40496aaaaaaaaaab HexadecimalFormat bank 50.83 2 decimal digitsFormat + + Positive, negative, or zeroFormat rat 305/6 Rational approximation
Untuk lebih fleksibelnya dalam format output, MATLAB menyediakan
statemen fprintf untuk menampilkan hasil/output numerik dari program.
Beberapa farmat dari fprintf dapat dilihat pada tabel.
Kode Format Kontrol Karakter%e scientific format, lower case e%E sientific format, upper case E%f format desimal%s string%i integer%u mengikuti tipe%x hexadecimal, lower case%X hexadecimal, upper case
\n baris baru\r permulaan dari baris\b back space\t tabulasi\g halaman baru" apostrop\\ back slash\a bell
Contoh 13-1:
» fprintf('Luas= %7.3f meter per segi \n',pi*10^2)
Luas= 314.159 meter per segi
Ansar Suyuti - ikhlas kitta 23
Format %7.3f, menunjukkan format bilangan desimal tujuh angka dengan
tiga angka dibelakang koma. Sedangkan /n untuk baris baru.
Contoh 13-2:
» V=[ 10;20;30;40;50];» R=[ 5;7;9;11;13];» y=[V R]
y = 10 5 20 7 30 9 40 11 50 13
» fprintf('%4i \t %8.2f\n',y') 10 5.00 20 7.00 30 9.00 40 11.0050 13.00
Program contoh di atas memperlihatkan dua cara menampilkan output,
yaitu dengan variabel yang akan ditampilkan diberi kurung empat misal
[V R], cara ini akan menampilkan nilai variabel sesuai dengan tipenya,
dan yang kedua adalah dengan statemen fprintf (%4i \t %8.2 \n), %4i
akan menampilkan pada kolom pertama sesuai dengan tipe maksimum
empat angka, \t penulisan selanjutnya dengan jarak sesuai tabulasi, %8.2
menampilkan dengan format desimal delapan angka termasuk titik,
dengan dua angka dibelakang koma.
MATLAB juga menyiapkan format output berupa statemen disp, yang
berfungsi untuk menampilkan numerik dan string dari programnya.
Contoh 13-3:
Ansar Suyuti – ikhlas kitta 24
MATLAB Terapan 1
data1 % nama file data berisi Y dan I% I=Y.V ===>V=inv(Y)*IZ=inv(Y); % membuat invers YV=Z*I ; % perkalian disp ('Hasil program V=inv(Y)*I adalah')disp(V)
Hasil program V=inv(Y)*I adalah
1.0500 1.0400 1.0450 1.0450
Contoh di atas, memperlihatkan bahwa statemen disp dapat digunakan
untuk string atau numerik dan hanya menampilkan nilai variabel.
Contoh 13-4:
program M-file untuk perkalian bilangan kompleks
disp(' ');disp(' PROGRAM PERKALIAN BILANGAN KOMPLEKS'); disp(' ');disp(' Jenis: 1-polar, 2-rectangular'); disp(' ');jumlah=input('Berapa banyak Bilangan Kompleks yang akan dikalikan ?'); disp(' ');for i=1:jumlah; F=input(['Jenis ',num2str(i),' ketik 1 jika polar 2 jika rectanguler = ']); if (F~=1 & F~=2); disp('Anda Salah Input'); end if F==1 M=input(['Nilai ',num2str(i),' = ']); A=input(['Sudut ',num2str(i),' = '])*180/pi; N(i)=M*exp(j*A); disp(' '); else R=input(['Real ',num2str(i),' = ']); I=input(['Imag ',num2str(i),' = ']); N(i)=R+j*I; disp(' '); endendP=N(1); for k=2:jumlah; P=P*N(k); enddisp(' '); disp(['HASIL PERKALIAN = ' num2str(real(P)) ' +j '... num2str(imag(P)) ' = ' num2str(abs(P)) '|_'... num2str(angle(P)*pi/180) ' derajat']);
Ansar Suyuti - ikhlas kitta 25
Hasil program
PROGRAM PERKALIAN BILANGAN KOMPLEKS Jenis: 1-polar, 2-rectangular Berapa banyak Bilangan Kompleks yang akan dikalikan ?2 Jenis 1 ketik 1 jika polar 2 jika rectanguler = 1Nilai 1 = 10Sudut 1 = 90 Jenis 2 ketik 1 jika polar 2 jika rectanguler = 1Nilai 2 = 10Sudut 2 = 90 HASIL PERKALIAN = -100 +j 1.2246e-014 = 100|_180 derajat
14. KONTROL PROGRAM
Kontrol program sangat penting karena memungkinkan komputasi-
komputasi yang lalu mempengaruhi komputasi yang akan datang.
MATLAB menyediakan struktur pengambilan keputusan atau struktur
kontrol program, yaitu : loop for, loop while, if-else-end, dan swicth-case.
Loop forLoop for memungkinkan sekelompok perintah diulang sebanyak suatu
jumlah yang tetap. Bentuk umum dari loop for adalah
Ansar Suyuti – ikhlas kitta 26
MATLAB Terapan 1
For nama variabel loop = awal:step:akhir Perintah-perintahend
Ekspresi awal adalah nilai awal, ekspresi step adalah
langkah/pertambahan dan ekspresi akhir adalah batas nilai akhir variabel
loop. Contoh for x=2:2:10, perintah akan diulang dan dimulai untuk x=2,
melangkah sebanyak 2 dan berakhir pada nilai x=10.
Contoh 14-1
for x=2:2:10 v(x)=cos(x*pi/180); end
loop for dapat ditulis dalam satu baris
for x=2:2:10, v(x)=cos(x*pi/180),end
loop for dapat dibuat didalam loop for yang lain ;
Contoh 14-2:
% Program perkalian Matriks A * BA=[1 2 3;4 5 6;7 8 9];B=[9 8 7;6 5 4;3 2 1];% Proses perkalianfor k=1:3 for l=1:3 C(k,l)=0; for m=1:3 C(k,l)=C(k,l)+A(k,m)*B(m,l); end endend
Hasil dari program tersebut adalah
Ansar Suyuti - ikhlas kitta 27
C =
30 24 18 84 69 54 138 114 90
bandingkan dengan perintah asterik ( * ) untuk perkalian matriks , maka
hasil yang diperoleh sama
» A=[1 2 3;4 5 6;7 8 9];B=[9 8 7;6 5 4;3 2 1];C=A*BC = 30 24 18 84 69 54 138 114 90
Loop While
Loop while mengerjakan sekelompok perintah yang diulang sampai syarat
yang diberikan terpenuhi.
Bentuk umum loop while adalah ;
while ekspresi Perintah-perintahend
perintah-perintah yang terdapat di antara while dan end dieksekusi
berulang kali selama semua elemen dalam ekspresi adalah benar.
Contoh 14-3
Ansar Suyuti – ikhlas kitta 28
MATLAB Terapan 1
» x=1;» while x<10disp(x)x=x+1; end
1 2 3 4 5 6 7 8 9
» x=9;» while x~=0disp(x)x=x-1;end
If - else -end
Bentuk paling sederhana if-else-end adalah
if ekspresi perintah …end
Untuk kasus dengan dua pilihan if-else-end adalah
if ekspresi perintah…jika memenuhi eksperesielse perintah… jika tidak memenuhi ekspresi (salah)end
Jika terdapat 3 atau lebih pilihan if-else-end :
Ansar Suyuti - ikhlas kitta 29
elseif ekspresi1 Perintah.. jika ekspresi1 benarelseif ekspresi2 Perintah.. jika ekspresi2 benarelseif ekspresi3 Perintah.. jika ekspresi3 benarelseif…
else perintah.. dikerjakan jika tak ada ekspresi benarend
contoh 14-4
for k = 1:5; if k<2 a=cos (k*pi/180); elseif k<3 b=cos((k-1)*pi/180); elseif k<4 c=cos((k-2)*pi/180); elseif k<5 d=cos((k-3)*pi/180); else e=cos((k-4)*pi/180); end; end;
» a,b,c,d,e
a = 0.9998
b = 0.9998
c = 0.9998
d = 0.9998
e = 0.9998
Ansar Suyuti – ikhlas kitta 30
MATLAB Terapan 1
Switch-Case
Bentuk umum dari Switch-Case adalah
switch ekspresi case test_ekspresi deret_perintah1 case {test_ekspresi2, test_ekspresi3, test_ekspresi4} deret_ekspresi2 otherwise deret ekspresi3 end
Contoh 14-5:
Buatlah program untuk mengkonversi satuan meter kesatuan inchi, feet,
millimeter dan centimeter, yang mana nilai satuan meter dan konversi
satuan yang diinginkan diinput dari keyboard.
x=input('masukkan nilai x dalam meter =' );satuan=input('konversi ke satuan "in",ft",mm" dan "cm" = ','s');switch satuan case {'inchi','in'} %konversi ke inchi inchi=x*2.54*100case{'feet','ft'} % konversi ke feet feet=x*2.54*12*100case{'milimeter','mm'} % konversi ke millimeter mm=x*10*100case{'centimeter','cm'} % konversi ke Centimeter cm=x*100otherwise disp(['anda salah input:' units]) y=nan end;
masukkan nilai x dalam meter =3konversi ke satuan "in",ft",mm" dan "cm" = cm
cm =
300
Contoh 14-6:
Ansar Suyuti - ikhlas kitta 31
Mencari nilai x minimum, maksimum dan penjumlahan untuk x= e-t .sin t
untuk t = 0 sampai 100.
% program untuk mencari nilai minimum, % maksimum atau penjumlahan xt = [0:100];x=exp(-t).*sin(t*pi/180);pilih=input('Mencari x "maks,min atau jumlah" =','s');switch pilihcase {'maksimum','maks'} maks=max(x)case {'minimum','min'} minim=min(x)case {'jumlah','jum'} total=sum(x)otherwise disp('anda salah input')end
15. Grafik 2-Dimensi
Statemen plot
MATLAB menyediakan fasilitas dalam pembuatan suatu grafik dengan
sangat sempurna dan mudah untuk digunakan, ini merupakan salah
keistimewaan MATLAB, sehingga sangat cocok digunakan untuk
komputasi teknik.
Statemen yang digunakan dalam pembuatan grafik ini yaitu :
plot : Plot linierloglog : plot dengan skala loglogsemilogx : plot dengan skala semi logsemilogy : plot dengan skala semilog
Untuk judul, label, garis sumbu dan teks digunakan :
title : judul grafikxlabel : label sumbu xylabel : label sumbu ytext : teks keterangan
Ansar Suyuti – ikhlas kitta 32
MATLAB Terapan 1
gtext : tempat teks diletakkangrid : grid lineaxis : batas sumbu y dan x
Statemen yang digunakan untuk membuat grafik linier, plot (x,y ) ini
untuk menggambar bidang vector x dan vector y. Jika x atau y adalah
sebuah matriks maka mereka akan saling menggambarkan sesuai dengan
baris dan kolomnya masing-masing. Tetapi bila x adalah sebuah besaran
skalar sedangkan y adalah besaran vector maka akan terjadi titik yang
tidak terhubung pada plot.
Berbagai macam jenis garis, symbol plot dan warna dapat dibuat dengan
perintah plot(x,y,s) dimana s adalah karakter string yang dibuat dari salah
satu atau lebih dari statemen dibawah ini
SPESIFIKASI WARNA JENIS GARISWARNA Istilah Jenis SimbolHitam k Solid -Biru b Dashed --Cyan c Dotted :Hijau g Dash-dot -.Magenta m Point .Merah r Circle oPutih w X-mark xKuning y Plus +
Star *
Kita bisa membuat tiga pilihan kurva pada grafik yang sama. Sebagai
contoh,
Plot(x1,y1,’r’,x2,y2.’+b’,x3,y3,’-‘)
Plot (x1, y1) dengan garis merah solid ,(x2,y2) dengan warna biru dan
tanda +, ( x3,y3) dengan garis putus-putus. Plot juga dapat ditambahkan
dengan keterangan nama pada grafik, label pada sumbu X dan Y dan grid.
Perintah grid membuat kotak-kotak gairs / kisi-kisi pada grafik. Cara
penulisannya hanya tinggal ditulis sesudah perintah plot. Sedangkan
Ansar Suyuti - ikhlas kitta 33
perintah nama/title (‘Graph title’) memberi nama pada plot dan x label (‘x-
axis label’), y label (‘y-axis label’) yang memberi label pada plot dengan
string yang khusus. Perintah text ( x-coordinate, y-coordinate,’text’) dapat
digunakan untuk meletakkan text pada grafik, dimana nilai koordinat
diambil dari plot tertentu. Sebagai contoh, kalimat perintahnya adalah :
Text(3.5, 1.5,’Voltage’)
Kalimat perintah ini akan menuliskan kata Voltage pada titik grafik (3.5,
1.5). Selain itu juga dapat digunakan perintah gtext (‘text’), dimana
perintah ini menempatkan teks pada grafik dengan menggunakan mouse.
Alternatif perintah lain adalah legend(string1,sring2,string3,…) yang juga
berfungsi untuk menempatkan teks dalam grafik dengan menggunakan
string. MATLAB menyediakan skala otomatis. Perintah axis ([x min. x max.
y min. y max.]). Sebagai contoh :
Axis ([-10 40 -60 60])
Menghasilkan skala sumbu x dari – 10 sampai 40 dan skala sumbu y dari –
60 sampai 60. Mengetik kembali axis (‘auto’) akan menghasilkan skala
sendiri.
Contoh :
Membuat plot X-Y dengan variabel berikut ini :
x 0 0,5 1,0 1,5 2,0 2,5 3,0 3,5 4,0 4,5 5,0y 10 10 16 24 30 38 52 68 82 96 123
Programnya dapat dituliskan sebagi berikut :
x = [ 0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0];y = [10 10 16 24 30 38 52 68 82 96 123];plot(x, y), gridxlabel('x'), ylabel('y'), title('Contoh Grafik Sederhana')
Ansar Suyuti – ikhlas kitta 34
MATLAB Terapan 1
Hasilnya dapat dilihat pada grafik ini :
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 50
20
40
60
80
100
120
140
x
y
Contoh Grafik Sederhana
MATLAB juga menyediakan statement fplot untuk membuat grafik dari
fungsi dalam bentuk string. Dengan sintaks sebagai berikut;
fplot ('string',[xmin,xmax])
atau
fplot ('string',[xmin xmax ymin ymax])
dimana string merupakan sebuah fungsi, [xmin xmax] adalah nilai
minimum dan maksimum dari variabel bebas fungsi.
Contoh
» f='cos(tan(x))-tan(sin(x))';» fplot(f,[0 3]), title (' Grfaik cos(tan(x))-tan(sin(x))')
Ansar Suyuti - ikhlas kitta 35
0 0.5 1 1.5 2 2.5 3-3
-2.5
-2
-1.5
-1
-0.5
0
0.5
1 Grfaik cos(tan(x))-tan(sin(x))
Statemen polyval
Program ini menggunakan perintah polyfit untuk mendapatkan
pencocokan data (koefisien) untuk mendapatkan persamaan polynomial
yang sesuai dengan data yang ada.
Kata perintah yang lain adalah polyval yaitu digunakan untuk,
mengevaluasi polynimial dari data-data yang diberikan :
Contoh :
x = [ 0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0];y = [10 10 16 24 30 38 52 68 82 96 123];p = polyfit(x, y, 2) yc = polyval(p, x); plot(x, y,'x', x, yc) xlabel('x'), ylabel('y'), gridtitle('Polynomial curve fitting')legend('Actual data', 'Fitted polynomial')
Hasil penggunaan perintah polyfit dan polyval dapat dilihat berikut ini :
P=
Ansar Suyuti – ikhlas kitta 36
MATLAB Terapan 1
4.02333 2.01107 9.6783
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 50
20
40
60
80
100
120
140
x
y
Polynomial curve fitting
Actual data Fitted polynomial
Pada program ini akan digunakan,* untuk perkalian elemen dengan
elemen dari dua bentuk persamaan yang telah diberikan, fungsinya y = 1
+ e-2t sin (8t-/2) dari 0 sampai 3 detik). Program ini juga memakai
perintah [cp,k]=max (c ) yang memperlihatkan nilai maksimum dari
grafik.
Contoh Program untuk mencari nilai maksimum c=1+e-2t.sin(8t-pi/2)
t=0:.005:3;c = 1+ exp(-2*t).*sin(8*t - pi/2);[cp, k] = max(c) tp = t(k) plot(t, c), xlabel(' t, sec'), ylabel('c'), gridtitle('Grafik sinus teredam')text(0.55,1.35,['cp = ',num2str(cp)]) text(0.55, 1.2,['tp = ',num2str(tp)])
Hasil dari M-file diatas :
Ansar Suyuti - ikhlas kitta 37
0 0.5 1 1.5 2 2.5 30
0.5
1
1.5
t, sec
c
Grafik sinus teredam
cp = 1.4702
tp = 0.36
Cara interaktif untuk mendapatkan data-data titik-titik pada kurva adalah
dengan menuliskan perintah ginput. Perintah ini akan memudah
mendapatkan titik-titik yang diinginkan dengan cara mengklik mouse.
t=0:.005:3;c = 1+ exp(-2*t).*sin(8*t - pi/2);[cp, k] = max(c) tp = t(k) plot(t, c), xlabel(' t, sec'), ylabel('c'), gridtitle('Grafik sinus teredam')text(0.55,1.35,['cp = ',num2str(cp)]) text(0.55, 1.2,['tp = ',num2str(tp)])%menggunakan statemen ginput[tp, cp] = ginput
Statemen Subplot
Statemen subplot ( m, n, p ), berfungsi untuk membagi tampilan gambar
menjadi sebanyak m baris, n kolom dan p menunjukkan gambar
keberapa. Selain itu memakai perintah subplot (111) yang fungsinya
seperti CLF RESET dimana grafik yang satu dengan yang lain tidak saling
mempengaruhi sehingga mendapatkan tampilan yang maksimal.
Contoh :
Ansar Suyuti – ikhlas kitta 38
MATLAB Terapan 1
wt = 0: 0.05: 3*pi;v=120*sin(wt); % Sinusoidal voltagei=100*sin(wt-pi/4); % Sinusoidal currentp=v.*i; % Instantaneous power
subplot(2, 2, 1),plot(wt,v, wt,i); % Plot of v & i versus wttitle('Voltage & current')xlabel('\omegat, radians ');
subplot(2, 2, 2),plot(wt,p); % Instantaneous power vs. wttitle('Power')xlabel(' \omegat, radians ');Fm=3.0;fa = Fm*sin(wt); % Three-phase mmf's fa, fb, fcfb = Fm*sin(wt-2*pi/3);fc = Fm*sin(wt-4*pi/3);subplot(2, 2, 3),plot(wt,fa, wt,fb, wt,fc )title('3-phase mmf');xlabel(' \omegat, radians ');fR = 3/2*Fm;subplot(2, 2, 4),plot(-fR*cos(wt),fR*sin(wt))title('Rotating mmf')subplot(111)
Ansar Suyuti - ikhlas kitta 39
0 5 10-200
-100
0
100
200Voltage & current
t, radians 0 5 10
-5000
0
5000
10000
15000Power
t, radians
0 5 10-4
-2
0
2
43-phase mmf
t, radians -5 0 5
-5
0
5Rotating mmf
Statemen subplot(2, 2, 1),plot(wt,v, wt,i)bertujuan untuk membagi
tampilan grafik menjadi 2 baris dan 2 kolom, sehingga layar grafik
menjadi empat bagian. Bagian bagian tersebut diberi nomor grafik
berurut-urut, nomor 1 adalah baris pertama kolom pertama, selanjutnya
nomor 2 adalah baris pertama kolom kedua, nomor 3 adalah baris kedua
kolom pertama dan nomor empat adalah baris kedua kolom kedua.
Penempatan grafik disesuaikan dengan nomornya.
Contoh
» x=0:0.001:3;» f=cos(tan(x))-tan(sin(x));» subplot(1,2,1),plot(x,f),xlabel('x'),ylabel('y'),axis([0 1.5 -3 1]);» subplot(1,2,2),plot(x,f),xlabel('x'),ylabel('y'),axis([1.5 3 -3 1]);
Ansar Suyuti – ikhlas kitta 40
MATLAB Terapan 1
0 0.5 1 1.5-3
-2.5
-2
-1.5
-1
-0.5
0
0.5
1
x
y
1.5 2 2.5 3-3
-2.5
-2
-1.5
-1
-0.5
0
0.5
1
x
y
Statemen Figure
Statemen figure digunakan apabila dalam suatu program terdapat
beberapa grafik, tetapi ingin ditampilkan pada halaman grafik yang
berbeda. Misal program contoh 6-4, dimana keempat grafik ditampilkan
dalam satu layar, maka dengan statemen figure grafik tersebut dapat
dibuat pada layar yang berbeda. Statemen figure adalah
Figure ( nomor grafik), plot (…,….)
Contoh :
clfwt = 0: 0.05: 3*pi;v=120*sin(wt); % tegangan sinusoidali=100*sin(wt-pi/4); % Arus sinusoidalp=v.*i; % daya Instantaneous
figure(1),plot(wt,v, wt,i); % Grafik 1title('Voltage & current')xlabel('\omegat, radians ');
figure(2),plot(wt,p); % Grafik 2title('Power')xlabel(' \omegat, radians ');
Fm=3.0;fa = Fm*sin(wt); fb = Fm*sin(wt-2*pi/3);fc = Fm*sin(wt-4*pi/3);figure(3),plot(wt,fa, wt,fb, wt,fc ); % grafik 3
Ansar Suyuti - ikhlas kitta 41
title('3-phase mmf');xlabel(' \omegat, radians ');fR = 3/2*Fm;figure(4),plot(-fR*cos(wt),fR*sin(wt)); % Grafik 4title('mf')
0 1 2 3 4 5 6 7 8 9 10-150
-100
-50
0
50
100
150Voltage & current
t, radians
0 1 2 3 4 5 6 7 8 9 10-2000
0
2000
4000
6000
8000
10000
12000Power
t, radians
0 1 2 3 4 5 6 7 8 9 10-3
-2
-1
0
1
2
33-phase mmf
t, radians
Ansar Suyuti – ikhlas kitta 42
MATLAB Terapan 1
-5 -4 -3 -2 -1 0 1 2 3 4 5-5
-4
-3
-2
-1
0
1
2
3
4
5mf
Grafik 3- Dimensi
Statemen Plot
Statemen plot3(x,y,z), berguna untuk menghasilkan sebuah garis 3
dimensi dari 3 buah vektor x,y,z yang menyatakan besar masing-masing
sumbu
Contoh :
» t=0:pi/50:10*pi;» plot3(sin(t),cos(t),t)
Hasilnya :
-1-0.5
00.5
1
-1
-0.5
0
0.5
10
10
20
30
40
Ansar Suyuti - ikhlas kitta 43
atau perintah
plot (x1,y1,z1,s1,x2,y2,z2,s2,….)
mengkombinasikan beberapa plot (x,y,z,s), dimana x,y,z vektor atau
matriks dan s string.
Statemen Meshgrid
Untuk menggambar permukaan koordinat z berdasarkan nilai matriks m x
n. Antar elemen matriks dihubungkan garis dalam penyajiannya.
Misal z = f(x,y)
ingin ditampilkan pada rentang -8 dan -8
» x=-8:0.5:8;» y=x;» [X,Y]=meshgrid(x,y);» R=sqrt(X.^2+Y.^2)+eps;» Z=sin(R)./R;» mesh(Z)
Ansar Suyuti – ikhlas kitta 44
MATLAB Terapan 1
Stateman Contour
Statemen countour digunakan untuk memvisualisasi kontur atau garis-
garis yang menunjukkan ketinggian tetap. Satatemen contour adalah :
CONTOUR(Z), menggambar contour berdasarkan nilai ZCONTOUR (X,Y,Z), dimana X dan Y vektor, untuk membatasi area contour dari ZCONTOUR(Z,N) dan CONTOUR(X,Y,Z,N), menggambar N buah garisCONTOUR(Z,V) dan CONTOUR(X,Y,Z,V), menggambar sebanyak LENGTH(V) garis contour pada nilai vektor VCONTOUR(…..,'linetype') menggambar dengan tipe garis tertentu.
Contoh :
» contour(peaks,50)
Ansar Suyuti - ikhlas kitta 45
5 10 15 20 25 30 35 40 45
5
10
15
20
25
30
35
40
45
Statemen Mesh dan Surface
Fungsi mesh dan surf menampilkan permukaan secara 3 dimensi. Jika Z
matriks dengan elemen Z(i,j) mendefinisikan ketinggian pada grid (i,j),
maka
mesh(Z)
membangkitkan rangka berwarna permukaan matriks Z
surf(Z)
membangkitkan rangka dan pewarnaan permukaan dari Z
Ansar Suyuti – ikhlas kitta 46
MATLAB Terapan 1
contoh :
» mesh(peaks)
dengan perintah tambahan
colormap(hot)ataucolormap(pink)
maka warna akan beruba sesuai perintah
Memotong sebagian gambar dengan NaN
NaN(Not a Number) bisa untuk menghilangkan sebagian visualisasi
Ansar Suyuti - ikhlas kitta 47
Misal :
» p=peaks;» p(25:35,2030)=nan*p(25:35,20:30);» p(25:35,20:30)=nan*p(25:35,20:30);» mesh(peaks,p)
Arah Pandang Grafik
Dalam MATLAB anda dapat menentukan sudut untuk melihat garafik tiga
dimensi. Statemen view(asimuth,elevation) mengeset sudut pandang
dengan menentukan sudut proyeksi pandang mata dan ketinggian anda.
Statemen adalah
view(a,b)
dimana :
Ansar Suyuti – ikhlas kitta 48
MATLAB Terapan 1
a : sudut antara arah pandang terhadap titil (0,0) dengan bidang (x,y)
b : sudut antara proyeksi arah pandang mata ke bidang (x,y) dengan
bidang (z,y)
contoh :
» view(20,0)
Ansar Suyuti - ikhlas kitta 49
16. Dasar Operasi Array
Untuk membuat array dalam MATLAB, yang perlu dilakukan hanyalah
mengetikkan kurung kotak kiri, memasukkan elemen - elemen dengan
dipisahkan oleh spasi atau koma, kemudian menutup array dengan
kurung kotak kanan.
Contoh :
» A=[1 2 3 4 5]
A =
1 2 3 4 5» B=[5,4,3,2,1]
B =
5 4 3 2 1
» C=A+B
C =
6 6 6 6 6
Jadi sangat mudah untuk mengoperasikan array dalam MATLAB, begitu
pula mengoperasikan. seperti menjumlahkan, dan operasi lainnya.
Pembentukan Array
MATLAB menyediakan fasilitas lain untuk pembentukan array, yang mana memasukkan nilai array,
tidak perlu mengetikkan elemen demi elemen. Beberapa cara untuk pembentukan array dapat dilihat
pada tabel.
x = [2 2*pi sqrt(2) 2-3j] membentuk array x dengan elemen-elemen khusus
Ansar Suyuti – ikhlas kitta 50
MATLAB Terapan 1
x = first:last
x = first : increment:last
x = linspace (first,last,n)
x = logspace (first,last,n)
membentuk array x dimulai dengan nilai awal first, meningkat setiap 1 dan berakhir pada nilai akhir lastPembentukan array x dimulai dengan nilai awal first, meningkat sebesar nilai incerement dan berakhir pada nilai lastMembuat array x dimulai dengan nilai first, berakhir dengan nilai last, dengan jumlah elemen nMembuat array x dimulai dengan nilai awal 10first, berakhir dengan nilai 10last, dengan jumlah elemen n
Contoh :
» x=[2 2*pi sqrt(2) 2-3j]
x = 2.0000 6.2832 1.4142 2.0000 - 3.0000i
» x=1:5
x = 1 2 3 4 5
» x=1:2:10
x = 1 3 5 7 9
» x=linspace(1,5,5)
x = 1 2 3 4 5
» x=logspace(1,5,5)
x = 10 100 1000 10000 100000
Ansar Suyuti - ikhlas kitta 51
» a=1:5,b=1:2:9a = 1 2 3 4 5b = 1 3 5 7 9» a=1:5,b=1:2:9a = 1 2 3 4 5
b = 1 3 5 7 9
» c=[b a]c = 1 3 5 7 9 1 2 3 4 5
» d=[a(1:2:5) 1 0 1]d = 1 3 5 1 0 1
Pengalamatan Array
Array x yang terakhir mempunyai 5 elemen yang dipisahkan dalam
kolom-kolom, dengan demikian dapat dikatakan bahwa array tersebut
array satu lima atau suatu array dengan panjang 5.
Dalam MATLAB, elemen-elemen array diakses menggunakan subscript;
misalnya x(1) adalah elemen pertama x, x(2) adalah elemen kedua x, dst.
Contoh :
Ansar Suyuti – ikhlas kitta 52
MATLAB Terapan 1
» x(2)
ans =
100
» x(1:3)
ans =
10 100 1000
» x(1:2:5)
ans =
10 1000 100000
» x(4:end)
ans =
10000 100000
» x([5 2 5])
ans =
100000 100 100000
Untuk membentuk vektor kolom, maka MATLAB menyediakan operator
titik koma ( ; ) untuk membuat baris, apostrop ( ' ) untuk transpose, titik
apostrop ( .' ) untuk transpose tetapi tidak melakukan konjugasi.
Operator titik-transfose ini diinterpretasi sebagai transpose konjugasi non
kompleks. Jika suatu array merupakan array kompleks, transpose ( ' )
memberikan transpose konjugasi kompleks, yaitu tanda dari bagian
imajiner yang berubah sebagai akibat operasi transpose. Tetapi titik
transpose melakukan transpose pada array namun tidak melakukan
konjugat padanya.
Contoh :
Ansar Suyuti - ikhlas kitta 53
» A=[1;2;3;4;5]
A =
1 2 3 4 5
» B=[1 2 3 4 5]'
B =
1 2 3 4 5
» AA=[1+2j 1+0.5j 2+1j]'
AA =
1.0000 - 2.0000i 1.0000 - 0.5000i 2.0000 - 1.0000i
» BB=[1+2j 1+0.5j 2+1j].'
BB =
1.0000 + 2.0000i 1.0000 + 0.5000i 2.0000 + 1.0000i
Dari contoh terlihat bahwa bila bilangan kompleks ditranspose dengan
statemen apostrop ( ' ) maka terjadi konjugasi atau dengan kata lain
tanda imajiner akan berubah. Sedangkan bila bilangan kompleks di
transpose dengan statemen titik apostrop ( .' ) maka tidak terjadi
konjugasi.
Jika suatu array dapat berupa vektor baris atau vektor kolom, maka array
dapat dibentuk berupa matriks.
Contoh
Ansar Suyuti – ikhlas kitta 54
MATLAB Terapan 1
» K=[1 2 3;4 5 6;7 8 9]
K = 1 2 3 4 5 6 7 8 9
» K=[1 2 34 5 67 8 9]
K =
1 2 3 4 5 6 7 8 9
selain titik koma, menekan tombol Return atau Enter saat memasukkan
nilai matriks juga dapat membuat baris baru.
Operasi Operasi Array
Operasi Array dengan Skalar
Penambahan, pengurangan , perkalian dan pembagian dengan skalar
dapat dikenakan pada semua elemen array.
Contoh
Ansar Suyuti - ikhlas kitta 55
» A=[1 2 3;4 5 6]
A =
1 2 3 4 5 6
» b=A*4
b =
4 8 12 16 20 24
» c=b/4
c =
1 2 3 4 5 6
» d=A+4
d =
5 6 7 8 9 10
Operasi Array dengan Array
Jika dua array mempunyai dimensi yang sama, penambahan,
pengurangan, perkalian dan pembagian berlaku pada elemen ke elemen .
Tapi jika dimensi tidak sama maka tentu operasi tersebut tidak dapat
dilaksanakan. Operator -operator dasar dari operasi array adalah sebagai
berikut
+-
.*
./
.\
.^
penambahan array (a+b)pengurangan array (a- b)perkalian array (a .* b)pembagian kanan array (a ./b )pembagian kiri array ( a ./b)pemangkatan array (a.^ b)
Ansar Suyuti – ikhlas kitta 56
MATLAB Terapan 1
Titik yang mendahului simbol perkalian, pembagian dan pemangkatan
memberitahu MATLAB untuk melakukan operasi elemen ke elemem.
Perkalian tanpa titik berarti perkalian matriks.
Contoh :
» a=[ 1 1 1;2 2 2]
a = 1 1 1 2 2 2
» b=[3 3 3;4 4 4]
b = 3 3 3 4 4 4
» c=a+b
c = 4 4 4 6 6 6
» d=a-b
d = -2 -2 -2 -2 -2 -2
Ansar Suyuti - ikhlas kitta 57
e =
3 3 3 8 8 8
» f=a./b
f =
0.3333 0.3333 0.3333 0.5000 0.5000 0.5000
» g=a.\b
g =
3 3 3 2 2 2
» h=a.^b
h =
1 1 1 16 16 16
Dari contoh terlihat bahwa semua operasi array dilakukan merupakan
operasi antar elemen-elemen array.
memanipulasi Array
Karena array dan matriks merupakan hal mendasar dalam MATLAB, maka
terdapat banyak cara untuk memanipulasinya.
Cntoh :
» A=[1 2 3;4 5 6;7 8 9]A = 1 2 3 4 5 6 7 8 9
» A(3,3)=0A = 1 2 3 4 5 6 7 8 0
Ansar Suyuti – ikhlas kitta 58
MATLAB Terapan 1
mengubah A(3,3) menjadi nol
contoh
» A(2,6)=1A = 1 2 3 0 0 0 4 5 6 0 0 1 7 8 0 0 0 0
mengubah elemen pada baris 2 kolom 6 menjadi satu, karena A tidak
mempunyai enam kolom, ukuran A diperbesar seperlunya dan diisi
dengan nol sehingga matriks tetap segi empat.
Contoh
» A(:,4)=4A = 1 2 3 4 0 0 4 5 6 4 0 1 7 8 0 4 0 0
membuat semua elemen di kolom empat menjadi 4.
A = 1 2 3 4 5 6 7 8 9
» B=A(3:-1:1,1:3)B = 7 8 9 4 5 6 1 2 3
menciptakan matriks B dengan urutan baris A yang dibalik
» B=A(3:-1:1,:)B = 7 8 9 4 5 6 1 2 3
Ansar Suyuti - ikhlas kitta 59
menciptakan matriks B dengan urtan baris A yang dibalik, disini titik dua berarti semua kolom (titik
dua terakhir dari contoh di atas). Jadi : adalah singkatan 1:end atau 1:3 sebab A memiliki 3 kolom.
» C=[A B(:,[1 3])]C = 1 2 3 7 9 4 5 6 4 6 7 8 9 1 3
membuat matriks C dengan menambhkan semua baris pada kolom
pertama dan ketiga B ke sisi kanan A.
» B=A(1:2,2:3)B = 2 3 5 6
membuat B dengan mengambil dua baris pertama dan dua kolom terakhir A.
» B=A(:)B = 1 4 7 2 5 8 3 6 9
membuat matriks B dengan mengurutkan kolom-kolom A
» B=B.'B = 1 4 7 2 5 8 3 6 9
mentranspose matriks A
Ansar Suyuti – ikhlas kitta 60
MATLAB Terapan 1
» B=AB = 1 2 3 4 5 6 7 8 9
» B(:,2)=[]B = 1 3 4 6 7 9
mendefinisikan kembali B dengan membuang semua baris pada kolom
kedua matriks B semula. Saat anda mengeset sesuatu menjadi matriks
kosong [ ], sesuatu itu akan terhapus, mengakibatkan matriks berkurang
menjadi apa yang tertinggal.
Array dengan Elemen Satu dan Nol
Karena banyak dipergunakan, MATLAB menyediakan fungsi untuk
membuat array yang semua elemennya satu atau nol.
Contoh:
» ones(4)
ans = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
» zeros(2,5)
ans =
0 0 0 0 0 0 0 0 0 0
» ones(3,4)
ans =
1 1 1 1 1 1 1 1 1 1 1 1
Ansar Suyuti - ikhlas kitta 61
Statemen ones (4) membentuk array bujur sangkar (4 x 4 ) dengan
seluruh elemennya bernilai satu. Statemen ones (3,4) untuk membentuk
array berdimensi 3 baris dan 4 kolom dengan seluruh elemen bernilai
satu. Statemen zero (2,5) untuk membentuk array berdimensi 2 baris dan
4 kolom dengan seluruh elemen bernilai nol.
Operasi Matriks
Semula MATLAB diciptakan untuk menyederhanakan komputasi matriks
dan aljabar linier yang terdapat di berbagai aplikasi adalah sebagai
berikut:
+-*/ dan \
det (A)d=eig(A)[V,D] = eig(A)expm(A)inv(A)lu(A)orth(A)pinv(A)poly(A)polyeig(A1,A2,..)sqrtm(A)svd(A)trace(A)
PenjumlahanPenguranganPerkalianPembagian kiri dan kanan X=A\B adalah solusi untuk A*X=BX=B/A adalah solusi untuk X*A=Bdimensi harus sesuai dengan aturan perkalian matriksDeterminanNilai eigen Nilai eigen dan eigen vektorPemangkatan matriksInvers matriksFaktor dari eliminasi gausOrtognalisasiPseudoinversKarakteristik polynomialMenyelesaikan masalah nilai eigen polinomialAkar kuadrat matriksDekomposisi nilai singularJumlah elemen-elemen diagonal
Jika sebuah persamaan simultan sebagai berikut :
a11 X1 + a12 X2 + … + a1n Xn = B1a21 X1 + a22 X2 + … + a1n Xn = B2 . . . .
Ansar Suyuti – ikhlas kitta 62
MATLAB Terapan 1
. . . .an1 X1 + an2 X2 + … + ann Xn = Bn
persamaan di atas dapat dituliskan dalam bentuk matriks
atau
A.x = B
Sehingga vektor X dapat dihitung :
[x] = [A]-1 B
contoh :
persamaan dalam bentuk , A X = B hitunglah vektor X
» A=[1 2 3;4 5 6;7 8 0]
A = 1 2 3 4 5 6 7 8 0
» b=[366;804;351]
b = 366 804 351
Ansar Suyuti - ikhlas kitta 63
Jika anda mempunyai dasar aljabar linier maka sangat mudah untuk menentukan bahwa masalah
mempunyai satu jawaban tunggal jika determinan matriks A tidak sama dengan nol.
» det(A)ans = 27
» inv(A)
ans =
-1.7778 0.8889 -0.1111 1.5556 -0.7778 0.2222 -0.1111 0.2222 -0.1111
Penyelesaian persamaan simultan tersebut diselesaikan dalam program
MATLAB dengan tiga cara :
Cara I
Penyelesaian menggunakan statemen inv
» x=inv(A)*bx = 25.0000 22.0000 99.0000
Cara II
Penyelesaian menggunakan statemen / (statemen pembagian kanan matriks).
» x=A\bx = 25.0000 22.0000 99.0000
Cara III
Ansar Suyuti – ikhlas kitta 64
MATLAB Terapan 1
Penyelesaian dengan menggunakan factorisasi lu (statemen lu) dari hasil dari upper af lower matrik
triangular , A=LU, dimana X diperoleh dari X = U-1 L-1 B.
» A=[1 2 3;4 5 6;7 8 0];» B=[366;804;351];» [L,U]=lu(A)
L = 0.1429 1.0000 0 0.5714 0.5000 1.0000 1.0000 0 0
U =
7.0000 8.0000 0 0 0.8571 3.0000 0 0 4.5000
» X=inv(U)*inv(L)*B
X =
25.0000 22.0000 99.0000
Untuk mencari nilai eigen values dan eigen vektor
» [x,D]=eig(A)
x =
0.7471 -0.2998 -0.2763 -0.6582 -0.7075 -0.3884 0.0931 -0.6400 0.8791
D =
-0.3884 0 0 0 12.1229 0 0 0 -5.7345
atau
» eig(A)
ans =
Ansar Suyuti - ikhlas kitta 65
-0.3884 12.1229 -5.7345
Contoh :
Carilah nilai x, y dan z dari persamaan dibawah ini
6x - 3y + 4z = 4112x + 5y - 7z = -26-6x + 2y + 6z = 14
sebelum kita membuat program MATLAB, maka persamaan dapat dibuat
dalam bentuk matrik
atau
[ABC][xyz]=[K]
sehingga
[xyz]=[ABC]-1 [K]
» ABC=[6 -3 4;12 5 -7;-6 2 6];» K=[41;-26;14];» xyz=inv(ABC)*K
xyz =
2.0035 -2.6842 5.2316
Contoh
Ansar Suyuti – ikhlas kitta 66
MATLAB Terapan 1
Sebuah rangkaian listrik seperti gambar dibawah, hitunglah V1 dan V2
dan daya pada setiap sumber arus.
y12 = 0,35 - j 1,2 i1 = 30 + j 40 Ay10 = 1,15 - j 0,8 i2 = 20 + j 15 Ay20 = 0,55 - j 0,4
dengan menggunakan hukum kirchhoff, diperoleh persamaan simpul
atau
[y].[V] = [I]
sehingga
[V]= [y]-1 [I]
sedangkan rumus untuk daya sumber ( S ) = V I*.
Ansar Suyuti - ikhlas kitta 67
I=[30+40j;20+15j]; % Arus sumberY=[1.5-2j -0.35+1.2j; -0.35+1.2j 0.9-1.6j];disp(' tegangan V1 dan V2')V=inv(Y)*Idisp(' daya sumber S1 dan S2')S = V.*conj(I)
Hasil program
tegangan V1 dan V2
V =
3.5902 +35.0928i 6.0155 +36.2212i
daya sumber S1 dan S2
S =
1.0e+003 *
1.5114 + 0.9092i 0.6636 + 0.6342i
Matriks Khusus
Matriks dengan kegunaan umum meliputi
» zeros(3)
ans =
0 0 0 0 0 0 0 0 0
» ones(2,4) % 2x4 matriks berelemen satu
ans =
1 1 1 1 1 1 1 1
» zeros(3)+pi
ans = 3.1416 3.1416 3.1416 3.1416 3.1416 3.1416
Ansar Suyuti – ikhlas kitta 68
MATLAB Terapan 1
3.1416 3.1416 3.1416
» eye(3) % matriks identitasans = 1 0 0 0 1 0 0 0 1
Statemen zeros(3) digunakan untuk membentuk matriks 3x3 dengan
seluruh elemen bernilai nol, statemen zeros(3)+pi digunakan untuk
membentuk matriks nol 3x3 dengan menambahkan nilai pi pada setiap
elemen. Statemen eye(3), untuk membentuk matrik identitas berdimensi
3x3.
17. Akar-akar Polinomial
Mencari akar suatu polinomial merupakan suatu masalah tersendiri
muncul dalam berbagai bidang ilmu. MATLAB menyediakan fungsi roots
untuk mencari akar polinomial, sedangkan akar-akar polinimial yang
diperoleh dapat dikonversi kedalam persamaan awal dengan fungsi poly.
Contoh :
akar-akar dapat diperoleh dengan menggunakan fungsi roots:
Contoh
» p=[1 9 31.25 61.25 67.75 14.75 15]
p =
1.0000 9.0000 31.2500 61.2500 67.7500 14.7500 15.0000
» r=roots(p)
r = -4.0000 -3.0000
Ansar Suyuti - ikhlas kitta 69
-1.0000 + 2.0000i -1.0000 - 2.0000i 0.0000 + 0.5000i
0.0 - 0.5000i
akar-akar polinomial tersebut dapat dikonversi ke koefisien polinomial dengan fungsi poly(r):
» poly(r)
ans =
1.0000 9.0000 31.2500 61.2500 67.7500 14.7500 15.0000
Contoh
» r=[-1 -2 -3+4i -3-4i]
r =
-1.0000 -2.0000 -3.0000 + 4.0000i -3.0000 - 4.0000i
» poly(r)
ans =
1 9 45 87 50
berarti persamaan polinomialnya adalah :
MATLAB juga juga dapat mencari akar karakteristik persamaan polinomial
dalam bentuk matriks :
A=
Karakteristik persamaan dari matriks tersebut dapat diperoleh fungsi poly
dan akar-akar persamaan diperoleh dengan fungsi roots.
Ansar Suyuti – ikhlas kitta 70
MATLAB Terapan 1
Contoh
» A=[0 1 -1;-6 -11 6;-6 -11 5];» p=poly(A)
p =
1.0000 6.0000 11.0000 6.0000
» r=roots(p)
r =
-3.0000 -2.0000 -1.0000
akar-akar dari karakteristik persamaan tersebut sama dengan eigenvalues dari matriks A atau r=eig(A)
» eig(A)
ans =
-1.0000 -2.0000 -3.0000
Perkalian, Pembagian dan Penjumlahan Polinomial
Perkalian polinomial dilakukan dengan fungsi conv (melakukan
convulotion dari array), pembagian dilakukan dengan fungsi deconv dan
penjumlahan dilakukan dengan seperti penjumlahan array biasa tetapi
derajat polinomial harus sama, jika polinomial mempunyai derajat yang
berbeda maka derajat yang lebih rendah ditambahkan dengan koefisien-
koefisien nol atau menggunakan fungsi yang disediakan oleh MATLAB
yaitu polyadd.
Contoh .
dan carilah C=A.B , D=C+B dan E=C-B
Ansar Suyuti - ikhlas kitta 71
dan carilah
contoh dapat diselesaikan dengan MATLAB
A=[1 7 12];B=[1 0 9];Z=[1 9 37 81 52]; Y=[1 4 13];C=conv(A,B)D=A+BE=A-BX=deconv(Z,Y)
Hasil dari program adalah :
C = 1 7 21 63 108D = 2 7 21E = 0 7 3X = 1 5 4
Turunan
Turunan polinomial dapat dilakukan dengan menggunakan fungsi polyder.
turunan dari polinomial A adalah:
» A=[1 9 37 81 52];» polyder(A)ans = 4 27 74 81
Polynomial Curve Fitting
Ansar Suyuti – ikhlas kitta 72
MATLAB Terapan 1
persamaan tersebut mempunyai koefisien n=d+1, dengan derajat d.
Maka fungsi pengurangan orde polynomial adalah polyfit(x,y,d).
Contoh .
X= 0 1 2 4 6 10Y= 1 7 23 109 307 1231
Carilah sebuah polinomial derajat ke 3 dari data tersebut di atas;
» x=[0 1 2 4 6 10];» y=[1 7 23 109 307 1231];» c = polyfit(x,y,3)
c = 1.0000 2.0000 3.0000 1.0000
Evaluasi Polinomial
Evaluasi polinomial dapat dilakukan dengan fungsi polyval(c,x).
Contoh, kita ingin mengevaluasi polynomial c terhadap titik x= 0,1,2,3 dan 4 .
» plot(t,x)» c=[1 2 3 1];» x=0:1:4;» y=polyval(c,x)
y = 1 7 23 55 109
» plot(x,y),title('x^3+2x^2+3x+1')
Ansar Suyuti - ikhlas kitta 73
0 0.5 1 1.5 2 2.5 3 3.5 40
20
40
60
80
100
120x3+2x2+3x+1
Partial-fraction Expansion
Untuk memperoleh residu atau partial-fraction expantion ( r ) , kutup yang
bersesuaian (p) dan dirct terms (K), digunakan fungsi : [r,p,K]=residu(b,a].
Vector b dan a merupakan koefisien dari polinomial.
Contoh
Hitunglah partial fraction expantion dari :
Penyelesaian dengan MATLAB adalah
» b=[2 0 9 1];» a=[1 1 4 4];» [r,p,K]=residue(b,a)
r =
Ansar Suyuti – ikhlas kitta 74
MATLAB Terapan 1
0.0000 - 0.2500i 0.0000 + 0.2500i -2.0000
p =
-0.0000 + 2.0000i -0.0000 - 2.0000i -1.0000
K = 2
Berarti partial fraction expantion-nya adalah
untuk mengembalikan persamaan polinomial P(s)/Q(s) dapat dilakukan dengan fungsi
[b,a]=residue(r,p,K).
» [b,a]=residue(r,p,K)
b = 2.0000 0.0000 9.0000 1.0000
a = 1.0000 1.0000 4.0000 4.0000
Ansar Suyuti - ikhlas kitta 75
18. Integral Numerik
Trapezoidal Integration (integrasi trapesium)
Cara paling sederhana untuk menentukan luas daerah dibawah sebuah
kurva adalah dengan membagi-bagi luas daerah itu dengan bentuk
persegi . Semakin kecil lebar persegi yang dibentuk semakin mendekati
nilai integral. Atau dengan menggunakan bagian-bagian secara
trapesium. MATLAB melaksanakan integrasi secara trapesium dengan
fungsi "trapz". Syntaksnya adalah trapz (x,y), dimana y merupakan fungsi.
Contoh :
Hitunglah integral
Ansar Suyuti – ikhlas kitta 76
MATLAB Terapan 1
jawabannya adalah
= =cos 0 - cos =2
Untuk menyelediki pengaruh lebar bagian trapesium, pertama kita
gunakan 10 bagian dengan lebar yang sama , maka programnya :
» x=linspace(0,pi,10);» y=sin(x);» trapz(x,y)
ans =
1.9797
jika lebar bagian trapesium diperkecil, misalnya dengan membagi menjadi
100 bagian, maka
» x=linspace(0,pi,100);» y=sin(x);» trapz(x,y)
ans =
1.9998
contoh :
Sebuah accelerometer mengukur percepatan dan digunakan pada
pesawat terbang, roket, dan kendaraan untuk memperkirakan kecepatan
dan perpindahannya. Accelerometer mengintegrasi sinyal percepatan
untuk menghasilkan sebuah perakiraan nilai kecepatan, dan
mengintegrasi perkiraan nilai kecepatan untuk menghasilkan perkiraan
Ansar Suyuti - ikhlas kitta 77
nilai pemindahan. Misalnya kendaraan mulai bergerak pada t=0 dan
percepatan yang terukur seperti pada tabel.
Waktu (t) 0 1 2 3 4 5 6 7 8 9 10Percepatan (m/dtk2) 0 2 4 7 11 17 24 32 41 48 51
Carilah :
kecepatan setelah 10 detik
kecepatan pada waktu t= 1,2,..,10 detik
Jawab :
hubungan antara kecepatan dan percepatan adalah
» t=[0:10];» a=[0,2,4,7,11,17,24,32,41,48,51];» vak=trapz(t,a)
vak =
211.5000
kecepatan pada t=10 adalah 211,5 meter/detik
untuk menentukan kecepatan pada waktu t=1,2,…,10, untuk
v(t1)=0 maka persmaan dapat dituliskan menjadi
dimana k=2,3,4….,11
» t=[0:10];» a=[0,2,4,7,11,17,24,32,41,48,51];» v(1)=0;
Ansar Suyuti – ikhlas kitta 78
MATLAB Terapan 1
» for k=2:11;v(k)=trapz(t(1:k),a(1:k));end» disp([t',v']) 0 0 1.0000 1.0000 2.0000 4.0000 3.0000 9.5000 4.0000 18.5000 5.0000 32.5000 6.0000 53.0000 7.0000 81.0000 8.0000 117.5000 9.0000 162.0000
10.0 211.5000
atau dalam bentuk tabel :
Waktu (t) 0 1 2 3 4 5 6 7 8 9 10Kecepatan (m/dtk) 0 1 4 9,5 18,5 32,5 53 81 117 162 211,5
Integrasi Fungsi Kuadrat
Jika integral merupakan fungsi linier, maka integrasi secara trapesium
merupakan solusi yang paling tepat, tetapi jika integral bukan fungsi
linier, maka integrasi fungsi kuadrat akan menghasilkan tingkat akurasi
yang lebih tinggi dibandingkan integrasi trapesium. Cara pendekatan
yang digunakan pada fungsi kuadrat menggunakan persamaan simpson,
yang membagi batas integrasi b - a menjadi bagian-bagian dengan jumlah
yang sama dan menggunakan perbedaan kuadrat pada tiap-tiap bagian
yang bersebelahan. MATLAB menyediakan dua fungsi untuk
menyelesaikan integrasi fungsi kuadrat yaitu : quad yang didasarkan
pada penyelesaian integrasi persamaan Simpson dan quadl yang
didasarkan penyelesaian integrasi algoritma Labatto. Syntaksnya adalah
quad ('function',a,b) dan quadl ('function',a,b)
Ansar Suyuti - ikhlas kitta 79
dimana function adalah nama fungsi , a adalah batas bawah dan b adalah
batas atas integrasi
untuk lebih jelasnya dapat dilihat pada contoh .
Contoh :
=2
» A=quad('sin',0,pi)
A =
2.0000
dari hasil yang diperoleh terlihat bahwa hasil yang diperoleh dari fungsi
quad dan quadl lebih akurat dibandingkan dengan fungsi trapz, namun
fungsi quad hanya dapat digunakan untuk perhitungan integral fungsi dan
tidak dapat digunakan untuk perhitungan integral yang ditentukan
dengan nilai set point.
Differenial Numerik
Seperti yang telah ketahui bahwa, turunan dari fungsi dapat diartikan
secara grafis sebagai kemiringan dari fungsi. Algoritma sederhana untuk
perhitungan turunan numerik dapat dilihat pada gambar dibawah ini.
Ansar Suyuti – ikhlas kitta 80
MATLAB Terapan 1
Dari gambar tersebut terlihat ada tiga titik data yang mewakili fungsi y(x),
maka :
diasumsikan bahwa jarak antara pengukuran teratur, yaitu
. Jika diinginkan untuk memperkirakan turunan
pada titik , maka jawaban yang benar adalah kemiringan garis lurus
yang dilewati melalui titik , tetapi ada dua titik pada garis itu
sehingga tidak dapat dicari kemiringannya. Oleh karena itu harus
diperkirakan kemiringan dengan menggunakan pendekatan pada titik-titik
data. Diperkirakan kemiringannya adalah :
perkiraan lain dapat dihasilkan dari garis lurus B. kemiringannya adalah
Nilai rata-rata dan adalah
kemiringan garis ini dinamakan C, yang menghubungkan titik pertama
dan ketiga.
MATLAB menyiapkan fungsi d = diff(x) untuk menyelesaikan persamaan
differensial, dimana x adalah nilai vektor dan hasilnya berupa vektor d
berisi diffrensial antara pendekatan elemen-elemen dalam sumbu x. Bila x
memiliki n elemen, d akan memiliki n-1 elemen, dimana d=[x(2)-x(1),
x(3)-x(2), …. , x(n)-x(n-1)]. Sebagai contoh, bila x = [ 5, 7, 12, 20], lalu
diff(x) menjadi vektor [ 2, 5, -32].
Ansar Suyuti - ikhlas kitta 81
Solver ODE 23 dan ODE45
Ordenary Differential Equation (ODE), atau persamaan differensial biasa
adalah persamaan yang memiliki turunan orde dari variabel bebas.
Contoh sederhana adalah
variabel y merupakan variabel bebas, dan t merupakan tidak bebas.
Persamaan tersebut dapat diselesaikan dengan mengintegralkan
persamaan tersebut dengan variabel independent t.
hasilnya adalah
untuk selanjutnya kita gunakan notasi turunan diberi simbol "dot" /"titik",
misalnya
Penyelesaian dengan dengan fungsi ode 23 menggunakan solusi
penyelesaian persamaan differensial dengan menggunakan kombinasi
metode Runge-Kutta orde dua dan tiga dengan step-size, sedangkan ODE
45 menggunakan kombinasi metode Runge-Kutta orde empat dan orde
Ansar Suyuti – ikhlas kitta 82
MATLAB Terapan 1
lima. Pada umumnya ODE 45 lebih cepat dan akurat, tetapi menggunakan
step-size yang lebih besar sehingga dapat menghasilkan plot yang tidak
sehalus dengan plot yang dihasilkan ODE 23.
Syntax dari ODE adalah
[t,y]=ode23( 'ydot', tspan, y0 )
ydot adalah nama file fungsi yang memiliki input t dan y dan mempunyai
output yang berupa vektor kolom yang memperesentasikan dy/dt, yaitu
f(t,y). baris dari vektor kolom harus sama dengan orde dari persamaan.
Syntax ODE 23 dan ODE 45 adalah solver yang identik. Vektor tspan berisi
nilai awal dan akhir dari variabel bebas t dan dapat dipilih dari nilai t
yang diinginkan, misalnya nilai t0<t<tf maka tspan adalah [t0 tf],
dimana t0 adalah nilai awal dan tf adalah nilai akhir dari variabel bebas t.
Anda juga memecahkan persamaan secara mundur dengan membuat t0
menjadi lebih besar dari tf.
Contoh Aplikasi ODE untuk penyelesaian persamaan differensial, pada
sebuah rangkaian listrik yang terdiri dari elemen R, L dan C
Elemen dari rangkaian ini adalah R=1.4 , L= 2 H, dan C =0.32 F.
Keadaan awal dari arus ini adalah 0, dan tegangan awal kapasitor 0.5
Ansar Suyuti - ikhlas kitta 83
Volt. Kemudian tegangan Vs =1 Volt digunakan pada saat t =0. Carilah
niali i(t) dan v(t) untuk waktu 0<t<15 detik dan gambarlah garfik arus
dengan tegangan kapasitor.
Persamaan rangkaian Gambar 2.10 adalah
====== L di/dt =vs-Vc-Ri
di/dt= (1/L)(Vs-X1-Ri)
=(1/L) (Vs-X1-Ri)
dimana :
Xdot=[X(2)/C; 1/L*(Vs-x(1)-RX(2)]
Program File-M untuk penyelesaian persamaan differensial tersebut
adalah
Program Utama
t0= 0; tfinal =15; x0 = [0.5, 0]; tspan = [t0, tfinal]; [t,x] = ode45('electsys',tspan, x0); subplot(2,1,1),plot(t,x)title('Time response of an RLC series circuit')xlabel('t, sec')text(8,1.15,'Capacitor voltage')text(8, 0.1,'Current')
Ansar Suyuti – ikhlas kitta 84
MATLAB Terapan 1
vc= x(:,1); i = x(:,2);
sub program
function xdot = electsys(t,x); V = 1; R =1.4; L = 2; C = 0.32;xdot = [x(2)/C ; 1/L*( V - x(1) - R*x(2) ) ]
Hasil programnya adalah
0 5 10 15-0.2
0
0.2
0.4
0.6
0.8
1
1.2Time response of an RLC series circuit
t, sec
Capacitor voltage
Current
Aplikasi pada pengaturan motor DC terkenali jangkar
Pengaturan kecepatan motor dc pengaturan tegangan terminal jangkar,
biasa digunakan pada sistem kontrol simpal tertutup. Diagram motor dc
pengaturan tegangan jangkar diberikan pada gambar 1. Pada gambar ini
v(t) adalah tegangan jangkar yang dianggap sebagai masukan sistem.
Resistansi dan induktansi rangkaian jangkar adalah R dan L. Tegangan
e(t) adalah tegangan yang timbul pada kumparan jangkar karana adanya
Ansar Suyuti - ikhlas kitta 85
pergerakan pada kumparan di dalam magnetik motor dan biasanya
disebut emf-balik (back emf ).
Sehingga dapat dituliskan
Gambar 1. Motor DC pengaturan jangkar
dengan K adalah konstanta motor, adalah fluks medan, dan adalah
sudut poros motor, jadi adalah kecepatan sudut poros ( ), jika fluks
konstant maka .
Untuk rangkaian jangkar dapat dituliskan
Persamaan torka adalah
T (t) = K i a ( t)
Ansar Suyuti – ikhlas kitta 86
R L
V(t) eb(t)
T(t)
J
B
MATLAB Terapan 1
Karena fluks diasumsikan konstan, maka dapat dituliskan
T (t) = KT i a ( t)
Persamaan tegangan motor menjadi
e(t) = Ke.(t)
Momen inersia J meliputi semua inersia yang dihubungkan ke poros motor
dan konstanta B meliputi gesekan udara dan gesekan bantalan poros,
maka persamaan toki menjadi :
atau
Subtitusi pers.(5) dan (6 ) kedalam pers. ( 3) diperoleh
diperoleh
diperoleh matriks persamaan differensial atau yang biasa disebut model
dinamik motor DC
Ansar Suyuti - ikhlas kitta 87
Dengan mengganti simbol ia(t) menjadi dan menjadi , maka
dapat ditulis sebagai berikut
atau
Persamaan differensial tersebut di atas dapat diselesaikan dengan
menggunakan program file-M ode23 atau ode45 dari MATLAB.
Tabel . Parameter-parameter motor DC pengaturan jangkar, 5 HP, 230 Volt.
Parameter-parameter motor DC Parameter-parameter motor DCTahanan Jangkar (R) 0,200 Konstanta mekanik (Km) 0,7789 N.m/AInduktansi (L) 0,067 H Konstanta motor (Ke) 0,9032 V.dt/radArus jangkar nominal (Ia ) 18,3 Amp Putaran nominal ( ) 2500 rpm
Momen inersia ( J ) 0,6700 LB.FT2
0,0282 N.m.dt2/radKonstanta gesekan (B) 0,0545 N.m dt/rad
Program MATLAB-nyat0= 0; tfinal = 7; % time intervalx0 = [0, 0]; % initial conditionstspan = [t0, tfinal]; % use with MATLAB 5[t,x] = ode45('adcmotor', tspan, x0); % use with MATLAB 5i= x(:,1); w = x(:,2);subplot(2,1,1), plot(t,i),grid ontitle('Karakteristik arus jangkar Vs waktu ')xlabel('Waktu (dtk)'),ylabel('Arus jangkar (Amp.)')subplot(2,1,2),plot(t,w),grid ontitle('Karakteristik kecepatan Vs waktu ')xlabel('Waktu (dtk)'),ylabel('kecepatan (rad/det)')
subplot(111)
function xdot = adcmotor(t,x) % returns the state derivativesR=0.20; % (ohm)L = 0.67; % (Henry)Ke=0.9032; % (Volt.det/radKm=0.7789; % (N.m/Amp)B=0.0545; % (N.m.det/rad)J = 0.0282; % (N.m.det2/rad)
Ansar Suyuti – ikhlas kitta 88
MATLAB Terapan 1
A=[-R/L,-Ke/L;Km/J,-B/J];B=[1/L;0];v=240;xdot = A*x+B*v;
0 1 2 3 4 5 6 7-20
0
20
40
60
80Karakteristik arus jangkar Vs waktu
Waktu (dtk)
Aru
s ja
ngka
r (A
mp.
)
0 1 2 3 4 5 6 70
100
200
300
400
500Karakteristik kecepatan Vs waktu
Waktu (dtk)
kece
pata
n (r
ad/d
et)
Ansar Suyuti - ikhlas kitta 89