Tutorial MATLAB 2

32
Dasar Dasar Pemrograman MATLAB untuk Teknik Elektro Ansar Suyuti 9 BAB II OPERATOR DAN FUNGSI DASAR MATEMATIS 2.1 Operator Aritmetik Operator aritmetik adalah simbol-simbol yang digunakan untuk maksud operasi numerik. MATLAB menyediakan operator aritmatik dasar berikut : Operasi Simbol Contoh Penambahan a+b + 15+10 Pengurangan, a-b - 15-10 Perkalian, a.b * 15*10 Pembagian, a: b / atau \ 15/10=10\15 Pemangkatan, a b ^ 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 + + 1 ) 1 ( ) 1 ( N N I I I , untuk P=1000, I=12% dan N=10 » 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

description

toras

Transcript of Tutorial MATLAB 2

Page 1: Tutorial MATLAB 2

Dasar Dasar Pemrograman MATLAB untuk Teknik Elektro

Ansar Suyuti 9

BAB II OPERATOR DAN FUNGSI DASAR MATEMATIS 2.1 Operator Aritmetik Operator aritmetik adalah simbol-simbol yang digunakan untuk maksud operasi numerik. MATLAB menyediakan operator aritmatik dasar berikut :

Operasi Simbol Contoh Penambahan a+b + 15+10 Pengurangan, a-b - 15-10 Perkalian, a.b * 15*10 Pembagian, a: b / atau \ 15/10=10\15 Pemangkatan, 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⎥⎥⎦

⎢⎢⎣

−+

+

1)1(

)1(N

N

I

II , untuk P=1000, I=12% dan N=10

» 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

Page 2: Tutorial MATLAB 2

Operator dan Fungsi Dasar Matematis

Ansar Suyuti 10

2.2 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. 2.2.1 Operator Relasi Operator relasi MATLAB terdiri dari :

Operator relasi Deskripsi < <= > >= = ~=

Kurang dari Kurang dari atau sama dengan Lebih dari Lebih dari atau sama dengan Sama dengan Tidak 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-A A = 1 2 3 4 5 6 7 8 9 B = 8 7 6 5 4 3 2 1 0 » tf=A>4 tf = 0 0 0 0 1 1 1 1 1 » tf=(A==B) tf = 0 0 0 0 0 0 0 0 0

2.2.2 Operator Logika Operator logika menyediakan cara untuk menggabung ekspresi logika. Operator logika terdiri dari :

Operator Logika Deskripsi & | ~

AND OR NOT

Page 3: Tutorial MATLAB 2

Dasar Dasar Pemrograman MATLAB untuk Teknik Elektro

Ansar Suyuti 11

Contoh penggunaan :

» A=1:9; b=9-A; » tf=A>4 tf = 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&y z2 = 1 1 0 0 » z3=x|y z3 = 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

2.3 Fungsi-fungsi Dasar Matematis Sebagian dari fungsi-fungsi dasar matematis yang dimiliki MATLAB dapat dilihat berikut :

Page 4: Tutorial MATLAB 2

Operator dan Fungsi Dasar Matematis

Ansar Suyuti 12

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 kompleks invers cosinus invers cosinus hiperbolik sudut pada suatu bilangan kompleks invers sinus invers sinus hiperbolik invers tangen invers tangen empat kuadran invers tangen hiperbolik pembulatan ke arah plus tak berhingga konjuget bilangan kompleks cosinus cosinus hiperbolik eksponensial pembulatan ke arah nol pembulatan ke arah minus tak berhingga faktor persekutuan terbesar bilangan bulat x dan y bilangan imajiner kelipatan persekutuan terkecil bilangan bulat x dan y logaritma natural logaritma biasa bagian real suatu bilangan kompleks sisa pembagian x dibagi y pembulatan ke arah bilangan bulat terdekat menghasilkan tanda dari argumen sinus sinus hiperbolik akar kuadrat tangen

contoh : carilah nilai V(t)= A sin wt +30o, dimana A=10 dan t=1,2,3,4,5

» 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

Page 5: Tutorial MATLAB 2

Dasar Dasar Pemrograman MATLAB untuk Teknik Elektro

Ansar Suyuti 13

Fungsi dasar MATLAB

exp log log10 sqrt abs angle conj imag real fix floor ceil round mod rem sign

exponensial logaritma natural logaritma biasa (basis 10) akar kuadrat harga mutlak sudut fasa kompleks konjugate bagian imajiner bilangan kompleks bagian real bilangan kompleks membulatkan ke arah nol membulatkan ke arah minus tak terhingga membulatkan ke arah plus tak terhingga membulatkan ke arah bilangan bulat terdekat modulus (sisa pembagian) pembagian bilangan bulat tanda bilangan

Contoh :

» x=exp(-0.2696*.2)*sin(2*pi*0.2)/(0.01*sqrt(3)*log(18)) x = 18.0001

2.4 Format output dan input numerik 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 angka yang ditampilkan, bukan bagaimana MATLAB menghitung atau menyimpannya.

MATLAB COMMAND

Average_Cost Keterangan

Format short 50.833 5 digits Format long 50.83333333333334 16 digits Format short e 5.0833e+01 5 digits plus exponent Format long e 5.083333333333334e+01 16 digits plus exponent Format short g 50.833 Better of format short or

format short e Format long g 50.83333333333333 Better of format longt or

format long e Format hex 40496aaaaaaaaaab Hexadecimal Format bank 50.83 2 decimal digits Format + + Positive, negative, or zero Format rat 305/6 Rational approximation

Page 6: Tutorial MATLAB 2

Operator dan Fungsi Dasar Matematis

Ansar Suyuti 14

Untuk lebih fleksibelnya dalam format output, MATLAB menyediakan fungsi fprintf untuk menampilkan hasil/output dri program. Beberapa format 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 penggunaan fprintf

» fprintf('Luas= %7.3f meter per segi \n',pi*10^2) Luas= 314.159 meter per segi

Format %7.3f, menunjukkan format bilangan desimal tujuh angka dengan tiga angka dibelakang koma. Sedangkan /n untuk baris baru. Contoh lain untuk membuat format dalam bentuk tabel

» 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.00 50 13.00

Pada M-file input nilai vriabel dapat dilakukan dari keyboard dengan menggunakan perintah input Contoh : R=input ('Masukkan Harga barang =') Maka dilayar akan muncul tulisan

Page 7: Tutorial MATLAB 2

Dasar Dasar Pemrograman MATLAB untuk Teknik Elektro

Ansar Suyuti 15

Masukkan Harga barang = Jika diketik dari keyboard 10000, Maka hasil yang diperoleh adalah R = 10000 Contoh 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),' = '])*pi/180; N(i)=M*exp(j*A); disp(' '); else R=input(['Real ',num2str(i),' = ']); I=input(['Imag ',num2str(i),' = ']); N(i)=R+j*I; disp(' '); end end P=N(1); for k=2:jumlah; P=P*N(k); end disp(' '); disp(['HASIL PERKALIAN = ' num2str(real(P)) ' +j '... num2str(imag(P)) ' = ' num2str(abs(P)) '|_'... num2str(angle(P)*180/pi) ' derajat']); Hasil program yang ditampilkan dari command window MATLAB adalah

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 = 1 Nilai 1 = 10 Sudut 1 = 90 Jenis 2 ketik 1 jika polar 2 jika rectanguler = 1 Nilai 2 = 10 Sudut 2 = 90 HASIL PERKALIAN = -100 +j 1.2246e-014 = 100|_180 derajat

Page 8: Tutorial MATLAB 2

Operator dan Fungsi Dasar Matematis

Ansar Suyuti 16

II. OPERASI ARRAY DAN MATRIK 2.1 Array Sederhana Untuk menghitung nilai fungsi sinus pada priode pertama, y=sin(x) ; π≤≤ x0 . Kita mencoba membuat suatu tabel atau array untuk menghitung ni x dan y seperti dibawah ini :

x 0 .1π .2π .3π .4π .5π .6π .7π .8π .9π πy 0 .31 .59 .81 .95 1.0 .95 .81 .59 .31 0

Nilai pertama y berkaitan dengan nilai pertama x, nilai kedua y berkaitan nilai kedua x, dst. MATLAB menangani array secara intuitif. Pembuatan array dilakukan dengan mudah-cukup dengan mengikuti struktur tabel di atas. » x=[0.1*pi .2*pi .3*pi .4*pi .5*pi .6*pi .7*pi .8*pi .9*pi pi] x = Columns 1 through 7 0.3142 0.6283 0.9425 1.2566 1.5708 1.8850 2.1991 Columns 8 through 10 2.5133 2.8274 3.1416 » y=sin(x) y = Columns 1 through 7 0.3090 0.5878 0.8090 0.9511 1.0000 0.9511 0.8090 Columns 8 through 10 0.5878 0.3090 0.0000 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. Karena spasi memisahkan elemen-elemen array, bilangan kompleks yang dimasukkan sebagai elemen array tidak dapat memuat spasi kecuali ditutup dengan kurung. 2.2 Pengalamatan Array array x di atas mempunyai 11 elemen yang dipisahkan dalam kolom-kolom, dengan demikian dapat dikatakan bahwa array tersebut array satu kali sebelas atau suatu array dengan panjang 11. Dalam MATLAB, elemen-elemen array diakses menggunakan subscript; misalnya x(1) adalah elemen pertama x, x(2) adalah elemen kedua x, dst. Contoh : » x(3) ans = 0.9425 » y(3) ans = 0.8090

Page 9: Tutorial MATLAB 2

Dasar Dasar Pemrograman MATLAB untuk Teknik Elektro

Ansar Suyuti 17

Untuk mengakses suatu blok elemen, MATLAB menyediakan notasi kolom » x(1:7) ans = 0.3142 0.6283 0.9425 1.2566 1.5708 1.8850 2.1991 elemen-elemen di atas adalah elemen pertama sampai elemen ke 7 » x(7:end) ans = 2.1991 2.5133 2.8274 3.1416 mulai dari elemen ke 7 sampai elemen terakhir. Kata End berarti elemen terakhir dalam array x. » x(3:-1:1) ans = 0.9425 0.6283 0.3142 elemen-elemen di atas adalah elemen ke 3, ke 2 dan pertama dalam urutan ke bawah 3:-1:1 berarti " mulai dari kolom 3, hitung turun satu-satu, dan berhenti saat 1. » x(2:3:9) ans = 0.6283 1.5708 2.5133 elemen-elemen di atas adalah elemen ke 2, ke 5 dan ke 8. 2:3:9 berarti " muali dari 2, hitung ke atas dengan penambahan 3, dan berhenti setelah mencapai 9. x([8 2 9 1]) ans = 2.5133 0.6283 2.8274 0.3142 disini kita gunakan [8 2 9 1 ] untuk mengambil elemen-elemen array x dalam urutan sebagaimana yang dituliskan dalam kurung kotak. 2.3 Pembentukan array Seperti yang telah dilakukan sebelumnya dengan memasukkan nilai-nilai x dengan mengetikkan tiap elemen x. Hal ini akan membuat kita repot jika elemen dari array cukup banyak, maka MATLAB menyediakan cara lain untuk memasukkan nilai-nilai dalam array. » x=(0:0.1:1)*pi x = Columns 1 through 7 0 0.3142 0.6283 0.9425 1.2566 1.5708 1.8850 Columns 8 through 11 2.1991 2.5133 2.8274 3.1416 » x=linspace(0,pi,11) x = Columns 1 through 7 0 0.3142 0.6283 0.9425 1.2566 1.5708 1.8850 Columns 8 through 11 2.1991 2.5133 2.8274 3.1416

Page 10: Tutorial MATLAB 2

Operator dan Fungsi Dasar Matematis

Ansar Suyuti 18

Dalam kasus pertama, notasi kolom (0:0.1:1) menciptakan array yang dimulai dengan 0, meningkat setiap 0.1 dan berhenti pada 1. Setiap elemen ini array ini kemudian dikalikan dengan π untuk menciptakan nilai yang diinginkan dalam x. Dalam kasus ke dua, fungsi linespace digunakan untuk menciptakan x. Linspace(nilai_awal, nilai_akhir,jumlah_elemen) Kedua cara pembentukan array di atas membentuk array dengan setiap elemennya berjarak linier terhadap elemen yang lain. Untuk kasus-kasus khusus dimana jarak logaritma diperlukan, MATLAB menyediakan fungsi logspace: » logspace(0,2,11) ans = Columns 1 through 7 1.0000 1.5849 2.5119 3.9811 6.3096 10.0000 15.8489 Columns 8 through 11 25.1189 39.8107 63.0957 100.0000 Di atas kita membuat array dimulai 100, diakhiri dengan 102, memuat sebelas elemen. Argumen fungsi didefisikan sebagai Logspace(eksponen_awal, eksponen_akhir, jumlah_elemen) Kadang-kadang diperlukan suatu array yang elemen-elemennya tidak berjarak linier atau logaritmis dengan elemen-elemen lain. » a=1:5,b=1:2:9 a = 1 2 3 4 5 b = 1 3 5 7 9 » a=1:5,b=1:2:9 a = 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 2.4 Orientasi Array Karena fungsi-fungsi array yang telah dibahas sebelumnya semua membentuk vektor baris, maka dbutuhkan suatu cara untuk membentuk vektor kolom. » c=[1;2;3;4;5] c = 1

Page 11: Tutorial MATLAB 2

Dasar Dasar Pemrograman MATLAB untuk Teknik Elektro

Ansar Suyuti 19

2 3 4 5 dengan memisahkan elemen dengan titik koma. memisahkan elemen dengan spasi atau koma membuat elemen berada dalam kolom yang berbeda, sedangkan memisahkan elemen dengan titik koma membuat elemen berada dalam baris yang berbeda. Cara lain adalah dengan membentuk vektor baris kemudian ditransfose MATLAB (') » b=a' b = 1 2 3 4 5 » c=b' c = 1 2 3 4 5 MATLAB juga menyediakan transpose dengan diawali titik. 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. » c=a.' c = 1 2 3 4 5 menunjukkan bahwa .' dan ' identik jika diterapkan pada bilangan real. » d=a+i*a d = Columns 1 through 4 1.0000 + 1.0000i 2.0000 + 2.0000i 3.0000 + 3.0000i 4.0000 + 4.0000i Column 5 5.0000 + 5.0000i » c=d' c = 1.0000 - 1.0000i 2.0000 - 2.0000i 3.0000 - 3.0000i 4.0000 - 4.0000i 5.0000 - 5.0000i

Page 12: Tutorial MATLAB 2

Operator dan Fungsi Dasar Matematis

Ansar Suyuti 20

» e=d.' e = 1.0000 + 1.0000i 2.0000 + 2.0000i 3.0000 + 3.0000i 4.0000 + 4.0000i 5.0000 + 5.0000i pada c=d' menciptakan vektor c yang merupakan transpose konjugate kompleks dari d, sedangkan e=d.' menciptakan vektor e yang merupakan transpose d. Jika suatu array dapat berupa vektor baris atau vektor kolom, wajarlah jika array dapat juga mempunyai banyak baris maupun banyak kolom. Artinya array dapat mengambil bentuk berupa matriks. » g=[1 2 3;4 5 6] g = 1 2 3 4 5 6 » g=[1 2 3 4 5 6] g = 1 2 3 4 5 6 selain titik koma, menekan tombol Return atau Enter saat memasukkan nilai matriks juga dapat membuat baris baru. Operasi Array-Skalar Penambahan, pengurangan , perkalian dan pembagian dengan skalar dapat dikenakan pada semua elemen array. » h=g-2 h = -1 0 1 2 3 4 » i=g*2-1 i = 1 3 5 7 9 11 » j=g/2 j = 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000 Operasi Array-Array Jika dua array mempunyai dimensi yang sama, penambahan, pengurangan, perkalian dan pembagian berlaku pada elemen ke elemen

Page 13: Tutorial MATLAB 2

Dasar Dasar Pemrograman MATLAB untuk Teknik Elektro

Ansar Suyuti 21

» g=[1 1 1 1;2 2 2 2;3 3 3 3] g = 1 1 1 1 2 2 2 2 3 3 3 3 » h=[4 4 4 4;5 5 5 5;6 6 6 6] h = 4 4 4 4 5 5 5 5 6 6 6 6 » j=g+h j = 5 5 5 5 7 7 7 7 9 9 9 9 » k=g-h k = -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 » l=2*g-h l = -2 -2 -2 -2 -1 -1 -1 -1 0 0 0 0 » m=g.*h m = 4 4 4 4 10 10 10 10 18 18 18 18 » n=g*h ??? Error using ==> * Inner matrix dimensions must agree. Disini kita mengalikan elemen-elemen yang seletak dari g dan h dengan menggunakan simbol perkalian titik (.*). Titik yang mendahului simbol perkalian memberitahu MATLAB untuk melakukan perkalian elemen ke elemem. Perkalian tanpa titik berarti perkalian matriks. » o=g./h o = 0.2500 0.2500 0.2500 0.2500 0.4000 0.4000 0.4000 0.4000 0.5000 0.5000 0.5000 0.5000

Page 14: Tutorial MATLAB 2

Operator dan Fungsi Dasar Matematis

Ansar Suyuti 22

» p=h.\g p = 0.2500 0.2500 0.2500 0.2500 0.4000 0.4000 0.4000 0.4000 0.5000 0.5000 0.5000 0.5000 Seperti yang berlaku pada skalar, pembagian dapat menggunakan garis miring kiri atau miring kanan. » s=g.^(h-2) s = 1 1 1 1 8 8 8 8 81 81 81 81 Array dengan elemen satu dan nol Karena banyak dipergunakan, MATLAB menyediakan fungsi untuk membuat array yang semua elemennya satu atau nol. » 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(size(g)) ans = 1 1 1 1 1 1 1 1 1 1 1 1 2.5 Memanipulasi Array Karena array dan matriks merupakan hal mendasar dalam MATLAB, maka terdapat banyak cara untuk memanipulasinya. » A=[1 2 3;4 5 6;7 8 9] A = 1 2 3 4 5 6

Page 15: Tutorial MATLAB 2

Dasar Dasar Pemrograman MATLAB untuk Teknik Elektro

Ansar Suyuti 23

7 8 9 » A(3,3)=0 A = 1 2 3 4 5 6 7 8 0 mengubah A(3,3) menjadi nol » A(2,6)=1 A = 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. » A(:,4)=4 A = 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 menciptakan matriks B dengan urutan 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 =

Page 16: Tutorial MATLAB 2

Operator dan Fungsi Dasar Matematis

Ansar Suyuti 24

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 » B=A B = 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.

Page 17: Tutorial MATLAB 2

Dasar Dasar Pemrograman MATLAB untuk Teknik Elektro

Ansar Suyuti 25

III OPERASI MATRIKS 3.1 Himpunan Persamaan Linier Semula MATLAB diciptakan untuk menyederhanakan komputasi matriks dan aljabar linier yang terdapat di berbagai aplikasi. Contoh :

A. x = b Dalam MATLAB perkalian matriks dilambangkan asterik (*). Jika terdapat suatu penyelesaian, maka juga terdapat beberapa metode untuk menyelesaikannya, seperti eliminasi gaus, faktorisasi LU, atau penggunaan langsung dari A-1. secara analisis, penyelesaian ditulis sebagai x = A-1.b. Untuk menyelesaikan masalah tersebut di atas diperlukan cara untuk memasukkan A dan b. » 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 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 linier tersebut dapat diselesai dengan tiga cara :

⎥⎥⎥

⎢⎢⎢

⎡=

⎥⎥⎥

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

351804366

321

.087654321

xxx

Page 18: Tutorial MATLAB 2

Operator dan Fungsi Dasar Matematis

Ansar Suyuti 26

Cara I, dengan menggunakan invers matriks » x=inv(A)*b x = 25.0000 22.0000 99.0000 Cara II, dengan menggunakan operasi pembagian matriks » x=A\b x = 25.0000 22.0000 99.0000 Cara III, dengan menggunakan factorisasi 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

Page 19: Tutorial MATLAB 2

Dasar Dasar Pemrograman MATLAB untuk Teknik Elektro

Ansar Suyuti 27

D = -0.3884 0 0 0 12.1229 0 0 0 -5.7345 atau » eig(A) ans = -0.3884 12.1229 -5.7345 3.2 Fungsi-fungsi Matriks yang umum digunakan det (A) determinan d=eig(A) Nilai eigen [V,D] = eig(A) nilai eigen dan eigen vektor expm(A) pemangkatan matriks inv(A) invers matriks lu(A) faktor dari eliminasi gaus orth(A) ortognalisasi pinv(A) pseudoinvers poly(A) karakteristik polynomial polyeig(A1,A2,..) menyelesaikan masalah nilai eigen polinomial sqrtm(A) akar kuadrat matriks svd(A) dekomposisi nilai singular trace(A) jumlah elemen-elemen diagonal 3.3 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 3.1416 3.1416 3.1416 » eye(3) % matriks identitas

Page 20: Tutorial MATLAB 2

Operator dan Fungsi Dasar Matematis

Ansar Suyuti 28

ans = 1 0 0 0 1 0 0 0 1 Contoh; carilah nilai v dan gambar nilai yang diperoleh.

⎥⎥⎥

⎢⎢⎢

⎡−=

⎥⎥⎥

⎢⎢⎢

⎥⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢⎢

+−

−−++−

001

321

.

101

101

1010

101

1012.0

21

21

021

21

vvv

jj

jjj

kita dapat menyelesaikan dengan MATLAB dalam M-File : % pl1.m nama proram clear A(1,1)=1/2; A(1,2)=-1/2; A(2,1)=-1/2; A(2,2)=1/2+0.2j+1/10j; A(2,3)=-1/10j; A(3,2)=-1/10j; A(3,3)=1/10+1/10j; y=[-1 0 0]'; % Penyelesaian persamaan v=A\y vmag=abs(v) sudutv=angle(v)*180/pi % menggambar hasil terhadap waktu theta=linspace(0,2*pi); v1=vmag(1)*cos(theta-sudutv(1)); v2=vmag(2)*cos(theta-sudutv(2)); v3=vmag(3)*cos(theta-sudutv(3)); thd=theta*180*pi;

Page 21: Tutorial MATLAB 2

Dasar Dasar Pemrograman MATLAB untuk Teknik Elektro

Ansar Suyuti 29

plot(thd,v1,thd,v2,thd,v3); jika program tersebut dijalankan, hasilnya seperti dibawah ini ; » pl1 v = -4.0000 + 6.0000i -2.0000 + 6.0000i 2.0000 + 4.0000i vmag = 7.2111 6.3246 4.4721 sudutv = 123.6901 108.4349 63.4349

0 5 0 0 1 0 0 0 1 5 0 0 2 0 0 0 2 5 0 0 3 0 0 0 3 5 0 0 4 0 0 0-8

-6

-4

-2

0

2

4

6

8

Page 22: Tutorial MATLAB 2

Operator dan Fungsi Dasar Matematis

Ansar Suyuti 30

IV. OPERASI RELASI DAN LOGIKA & KONTROL PROGRAM Matlab menyediakan operasi logika dan relasi. 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. 4.1 Operator Relasi Operator relasi MATLAB terdiri semua perbandingan :

Operator relasi Deskripsi < <= > >= = ~=

Kurang dari Kurang dari atau sama dengan Lebih dari Lebih dari atau sama dengan Sama dengan Tidak 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 ; » A=1:9,B=9-A A = 1 2 3 4 5 6 7 8 9 B = 8 7 6 5 4 3 2 1 0 » tf=A>4 tf = 0 0 0 0 1 1 1 1 1 » tf=(A==B) tf = 0 0 0 0 0 0 0 0 0 » x=(-3:3)/3 x = -1.0000 -0.6667 -0.3333 0 0.3333 0.6667 1.0000 » sin(x)./x Warning: Divide by zero. ans = 0.8415 0.9276 0.9816 NaN 0.9816 0.9276 0.8415 kita bandingkan » x=x+(x==0)*eps x =

Page 23: Tutorial MATLAB 2

Dasar Dasar Pemrograman MATLAB untuk Teknik Elektro

Ansar Suyuti 31

-1.0000 -0.6667 -0.3333 0.0000 0.3333 0.6667 1.0000 » sin(x)./x ans = 0.8415 0.9276 0.9816 1.0000 0.9816 0.9276 0.8415 4.2 Operator Logika Operator logika menyediakan cara untuk menggabung eksperi logika. Operator logika terdiri dari :

Operator Logika Deskripsi & | ~

AND OR NOT

» A=1:9; b=9-A; » tf=A>4 tf = 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 4.3 KONTROL PROGRAM Kontrol program sangat penting karena memungkinkan komputasi-komputasi yang lalu mempengaruhi komputasi yang akan datang. MATLAB menyediakan empat struktur pengambilan keputusan atau struktur kontrol program, yaitu : loop for, loop while, if-else-end, dan swicth-case. 4.3.1 Loop for Loop for memungkinkan sekelompok perintah diulang sebanyak suatu jumlah yang tetap. Bentuk umum dari loop for adalah For x = array Perintah-perintah end contoh; for n=1:10 x(n)=sin(n*pi/10) end x =

Page 24: Tutorial MATLAB 2

Operator dan Fungsi Dasar Matematis

Ansar Suyuti 32

Columns 1 through 7 0.3090 0.5878 0.8090 0.9511 1.0000 0.9511 0.8090 Columns 8 through 10 0.5878 0.3090 0.0000 » data=[3 9 45 6;7 16 -1 5] data = 3 9 45 6 7 16 -1 5 » for n=data x=n(1)-n(2) end x = -4 x = -7 x = 46 x = 1 loop for dapat dibuat didalam loop for yang lain ; » for n=1:5 for m=5:-1:1 A(n,m)=n^2+m^2; end; disp(n) end 1 2 3 4 5 » A A = 2 5 10 17 26 5 8 13 20 29 10 13 18 25 34 17 20 25 32 41 26 29 34 41 50 » n=1:10; » x=sin(n*pi/10) x = Columns 1 through 7 0.3090 0.5878 0.8090 0.9511 1.0000 0.9511 0.8090 Columns 8 through 10 0.5878 0.3090 0.0000 4.3.2 Loop While

Page 25: Tutorial MATLAB 2

Dasar Dasar Pemrograman MATLAB untuk Teknik Elektro

Ansar Suyuti 33

Loop while mengerjakan sekelompok perintah yang diulang secara tidak terbatas. Bentuk umum loop while adalah ; while ekspresi Perintah-perintah end perintah-perintah yang terdapat di antara while dan end dieksekusi berulang kali selama semua elemen dalam ekspresi adalah benar. » a=0; k=1; » while (1+k)>1 k=k/2; a=a+1; end » a a = 53 atau k/10 diperoleh » a=0;k=1; » while(1+k)>1 k=k/10; a=a+1; end » a a = 16 4.3.3 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 eksperesi else perintah… jika tidak memenuhi ekspresi (salah) end Jika terdapat 3 atau lebih pilihan if-else-end :

Page 26: Tutorial MATLAB 2

Operator dan Fungsi Dasar Matematis

Ansar Suyuti 34

elseif ekspresi1 Perintah.. jika ekspresi1 benar elseif ekspresi2 Perintah.. jika ekspresi2 benar elseif ekspresi3 Perintah.. jika ekspresi3 benar elseif… else perintah.. dikerjakan jika tak ada ekspresi benar end for k = 1:10; if k<3 b=k+1; elseif k<5 c=k+1; elseif k<7 d=k+1; else e=k+1 end; end; » b,c,d,e b = 3 c = 5 d = 7 e = 11 a=0;b=0;c=0;d=0; for k = 1:10; if k<3 a=a+1; elseif k<5 b=b+1; elseif k<7 c=c+1; else d=d+1; end; end; » pl3 » a,b,c,d

Page 27: Tutorial MATLAB 2

Dasar Dasar Pemrograman MATLAB untuk Teknik Elektro

Ansar Suyuti 35

a = 2 b = 2 c = 2 d = 4 4.3.4 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 x=2.7; units='m' switch units case {'inchi','in'} %konversi ke inchi y=x*2.54 case{'feet','ft'} % konversi ke feet y=x*2.54*12 case{'meter','m'} % konversi ke meter y=x/100 case{'milimeter','mm'} y=x*10 case{'centimeter','cm'} y=x otherwise disp(['unit tidak diketahui :' units]) y=nan end; » pl4 units = m y = 0.0270

Page 28: Tutorial MATLAB 2

Operator dan Fungsi Dasar Matematis

Ansar Suyuti 36

V. AKAR-AKAR DAN KARAKTERISTIK POLINOMIAL 5.1 Akar-akar Polynomial Mencari akar suatu polinomial merupakan suatu masalah tersendiri muncul dalam berbagai bidang ilmu. MATLAB menyediakan fungsi roots untuk mencari akar polinomial, sedngan akar-akar polinimial yang diperoleh dapat dikonversi kedalam persamaan awal dengan fungsi poly. Contoh :

1575.1475.6725.6125.319 23456 ++++++ ssssss akar-akar dapat diperoleh dengan menggunakan fungsi roots: » 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 -1.0000 + 2.0000i -1.0000 - 2.0000i 0.0000 + 0.5000i

0.0 - 0.5000i

akar-akar polinomial tersebut dapat dikonversi ke coefisient polinomial dengan fungsi poly(r): » poly(r) ans = 1.0000 9.0000 31.2500 61.2500 67.7500 14.7500 15.0000 Contoh lain : » 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 :

Page 29: Tutorial MATLAB 2

Dasar Dasar Pemrograman MATLAB untuk Teknik Elektro

Ansar Suyuti 37

05087459 234 =++++ ssss MATLAB juga juga dapat mencari akar karaktristik persamaan polinomial dalam bentuk matriks :

A=

⎥⎥⎥

⎢⎢⎢

−−−−

51166116110

Karakteristik persamaan dari matriks tersebut dapat diperoleh fungsi poly dan akar-akar persamaan diperoleh dengan fungsi roots: » 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 5.2 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 :

1272 ++= ssA dan 92 += sB carilah C=A.B , D=C+B dan E=C-B

Page 30: Tutorial MATLAB 2

Operator dan Fungsi Dasar Matematis

Ansar Suyuti 38

5281379 234 ++++= ssssA dan 1342 ++= ssY carilah YZX =

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+B E=A-B X=deconv(Z,Y) Hasil dari program adalah : C = 1 7 21 63 108 D = 2 7 21 E = 0 7 3 X = 1 5 4 5.3 Turunan Turunan polinomial dapat dilakukan dengan menggunakan fungsi polyder.

5281379 234 ++++= ssssA turunan dari polinomial A adalah: » A=[1 9 37 81 52]; » polyder(A) ans = 4 27 74 81 5.4 Polynomial Curve Fitting

ndd cxcxcxp +++= − ....)( 1

21 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 10 Y= 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];

Page 31: Tutorial MATLAB 2

Dasar Dasar Pemrograman MATLAB untuk Teknik Elektro

Ansar Suyuti 39

» c = polyfit(x,y,3) c = 1.0000 2.0000 3.0000 1.0000 5.5 Evaluasi Polinomial Evaluasi polinomial dapat dilakukan dengan fungsi polyval(c,x). Contoh, kita ingin mengevaluasi polynomianl 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')

0 0 . 5 1 1 . 5 2 2 . 5 3 3 . 5 40

2 0

4 0

6 0

8 0

1 0 0

1 2 0x 3 + 2 x 2 + 3 x + 1

5.6 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].

011

1

011

1

......

)()(

asasasabsbsbsb

sQsP

nn

nn

mm

mm

++++++++

= −−

−−

Vector b dan a merupakan koefisien dari polinomial. Contoh, Hitunglah partial fraction expantion dari :

Page 32: Tutorial MATLAB 2

Operator dan Fungsi Dasar Matematis

Ansar Suyuti 40

44192)( 23

3

+++++

=sss

sssF

Penyelesaian dengan MALAB adalah » b=[2 0 9 1]; » a=[1 1 4 4]; » [r,p,K]=residue(b,a) r = 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

41

12225.0

225.0

122 2 +

++−

+=−

−+

−+

+−

+ssjs

jjs

js

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