BAB I
PENDAHULUAN
1.1 Pengenalan MAPLE dan MATLAB
MAPLE dan MATLAB merupakan bahasa
pemrograman komputer tingkat tinggi yang biasa digunakan untuk teknik komputer.
MAPLE dan MATLAB menggabungkan
komputasi, visualisasi, dan pemrograman dimana penggunaannya sanggat mudah
karena permasalahan dan solusi yang dihasilkan dinyatakan dalam bentuk notasi
matematika yang biasa dikenal secara umum.
MAPLE dan MATLAB merupakan kependekan dari matrix
laboratory. Tipe data dalam MAPLE dan
MATLAB
berupa array sehingga tidak perlu lagi inisiasi untuk dimensi array.
Dan ini berguna untuk menyelesaikan bermacam-macam permasalahan teknik komputer
terutama dalam formulasi matriks atau vektor.
Pada
saat pertama kali masuk ke dalam aplikasi MAPLE dan MATLAB maka akan tampak tiga bagian, yaitu :
1.
Command
Window : Bagian untuk menuliskan syntax
baik berupa variabel, fungsi, atau M-file scripts.
2.
Command
History : Bagian untuk menyimpan semua syntax yang pernah di run pada
command window.
3.
Current
Directory : Bagian yang menunjukan folder yang berkaitan.
1.2 MAPLE dan MATLAB Sebagai Kalkulator
MAPLE dan MATLAB dapat digunakan sebagai sebuah kalkulator,
dengan munuliskan perintah atau syntax pada
>> di command window, seperti
berikut ini
>>
1 + 1
Dan dengan menekan tombol enter maka akan dipeoleh hasil sebagi berikut
>>
ans =
2
>>
3 * 4
>>
ans =
12
BAGIAN PERTAMA: PROGRAM APLIKASI MAPLE
MODUL I
Penulisan Vektor dan Matriks
Operasi Baris Elementer
BAB II
MATRIKS
2.1 Penulisan Vektor dan Mtriks
Dalam
Maple, untuk menggunakan fungsi matriks, digunakan paket dari Maple, yaitu
linalg.
with(linalg):
Untuk
mendeklarasikan matriks :
-
matrix(baris,
kolom, [input]);
cth : matrix(2,3,[1,2,3,4,5,6]);
-
Matrix([[input
baris 1],[input baris 2], ......., [input baris n]]);
cth : Matrix([1,2,3],[4,5,6]);
Untuk
operasi dalam matriks digunakan fungsi evalm:
Misalkan
ada matriks A dan B.
A:=
matrix(3,3,[1,2,3,4,5,6,7,8,9]);
B:=
Matrix([9,8,7],[4,5,6],[3,2,1]);
- Penjumlahan :
evalm(A+B);
- Perkalian :
- evalm(A&*B);
- multiply(A,B);
Untuk
mencari invers suatu matriks, digunalan fungsi inverse.
inverse(A);
Untuk
mencari determinan suatu matriks, digunalan fungsi det.
det(A);
Untuk
mencari transpose suatu matriks, digunalan fungsi transpose.
transpose(A);
Untuk
menggabungkan 2 matriks:
-
augment(A,B);
-
linalg[concat](A,B);
Untuk
mengambil bagian dari matriks, digunakan fungsi submatrix.
submatrix(matriks,baris,kolom);
cth : submatrix(A,1..3,1..2);
Untuk
mereduksi ke bentuk matriks eslon tereduksi :
-
gaussjord(A);
-
rref(A);
2.2 Operasi
Baris Elementer
Paket linalg dapat digunakan dalam
operasi baris elementer. Elemen-elemen dalam operasi baris elementer seperti
tukar baris, pengurangan antar baris, atau perkalian skalar sudah tersedia di
dalam paket ini.
Perintah-perintah
tersebut antara lain :
-
matrix(baris,
kolom, [input]); //deklarasi
matriks
-
vector([v1,v2,v3,…vn]); //deklarasi vektor
-
concat(m1,m2,m3,…mn); //menggabungkan matriks
-
scalarmul(m,n); //perkalian skalar
pada matriks
-
swaprow(m,c1,c2); //tukar baris
-
stackmatrix(m1,m2,m3,…,mn);//menumpuk
matriks secara vertikal
-
linsolve(m,v); //mencarisolusi
matriks
Contoh
:
> restart:
> with(linalg):
> a
:= matrix(3, 3, [1, 2, 3, 4, 5, 6, 17, 8, 9]);
> v
:= vector([3, 7, 9]);
> c
:= concat(a, v);
> c
:= stackmatrix(row(c, 1), evalm(row(c, 2)-scalarmul(row(c, 1), 4)), row(c, 3));
> c
:= stackmatrix(row(c, 1), row(c, 2), evalm(row(c, 3)-scalarmul(row(c, 1),
17)));
> c
:= stackmatrix(row(c, 1), scalarmul(row(c, 2), -1/3), scalarmul(row(c, 3),
-1/26));
> c
:= stackmatrix(evalm(row(c, 1)-scalarmul(row(c, 2), 2)), row(c, 2),
evalm(row(c, 3)-row(c, 2)));
> c
:= stackmatrix(row(c, 1), row(c, 2), scalarmul(row(c, 3), -13/5));
> c
:= stackmatrix(evalm(row(c, 1)+row(c, 3)), evalm(row(c, 2)-scalarmul(row(c, 3),
2)), row(c, 3));
> x1
:= submatrix(c, 1 .. 1, 4 .. 4);
> x2
:= submatrix(c, 2 .. 2, 4 .. 4);
> x3
:= submatrix(c, 3 .. 3, 4 .. 4);
> z
:= evalm(x1+x2+x3);
> b
:= linsolve(a, v);
>
BAGIAN PERTAMA: PROGRAM APLIKASI MAPLE
MODUL II
Tutor Operasi Baris Elementer
2.3 Tutor
Operasi Baris Elementer
Dalam
maple versi terbaru terdapat satu fitur
untuk menyelesaikan operasi baris elementer.
Paket yang digunakan yaitu :
with(Student[LinearAlgebra]):
Lalu
perintah yang digunakan :
LinearSloveTutor():
Akan
terdapat pilihan :
Misal
dipilih Gauss Jordan Elimination
Keterangan gambar :
-
Edit
Matrix : Untuk menentukan Matrix
dengan tombol display untuk update.
-
Pada bagian kiri terdapat panel-panel :
-
Add multiple : menjumlahkan
baris
-
Multiply : perkalian
baris
-
Swap : tukar
baris
-
Untuk mode otomatis, gunakan tombol :
-
Next step : proses
satu langkah
-
All steps : proses
semua langkah
-
Setelah
terbentuk eslon baris, maka tombol “Solve System of Equations” bisa digunakan.
-
Gunakan tombol “Equation”dan “Solution” untuk melihat solusi dari
matriks
-
BAGIAN PERTAMA: PROGRAM APLIKASI MAPLE
MODUL III
Optimization
2.4 Optimization
Dengan menggunakan Maple, kita bisa lebih
mudah untuk menentukan sebuah solusi dalam pemrograman linier. Dengan
menggunakan fungsi Optinization, kita bias mencari variable keputusan dan nilai
tujuan.
2.4.1 Bentuk umum :
Optimization[a][b];
-
a : nilai indeks (Maximize, Minimize,
LPSolve, Interactive)
-
b : fungsi kendala
untuk
maksimum :
-
Bentuk umum :
Optimization[Maximize](fungsi
tujuan,[kendala1, kendala2, …], batasan1, batasan2,…);
-
Contoh :
Maksimumkan 8x + 6y
Kendala : 4x
+ 2y <= 60
2x
+ 4y <= 48
x
>= 0
y
>= 0
Perintah di Maple :
Optimization[Maximize](8*x+6*y,[4*x+2*y<=60,2*x+4*y<=48],x=0..infinity,y=0..infinity);
Hasil yang didapat :
[132., [x = 12., y = 6.]]
Nilai tujuan : 132
Variabel keputusan : x = 12, y = 6
untuk
minimum :
-
Bentuk umum :
Optimization[Minimize](fungsi
tujuan,[kendala1, kendala2, …], batasan1, batasan2,…);
2.4.2 LPSolve
Dengan
menggunakan LPSolve, maksimum atau minimum bias kita pilih. Misal dengan contoh
pada maksimum. Ketika kita menggunakan nilai indeks LPSolve, maka perintah di
Maple menjadi:
Optimization[LPSolve](8*x+6*y,[4*x+2*y<=60,2*x+4*y<=48],x=0..infinity,y=0..infinity,maximize);
2.4.3 Interactive
Dengan
menggunakan Interactive, kita bias menggunakan layanan Maple untuk
menyelesaikan suatu program linier.
Perintah :
Optimization[Interactive]();
Maka akan muncul tampilan :
Pada Method, pilih Linier Programming.
Pada Option, menyesuaikan dengan apa yang akan
dicari. Apakah maksimum atau minimum.
Objective function adalah fungsi tujuan.
Constrain and Bound adalah kendala dan batasan.
Misal kita akan menyelesaikan contoh maksimum di
atas.
-
Pada Option, pilih
maximize
-
Masukkan fungsi tujuan
melalui tombol Edit pada Objective Function
Untuk menginputkan fungsi kendala, gunakan tombol
Edit pada Constraints and Bounds.
-
Add constraints untuk
menambah fungsi kendala, klik Add untuk menambahkan fungsi kendala
-
Add bounds untuk
menambah batasan, klik Add untuk menambah batasan
-
Klik Done jika sudah.
-
Maka akan muncul tampilan
awal
-
Klik Solve untuk
memunculkan solusinya
-
Pada On Quit, kita
bisa menentukan apa yang akan ditampilkan di Maple ketika keluar dari
Optimization Assistant ini. Apakah itu solusi, perintah Maple, spesifikasi
masalah, ataupun tidak ada yang akan ditampilkan.
2.4.4 MAPLETS
2.4.4 MAPLETS
Menampilkan
sebuah window dengan maplet.
> restart:
> with(Maplets[Elements]):
> Maplets[Display](Maplet(["Halo
dunia!!"]));
Tombol (Button)
Sebuah Button didefinisikan dengan menggunakan elemen Button, yang
mengandung dua bagian informasi:
Teks dalam button
Aksi yang dilakukan ketika tombol di
klik.
Contoh berikut Maplet mengakses elemen Shutdown tanpa suatu argumen ketika diklik.
> restart:
> with(Maplets[Elements]):
> maplet2a:=Maplet([["Apa Kabar...",
Button("Oche deh",Shutdown())]]):
> Maplets
[Display](maplet2a);
Judul (Title)
> with(Maplets[Elements]):
> maplet3:=Maplet(Window('title'="judul",
["Hello…",Button("OK",Shutdown())])):
Input Output
Dua
input field TF1 dan TF2
Satu
output dengan menggunakan TeksBox TB1 yang tingginya 3dan lebar
40.
agar
user tidak diijinkan untuk mengedit output, gunakan option not editable
> restart;
> with(Maplets[Elements]):
> maplet5 := Maplet( Window( 'title'="5th",
[["Integrand: ", TextField['TF1']()],
["Variable of Integration: ",
TextField['TF2'](3)],
TextField['TF2'](3)],
TextBox['TB1']('editable' = 'false', 3..40 ),
[Button("Integrate",
Evaluate('TB1' = 'int(TF1,TF2)')),
Evaluate('TB1' = 'int(TF1,TF2)')),
Button("OK",
Shutdown(['TF1', 'TF2', 'TB1'])),
Button("Clear",
SetOption('TF1' = ""))]
] ) ):
Maplets[Display](
maplet5 );
MathML Viewer
Element
MathViewer menampilkan MathML.
> Maplets[Display]( Maplet(
[ "Enter some expression to display in MathML:",
TextField['TF1'](),
MathMLViewer['MMLV1']( 'value' = x^2 ),
[Button("Display",
Evaluate( 'MMLV1' =
'MathML[Export](TF1)' ) ),
Button("OK", Shutdown())]
] ) );
RunWindow
> restart;
> with(Maplets[Elements]):
maplet := Maplet('onstartup' = 'A1',
Window['W1']('title' = "Select Method",
'layout' = 'BL0'),
BoxLayout['BL0'](
BoxColumn(
BoxRow("Select a method"),
BoxRow(
Button("Differentiation",
RunWindow('W2')),
Button("Integration", RunWindow('W3'))
)
)
),
Window['W2']('title'="Differentiation", [
[
"Enter an expression:",
TextField['TF1']()
],
[Button("Differentiate with respect to x",
Evaluate('TF1' = 'diff(TF1, x)')),
Button("Exit", Shutdown(['TF1']))
]
]),
Window['W3']('title'="Integration", [
[
"Enter an integrand:",
TextField['TF2']()
],
[
Button("Integrate with respect to x",
Evaluate('TF2' = 'int(TF2, x)')),
Button("Exit", Shutdown(['TF2']))
]
]),
Action['A1'](RunWindow('W1'))
):
Maplets[Display](maplet);
RadioButton
Memiliki
sebuah nilai true atau false.
> Maplets[Display]( Maplet(
[ [RadioButton['RB1']( "1st", true, 'group' = BG1 ),
RadioButton['RB2']( "2nd", 'group' =
'BG1' )],
[Button("OK", Shutdown(['RB1', 'RB2']))]
],
ButtonGroup['BG1']() ) );
Contoh
Kalkulator
> restart;
> with(Maplets[Elements]):
> calc :=
Maplet(Window('title' = "Kalkulator",
[
[TextField['TF1']('width' = 10),TextField['TF2']('width' = 10), " =
",
TextField['TF3']('editable' = 'false','width'
= 10)],
[Button("+",Evaluate('TF3' = 'TF1' + 'TF2')),
Button("-",Evaluate('TF3' = 'TF1' - 'TF2')),
Button("*",Evaluate('TF3' = 'TF1' * 'TF2')),
Button("/",Evaluate('TF3' = 'TF1' / 'TF2')),
Button("^",Evaluate('TF3'
= 'TF1' ^ 'TF2'))
],
[Button("Quit",Shutdown(['TF3']))]
]
)):
Maplets[Display](calc);
BAGIAN II : PROGRAM APLIKASI MATLAB
MODUL IV
Penulisan Vektor dan Matriks
BAB III
MATRIKS
3.1.
Penulisan Vektor Dan Matriks
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
Vektor
Penulisan 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 4
Untuk menuliskan vektor
dalam bentuk kolom dapat ditulis sebagai berikut
>> c = [1;2;3]
>> c =
1
2
3
Atau dapat ditulis dengan
bentuk seperti ini
>> d = [1
2
3]
>> d =
1
2
3
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 =
3
Sedangkan 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 3
Di samping penulisan vektor secara manual
seperti di atas, berikut ini adalah cara penulisan vektor khusus,
>>
x = a:h:b;
Dimana
a : menunjukan nilai awal
h : step size
b : nilai akhir
berikut adalah contoh
penggunaannya
>> x = 1:2:9
>> x =
1 3 5 7 9
Dapat pula penulisannya
seperti ini, dengan step size otomatis satu
>> x = 1:9
>> x =
1 2 3 4 5 6 7 8 9
3.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 8
b. Pengurangan dua vektor
>> d = a-b
>> d =
-2 -2 -2
c.
Perkalian setiap
unsur yang bersesuaian
>> e = a.*b
>> e =
3 8 15
d.
Perkalian vektor
dengan skalar
>> f = 2*a
>> f =
2 4 6
e.
Dot Product
>> g = dot(a,b)
>> g =
26
f.
Cross Product
>> h = cross(a,b)
>> h =
-2 4 -2
3.1. 2 Penulisan
Matriks
Penulisan 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 3
4 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 3
4 5 6]
>> B =
1 2 3
4 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 =
3
Untuk 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 =
6
Atau 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
>> ans =
1
3
3.2 Operasi
Aritmatika Matriks
Dalam
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 2
4 13 6
b.
Pengurangan matriks
>> D = A-B
>> D =
-8 -3 2
2 1 2
c.
Perkalian matriks
>> E = A*B
>> E =
??? Error using ==> mtimes
Inner 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 ==> det
Matrix must be square.
Matriks
B bukan merupakan matriks persegi sehingga tidak memiliki determinan.
f.
Invers matriks
>> H = inv(B)
>> H =
??? Error using ==> inv
Matrix must be square.
Matriks B bukan merupakan matriks persegi sehingga
tidak memiliki invers.
3.3 Penyelesaian Sistem Persamaan Linear
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
|
(3.1)
|
|
|
Persamaan (3.1) dapat dinyatakan dalam notasi matriks sebagai berikut
|
(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
|
(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
>> sys
=
1.0000 1.5000
-1.5000 3.5000
3.0000 -2.0000
5.0000 7.0000
1.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
,
dan
. 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];
>> 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
BAGIAN KEDUA: APLIKASI PROGRAM MATLAB
MODUL V
Penyelesaian Permasalahan
Pemrograman Linear
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
s.t
|
(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 Linear
Untuk menyelesaikan bentuk permasalahan pemrograman
linear (4.1) di dalam MATLAB tersedia
syntax sebagai berikut,
>> [x,fval]
= linprog(c,A,b,Aeq,beq,lb,ub);
Dimana
x : nilai dari varable keputusan
fval : nilai fungsi tujuan
c : koefisien fungsi tujuan
A : matriks koefisien persamaan
pembatas
b : vektor ruas kanan persamaan
pembatas
Aeq : matriks koefisien pertidaksamaan
pembatas
Beq : vektor ruas kanan pertidaksamaan
pembatas
lb : batas bawah untuk variabel
keputusan
ub : batas atas untuk variabel
keputusan
Berikut ini adalah penggunaan syntax
linprog untuk menyelesaikan permasalahan pemrograman linear, perhatikan permasahan
pemrograman linear berikut ini,
min
s.t 3
|
(4.2)
|
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
|
|
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
BAGIAN KEDUA: APLIKASI PROGRAM MATLAB
MODUL VI
Membuat Grafik Fungsi
BAB V
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
|
(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
>> 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 Type
|
r
|
Red
|
|
+
|
Plus sign
|
g
|
Green
|
|
o
|
Circle
|
b
|
Blue
|
|
*
|
Asterisk
|
c
|
Cyan
|
|
.
|
Point
|
m
|
Magenta
|
|
x
|
Cross
|
y
|
Yellow
|
|
s
|
Square
|
k
|
Black
|
|
d
|
Diamond
|
w
|
white
|
|
^
|
Upward-pointing
triangel
|
|
|
|
v
|
Downward-pointing
triangel
|
Specifier
|
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
|
(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
>>
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;
>>
meshz(x,y,z);
Perhatikan vektor berikut ini
|
(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;
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;
빴지노사이트 - Kirill Kondrashin
BalasHapus빴지노사이트. 빴지노사이트. kirill-kondrashin 빴지노사이트. 우리카지노 카지노사이트�히이 쁸고세.