Panduan Praktikum Pemrograman Komputer I Mohammad Jamhuri February 22, 2015
Part I
Curve Fitting ToolBox
1
Chapter 1
Pengenalan Curve-Fitting Tool 1. Buka Tool curve f itting dengan menggunakan perintah cftool
pada command window, tekan enter maka akan dimunculkan jendela berikut:
2. Untuk memilih data, gunakan data cencus.mat bawaan matlab dengan menggunakan perintah 2
CHAPTER 1. PENGENALAN CURVE-FITTING TOOL
3
load census
setelah ditekan enter, didalam workspace muncul dua variabel, yaitu cdate dan pop. Selanjutnya import data tersebut menggunakan Tool Curve Fitting dengan mengklik tombol data. Pilih cdate untuk XData dan pop untuk Y Data. Jika benar, akan muncul gambar berikut:
3. Klik Create Data Set untuk mengimpor data ke dalam Toolbox, jika benar akan diperoleh gambar berikut
CHAPTER 1. PENGENALAN CURVE-FITTING TOOL
4
4. Selanjutnya akan kita gunakan T ool F itting untuk memfitting data cencus dengan polinomial derajat-2. Pilih dan klik tombol f itting sehingga muncul jendela f itting, klik tombol N ew f it, pilih quadratic polynomial pada kotak polynomial, ubah F ileN ame-nya menjadi 0 poly20 , kemudian klik tombol Apply, jika benar tampilan jendelanya adalah sebagai berikut:
5. Pada jendela Curve F ittin T ool pilih menu V iew → Residuals → Line P lot sehingga tampilannya menjadi berikut
CHAPTER 1. PENGENALAN CURVE-FITTING TOOL
5
6. Pada gambar residual, menunjukkan masih ada kemungkinan untuk memperoleh fitting yang lebih baik. 7. Lakukan percobaan dengan mengganti derajat polinomial pada kotak pilihan polynomial. 8. Untuk mengekstrapolasi jumlah populasi pada tahun 2000 s.d 2050, klik Analysis dan isikan rentang tahun yang akan dicari nilai ekstrapolasinya. Centang tanda untuk menampilkan gambar hasil interpolasi serta gambar hasil ekstrapolasi secara bersama-sama.
Chapter 2
Interpolasi 1D 2.1
Tutorial 1: Penggunaan interp1 di Command Window.
1. Pada praktikum ini akan ditunjukkan cara penggunaan fungsi interp1 untuk menginterpolasi himpunan data dengan metode 0 pchip0 2. Buatlah data vektor dengan menuliskan kode Matlab berikut pada Command Window. x =[1 2 3 4 5 ] ; v =[12 16 31 10 6 ] ;
3. Lakukan interpolasi menggunakan spasi data 0.1, yaitu xq = ( 1 : 0 . 1 : 5 ) ; vq=i n t e r p 1 ( x , v , xq , ’ p c h i p ’ ) ;
4. Gambarkan hasil interpolasi beserta datanya. Gunakan kode berikut plot (x , v , ’o ’ ) ; h o l d on p l o t ( xq , vq , ’− ’ ) ; legend ( ’ samples ’ , ’ pchip ’ ) ;
5. Setelah dijalankan, akan muncul gambar berikut
6
CHAPTER 2. INTERPOLASI 1D
7
6. Lingkaran pada gambar diatas adalah plot data, sedangkan kurva yang menghubungkan lingkaran-lingkaran tersebut adalah hasil interpolasi menggunakan metode ’pchip’.
2.2
Tutorial 2: Penggunaan interp1 dengan Curve Fitting Toolbox
1. Untuk menginterpolasi data x dan v pada subbab 2.1 diatas, gunakan perintah cftool
pada command window. 2. Lakukan pengaturan pada jendela Curve Fitting Toolbox, yaitu tuliskan interp1 pada Text Fit Name, pilih x pada list X data, dan y pada Y data. Pilih interpolant pada pilihan metode Curve Fitting, serta pilih Shape-Preserving (PCHIP) pada list Method.
CHAPTER 2. INTERPOLASI 1D
8
3. Simpan hasil interpolasi dengan memilih menu F it → Save to workspace kemudian klik Ok.
4. Jika ingin menggunakan data hasil interpolasi untuk menentukan nilai yang ada pada rentang data interpolasi, maka dapat digunakan perintah berikut pada command window f i t t i n g m o d e l ( xa )
jika kita ingin mencari nilai y (xa ) .
Chapter 3
Polynomial-Fitting atau Regressi 3.1
Tutorial
1. Permasalahan: tentukan parameter α dan β pada model eksponensial y = αxeβx berdasarkan data pada tabel berikut x y
0.1 0.75
0.2 1.25
0.4 1.45
0.6 1.25
0.9 0.85
1.3 0.55
1.5 0.35
1.7 0.28
1.8 0.18
2. Tuliskan data yang terdapat pada tabel diatas di Command windows dengan format penulisan sebagaimana berikut x =[0.1 0.2 0.4 0.6 0.9 1.3 1.5 1.7 1 . 8 ] ; y =[0.75 1.25 1.45 1.25 0.85 0.55 0.35 0.28 0 . 1 8 ] ;
3. Buka Curve Fitting Toolbox, menggunakan perintah cftool
4. Lakukan pengaturan, yaitu pilih x pada X Data, pilih y pada Y Data, dan pilih Custom Equation serta tuliskan a∗x∗ exp ( b∗x )
9
CHAPTER 3. POLYNOMIAL-FITTING ATAU REGRESSI
10
pada kotak isian sebagaimana pada gambar berikut.
5. Nilai parameter α dan β yang diperoleh dari hasil perhitungan dapat dilihat pada kotak Result yaitu a = 9.897 dan b = −2.532. 6. Lebih lanjut, misalkan kita ingin mengetahui nilai y pada saat x = 1, maka simpan project dengan memilih menu F it → Save to W orkspace, selanjutnya akan muncul jendela popup berikut
7. Pilih tombol Ok sedemikian hingga pada jendela Workspace akan ditampilkan variabel sebagaimana berikut:
CHAPTER 3. POLYNOMIAL-FITTING ATAU REGRESSI
11
8. Ketikkan pada Command window perintah berikut >>F=f i t t e d m o d e l F = G e n e r a l model : F( x ) = a ∗x∗ exp ( b∗x ) C o e f f i c i e n t s ( with 95% c o n f i d e n c e bounds ) : a = 9.897 (9.079 ,10.72) b = −2.532 ( −2.668 , −2.395) >>
9. Untuk menghitung nilai y pada x = 1, gunakan perintah berikut >>y=F ( 1 ) y = 0.7869
10. Dari gambar diatas diketahui bahwa nilai y (1) = 0.7869.
3.2
Latihan
1. Tentukan parameter a dan b pada model Regressi (3.2.1) y=
√ 2 a+ x √ b x
(3.2.1)
berdasarkan data yang diberikan pada tabel berikut, serta tentukan nilai y pada x = 1.6 x y
0.5 10.4
1 5.8
2 3.3
3 2.4
4 2
CHAPTER 3. POLYNOMIAL-FITTING ATAU REGRESSI
12
2. Tentukan nilai parameter a, b, dan c pada model regressi (3.2.2) y = a + bx +
c x
berdasarkan data yang diberikan pada tabel berikut ini. x y
1 2.2
2 2.8
3 3.6
4 4.5
5 5.5
(3.2.2)
Chapter 4
Interpolasi 2D 4.1
Tutorial
1. Problem Statement. Misalkan diberikan data suhu pada koordinat persegipanjang berikut T (2, 1)
=
60
T (9, 1) = 57.5
T (2, 6)
=
55
T (9, 6) = 70
gunakan interpolasi untuk menentukan suhu pada koordinat x = 5.25 dan y = 4.8. 2. Tuliskan data diatas di Command-Windows menggunakan format sebagaimana berikut x =[2 2 9 9 ] ; y =[1 6 1 6 ] ; z =[60 55 5 7 . 5 7 0 ] ;
3. Buka Curve Fitting Tool dengan perintah cftool setelah terbuka, pilih menu F ile → Clear Session sedemikian hingga project yang sebelumnya masih ada, akan di hapus dari memori Curve-Fitting Toolbox. 4. Untuk memulai project baru, pilih icon N ew f it, dan pilih x pada kotak isian X data, pilih y pada kotak isian Y data, serta z pada kotak isian Z data. 13
CHAPTER 4. INTERPOLASI 2D
14
5. Untuk membangkitkan kode dari project yang sedang dijalankan, pilih menu F ile → Generate Code, sehingga pada Matlab Editor akan tampil f unction createF it sebagaimana berikut: function [ f i t r e s u l t , gof ] = createFit (x , y , z ) % CREATEFIT(X, Y, Z) % Create a f i t . % % Data f o r ’ u n t i t l e d f i t 1 ’ f i t : % X Input : x % Y Input : y % Z Output : z % Output : % f i t r e s u l t : a f i t object representing the f i t . % g o f : s t r u c t u r e w i t h goodne ss −o f f i t i n f o . % % See a l s o FIT , CFIT , SFIT . % Auto−g e n e r a t e d by MATLAB on 22−Feb −2015 1 4 : 0 6 : 1 5 % % Fit : ’ u n t i t l e d f i t 1 ’. [ xData , yData , zData ] = p r e p a r e S u r f a c e D a t a ( x , y , z ) ; % S e t up f i t t y p e and o p t i o n s . ft = ’ cubicinterp ’ ; opts = f i t o p t i o n s ( f t ) ; % F i t model t o d a t a . [ f i t r e s u l t , g o f ] = f i t ( [ xData , yData ] , zData , f t , o p t s ) ; % Plot f i t with data . f i g u r e ( ’Name ’ , ’ u n t i t l e d ␣ f i t ␣ 1 ’ ) ; h = p l o t ( f i t r e s u l t , [ xData , yData ] , zData ) ; l e g e n d ( h , ’ u n t i t l e d ␣ f i t ␣ 1 ’ , ’ z ␣ vs . ␣x , ␣y ’ , . . . ’ L o c a t i o n ’ , ’ NorthEast ’ ) ; % Label axes xlabel ( ’x ’ ); ylabel ( ’y ’ ); zlabel ( ’z ’ ); g r i d on
6. Function tersebut dapat dimodifikasi dan dapat digunakan kembali untuk keperluan lebih lanjut, atau dapat pula dipakai di Matlab yang tidak tersedia Curve-Fitting Toolbox-nya. 7. Untuk menyimpan project di memori Matlab, pilih menu F it → Save to W orkspace sedemikian hingga pada jendela Workspace akan tersimpan variabel-variabel seperti yang ditunjukkan gambar berikut
CHAPTER 4. INTERPOLASI 2D
15
8. Selanjutnya untuk mengestimasi nilai suhu pada x = 5.25 dan y = 4.8, gunakan perintah berikut pada Command window fittedmodel (5.25 ,4.8)
setelah di enter akan diperoleh hasil sebagaimana berikut: ans = 58.1582
4.2
Latihan
1. Gunakan model Regressi linier berganda untuk menentukan nilai z pada x = 2.5 dan y = 2.5 berdasarkan data pada tabel berikut x y y
0 0 15.1
1 1 17.9
1 2 12.7
2 1 25.6
2 2 20.5
3 1 35.1
3 2 29.7
4 1 45.4
4 2 40.2
2. Gunakan model Regressi polinomial derajat-2 untuk x dan derajat-2 untuk y untuk menentukan nilai z pada x = 2.5 dan y = 2.5 berdasarkan data pada tabel di soal nomor 1 diatas.
Chapter 5
Constructing Spline Curves in 2D and 3D Contoh ini menunjukkan bagaiman cara menggunakan perintah csvn dari Toolbox Curve-Fitting, untuk membangun Kurva cubic spline dalam 2D dan 3D
5.1
Memilih Titik-titik
1. Dalam contoh ini akan ditunjukkan cara menggambar kurva melalui daftar titik-titik, pertama pilih beberapa titik acak pada bidang, kemudian simpan dalam matriks, satu titik perkolom
n p t s =10; xy=[ randn ( 1 , n p t s ) ; randn ( 1 , n p t s ) ] ; p l o t ( xy ( 1 , : ) , xy ( 2 , : ) , ’ ro ’ , ’ LineWidth ’ , 2 ) ; t e x t ( xy ( 1 , : ) , xy ( 2 , : ) , [ repmat ( ’ ’ , npts , 1 ) , num2str ( ( 1 : n p t s ) ’ ) s e t ( gca , ’ XTick ’ , [ ] , ’ YTick ’ , [ ] ) 2. Jalankan kode program tersebut, sehingga muncul gambar berikut
16
CHAPTER 5. CONSTRUCTING SPLINE CURVES IN 2D AND 3D
17
6
9
1
7
8
4 3
2
10
5
5.2
Menghubungkan titik-titik tersebut
1. Untuk menghubungkan titik-titik tersebut menjadi sebuah kurva, gunakan perintah csvn dan plot menggunakan perintah f nplt h o l d on f n p l t ( c s c v n ( xy ) , ’ r ’ , 2 ) hold o f f 2. Jalankan kode program tersebut, dan selanjutnya akan muncul gambar berikut
6
10
8
5
2 9
7 1 4 3
5.3
3D Spline Curve
1. Untuk membuat kurva spline dalam 3D, gunakan kode berikut
CHAPTER 5. CONSTRUCTING SPLINE CURVES IN 2D AND 3D
18
npts = 13; t = l i n s p a c e ( 0 , 8 ∗ pi , n p t s ) ; z = l i n s p a c e ( −1 ,1 , n p t s ) ; omz = s q r t (1− z . ^ 2 ) ; xyz = [ c o s ( t ) . ∗ omz ; s i n ( t ) . ∗ omz ; z ] ; p l o t 3 ( xyz ( 1 , : ) , xyz ( 2 , : ) , xyz ( 3 , : ) , . . . ’ r o ’ , ’ LineWidth ’ , 2 ) ; t e x t ( xyz ( 1 , : ) , xyz ( 2 , : ) , xyz ( 3 , : ) , . . . [ repmat ( ’ ␣ ␣ ’ , npts , 1 ) , num2str ( ( 1 : n p t s ) ’ ) ] ) s e t ( gca , ’ XTick ’ , [ ] , ’ YTick ’ , [ ] , ’ ZTick ’ , [ ] ) box on 2. Jalankan kode program diatas, dan akan muncul gambar berkut
13
10
11 12
7
8
4
5
9
2
6 1 3
3. Untuk menghubungkan titik-titik tersebut dengan kurva, gunakan kode program berikut h o l d on f n p l t ( c s c v n ( xyz ( : , [ 1 : end 1 ] ) ) , ’ r ’ , 2 ) hold o f f 4. Dan setelah dijalankan akan menghasilkan gambar berikut:
CHAPTER 5. CONSTRUCTING SPLINE CURVES IN 2D AND 3D
13
11
10 7
8
12 5
4 9 2 1
6 3
19
Part II
Optimization Toolbox
20
Chapter 6
Mencari Akar Persamaan 6.1
Tutorial
1. Pada praktikum ini akan ditunjukkan cara mencari akar dari persamaan nonlinier (6.1.1) berikut e−x − x = 0 (6.1.1) Nilai awal yang digunakan adalah x0 = 1. Langkah-langkah penyelesaiannya adalah sebagai berikut. 2. Tuliskan persamaan (6.1.1) sebagai function dalam Matlab berikut, f u n c t i o n h=myFun1 ( x ) h = exp(−x)−x ;
3. Buka Optimization Toolbox menggunakan perintah optimtool
4. Pada jendela Optimization Tool, pilih f zero pada Solver, isikan @myF un1 pada Equation, dan pada option Let algorithm f ind interval containing x : dan isikan angka 0, kemudian klik tombol Start, dan akan diperoleh hasil sbb:
21
CHAPTER 6. MENCARI AKAR PERSAMAAN
22
5. Akar yang diperoleh dapat dilihat pada Form Final points (kiri bawah), akar yang diperoleh: 0.567.
6.2
Latihan Soal
1. Gunakan f zero-Solver untuk menentukan akar dari −0.6x2 + 2.4x = −5.5 gunakan interval awal xa = 5 dan xb = 10. 2. Gunakan f zero-Solver untuk menentukan akar dari 4x3 − 6x2 + 7x = 2.3 gunakan x0 = 0.1 sebagai nilai awal.
Chapter 7
Solusi Sistem Persamaan 7.1
Tutorial 1
1. Pada praktikum ini, kita akan mencari solusi dari sistem persamaan nonlinier menggunakan Optimization Toolbox. Sistem persamaan yang akan kita cari solusinya adalah sebagai berikut x2 + xy
=
10
2
=
57
y + 3xy
2. Tuliskan sistem persamaan tersebut kedalam sebuah f unction-Matlab berikut f u n c t i o n O=myFun2 ( x ) O( 1 , 1 ) = x ( 1 ) ^ 2 + x ( 1 ) ∗ x ( 2 ) − 1 0 ; O( 2 , 1 ) = x ( 2 ) + 3∗ x ( 1 ) ∗ x ( 2 ) ^ 2 − 5 7 ;
3. Gunakan x1 = 1.5 dan x2 = 3.5 sebagai nilai awal dan pilih f solve pada Solver, @myF un2 pada Objective function, [1.5, 3.5] pada Start point, kemudian klik tombol Start, sehingga diperoleh hasil seperti pada gambar berikut.
23
CHAPTER 7. SOLUSI SISTEM PERSAMAAN
24
4. Pada Final point dapat dilihat bahwa solusi untuk sistem persamaan diatas adalah x = 2 dan y = 3.
7.2
Tutorial 2
1. Kali ini, kita akan menyelesaikan sistem persamaan dengan tiga variabel, yaitu 1 = 0 2 2 x21 − 81 (x2 + 0.1) + sin (x3 ) + 1.06 = 0 10π − 3 = 0 e−x1 x2 + 20x3 + 3 3x1 − cos (x2 x3 ) −
(7.2.1) (7.2.2) (7.2.3)
2. Nilai awal yang digunakan adalah x1 = 0.1, x2 = 0.1, dan x3 = −0.1. 3. Tuliskan sistem persamaan (7.2.1), (7.2.2), dan (7.2.3) kedalam sebuah f unction-Matlab berikut: f u n c t i o n H=myFun3 ( x ) H( 1 , 1)=3∗ x(1) − c o s ( x ( 2 ) ∗ x ( 3 ) ) − ( 1 / 2 ) ;
CHAPTER 7. SOLUSI SISTEM PERSAMAAN
25
H(2 ,1)= x (1)^2 −81∗( x (2)+0.1)^2+ s i n ( x ( 3 ) ) + 1 . 0 6 ; H(3 ,1)= exp(−x ( 1 ) ∗ x (2))+20∗ x (3)+(10∗ pi −3)/3;
4. Lakukan pengaturan pada jendela Optimization Toolbox sebagaimana pada gambar berikut:
5. Solusi yang diperoleh adalah x1 = 0.5, x2 = 0, dan x3 = −0.524 yang dapat dilihat pada Final point. Hasil numerik tersebut diperoleh setelah dilakukan iterasi sebanyak empat kali.
Chapter 8
Latihan: sistem persamaan nonlinier 1. Tentukan solusi dari sistem-sistem persamaan berikut ini menggunakan Optimization Toolbox. (a) Soal latihan 1. 1 4x21 − 20x1 + x22 + 8 = 0 4 1 2 x1 x2 + 2x1 − 5x2 + 8 = 0 2 (b) Soal latihan 2. x1 (1 − x1 ) + 4x2 2
(x1 − 2) + (2x2 − 3)
2
=
12
=
25
(c) Soal latihan 3. 1 2 2 2 4x1 − 625x2 + 2x2 − 1 10π − 3 exp (−x1 x2 ) + 20x3 + 3 3x1 − cos (x2 x3 ) −
(d) Soal latihan 4. 15x1 + x22 − 4x3
=
13
x21 + 10x2 − x3
=
11
x32 − 25x3 26
= −22
=
0
=
0
=
0
CHAPTER 8. LATIHAN: SISTEM PERSAMAAN NONLINIER
27
2. Gunakan x1 = x2 = x3 = 0 sebagai nilai awal. Pilih f solve pada Solver, pilih Algorithm yang sesuai dari tiga macam pilihan yang dapat dipilih pada dropdown list.
Chapter 9
Optimisasi 9.1
Tutorial 1: Unconstrained Optimization
1. Pandang masalah mencari sebuah himpunan solusi [x1 , x2 ] yang memenuhi min f (x1 , x2 ) = ex1 4x21 + 2x22 + 4x1 x2 + 2x2 + 1 x
2. Untuk menyelesaikan masalah dua-dimensi diatas, tuliskan persamaan tersebut kedalam sebuah fungsi seperti berikut f u n c t i o n f=o b j f u n ( x ) f=exp ( x ( 1 ) ) ∗ ( 4 ∗ x (1)^2+2∗ x (2)^2+4∗ x ( 1 ) ∗ x (2)+2∗ x ( 2 ) + 1 ) ;
3. Tuliskan kode program berikut untuk menyelesaikan masalah optimisasi unconstrained x0 = [ − 1 , 1 ] ; o p t i o n s=o p t i m o p t i o n s ( @fminunc , ’ Algorithm ’ , ’ q u a s i −newton ’ ) ; [ x , f v a l , e x i t f l a g , output ]= fminunc ( @objfun , x0 , o p t i o n s ) ;
4. Setelah dijalankan program diatas akan menghasilkan output sbb: L o c a l minimum found . O p t i m i z a t i o n completed b e c a u s e t h e s i z e o f t h e g r a d i e n t i s l e s s than t h e d e f a u l t v a l u e o f t h e f u n c t i o n t o l e r a n c e .
5. Untuk menampilkan hasilnya ketikkan kode berikut x , f v a l , e x i t f l a g , output
28
CHAPTER 9. OPTIMISASI
29
setelah dienter akan keluar output sbb: fval = 3 . 6 6 0 9 e −15 exitflag = 1 output = iterations : 8 funcCount : 66 stepsize : 1 f i r s t o r d e r o p t : 1 . 2 2 8 4 e −007 a l g o r i t h m : ’ medium−s c a l e : ␣ Quasi−Newton␣ l i n e ␣ s e a r c h ’
9.2
Tutorial 2: Constrained Optimization
1. Pandang masalah meminimumkan fungsi Rosenbrock’s f (x) = 100 x2 − x21
2
2
+ (1 − x1 )
pada suatu lingkaran dengan jari-jari 1. 2. Tentukan x yang meminimumkan fungsi f (x) pada himpunan x21 + x22 ≤ 1. 3. Berikut ini adalah gambar dari fungsi Rosenbrock’s
4. Untuk menyelesaikan masalah tersebut, ketikkan kode berikut di command window edit rosenbrock 5. Setelah Matlab editor terbuka, ketikkan kode berikut dan simpan dengan nama rosenbrock
CHAPTER 9. OPTIMISASI
30
f u n c t i o n f=r o s e n b r o c k ( x ) f =100∗(x(2) −x(1)^2)^2+(1 −x ( 1 ) ) ^ 2 ; 6. Tuliskan fungsi constrain kedalam sebuah function sebagaimana berikut f u n c t i o n [ c , ceq ]= u n i t d i s k ( x ) c=x(1)^2+x (2)^2 −1; ceq = [ ] simpan dengan nama unitdisk.m 7. Selanjutnya jalankan optimization tool dengan mengetikkan perintah optimtool dan GUI (graphical user interface) berikut akan terbuka
8. Pilih f mincon − Constrained nonlinear minimization pada Solver. 9. Pilih Interior point pada Algorithm. 10. Tuliskan @rosenbrock pada Objective function. 11. Tuliskan 0 0 pada Start point. 12. Tuliskan @unitdisk pada Nonlinear constraint function. Lebih detailnya lihat gambar berikut
CHAPTER 9. OPTIMISASI
31
13. Pada Options pane (tengah-bawah), pilih iterative pada Level of display.
14. Klik Start pada Run solver and view results.
15. Akan muncul pesan berikut dibawah button Start. Optimization running . Objective f u n c t i o n value : 0 . 0 4 5 6 7 4 8 2 4 7 5 8 1 3 7 2 3 6 L o c a l minimum found t h a t s a t i s f i e s the c o n s t r a i n t s . O p t i m i z a t i o n completed b e c a u s e t h e o b j e c t i v e f u n c t i o n i s non−d e c r e a s i n g i n feasible directions , to within the d e f a u l t value of the f u n c t i o n t o l e r a n c e , and c o n s t r a i n t s a r e s a t i s f i e d t o within the d e f a u l t value of the c o n s t r a i n t t o l e r a n c e . 16. Nilai x yang meminimumkan fungsi objektif muncul pada Final point.
CHAPTER 9. OPTIMISASI
32
Part III
Ordinary Differential Equation
33
Chapter 10
IVP: Vanderpool Equation 1. Pada praktikum kali ini, akan dijelaskan cara penyelesaian masalah nilai awal pada persamaan van der Pol. 2. Persamaannya adalah y100 − µ 1 − y12 y10 + y1 = 0
(10.0.1)
dengan µ > 0 sebuah parameter skalar. 3. Tuliskan ulang persamaan (10.0.1) menjadi sistem persaaman differensial orde-1, yaitu y10
=
y20
=
y2 µ 1 − y12 y2 − y1
4. Tuliskan sistem ODE diatas kedalam sebuah Matlab function berikut f u n c t i o n dydt=vdp1 ( t , y ) dydt (1 ,1)= y ( 2 ) ; dydt (2 ,1)=(1 − y ( 1 ) ^ 2 ) ∗ y(2) −y ( 1 ) ;
5. Kali ini gunakan fungsi ode45, yaitu [ t , y]= ode45 ( @vdp1 , [ 0
20] ,[2;0]);
6. Tampilkan output dengan menulis dan jalankan kode berikut p l o t ( t , y ( : , 1 ) , ’− ’ , t , y ( : , 2 ) , ’−− ’ ) t i t l e ( ’ S o l u t i o n ␣ o f ␣ van ␣ d e r ␣ Pol ␣ Equation , ␣ \mu␣=␣ 1 ’ ) ; x l a b e l ( ’ time ␣ t ’ ) ; y l a b e l ( ’ s o l u t i o n ␣y_1 ’ ) ; l e g e n d ( ’ y_1 ’ , ’ y_2 ’ )
34
CHAPTER 10. IVP: VANDERPOOL EQUATION
35
7. Setelah dijalankan akan muncul grafik dari solusi sbb Solution of van der Pol Equation, µ = 1 3 y1 y
2
2
solution y
1
0
−1
−2
−3
0
2
4
6
8
10 time t
12
14
16
18
20
Chapter 11
BVP: Persamaan Mathieu’s 1. Praktikum ini membahas penyelesaian masalah nilai batas pada persamaan Mathieu’s, adapun persamaannya adalah y 00 + (λ − 2q cos (2x)) y = 0
(11.0.1)
dengan kondisi y (0)
=
1
y (0)
=
0
y (π)
=
0
0
(11.0.2)
2. Untuk menyelesaikan persamaan differensial (11.0.1), terlebih dahulu tuliskan sebagai sistem persamaan differensial orde-1, yaitu y10
=
y2
y20
=
− (λ − 2q cos (2x)) y1
3. Tuliskan sistem persamaan orde-1 diatas dan kondisi batas (11.0.2) kedalam dua buah fungsi Matlab berikut dydx=mat4ode ( x , y , lambda ) dydx (1 ,1)= y ( 2 ) ; dydx (2 ,1)= −( lambda −2∗q∗ c o s ( 2 ∗ x ) ) ∗ y ( 1 ) ;
dan f u n c t i o n r e s=mat4bc ( ya , yb , lambda ) r e s =[ ya ( 2 ) ; yb ( 2 ) ; ya ( 1 ) − 1 ] ;
36
CHAPTER 11. BVP: PERSAMAAN MATHIEU’S
37
4. Buat tebakan awal dengan menuliskannya kedalam sebuah fungsi Matlab berikut f u n c t i o n y i n i t=m a t 4 i n i t ( x ) y i n i t =[ c o s ( 4 ∗ x ) ; −4∗ s i n ( 4 ∗ x ) ] ;
Untuk bvpinit, gunakan kode berikut untuk tebakan nilai lambda lambda =15; s o l i n i t =b v p i n i t ( l i n s p a c e ( 0 , pi , 1 0 ) , @mat4init , lambda ) ;
5. Untuk menghitung solusinya gunakan BVP solver berikut s o l=bvp4c ( @mat4ode , @mat4bc , s o l i n i t ) ;
6. Selanjutnya untuk menampilkan hasil perhitungan gunakan kode berikut f p r i n t f ( ’ Fourth ␣ e i g e n v a l u e ␣ i s ␣ a p p r o x i m a t e l y ␣ %7.3 f . \ n ’ , s o l . parameters ) xint = linspace (0 , pi ) ; Sxint = deval ( sol , xint ) ; plot ( xint , Sxint ( 1 , : ) ) a x i s ( [ 0 p i −1 1 . 1 ] ) t i t l e ( ’ E i g e n f u n c t i o n ␣ o f ␣ Mathieu ’ ’ s ␣ e q u a t i o n . ’ ) xlabel ( ’x ’ ) y l a b e l ( ’ s o l u t i o n ␣y ’ )
7. Setelah dijalankan, akan tampil solusi dalam bentuk grafik berikut
Chapter 12
Delay Differential Equation 1. Pada praktikum ini dibahas tentang solusi dari persamaan differensial tunda (DDE) dengan konstan delay. Persamaan differensialnya adalah sebagai berikut y10 (t)
=
y1 (t − 1)
y20 (t)
=
y1 (t − 1) + y2 (t − 0.2)
y30 (t)
=
y2 (t)
dimana y1 (t)
=
1
y2 (t)
=
1
y3 (t)
=
1
untuk t ≤ 0. 2. Tuliskan sistem persamaan differensial diatas ke dalam sebuah fungsi Matlab f u n c t i o n dydt = ddex1de ( t , y , Z ) ylag1 = Z ( : , 1 ) ; ylag2 = Z ( : , 2 ) ; dydt = [ y l a g 1 ( 1 ) ; y l a g 1 (1)+ y l a g 2 ( 2 ) ; y ( 2 ) ] ; end
3. Tuliskan histori solusi sebagai fungsi Matlab berikut function S = ddex1hist ( t ) S = ones ( 3 , 1 ) ; end
38
CHAPTER 12. DELAY DIFFERENTIAL EQUATION
39
4. Definisikan waktu delay-nya sebagai lags =[1 ,0.2]
5. Selesaikan DDE dengan memanggil dde23, dan gunakan interval sebagai input
0
5
,
s o l=dde23 ( @ddex1de , l a g s , @ddex1hist , [ 0 , 5 ] ) ;
Fungsi dde23 menghasilkan solusi yang kontinu pada interval penginte gralan t0 tf . 6. Gambar solusi yang diperoleh dari fungsi dde23, menggunakan kode berikut plot ( sol . x , sol . y ) ; t i t l e ( ’An␣ example ␣ o f ␣ W i l l e ␣and␣ Baker ’ ) ; x l a b e l ( ’ time ␣ t ’ ) ; y l a b e l ( ’ s o l u t i o n ␣y ’ ) ; l e g e n d ( ’ y_1 ’ , ’ y_2 ’ , ’ y_3 ’ , ’ L o c a t i o n ’ , ’ NorthWest ’ ) ;
7. Hitung solusi pada 10 buah titik yang sama sepanjang interval integrasi, dan gambar hasilnya dari sol.y, gunakan kode berikut tint = linspace (0 ,5 ,10); Sint = deval ( sol , t i n t ) h o l d on p l o t ( tint , Sint , ’ o ’ ) ;
8. Jalankan program untuk memperoleh gambar dari solusi berikut.
Part IV
PDE Toolbox
40
Chapter 13
Solusi PDP dengan Script-Function 13.1
Tutorial
1. Pada praktikum ini akan dipraktekkan cara mencari solusi dari persamaan difusi ∂2u ∂u pada {0 ≤ x ≤ 1, t ≥ 0} (13.1.1) π2 = ∂t ∂x2 dengan kondisi awal dan kondisi batas u (x, 0) = sin (πx) u (0, t) = 0 ∂ u (1, t) ∂x
= −π exp (−t)
(13.1.2) (13.1.3) (13.1.4)
2. Tulis ulang persamaan differensial (13.1.1) dalam bentuk ∂u ∂u ∂u ∂u −m ∂ m c x, t, u, =x x f x, t, u, + s x, t, u, ∂x ∂t ∂x ∂x ∂x sehingga diperoleh ∂ π =x ∂t ∂x 2 ∂u
0
41
0 ∂u x +0 ∂x
(13.1.5)
CHAPTER 13. SOLUSI PDP DENGAN SCRIPT-FUNCTION
42
dengan m ∂u c x, t, u, ∂x ∂u f x, t, u, ∂x ∂u s x, t, u, ∂x
=
0
=
π2
=
∂u ∂x
=
0
3. Tuliskan juga kondisi batas (13.1.4) dalam bentuk ∂u p (x, t, u) + q (x, t) f x, t, u, =0 ∂x sehingga diperoleh πe−t +
∂ u (1, t) = 0 ∂x
4. Tuliskan suku c, f, dan s sebagai fungsi Matlab berikut f u n c t i o n [ c , f , s ]= pdex1pde ( x , t , u , DuDx) c=p i ^ 2 ; f=DuDx ; s =0;
5. Tuliskan kondisi awal (13.1.2) dalam fungsi Matlab berikut f u n c t i o n u0=p d e x 1 i c ( x ) u0=s i n ( p i ∗x ) ;
dan kondisi batas (13.1.3) dan (13.1.4) sebagai f u n c t i o n [ pl , q l , pr , qr ]= pdex1bc ( x l , ul , xr , ur , t ) p l=u l ; q l =0; pr=p i ∗ exp(− t ) ; qr =1;
6. Pilih bentuk titik-titik diskrit yang akan digunakan, yaitu x=l i n s p a c e ( 0 , 1 , 2 0 ) ; t=l i n s p a c e ( 0 , 2 , 5 ) ;
7. Untuk mencari solusinya gunakan fungsi pdxpe dengan setting sebagai berikut
CHAPTER 13. SOLUSI PDP DENGAN SCRIPT-FUNCTION m=0; s o l=pdepe (m, @pdex1pde , @pdex1ic , @pdex1bc , x , t ) ;
8. Tampilkan output program dengan menggunakan kode berikut u=s o l ( : , : , 1 ) ; surf (x , t , u ) ; t i t l e ( ’ Numerical ␣ s o l u t i o n ␣ computed ␣ with ␣ 20 ␣mesh␣ p o i n t s ’ ) x l a b e l ( ’ D i s t a n c e ␣x ’ ) y l a b e l ( ’ Time␣ t ’ )
9. Setelah dijalankan akan muncul grafik berikut
10. Tampilkan sebuah profil solusi pada tf = 2, dan gunakan kode berikut figure p l o t ( x , u ( end , : ) ) t i t l e ( ’ S o l u t i o n ␣ a t ␣ t ␣=␣ 2 ’ ) x l a b e l ( ’ D i s t a n c e ␣x ’ ) ylabel ( ’u(x ,2) ’ )
11. Jalankan kembali program dan akan muncul gambar berikut
43
CHAPTER 13. SOLUSI PDP DENGAN SCRIPT-FUNCTION
13.2
44
Latihan
1. Selesaikan persamaan differensial berikut menggunakan cara seperti pada tutorial diatas utt = 2uxx {0 < x < 10, t > 0} dengan kondisi awal dan kondisi batas u (x, 0) = x,
ut (x, 0) = 0
u (0, t) = u (l, t) = 0
(13.2.1) (13.2.2)
2. Gambarkan solusi yang diperoleh ke dalam sebuah grafik dengan menggunakan fungsi surf .
Chapter 14
Solusi PDP dengan PDE-Toolbox 1. Sebagai contoh, kita akan menentukan solusi persamaan Laplace 2D pada domain persegi panjang berikut ∂2u ∂2u + 2 = 0, ∂x2 ∂y
{0 < x < 1, 0 < y < 1}
(14.0.1)
dengan kondisi batas Dirichlet, u (x, 0)
= u (x, 1) = 0
(14.0.2)
u (0, y)
=
0
(14.0.3)
u (1, y)
=
1
(14.0.4)
2. Buka PDE-Toolbox menggunakan perintah pdetool
sehingga muncul gambar berikut
45
CHAPTER 14. SOLUSI PDP DENGAN PDE-TOOLBOX
46
3. Atur domain atau daerah asal dari pdp (14.0.1) menggunakan menu Draw → Rectangle/Square, kemudian klik sebarang dalam kotak kemudian seret sehingga diperoleh hasil seperti gambar berikut
4. Selanjutnya double-klik pada kotak R1 dan lakukan pengaturan pada jendela popup yang muncul sebagaimana berikut
CHAPTER 14. SOLUSI PDP DENGAN PDE-TOOLBOX
47
5. Atur Axis menggunakan menu Option → Axis limit dan centang checklist Auto seperti gambar berikut
6. Jika pengaturannya benar, maka hasilnya adalah seperti gambar berikut
CHAPTER 14. SOLUSI PDP DENGAN PDE-TOOLBOX
48
7. Tentukan model pde dengan menggunakan menu P DE → Specif y pde
8. Berikutnya atur kondisi pada batas dengan klik menu Boundary → boundary mode Selanjutnya atur Boundary → Specif y boundary conditions supaya memenuhi persamaan (14.0.2), (14.0.3), dan (14.0.4). 9. Selanjutnya gunakan menu M esh → Initialize mesh sehingga diperoleh gambar berikut
10. Berikutnya gunakan menu Solve → Solve P DE sehingga diperoleh gambar berikut
CHAPTER 14. SOLUSI PDP DENGAN PDE-TOOLBOX
11. Selanjutnya klik menu P lot → Selection
12. Lakukan pengaturan sebagaimana pada gambar berikut
49
CHAPTER 14. SOLUSI PDP DENGAN PDE-TOOLBOX
50
13. Sehingga muncul gambar berikut
14. Untuk melihat solusi dalam bentuk angka, pilih menu Solve → Export solution sehingga tampil gambar berikut
CHAPTER 14. SOLUSI PDP DENGAN PDE-TOOLBOX
51
Chapter 15
Sistem PDP 1. Pada praktikum ini, akan ditunjukkan cara mencari solusi sistem pdp menggunakan toolbox Matlab pdxpe. 2. Contoh sistem pdp yang akan diselesaikan adalah ∂u1 ∂t ∂u2 ∂t
= =
∂ 2 u1 − F (u1 − u2 ) ∂x2 ∂ 2 u1 0.170 + F (u1 − u2 ) ∂x2 0.024
dengan F (y) = exp (5.73y) − exp (−11.46y) . Daerah asal untuk sistem pdp tersebut 0 ≤ x ≤ 1 dan untuk t ≥ 0. 3. Kondisi awal dan kondisi batas yang harus dipenuhi oleh sistem tersebut adalah u1 (x, 0)
=
1
u2 (x, 0)
=
0
dan ∂ u1 (0, t) ∂x u2 (0, t) u1 (1, t) ∂ u2 (1, t) ∂x
52
=
0
=
0
=
1
=
0
CHAPTER 15. SISTEM PDP 4. Tuliskan sistem pde diatas dalam bentuk berikut ∂ ∂ 1 u1 0.024 (∂x u1 ) −F (u1 − u2 ) .∗ + = 1 F (u1 − u2 ) ∂t u2 ∂x 0.170 (∂x u2 )
53