PETUNJUK PEMAKAIAN PERANGKAT LUNAK
MatLab+Simulink
DISUSUN : EDIWAN
INSTITUT TEKNOLOGI BUDI UTOMO JAKARTA 1996
1. PENDAHULUAN MatLab adalah suatu program komputer yang memudahkan seseorang dalam memprogram komputer, dengan MATLAB persoalan-persoalan numeris maupun perhitungan yang komplek dapat diselesaikan dengan mudah tanpa harus menulis program komputer yang sangat panjang, karena Matlab menyediakan rutin siap pakai yang lengkap, begitu juga fasilitas grafis yang langsung ditampilkan, baik 2 maupun 3 dimensi. Dengan demikian MatLab dapat melayani mahasiswa, ilmuwan dan akhli teknik seperti layaknya sebuah
“laboratorium” yang cocok untuk komputasi matematika dan dibuat oleh
Perusahaan The Math Work Amerika Serikat. Program ini ditulis dengan bahasa Fortran dan dirancang untuk semua sistem operasi. MatLab adalah software untuk keperluan operasi-operasi matriks dengan elemen kompleknya, fungsi-fungsi, analisa data, polinomial, integral, deferensial, persamaan linier, non linier serta pemroses sinyal dan sebagainya, tanpa harus menuliskan program komputer yang panjang, karena MatLab telah menyediakan sekumpulan rutin siap pakai yang merupakan
algoritma-algoritma
dalam
komputasi
numeris.
Bidang
yang
dapat
memanfaatkan software ini terutama industri, teknik, ekonomi, statistik dan yang membutuhkan lainnya. Seperti halnya software-software yang lain, MatLab selalu berkembang mulai dari versi dos, windows, macintosh hingga jaringan serta fasilitas bantuan yang sewaktu-waktu dapat dipanggil jika diperlukan.
2. OPERASI DASAR Seperti yang telah disebutkan diatas bahwa MatLab mempunyai beberapa perintah yang siap pakai, yang berupa variabel, pernyataan, maupun fungsi yang dapat langsung dipergunakan. Tetapi seperti halnya program komputer lainnya, MatLab juga mempunyai perintah-perintah dasar pemrograman sebagai berikut : Yang dipakai dalam operasi / pembuatan program Matlab : - Angka 0 1 2 3 4 5 6 7 8 9 - Abjad A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,v,q,r,s,t,u,v,w,x,y,z - Simbol + - * / . , ; ' " = $ [ ] ( ) : % ? dll Contoh : >> 2+5 >> 9-5 >> 9*23 , 67/52 >> 3*14 , 4-16 , 51+6 ; 12/7 >> A=2+7 soal 1. >> b= 8-3 jawab : b= 5 soal 2. >>3+7 jawab 10 soal 3. >> 3*15 jawab 45 soal 4. character string menggunakan tanda (‘) >> c=‘Selamat Datang’ >> cs=(c) atau >> c= ‘Selamat’ >> cs=(c,’Datang’) jawab : Selamat Datang
>> gaya=10; >> luas=2; >> tekanan=gaya*luas; >> disp(tekanan); 20 >> disp(tekanan) 20 Statement disp sama dengan print pada basic Catatan : Tanda baca koma ',' memisahkan dua perintah dalam satu baris, sedangkan tanda titik koma ';' diahir baris akan menyimpan hasil perhitungan dimemori komputer dan tidak akan menampilkan hasil perhitungan di layar serta dapat menggunakan hurup besar atau kecil dan kedua-duanya.
3. OPERASI ARITMATIC Operasi aritmatic diperlukan untuk suatu proses aljabar yang akan dilakukan oleh komputer dimana proses ini didalam pemrograman Matlab digunakan beberapa simbol khusus yang dinamakan operator, untuk melakukan operasinya yaitu: Operator
Simbol Operasi
Tanda
Tingkatan
Penjumlahan Pengurangan Perkalian Pembagian Pangkat
+ * / ^
Plus Minus Asteris Slash
3 3 2 2 1
Contoh : >> a=(18+6)/4 jawab : a= 6 >> 90*(23+6) , b^3 , a^(1/3) >> 3*4 , 4-6 , 5+6 ; 2/7
>> a+b^2
,
c^3
>> fprintf(‘Luas= %8.3f meter kwadrat \n’,pi*4.5^2) jawab : Luas= 63.617 meter kwadrat
Angka 8 menunjukkan disediakan 8 kolom untuk output dan pada 8 kom ada 3 desimal
4. FUNGSI STANDART MATEMATIK 4.1 Fungsi umum Untuk fungsi matematik lain, selain operasi-operasi dasar diatas maka komputer mempunyai 'perpustakaan' yang akan mengerjakan fungsi-fungsi itu berdasar 4(empat) operasi dasar ( + , - , * , / dan ^ ) diatas, fungsi-fungsi tersebut adalah : Tabel 2.2 Fungsi dasar Matlab No
Nama variabel
Keterangan
1
abs()
Menyatakan harga mutlak, misal x
2
sqrt()
Menyatakan akar pangkat dua, misal
3
exp()
Menyatakan harga eksponensial, misal e x
4
log()
Menyatakan harga ln, misal ln(x)
5
log10()
Menyatakan harga logaritma basis 10, misal log(x)
6
log2()
2 Menyatakan harga logaritma basis 2, missal log x
x
Fungsi
Notasi Matematik
BahasaProgram
Akar dari x Harga Mutlak Eksponen x Sinus x Cosinus x ln x Log x Tangen x Arcus Tg x
X x ex sin x cos x ln x log x, log10(x),log2(x) tg x arc tg x
SQR(X) ABS(X) EXP(X) SIN(X) COS(X) LOG(X) ALOG(X) TAN(X) ATAN(X)
contoh : 1. soal :
16
>> sqrt(16) atau >> x=16 >> sqrt (x) jawab : 4 2.
e0.25( 0.2 ) 0.01. 3.
>> exp(-0.25*0.2)/(0.01*sqrt(3)) jawab: 54.9192
4.2. Fungsi Trigonometri Semua fungsi trigonometri tersedia dalam paket perangkat lunak Matlab ini termasuk inversenya. Namun perlu diingat bahwa Matlab mengerjakan semua fungsi trigonometri dalam satuan radian, sehingga bila ingin ke derajat dikali pi/180 Contoh : >> a=cos(30) jawab : a= 0.154 COS 30 = 0.866 dalam sistem derajat >> a=sin(pi/2) jawab : a= 1 >> >> >> >> >>
sudut=90*pi/180 250/sin(pi/6) sudut=acos(0.5*sqrt(2)) sudut=sudut*180/pi sudut=atanh(0.4)
%sudut 90o dalam radian %inverse sudut 2 2 dalam radian %dalam derajat %inverse hiperbolik tangen
4.3. Logaritmik dan eksponen Matlab juga menyediakan fungsi-fungsi dasar logaritmik, akar pangkat dan eskponensial Contoh : >> log(100) >> log10(100) >> exp(0) >> log(exp(1)) >> 2^4+8^2-4*sqrt(23)
%dasar bilangan alami %dasar 10
soal :
e0.25(0.2 ) .sin(2. (0.2) 0.01. 3.log(18) >> exp(-0.25*0.2)*sin(2*pi*0.2)/(0.01*sqrt(3)*log(18)) jawab: 18.0707 Latihan :
1. x y 3 log 100 , dimana x = 10 dan y = 4 (jawaban = 6) sin 2. x ln 2 , dimana = 45o dan x = 10 (jawaban = 0.4249) 2 e 2 3. e 4 23 (jawaban = 54.2736) 2
4.4 Fungsi Khusus Seperti yang telah dijelaskan diawal bahasan ini, MatLab mempunyai mempunyai perintah yang siap pakai seperti yang ditabelkan dibawah ini,
Fungsi
Notasi Matematik
BahasaProgram
invers matrik Eigen value determinant Transpose Jumlah Akar polinomial
invers matrik A
inv(a) eig(a) det(a) A' sum(a) roots(a)
determinan matrik a AT
Penggunaan fungsi diatas akan dibahas tersendiri, pada operasi bagian berikutnya.
5. Operasi Dasar Vector 5.1. Vector Sederhana Penulisan vector di dalam Matlab dilakukan dengan menggunakan kurung tegak '[' dan ']'. Pemisahan antara elemen-elemen vector dapat dilakukan dengan memakai tanda koma ',' atau cukup dengan spasi saja. Jika ingin membuat vector kolom (i.e. satu kolom), maka tanda pemisah adalah tanda titik koma ';'. Contoh : >> >> >> >>
clear %menghapus semua variabel sebelumnya x=[1,2,3,4] atau x=[1 2 3 4] y=[0.1,0.2,0.3,0.4] atau y=[0.1 0.2 0.3 0.4] z=[1+2i ; 2+2i ; 3+2i ; 4+2i] %complex column vector
soal 1. >> x =[2,1,3,4] atau x=[2 1 3 4] jawab :
%baris vector
x= 2
1
3
4
soal 2. >> x=[2;-4;8]
%column vector
jawab : x= 2 -4 8
5.2. Pembentukan Vector Selain dengan cara di atas untuk membuat sebuah vector (i.e. dengan memasukkan satu persatu elemen-elemen vector), ada beberapa cara yang dikenal Matlab untuk membuat sebuah vector. Yaitu : >> >> >> >>
clear x=(1:0.1:5) x=1:8 atau x=1:1:8 y=linspace(1,2,11)
%vector dari 1 sampai 5 dengan spasi 0.1 %vector dari 1 sampai 8 dengan spasi 1 %vector spasi linear dari 1 sampai 2 dengan 11 elemen >> z=logspace(-1,2,16) %vector spasi logaritmik dari -1 sampai 2 dengan 16 elemen contoh : >> z=0:pi/3:pi jawab : z= 0.0000 >>
1.0472
2.0944
3.1416
x=1:8 atau x=1:1:8
jawab : x = 1
2
3
4
>> x=5:-1:1 jawab : x =
5
6
7
8
% kenaikan negatif atau turun 4
y=x’ (transpose) y=
3
2
1
4 3 2 1 5.3. Operasi Skalar dengan Vector Operasi matematika antara vector dengan skalar tidak memerlukan perintah khusus. Contoh : >> 2 * x – 1 ans = 9
7
5
3
1
>> x / 2 ans = 2.5000 >> r=[tan(pi/4)
2.0000
1.5000
sqrt(9)
1.0000
0.5000
-5]
jawab : r= 1.0000
3.0000
-5.0000
5.0000
15.0000
-25.0000
>> p=5*r jawab : p=
5.4. Operasi Vector dengan Vector
Operasi matematika antara vector dengan vector tidak sesederhana seperti operasi vector dengan skalar. Jika dua vector memiliki jumlah elemen yang sama, maka operasi antara dua vector tersebut akan dilakukan dengan dasar perelemen-elemen yang bersangkutan. Contoh : >> clear, clc >> x = linspace(1,10,10) , y = linspace (1,2,10) >> x + y >> x - y >> x = linspace(1,10,10)
x = 1
2
3
4
5
6
7
8
9
10
1.888
2.0
>> y = linspace (1,2,10) y = 1.0 1.11 1.22 1.33 1.44 1.55 1.66
1.77
>> x+y ans = 2.0 3.11 4.22 5.33 6.44 7.55 8.66
9.77
10.88 12.0
soal 1. >> x=[2;-4;8] x = 2 -4 8 >> y=[1;3;-5] y = 1 3 -5 >> z=x+y z= 3 -1 3 Namun untuk perkalian dan pembagian matrik, notasi penulisan sedikit berbeda, yaitu dengan menambahkan titik '.' sebelum tanda kali '*' dan tanda bagi '/'.
Contoh : >>x ./ y >>x .* y soal 1. >>x=[1 2 3]; >>y=[4 5 6] >>z=x.*y jawab: z=
4
10
18
Demikian pula untuk akar pangkat : >> x .^ 2 berarti 12 22 32 >> x .^ y berarti 14 25 36
soal 1.
>> x=[1 2 3] ; y=[4 5 6] >> z=x.^y jawab : z= 1 32 729 >> r=x.^2 jawab : r= 1
4
9
soal 2 >>x=[1 2 3;2 4 1; 3 2 5] >>y=3 >>r=sqrt(x.^2+y^2) jawab: ?
contoh 2. E = [1 2;3 4] F = [2 3;4 5] G = E .* F E= 1 2 3 4 F= 2 3 4 5 G= 2 6 12 20 E^3 ans = 37 54 81 118 E.^3 ans = 1 27
8 64
Nilai Invers X = inv(E) X= -2.0000 1.0000 1.5000 -0.5000 nilai eigen eig(E) ans = -0.3723 5.3723 coefficients characteristic polynomial fungsi "poly" : p = poly(E) p= 1.0000 -5.0000 -2.0000
5.5. Manipulasi Vector Vector baris dapat diubah menjadi vector kolum dengan perintah transpose ''' atau dot-transpose '.''. Perbedaan antara dua perintah ini adalah pada operasi bilangan komplek dimana transpose akan memberikan hasil komplek konjugate sedangkan dottranspose hanya akan mengubah bentuk vector tanpa mengubah elemen vector. Contoh : >> z = [ 1+2i ; 2+2i ; 3+2i ; 4+2i] vector >> z' >> z.'
%complex column
soal1. >>r=[tan(pi/4) sqrt(9) -5] r= 1.0000 3.0000 -5.0000 >> y=r’
jawab: y= 1.0000 3.0000 -5.0000
Namun demikian dua perintah tersebut tidak berpengaruh untuk bilangan nyata : >> x' , x.'
5.6. Operasi Elemen Vector Setelah mempelajari operasi vector dengan skalar dan vector dengan vector, ada baiknya untuk mempelajari juga operasi antar elemen vector.
Contoh : >> >> >> >>
x(4) , y(7) %elemen ke-4 dari vector x dan elemen ke-7 dari vector y x(4) / y(10) x(3:7) %blok elemen dari elemen ke-3 sampai ke-7 dari vector x x(4) = 0 %mengubah elemen vector x yang ke-4 menjadi 0
Latihan : 1. adalah sebuah vector yang memiliki 20 elemen dari 0 sampai dengan 2. f juga adalah sebuah vector yang merupakan fungsi dari dengan mengikuti persamaan : f = sin + 2 (sehingga f juga memiliki 20 elemen). Bentuklah vector dan f dengan menggunakan operasi vector yang telah dipelajari di atas. 2. Bentuklah vector g dengan persamaan g = f - 2 3. Tampilkan dalam grafik antara dengan f dan g dengan perintah : >> plot (,f,,g,'--'); Catatan : Apabila tidak dapat ditulis dalam Matlab, cari nama variabel yang lain.
6. SISTEM PERSAMAAN LINIER 6.1. Pembentukan Matrik Matlab merupakan perangkat lunak yang pada awalnya dikembangkan dengan menggunakan sistem persamaan matrik. Pembentukan matrik di Matlab dilakukan dengan cara menulis elemen-elemennya dan dibatasi dengan tanda kurung tegak '[' dan ']'. Penulisan di baris baru dilakukan dengan memakai tanda titik koma ';'. Contoh : 1. >> A = [1,2,3;4,5,6;7,8,9] atau >> A = [1 2 3; 4 5 6; 7 8 9] jawab :
1 4 A= 7
2 5 8
3 6 9
adalah matrik A yang merupakan matrik 3 x 3.
contoh 2. >> B = [1 0 0 1; 1 1 1 1; 1 0 1 1; 1 2 0 1]
1 1 B = 1 1
0 1 0 2
0 1 1 0
1 1 1 1
adalah matrik B yang merupakan matrik 4 x 4 Catatan : elemen satu baris dipisahkan dengan spasi atau tanda koma ';'.
6.2. Operasi Elemen Matrik Elemen-elemen di dalam sebuah matrik dapat ditunjuk berdasarkan lokasi baris dan kolumnya. Menurut default, nomor baris mendahului nomor kolum. Contoh : >> A >> A(3,3) >> A(2,3)=0 dengan 0 >> A(3,3) * A(1,1)
%recall matrix A %recall elemen matrik A di baris 3 kolom 3 %mengubah elemen matrik A baris 2 kolom 3 sama
soal 1. >> a=[2 3 4 1;2 4 5 6;10 2 3 5;3 2 1 0] jawab
2 2 10 3
3 4 2 2
4 5 3 1
1 6 5 0
>> a(1,1)+a(2,1)+a(3,1)+a(4.1) jawab :
17 >> sum(a) jawab : 17
11
13
12
6.3. Manipulasi Matrik Operasi-operasi manipulasi matrik meliputi transpose, rotate, flip atas bawah, flip kiri kanan dan sebagainya. Daftar perintah-perintah selengkapnya dapat dilihat pada reference. Contoh : >> B = A + 2 >> C = A * B, D = B * A, E = A' >> flipud(A) %flip matrik atas bawah >> size(B) %dimensi matrik B >> det(B) %determinan matrik B >> inv(B) %inverse matrik B >> [X,D)=eig(a) % nilai dan fungsi eigen Soal 1. >> a=[16 3 2 13;5 10 11 8;9 6 7 12;4 15 14 1] a=
16 5 9 4
3 10 6 15
2 11 7 14
13 8 12 1
>>diag(a) 16 10 7 1
% diagonal matrik a
>> sum(diag(a)) 34
% penjumlahan diagonal matrik a
>> b=a’ 16 3 2 13
% transpose matrik a 5 10 11 8
9 6 7 12
4 15 14 1
>> a = [1 2 3; 4 5 6; 7 8 9]
1 4 a= 7
2 5 8
3 6 9
inv(a)
soal 2.
1 4 7
2 5 8
3 6 9
x1 10 x 5 2 = x3 2
ditanyakan X1, X2, X3 Cara1 >> a = [1 2 3; 4 5 6; 7 8 9] >> b = [10 ; 5;2] x=a \ b Cara2 >> c=inv(a) >> x=c*b >> a=[0 1 -1;-6 -11 6;-6 -11 5]
0 6 6
1 11 11
1 6 5
>> [X,D]=eig(a) jawab :
D=
-1 -2 -3
X=-0.7071 0.0000 -0.7071
0.2182 0.4364 0.8729
-0.0921 -0.5523 -0.8285
7. POLINOMIAL 7.1. Pembentukan Polinomial di dalam Matlab diwakili oleh vector baris yang berisikan koefisienkoefisien dari polinomial tersebut dengan orde menurun. Contoh : >> c = [ 1 2 3 4 ]
%artinya x3 + 2x2 + 3x + 4
Untuk mencari akar-akar persamaan polinomial di atas x3 + 2x2 + 3x + 4 = 0, Matlab menggunakan perintah >> akar = roots(c) contoh : y=x3 -30.x +30 >> y=[1 0 -30 30] >> akar=roots(y) jawab : akar= -5.9217 4.8845 1.0372 Matlab juga memiliki perintah untuk membentuk polinomial dari akar-akarnya : Contoh : >> clear; >> akar = [1; 2; 3; 2+i; 2-i]; >> c = poly(akar) 7.2. Operasi polinomial Perkalian polinomial dilakukan dalam Matlab dengan menggunakan perintah conv. Contoh : >> a = [1 0 2 1]; b = [1 1 3 24]; >> c = conv(a,b) Demikian pula sebaliknya untuk pembagian polinomial dilakukan dengna menggunakan perintah deconv, >> q = deconv(c,b)
%b dibagi c
Untuk penjumlahan dan pengurangan, orde dari polinomial harus sama. Jadi polinomial dengan orde yang lebih rendah harus diawali dengan angka nol untuk mendapatkan vector baris yang sama.
Contoh : >> e = [1 3 4 0 7]; f = [ 1 2]; >> g = e + [0 0 0 f]
8. Grafik 2-Dimensi dan 3-Dimensi 8.1. Perintah plot Perintah plot ini dipakai untuk menampilkan grafik 2-dimensi antara dua vector. Contoh : >> >> >> >> >> >>
x = linspace(-10,12,100); y = x.^5 - 3*exp(x) + 13*x.^2; plot(x,y); grid; xlabel('variabel x'); ylabel('variabel y'); title('Grafik Percobaan'); zoom
soal 1. >> x=0:0.1:10; >> y=sin(x) >> plot(x,y) atau >> x=0:0.1:10; >> plot(x,sin(x))
soal 2. Warna grafik r=red, g=green dll >> t=(0:0.01:10); >> y1=sin(t); >> y2=cos(t); >> plot(t,y1,'r',t,y2,'g')
Soal 3 Hrafik 3 Dimensi >> t=0:1/50:5; >> plot3(sin(t.^2),cos(t.^2,t)
>> z=sqrt(x.^2+y.^2);z=bessel(0,z);m=[-45 60];mesh(z,m)
Soal Jawab t= 0:0.1:16*pi; x=exp(-0.03*t).*cos(t); y=exp(-0.03*t).*sin(t); z=t; plot3(x, y, z),
8.2. Manipulasi grafik Manipulasi grafik dapat dilakukan dengan berbagai perintah yang selengkapnya dapat dilihat pada halaman referensi. Sebagai contoh di sini akan ditampilkan manipulasi garis dan marker, axis serta tampilan beberapa grafik dalam satu window Contoh : >> >> >> >> >> >> >> >>
clear, clc x = linspace(-10,12,100); y = x.^5 - 3*exp(x) + 13*x.^2; z = x.^4.*sin(x); plot(x,y,’g:’,x,z,’r--’,x,y,’y+’,x,z,’wx’); w = x.^4.*cos(2.*x); hold on plot(x,w,’b-’,x,w,’mo’);
Untuk menampilkan beberapa grafik dalam satu window >>clf reset,clc >>subplot 221;plot(x,y);grid;title(‘grafik pertama’);axis off; >>subplot 222;plot(x,z);title(‘grafik kedua’); axis(‘square’); >>subplot 223;plot(x,w);title(‘grafik ketiga’); axis(‘equal’); >>subplot 224;plot(x,x.^2-3.*x);grid;title(‘grafik terakhir’);
Matlab melengkapi perintah di dalam grafik dengan fasilitas zoom. Untuk memperbesar, gunakan tombol mouse sebelah kiri dan untuk memperkecil gunakan tombol mouse sebelah kanan. >> zoom on Setelah selesai, untuk kembali ke ukuran semula, gunakan perintah >> zoom out 8.3. Comet animasi dan 3-dimensi plot Contoh di bawah ini akan menunjukkan animasi comet dalam grafik 3-dimensi sesuai dengan fungsi persamaan matematika yang kita inginkan. Contoh : >> clf reset, clc >> [x,y]=meshgrid(-3:.5:4); z= x.^4.*cos(y); >> plot3(y,z,x);
Berikut adalah beberapa contoh grafik 3-dimensi
>> clf; >> meshc(z); >> clf; >> colormap(hot); >> surfl(z); Latihan : 1. Tampilkan dalam bentuk grafik persamaan y( x) 3 e 0.005x cos 2x , dari x = 0 sampai dengan x = 2. 2. Gambarkan sebuah bola dengan radius = 3 menurut persamaan x2 + y2 + z2 = 9.
9. Data Analisis 9.1. File operasi Perangkat lunak Matlab memiliki kemampuan untuk mengambil data mentah dalam bentuk matrik dari sebuah file
Contoh : Sebuah file bernama data.dat berisi data daftar harga buah-buahan perbulan dalam satu tahun. Kolom pertama berisi data bulan, kolom kedua adalah data harga pisang, kolom ketiga, keempat dan kelima masing-masing berisi data harga buah durian, semangka dan jeruk. File ini telah disiapkan, sehingga pemindahan file ke hard disk drive masing-masing komputer dilakukan dengan cara : >> !copy a:\data.dat Akses data dari file data.dat ke dalam Matlab workspace dilakukan dengan menggunakan perintah load. >> load data.dat akan menghasilkan sebuah variabel data yang berisikan data-data dari matrik file data.dat
9.2. Fungsi Statistik Fungsi statistik Matlab dapat diilustrasikan sebagian sebagai berikut : Untuk mencari harga rata-rata dari masing-masing kolom : >> rata_rata = mean(data) Untuk mencari harga tertinggi : >> mahal = max(data) Untuk mencari harga termurah >> murah = min(data) Demikian pula untuk mencari standard deviasi dari masing-masing kolom dapat dilakukan dengan menggunakan : >> sd = std(data) Statistik kadang lebih suka menggunakan tampilan dalam bentuk grafik balok : >> bar(data(:,1), data(:,2:5)); Latihan : 1. Tampilkan dalam bentuk matrik perbedaan harga masing-masing buah-buahan dengan masing-masing harga rata-ratanya dalam satu tahun. 2. Tampilkan dalam bentuk grafik perbedaan-perbedaan tersebut (plot biasa)
9.3. Differensiasi dan Evaluasi Differensiasi polinomial dapat dilakukan dengan cara : >> polyder(e) Evaluasi persamaan polinomial dapat dilakukan dengan menggunakan perintah polyval. Contoh : 1 >> >> >> >>
a = [1 2 0 -23]; x = linspace(-3,3,100); hasil = polyval(a,x); plot(x,hasil);
contoh 2 Diketahui sebuah polinomial berbentuk p =x4 3x2 4x x= - 3 dan 4. Menggunakan perintah polyval akan dievaluasi pada >> p=[1 0 3 4 5]; >> x=[-3,4]; >> polyval(p,x) ans = 101 325 Turunan Fungsi pangkat 4 Px=4 x4 + 3 x2 + 4 x + 5 Disusun dalam matrik berikut P=[4 0 3 4 5]; Polyder(p) Ans = 16
0
6
4
Hasilnya jika dituliskan dalam bentuk ungkapan matematis 16 x 3 6 x 4
5
Turunan Untuk dua perkalian fungsi Px =( 4 x4 + 3 x2 + 4 x + 5) (2 x3 + x2 + 3 x + 1) Jawab A=[4 0 3 4 5]; B=[2 1 3 1]; P=polyder(a,b) p= 56 24
90
60
69
40
19
p x = 56 x 6 24 x 5 90 x 4 60 x 3 69 x 2 40 x
19
Latihan : 1. Carilah akar-akar persamaan x4 - 2x2 + 24 = 0 2. Plot persamaan tersebut dari x = -4 sampai dengan x = 4 3. Tentukan persamaan polinomial yang memiliki akar-akar -2, 1, 3, 3-i, 3+i
10. Differential Equation 10.1. First order linear equation : Bentuk umum dari persamaan linear order pertama dapat ditulis secara umum sebagai berikut :
dy P( x) y Q( x) dx
1.1
untuk menyelesaikan persamaan di atas, langkah pertama yang dilakukan adalah memperoleh faktor integrasi dengan menyelesaikan persamaan (1.2)
e
P ( x ) dx
1.2
Dengan mengalikan faktor integrasi ini dengan persamaan (1.1), maka akan diperoleh
d y Q( x) dx
1.3
Persamaan y(x) yang merupakan penyelesaian persamaan linear order pertama (1.1) dapat diketahui dengan menyelesaikan persamaan (1.3). Langkah demikian harus ditempuh untuk dapat menyelesaikan persamaan (1.1) secara analitik. Namun perangkat lunak Matlab menyediakan kemudahan dengan memberikan fasilitas penyelesaian ordinary differential equation secara numerik dengan menggunakan perintah ode23 atau ode45. Untuk menyelesaikan persamaan (1.1) dengan menggunakan Matlab, langkah pertama adalah membuat bentuk eksplisit
dy P( x) y Q( x) dx
1.4
Kemudian membuat fungsi dalam Matlab m-file sebagai berikut : function dy_dx = firstode(x,y) dy_dx = [-P(x)y + Q(x)]; Untuk memperoleh simulasi dari persamaan linear order pertama ini, perintah yang harus dilakukan dalam Matlab command window adalah sebagai berikut :
>> >> >> >> atau
x0=0; %batas bawah xf=1; %batas atas y0=[1]; %initial condition y(0) [x,y] = ode23('firstode',x0,xf,y0);
>> [x,y] = ode45('firstode',x0,xf,y0);
Contoh 1 Selesaikan persamaan differensial linear order pertama
dy xy x , dengan kondisi awal y(0) = 3 dx 1.5 Analitik : P(x) = x and Q(x) = x jadi
e
xdx
e
x2
2
sehingga
2 2 d ye x 2 xe x 2 dx
persamaan akhir dengan memperhitungkan kondisi awal :
y( x) 2e x
2
2
1
1
Matlab : Bentuk eksplisit :
dy xy x , dengan kondisi awal y(0) = 3 dx Fungsi dalam Matlab m-file (click File, New, M-file) function dy_dx = firstode(x,y) dy_dx = [-x*y+x]; M-file ini harus diberi nama (Save As) firstode.m sesuai dengan nama fungsi. Kemudian invoke Matlab command window dengan perintah-perintah :
>> >> >> >>
x0=0; %batas bawah xf=1; %batas atas y0=[3]; %initial condition y(0) [x,y] = ode23('firstode',x0,xf,y0);
Untuk membandingkan hasil perhitungan numerik Matlab dengan hasil exact analitik, dapat dilakukan dengan >> exact=2*exp(-(x.^2)./2)+1; >> error=y-exact >> plot(x,error); grid;
Contoh 2 a Sebuah roket jatuh bebas dari ketinggian 600 m dengan massa roket 80 kg ditulis seperti persamaan dibawah ini, dV =f(t,v) dt dV 4 2 m = -m g + .V 15. dt
dV 4 V2 g dt 15 m
diganti
function rk=f(t,v) m=80; g=9.81; rk=-g+4/15*v^2/m;
dy =f(t,y) dt
% f(0)=0
simpan dalam file f.m >> clear all >>timerange=[0 30]; >>initialvelocity=0; >> [t,v]=ode45(@f,timerange,initialvelocity) >>plot(t,v)
table=[t,y]
tabel = 0 0.0000 0.0000 0.0000 0.0000 0.0000 0.0001 0.0001 0.0001 0.0003 0.0004 0.0005 0.0160 0.0320 0.0480 0.0640 0.0800 0.1600 0.2400 0.3201 0.4001 0.8002 1.2002 13.2504 14.0004 14.7504 15.5004 16.2504 17.0004 17.7504 18.5004 24.5004 25.2504 26.0004 26.7504 27.5004 28.2504 29.0004 29.2503 29.5002 29.7501 30.0000
0 -0.0001 -0.0001 -0.0002 -0.0002 -0.0005 -0.0007 -0.0010 -0.0012 -0.0025 -0.0037 -0.0050 -0.1569 -0.3139 -0.4709 -0.6279 -0.7849 -1.5694 -2.3534 -3.1363 -3.9179 -7.7954 -11.5929 -53.3582 -53.5669 -53.7290 -53.8527 -53.9462 -54.0174 -54.0727 -54.1148 -54.2340 -54.2376 -54.2404 -54.2425 -54.2442 -54.2454 -54.2464 -54.2466 -54.2469 -54.2471 -54.2473
Soal 2 a perbaikan Tabel diatas menampilkan waktu dari 0 s/d 30 detik, untuk menampilkan sesuai keinginan seperti program dibawah ini, >> t=[0,0.1,0.2,0.3]; >> i=0; >> [t,y]=ode45(@f,t,i); >> table=[t,y] table = 0 0 0.1000 -0.9809 0.2000 -1.9611 0.3000 -2.9401 Soal 2 dy (1 x) y 2 atau y’=(1-x)y2 dengan y(0)=1.5 dx function rk=f(x,y) rk=(1-x)*y^2; simpan f.m >> t=[0 0.1 0.2 0.3]; >> i=1.5; >> [x,y]=ode45(@f,t,i)
>> tabel=[x,y] tabel = 0 0.1000 0.2000 0.3000
1.5000 1.7493 2.0548 2.4291
Soal y˙ = −1000y + 1000 sin(t) + cos(t) with
y(0) = 1
10.2. Second and higher order linear differential equation Penyelesaian persamaan differensial orde dua dilakukan dengan mengubah orde dua tersebut menjadi orde pertama dengan mensubstitusikan variabel baru. Contoh : Persamaan 1.8
cx kx 0 mx
dapat diselesaikan dengan menggunakan Matlab dengan memperkenalkan variabel baru, y. y1 x ,
y1 x
y 2 x,
y2 x
1.9 Bentuk eksplisit dari persamaan (1.8) di atas adalah :
x
c k x x m m
1.10 Substitusikan (1.9) ke dalam (1.10), sehingga memperoleh vektor kolom turunan y :
y2 y1 k c y2 y 2 y 1 m m 1.11
Membuat fungsi dalam Matlab m-file (click File, New, M-file) function dy_dx = two_ode(t,y); c = 1000; k = 10000; m = 2; dy_dx = [y(2); -c*y(2)/m-k*y(1)/m]; M-file ini harus diberi nama (Save As) two_ode.m sesuai dengan nama fungsi. Kemudian invoke Matlab command window dengan perintah-perintah :
>> >> >> >>
t0=0; %batas bawah tf=0.1; %batas atas x0=[0;1]; %initial condition x(0) dan x(0) [t,y] = ode23('two_ode',t0,tf,x0);
Untuk orde tiga dan seterusnya, jumlah variabel baru yang dimasukkan tinggal ditambah saja. Latihan : 1. Selesaikan persamaan (0) 1
d2 g 0 , di mana g = 9.81, l = 2 dan (0) = 0 dan l dt 2
2. Selesaikan persamaan
dx (0) 1 dan x(0) = 0 dy
d 3x d2x d2x 2 x 24 0 (0) 0 , , dengan kondisi awal dy 3 dy 2 dy 2
10.3 Pencocokan kurva (Interpolasi) Dari hasil eksperimen diperoleh data sebagai berikut x
1
2
3
4
5
6
7
8
9
10
y
1.3
3.2
11.3
15.1
25.5
38.2
47.1
68.2
81.3
98.2
P=0.9284X2+0.7693X-1.0350
Untuk polyvit(x,y,4) 0.9003 4.6209 9.4910 16.2300 25.2556 36.6836 50.3280 65.7013 82.014 98.1752
1
pengenalan perangkat lunak Matlab
2
Praktek ITBU - Ediwan
3
pengenalan perangkat lunak Matlab
4
Praktek ITBU - Ediwan
5
pengenalan perangkat lunak Matlab
6
Praktek ITBU - Ediwan
7
pengenalan perangkat lunak Matlab
8
Praktek ITBU - Ediwan
9
11. Script File : Matlab M-file 11.1 . M-File Matlab M-file sebenarnya hanyalah sekumpulan perintah-perintah Matlab yang dijadikan satu dalam sebuah text file. Text editing dapat dilakukan dengan menggunakan berbagai word processor. Untuk membuat Matlab M-file, click File, New, M-file sehingga keluar notepad window. Kemudian tuliskan perintah-perintah yang diinginkan. Setelah selesai, kembali click File dan Save. Berikan nama apa saja (8 karakter maksimum) dengan extension .m. Setelah itu kembali ke Matlab command window dan jalankan program dengan mengetik nama file tersebut tanpa extensionnya. Contoh : 1. Click File, New, M-file 2. Ketik di dalam notepad window clear; clc; disp('Contoh Matlab M-file'); disp('tekan apa saja ...'); pause; clc; disp('operasi penjumlahan dan pengurangan'); x = 3, y = 10, z = 34 p = x + y + z disp('tekan apa saja ...'); pause; clc; disp('operasi trigonometri dan apa saja ...'); sin(x) + exp(y) - log(z) disp('tekan apa saja ...'); pause; disp('end .......'); 3. Click File, Save 4. Ketik nama file test1.m 5. Kembali ke Matlab command window dan ketik >> test1 Latihan : 1. Gambarkan grafik y(x) = sin 2x, dari x = -2 sampai x = 2, menggunakan Matlab M-file dengan nama sinus.m pengenalan perangkat lunak Matlab
10
11.2. Pemrograman Komputer Pemrograman di dalam Matlab sangat mudah. Apalagi jika sudah pernah mengenal bahasa pemrograman sebelumnya, seperti Basic atau Pascal. Berikut ini akan ditampilkan program interaktive dalam Matlab M-file (meminta input). Contoh : Seandainya kita memiliki sebuah persamaan posisi mobil pada saat t detik
1 y( t ) V0 t at 2 sin t 2
1.12
di mana V0 adalah kecepatan awal mobil dan a adalah percepatan. Dalam kurun waktu t = 0 sampai dengan t = 10 detik, kita ingin mengetahui posisi mobil berdasarkan masukan kecepatan awal dan percepatan. Langkah pemrograman : Buka New Matlab M-file dengan cara click File, New, M-file. Tulis di dalamnya %Program Posisi Mobil %menurut persamaan y=V0.*t+.5*a.*t.^2.*sin(t) %grafik posisi mobil dari t=0 sampai t=10 clear; close; input('Kecepatan awal V0 = '); V0 = ans; input('Percepatan = '); a = ans; t=linspace(0,10,100); y=V0.*t+.5*a.*t.^2.*sin(t); figure; plot(t,y); grid; xlabel('waktu t detik'); ylabel('posisi y meter'); temptext=['Grafik posisi mobil, V0=',int2str(V0),', a=',int2str(a)]; title(temptext); Kemudian ke File, Save As : mobil.m Setelah kembali ke Matlab command windows, ketik >> mobil Latihan : Praktek ITBU - Ediwan
11
1. Tiga orang telah berbelanja komputer, laptop dan software. Si Anto membeli masing-masing 3, 2 dan 1, Ira membeli 5 komputer dan 3 software dan Toto membeli masing-maing 2, 4 dan 12. Buatlah program perhitungan harga masing-masing barang berdasarkan variabel harga total yang dibayarkan oleh ketiga orang tersebut. Tanyakan kepada user untuk memasukkan nilai x, y dan z yang merupakan harga keseluruhan yang dibayar Anto, Ira dan Toto. Kemudian hitung harga masing-masing barang.
3 2 1 komputer x persamaan matematikanya : 5 0 3 laptop y 2 4 12 software z
11.3. Flow Control Sering kita temui dalam bahasa pemrograman flow control yang mengatur alur dari program yang kita buat. Dalam Matlab ada tiga macam flow control yang sama dengan Pascal, yaitu : 1. For Bentuk umum dari For adalah : for x = array commands end Contoh : for x = 1:10 for y = 10:-1:1 z = sin(x)+cos(y); end; end; 2. While Bentuk umum dari While adalah : While pernyataan commands end Contoh : x = linspace(1,100); pengenalan perangkat lunak Matlab
12
while y < 10 y = sin(x) + x; end; 3. If-else Bentuk umum dari If-else adalah : if pernyataan1 commands dikerjakan apabila pernyataan1 benar elseif pernyataan2 commands dikerjakan apabila pernyataan2 benar else commands dikerjakan apabila tidak ada yang benar end input('Nilai = ');N= ans; if N>=60 disp ('Saudara LULUS'); else disp('Saudara TDK LULUS'); end;
Praktek ITBU - Ediwan
13
Contoh 2: input('harga apel = '); apel = ans; if apel > 2000 diskon = 0.10; else diskon = 0; end; apel = apel * (1-diskon) end; Contoh 3 input('A='); ans; input('A='); A a= =ans; input('B='); b= ans; input('B='); B= ans; input('C='); c = ans; input('C='); C = ans; if a==0 if A==0 X=-c/b X=-C/B else else d=b^2-4*a*c D=B^2-4*A*C; if d<0 if D<0 disp('Imaginer') disp('Imaginer'); else else X1=(-b+sqrt(d))/(2*a) X1=(-B+sqrt(D))/(2*A) X2=(-b-sqrt(d))/(2*a) X2=(-B-sqrt(D))/(2*A) end end; end; clear all; clc; disp('-----------------------'); disp('program latihan 6'); disp('Matlab Programming'); disp('By ITBU'); disp('------------------------'); uts1=input('nilai uts1='); uts2=input('nilai uts2='); uas=input('nilai uas='); na=(uts1*20/100)+(uts2*30/100)+(uas*50/100); disp(['nilai akhir = ' num2str(na)]); if na>80 disp('grade anda=A'); elseif na<=80 & na>70 disp('grade anda=B'); elseif na<=70 & na>60 disp('grade anda=C'); elseif na<=60 & na>50 disp('grade anda=D'); else pengenalan perangkat lunak Matlab
14
disp('grade anda=E'); end;
Latihan : 1. Modifikasi program latihan sebelumnya yaitu tentang harga komputer, laptop dan softaware, jika harga total lebih dari 5 juta, diskon 10 %, jika lebih dari 10 juta, diskon 20 persen dan jika lebih dari 20 juta, diskon 30 persen.
Praktek ITBU - Ediwan
15
11.4. Sedikit tentang GUI (Graphical User Interface) : Matlab selain merupakan sebuah perangkat lunak numerik juga sangat mudah untuk visualisasi. Untuk membantu mempermudah pemrograman dan menjalankan program bagi user, Matlab menyediakan fasilitas GUI atau graphical user interface, semacam window based command. Ada banyak sekali perintah-perintah yang berhubungan dengan GUI ini, yang selengkapnya dapat dilihat di halaman referensi. Contoh : x=linspace(-2*pi,2*pi); continue = 1; while continue == 1 k=menu('pilih grafik : ','sinus','cosinus','tangen','selesai'); if k == 4 continue = 0; end; if continue == 1 if k == 1 plot(x,sin(x)); grid; title('Grafik sinus'); elseif k == 2 plot(x,cos(x)); grid; title('Grafik cosinus'); elseif k == 3 plot(x,tan(x)); grid; title('Grafik tangen'); end; end; end;
Pustaka : 1. Duane Hanselman and Bruce Littlefield, The Student Edition of Matlab : Version 4 User's Guide, The Math Works Inc., Prentice Hall, NJ, 1995. 2. The MATLAB EXPO, An Introduction to MATLAB, SIMULINK@, and the MATLAB Application Toolboxes April 1993 3. Hadi Saadat, 1993, COMPUTATIONAL AIDS IN CONTROL SYSTEM USING MATLAB Milwaukee, WisconsinMcGraw-Hill, Inc 4. Clave Moler, MATLAB User Guide, University New Mexico 5. The MATLAB for DOS Personal Computers, Prentice Hall 6. COMPUTATIONAL AIDS IN CONTROL SYSTEMS Using MATLAB, International Editions 1993 McGraw-Hill, Inc.
pengenalan perangkat lunak Matlab
16
akar.m a=2; b=8; c=3; d=b^2-4*a*c; x1=(-b+sqrt(d))/(2*a) pause x2=(-b-sqrt(d))/(2*a) pause x=[1:1:10]; y=a.*x.^2+b.*x+c; plot(x,y)
Praktek ITBU - Ediwan
17
SIMULINK Kasus matematik
Constant pada souce, SUM pada Math Display pada Sink
pengenalan perangkat lunak Matlab
18
Praktek ITBU - Ediwan
19
pengenalan perangkat lunak Matlab
20
Introduction Simulink (Simulation and Link) is an extension of MATLAB by Mathworks Inc. It works with MATLAB to offer modeling, simulation, and analysis of dynamical systems under a graphical user interface (GUI) environment. The construction of a model is simplified with click-and-drag mouse operations. Simulink includes a comprehensive block library of toolboxes for both linear and nonlinear analyses. Models are hierarchical, which allow using both top-down and bottomup approaches. As Simulink is an integral part of MATLAB, it is easy to switch back and forth during the analysis process and thus, the user may take full advantage of features offered in both environments. This tutorial presents the basic features of Simulink and is focused on control systems as it has been written for students in my control systems course. This tutorial has been written for Simulink v.5 and v.6. Getting Started To start a Simulink session, you'd need to bring up Matlab program first. From Matlab command window, enter: >> simulink Alternately, you may click on the Simulink icon located on the toolbar as shown:
Simulink's library browser window like one shown below will pop up presenting the block set for model construction.
Praktek ITBU - Ediwan
21
To see the content of the blockset, click on the "+" sign at the beginning of each toolbox. To start a model click on the NEW FILE ICON as shown in the screenshot above. Alternately, you may use keystrokes CTRL+N. A new window will appear on the screen. You will be constructing your model in this window. Also in this window the constructed model is simulated. A screenshot of a typical working (model) window is shown below:
pengenalan perangkat lunak Matlab
22
To become familiarized with the structure and the environment of Simulink, you are encouraged to explore the toolboxes and scan their contents. You may not know what they are all about at first, but perhaps you could catch on the organisation of these toolboxes according to their categories. For instance, you may see that the Control System toolbox consists of the Linear Time Invariant (LTI) system library and the MATLAB functions can be found under Function and Tables of the Simulink main toolbox. A good way to learn Simulink (or any computer program in general) is to practice and explore. Making mistakes is part of the learning curve. So, fear not you should be! A simple model is used here to introduce some basic features of Simulink. Please follow the steps below to construct a simple model. STEP 1: CREATING BLOCKS. From BLOCK SET CATEGORIES section of the SIMULINK LIBRARY BROWSER window, click on the "+" sign next to the Simulink group to expand the tree and select (click on) Sources.
A set of blocks will appear in the BLOCKSET group. Click on the Sine Wave block and drag it to the workspace window (also known as model window).
Praktek ITBU - Ediwan
23
Now you have established a source of your model. NOTE: It is advisable that you save your model at some point early on so that if your PC crashes you wouldn't loose too much time reconstructing your model. This is among the reasons why I prefer Linux or Unix! I am going to save this model under the filename: "simexample1". To save a model, you may click on the floppy diskette icon . or from FILE menu, select Save or using keystrokes CTRL+S. All Simulink model file will have an extension ".mdl". Simulink recognises file with .mdl extension as a simulation model (similar to how MATLAB recognises files with the extension .m as an MFile). Continue to build your model by adding more components (or blocks) to your model window. We'll continue to add a Scope from Sinks library, an Integrator block from Continuous library, and a Mux block from Signal Routing library. NOTE: If you wish to locate a block knowing its name, you may enter the name in the SEARCH WINDOW (at Find prompt) and Simulink will bring up the specified block. To move the blocks around, simply click on it and drag it to a desired location. Once you've dragged over all necessary blocks, the workspace window should consist of the following components:
pengenalan perangkat lunak Matlab
24
You may remove (delete) a block by simply clicking on it once to turn on the "select mode" (with four corner boxes) and use the DEL key or keys combination CTRL-X. STEP 2: MAKING CONNECTIONS To establish connections between the blocks, move the cursor to the output port represented by ">" sign on the block. Once placed at a port, the cursor will turn into a cross "+" enabling you to make connection between blocks. To make a connection: left-click while holding down the control key (on your keyboard) and drag from source port to a destination port. The connected model is shown below.
A sine signal is generated by the Sine Wave block (a source) and is displayed by the scope. The integrated sine signal is sent to scope for display along with the original signal from the source via the Mux, whose function is to mutiplex signals in form of scalar, vector, or matrix into a bus. STEP 3: RUNNING SIMULATION You now may run the simulation of the simple system above by clicking on the play button . Alternately, you may use keystrokes CTRL+T, or choose Start submenu (under Simulation menu). Praktek ITBU - Ediwan
25
Double click on the Scope block to display of the scope.
To view/edit the parameters, simply double click on the block of interest. Handling of Blocks and Lines The table below describes the actions and the corresponding keystrokes or mouse operations (Windows versions).
Annotations
pengenalan perangkat lunak Matlab
26
To add an annotation to your model, place the cursor at an unoccupied area in your model window and double click (left button). A small rectangular area will appear with a cursor prompting for your input. To delete an annotation, hold down the SHIFT key while selecting the annotation, then press the DELETE or BACKSPACE key. You may also change font type and colour from FORMAT menu. Make sure that the block is selected before making the change.
Praktek ITBU - Ediwan