21
BAGIAN II : PROGRAM APLIKASI MATLAB MODUL IV Penulisan Vektor dan Matriks BAB III 1

ameliyawati.files.wordpress.com …  · Web viewAx = b : x≥0 (4.1) Dimana . z. adalah fungsi tujuan, A . adalah matriks teknologi, x. adalah variabel keputusan, dan . b. ... 06/25/2012

  • Upload
    trannga

  • View
    223

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ameliyawati.files.wordpress.com …  · Web viewAx = b : x≥0 (4.1) Dimana . z. adalah fungsi tujuan, A . adalah matriks teknologi, x. adalah variabel keputusan, dan . b. ... 06/25/2012

BAGIAN II : PROGRAM APLIKASI MATLAB

MODUL IV

Penulisan Vektor dan Matriks

BAB III

MATRIKS

1.1. Penulisan Vektor Dan Matriks

1

Page 2: ameliyawati.files.wordpress.com …  · Web viewAx = b : x≥0 (4.1) Dimana . z. adalah fungsi tujuan, A . adalah matriks teknologi, x. adalah variabel keputusan, dan . b. ... 06/25/2012

Pada Bagian I telah disebutkan bahwa type data pada MATLAB berbentuk array sehingga berguna untuk menyelesaikan permasalahan yang berbentuk vektor atau matriks. Pada bagian ini akan dijelaskan mengenai cara penulisan vektor dan matriks pada MATLAB.

3.1.1 Penulisan VektorPenulisan vektor dalam MATLAB dapat ditulis sebagai berikut

>> a = [1,2,3,4]Dan setelah menekan tombol enter akan diperoleh hasil sebaga berikut

>> a = 1 2 3 4

Atau dapat pula menuliskan bentuk vektor sebagai berikut>> b = [1 2 3 4]>> b =

1 2 3 4Untuk menuliskan vektor dalam bentuk kolom dapat ditulis sebagai berikut

>> c = [1;2;3]>> c =

123

Atau dapat ditulis dengan bentuk seperti ini>> d = [123]>> d =

123

Untuk penulisan dengan bentuk ini setiap kali akan pindah baris terlebih dahulu menekan tombol shift+enter. Dalam MATLAB juga terdapat syntax untuk mengetahui jumlah element dalam suatu vektor, berikut ini adalah syntax-nya

>> a = [1,2,3]; % penulisan “;” tidak menampilkan hasil>> length(a) >> ans =

3Sedangkan untuk menampilkan element ke-i dari suatu vektor dapat ditulis syntax sebagai berikut

>> a = [1,2,3]; >> a(1) % menampilkan element ke-1 vektor a>> ans =

2>> a(2:3) % menampilkan element ke-2 s.d ke-3 vektor a>> ans =

2 3Di samping penulisan vektor secara manual seperti di atas, berikut ini adalah

cara penulisan vektor khusus,>> x = a:h:b;

Page 3: ameliyawati.files.wordpress.com …  · Web viewAx = b : x≥0 (4.1) Dimana . z. adalah fungsi tujuan, A . adalah matriks teknologi, x. adalah variabel keputusan, dan . b. ... 06/25/2012

Dimanaa : menunjukan nilai awalh : step sizeb : nilai akhir

berikut adalah contoh penggunaannya>> x = 1:2:9>> x =

1 3 5 7 9Dapat pula penulisannya seperti ini, dengan step size otomatis satu

>> x = 1:9>> x =

1 2 3 4 5 6 7 8 93.1.2 Operasi Aritmatika Vektor

Dalam mengoperasikan dua vektor maka harus diperhatikan bahwa dua vektor akan dapat dioperasikan jika memiliki ukuran yang saling bersesuaian. Berikut ini adalah operasi yang dapat dilakukan terhadap vektor

a. Penjumlahan dua vektor>> a = [1 2 3];>> b = [3 4 5];>> c = a+b>> c =

4 6 8b. Pengurangan dua vektor

>> d = a-b>> d =

-2 -2 -2c. Perkalian setiap unsur yang bersesuaian

>> e = a.*b>> e =

3 8 15d. Perkalian vektor dengan skalar

>> f = 2*a>> f =

2 4 6e. Dot Product

>> g = dot(a,b)>> g =

26f. Cross Product

>> h = cross(a,b)>> h =

-2 4 -2

Page 4: ameliyawati.files.wordpress.com …  · Web viewAx = b : x≥0 (4.1) Dimana . z. adalah fungsi tujuan, A . adalah matriks teknologi, x. adalah variabel keputusan, dan . b. ... 06/25/2012

3.1. 2 Penulisan MatriksPenulisan matriks dalam MATLAB tidak berbeda dengan penulisan vektor,

karena vektor sendiri merupakan matriks yang hanya terdiri dari satu baris atau kolom. Berikut ini adalah beberapa cara penulisan matriks dalam MATLAB

>> A = [1 2 3; 4 5 6]>> A =

1 2 34 5 6

Matriks A merupakan matriks yang terdiri dari dua baris dan tiga kolom, setiap kolom dipisahkan oleh spasi (“ ”) atau koma (“ , “) dan setiap baris dipisahkan oleh tanda titik koma (“ ; ”). Cara penulisan lain

>> B = [1 2 34 5 6]>> B =

1 2 34 5 6

Untuk penulisan dengan bentuk ini setiap kali akan pindah baris terlebih dahulu menekan tombol shift+enter. Dalam MATLAB juga terdapat syntax untuk membentuk matriks-matriks khusus seperti matriks identitas, matriks nol, matriks satu. Berikut ini adalah perintahnya

>> eye(n) % menampilkan matriks identitas>> eye(n,m) % matriks nxm dengan unsur diagonalnya satu>> zeros(n,m) % matriks nxm dengan semua unsurnya nol>> ones(n,m) % matriks nxm dengan semua unsurnya satu

Untuk mengetahui ukuran suatu matriks dapat digunakan syntax sebagai berikut ini

>> [row,col] = size(A)Berikut adalah contoh penggunaannya

>> A = [4 1 5; 6 3 7];>> size(A)>> ans =

2 3>> [row,col] = size(A)>> row =

2>> col =

3Untuk menampilkan elemen pada baris ke-i dan kolom ke-j atau memanggil

submatriks dari suatu matriks dapat digunakan syntax sebagai berikut ini>> A = [4 1 5; 6 3 7];>> A(2,1)>> ans =

6Atau dengan syntax berikut

>> A(2,:) % menampilkan semua unsur pada baris ke-2>> ans =

6 3 7>> A(1:2,2) % menampilkan unsur baris 1 s.d 2, kolom 2

Page 5: ameliyawati.files.wordpress.com …  · Web viewAx = b : x≥0 (4.1) Dimana . z. adalah fungsi tujuan, A . adalah matriks teknologi, x. adalah variabel keputusan, dan . b. ... 06/25/2012

>> ans = 13

3.2 Operasi Aritmatika MatriksDalam mengoperasikan dua matriks maka harus diperhatikan bahwa dua matriks

akan dapat dioperasikan jika memiliki ukuran yang saling bersesuaian. Berikut ini adalah operasi yang dapat dilakukan terhadap matriks

a. Penjumlahan matriks>> A = [1 0 2; 3 7 4];>> B = [9 3 0; 1 6 2];>> C = A+B>> C =

10 3 24 13 6

b. Pengurangan matriks>> D = A-B>> D =

-8 -3 22 1 2

c. Perkalian matriks>> E = A*B>> E =

??? Error using ==> mtimesInner matrix dimensions must agree.

Perkalian antara matriks A dan matriks B tidak dapat dioperasikan kerena ukuran kolom matriks A tidak sama dengan ukuran baris kolom B.

d. Matriks transpose>> F = A’>> F =

1 3 0 7 2 4

e. Determinan matriks>> g = det(B)>> g =

??? Error using ==> detMatrix must be square.

Matriks B bukan merupakan matriks persegi sehingga tidak memiliki determinan.

f. Invers matriks>> H = inv(B)>> H =

??? Error using ==> invMatrix must be square.

Matriks B bukan merupakan matriks persegi sehingga tidak memiliki invers.

Page 6: ameliyawati.files.wordpress.com …  · Web viewAx = b : x≥0 (4.1) Dimana . z. adalah fungsi tujuan, A . adalah matriks teknologi, x. adalah variabel keputusan, dan . b. ... 06/25/2012

3.3 Penyelesaian Sistem Persamaan Linear

Pada bagian ini akan dibahas mengenai cara menyelesaikan sistem persamaan linear dengan menggunakan syntax yang ada dalam MATLAB.

3.3.1 Sistem Persamaan Linear

Berikut ini adalah bentuk sistem persamaan linear

a11 x1+a12 x2+…+a1 n xn=b1

a21 x1+a22 x2+…+a2n xn=b2

⋮am1 x1+am2 x2+…+amn xn=bm

(3.1)

Persamaan (3.1) dapat dinyatakan dalam notasi matriks sebagai berikutAx=b (3.2)

Dimana A adalah matriks koefisien dan b adalah vektor ruas kanan, dan x adalah variabel keptusan yang akan ditentukan nilainya.

Untuk menyelesaikan sistem persamaan linear di atas dapat digunakan operasi baris elementer, berikut ini adalah cara menyelesaikan sistem persamaan linear dengan menggunakan operasi baris elementer pada MATLAB. Akan dicari penyelesaian dari persamaan berikut

{2 x1+3 x2−3x3=73 x1−2 x2+5x3=7

x1+2 x2+x3=7(3.3)

Tuliskan matriks koefisien A dan vektor ruas kanan b dalam command window sebagai berikut

>> A = [2 3 -3; 3 -2 5; 1 2 1];>> b = [7;7;7];

Gabungkan matriks koefisien dan vektor ruas kanan menjadi matriks lengkap

>> sys = [A b];>> sys =

2 3 -3 7 3 -2 5 7 1 2 1 7

Berikut ini adalah tahapan operasi elementer terhadap matriks sys, hasil akhir yang dinginkan adalah merubah matriks sys menjadi matriks eselon baris tereduksi.

>> sys(1,:)=sys(1,:)/2

Page 7: ameliyawati.files.wordpress.com …  · Web viewAx = b : x≥0 (4.1) Dimana . z. adalah fungsi tujuan, A . adalah matriks teknologi, x. adalah variabel keputusan, dan . b. ... 06/25/2012

>> sys =1.0000 1.5000 -1.5000 3.50003.0000 -2.0000 5.0000 7.00001.0000 2.0000 1.0000 7.0000

>> sys(2,:) = sys(2,:)-3*sys(1,:);>> sys(3,:) = sys(3,:)-sys(1,:)>> sys =

1.0000 1.5000 -1.5000 3.5000 0 -6.5000 9.5000 -3.5000

0 0.5000 2.5000 3.5000>> sys(2,:) = sys(2,:)/-6.5>> sys =

1.0000 1.5000 -1.5000 3.5000 0 1.0000 -1.4615 0.5385 0 0.5000 2.5000 3.5000

>> sys(3,:) = sys(3,:)-0.5*sys(2,:)>> sys =

1.0000 1.5000 -1.5000 3.5000 0 1.0000 -1.4615 0.5385 0 0 3.2308 3.2308

>> sys(3,:) = sys(3,:)/sys(3,3)>> sys =

1.0000 1.5000 -1.5000 3.5000 0 1.0000 -1.4615 0.5385 0 0 1.0000 1.0000

>> sys(2,:) = sys(2,:)-sys(2,3)*sys(3,:);>> sys(1,:) = sys(1,:)-(-1.5)*sys(3,:)>> sys =

1.0000 1.5000 0 5.0000 0 1.0000 0 2.0000 0 0 1.0000 1.0000

>> sys(1,:) = sys(1,:)-1.5*sys(2,:)>> sys =

1 0 0 2 0 1 0 2 0 0 1 1

Berdasarkan hasil perhitungan operasi baris elementer terhadap sistem persamaan linear (3.3) dengan menggunakan MATLAB diperoleh hasil x1=2, x2=2 dan x3=1. Di dalam MATLAB terdapat syntax khusus yang dapat digunakan untuk menyelesaikan sistem persamaan linear (3.3), tetapi terlebih dahulu harus dilakukan penyesuaian penulisan dalam menggunakan syntax ini, berikut ini adalah syntax yang dapat digunakan

>> linsolve(A,b)Dimana A adalah matriks koefisien dan b adalah ektor ruas kanan. Pada sistem persamaan linear (3.3) berikut adalah matriks A dan vektor b

>> A = [2 3 -3; 3 -2 5; 1 2 1];

Page 8: ameliyawati.files.wordpress.com …  · Web viewAx = b : x≥0 (4.1) Dimana . z. adalah fungsi tujuan, A . adalah matriks teknologi, x. adalah variabel keputusan, dan . b. ... 06/25/2012

>> b = [7;7;7];>> x = linsolve(A,b)>> x =

2.0000 2.0000 1.0000

Selain syntax linsolve dapat juga digunakan syntax berikut>> x = A\b

atau>> x = inv(A)*b

Page 9: ameliyawati.files.wordpress.com …  · Web viewAx = b : x≥0 (4.1) Dimana . z. adalah fungsi tujuan, A . adalah matriks teknologi, x. adalah variabel keputusan, dan . b. ... 06/25/2012

BAGIAN KEDUA: APLIKASI PROGRAM MATLAB

MODUL V

Penyelesaian Permasalahan Pemrograman Linear

Page 10: ameliyawati.files.wordpress.com …  · Web viewAx = b : x≥0 (4.1) Dimana . z. adalah fungsi tujuan, A . adalah matriks teknologi, x. adalah variabel keputusan, dan . b. ... 06/25/2012

BAB IV

PENYELESAIAN PERMASALAHAN PEMROGRAMAN LINEAR

Pada bagian ini akan dibahas cara menyelesaikan permasalahan Pemrograman Linear menngunakan syntax khusus yang terdapat dalam MATLAB.

4.1 Pemrograman Linear

Pemrograman Linear berhubungan dengan pengoptimalan (dapat berupa maksimasi atau minimasi) sebuah fungsi linier yang memenuhi suatu persamaan atau pertidaksamaan pembatas. LP secara umum berkaitan dengan pengalokasian sumber daya yang terbatas untuk memperoleh hasil yang optimal. Permasalahan LP dapat ditulis dalam bentuk standar sebagai berikut

min z=cT xs.t Ax=b

x ≥ 0(4.1)

Dimana z adalah fungsi tujuan, A adalah matriks teknologi, x adalah variabel keputusan, dan b adalah vektor ruas kanan.

4.1.1 Penyelesaian Permasalahan Pemrograman LinearUntuk menyelesaikan bentuk permasalahan pemrograman linear (4.1) di dalam

MATLAB tersedia syntax sebagai berikut,>> [x,fval] = linprog(c,A,b,Aeq,beq,lb,ub);

Dimanax : nilai dari varable keputusanfval : nilai fungsi tujuanc : koefisien fungsi tujuanA : matriks koefisien persamaan pembatasb : vektor ruas kanan persamaan pembatasAeq : matriks koefisien pertidaksamaan pembatasBeq : vektor ruas kanan pertidaksamaan pembataslb : batas bawah untuk variabel keputusanub : batas atas untuk variabel keputusan

Berikut ini adalah penggunaan syntax linprog untuk menyelesaikan permasalahan pemrograman linear, perhatikan permasahan pemrograman linear berikut ini,

min 2 x1+x2

s.t 3x1+2 x2=34 x1+3 x2≥ 4

x1+2 x2≤ 3 x1, x2≥ 0

(4.2)

Page 11: ameliyawati.files.wordpress.com …  · Web viewAx = b : x≥0 (4.1) Dimana . z. adalah fungsi tujuan, A . adalah matriks teknologi, x. adalah variabel keputusan, dan . b. ... 06/25/2012

CATATAN : dalam MATLAB jenis optimisasi syntax linprog adalah minimisasi dan

fungsi pembatas bertanda , ketika jenis optimisasi maksimisasi maka fungsi tujuan c

harus dikalikan dengan negatif “ ” dan ketika tedapat pembatas dengan tanda lebih

besar sama dengan “ ” maka harus dikalikan dengan negatif “ ” agar tandanya

berubah menjadi lebih kecil sama dengan “ ’.Dari permasalahan pemrograman linear (4.2) diperoleh

c=[21]A=[−4 −3

1 2 ]b=[−4

3 ]

Aeq= [3 2 ]beq=[ 3 ]

lb=[00]

Dan pada command window MATLAB dapat dituliskan sebagai berikut>> c = [2;1];>> A = [-4 -3; 1 2];>> b = [-4; 3];>> Aeq = [3 2];>> beq = [3];>> lb = [0;0];>> ub = [inf;inf];>> [x,fval] = linprog(c,A,b,Aeq,beq,lb,ub)>> x = 0.0000 1.5000 fval = 1.5000

Page 12: ameliyawati.files.wordpress.com …  · Web viewAx = b : x≥0 (4.1) Dimana . z. adalah fungsi tujuan, A . adalah matriks teknologi, x. adalah variabel keputusan, dan . b. ... 06/25/2012

BAGIAN KEDUA: APLIKASI PROGRAM MATLAB

MODUL VI

Membuat Grafik Fungsi

BAB V

Page 13: ameliyawati.files.wordpress.com …  · Web viewAx = b : x≥0 (4.1) Dimana . z. adalah fungsi tujuan, A . adalah matriks teknologi, x. adalah variabel keputusan, dan . b. ... 06/25/2012

MEMBUAT GRAFIK FUNGSI

Pada bagian ini dibahas mengenai cara membuat grafik fungsi dengan menggunakan syntax yang ada pada MATLAB. Bagian ini terdiri atas membuat grafik dua dimensi, membuat grafik tiga dimensi.

5.1 Membuat Grafik Fungsi Dua Dimensi

Perhatikan fungsi kuadrat di bawah ini

y=x2 (5.1)

Untuk membuat grafik fungsi pada persamaan (5.1) MATLAB memiliki beberapa syntax yang dapat digunakan yaitu plot dan fplot. Berikut ini adalh penulisan syntax pada command windows

>> plot(x,y,’LineSpec’);

Untuk menggunakan syntax plot terlebih dahulu harus didefinisikan domain x , berikut penggunaan syntax plot

>> x = 1:1:10 % domain x, 1-10 dengan stepsize 1>> x =

1 2 3 4 5 6 7 8 9 10>> y = x.^2 % setiap elemen x dipangkatkan 2>> y =

1 4 9 16 25 36 49 64 81 100>> plot(x,y,’-ro’) % grafik dengan garis warna

Sedangkan untuk menggunakan syntax fplot rentang nial x tidak didefinisiakn terlebih dahulu, berikut ini adalah penulisan syntaxnya

Page 14: ameliyawati.files.wordpress.com …  · Web viewAx = b : x≥0 (4.1) Dimana . z. adalah fungsi tujuan, A . adalah matriks teknologi, x. adalah variabel keputusan, dan . b. ... 06/25/2012

>> fplot(fun,limits,’LineSpec’);Berikut adalah contoh penggunaannya

>> fplot(@(x)x^2,[-10 10 -5 100],’-.bo’);

Berikut ini adalah spesifikasi garis ang dapat digunakan

Specifier Color Specifier Market Typer Red + Plus signg Green o Circleb Blue * Asteriskc Cyan . Pointm Magenta x Crossy Yellow s Squarek Black d Diamondw white ^ Upward-pointing triangel

v Downward-pointing triangelSpecifier Line Style > Right-pointing triangel

- Solid line < Left-pointing triangel-- Dashed line p Five-pointed star (pentagram): Dotted line h Six-pointed star (hexagram)-. Dash-dot line

5.2 Membuat Grafik Fungsi Tiga Dimensi

Perhatian fungsi dua peubah berikut di bawah ini

z=x2+ y2 (5.2)

Untuk membuat grafik 3D fungsi pada persamaan (5.2) MATLAB memiliki beberapa syntax yang dapat digunakan yaitu plot3, mesh dan surf. Berikut ini adalah cara penggunaan syntax untuk membuat grafik 3D,

>> [x,y] = meshgrid(-10:0.25:10); % domain x dan y>> z = x.^2+y.^2; % mendefinisikan fungsi z

Page 15: ameliyawati.files.wordpress.com …  · Web viewAx = b : x≥0 (4.1) Dimana . z. adalah fungsi tujuan, A . adalah matriks teknologi, x. adalah variabel keputusan, dan . b. ... 06/25/2012

>> plot3(x,y,z); % membuat grafik dengan plot3

>> mesh(x,y,z); % membuat grafik 3d dengan mesh>> grid on;

>> surf(x,y,z); % membuat grafik 3d dengan surf>> grid on;

Untuk syntax mesh terdapat syntax pilihan lain yang dapat digunakan berikut yaitu meshc dan meshz, berikut ini adalah penggunaannya

>> meshc(x,y,z);>> grid on;

Page 16: ameliyawati.files.wordpress.com …  · Web viewAx = b : x≥0 (4.1) Dimana . z. adalah fungsi tujuan, A . adalah matriks teknologi, x. adalah variabel keputusan, dan . b. ... 06/25/2012

>> meshz(x,y,z);

Perhatikan vektor berikut inix (t )=sin (t ) i⃑+cos ( t ) j⃑+t k⃑ (5.3)

Untuk menggambar vektor (5.3) dapat digunakan syntax plot3 berikut ini adalah penggunaannya,

>> t = -10:0.1:10; % domain t>> i = sin(t);>> j = cos(t);>> k = t;>> plot3(i,j,k);>> grid on;

Page 17: ameliyawati.files.wordpress.com …  · Web viewAx = b : x≥0 (4.1) Dimana . z. adalah fungsi tujuan, A . adalah matriks teknologi, x. adalah variabel keputusan, dan . b. ... 06/25/2012

Berikut ini adalah beberapa options yang dapat ditambahkan dalam membuat grafikbaik 2d ataupun 3d

>> title(‘nama judul grafik’);>> xlabel(‘nama sumbu x’);>> ylabel(‘nama sumbu y’);>> axis([x1 x2 y1 y2 z1 z2]);>> grid on;