Академический Документы
Профессиональный Документы
Культура Документы
net/publication/322143888
CITATIONS READS
0 764
1 author:
Sayahdin Alfat
Universitas Haluoleo
13 PUBLICATIONS 4 CITATIONS
SEE PROFILE
Some of the authors of this publication are also working on these related projects:
All content following this page was uploaded by Sayahdin Alfat on 01 January 2018.
Sayahdin Alfat
29 Desember 2017
Daftar Isi
Daftar Isi 1
2 Integral 35
2.1 Pendahuluan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.2 Aturan Trapezoidal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.3 Aturan Composite Trapezoidal . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.4 Aturan Simpson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.5 Menentukan nilai error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
2.6 Latihan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3 Persamaan Differensial 46
3.1 Metode Euler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.2 Metode Runge-Kutta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.2.1 Metode Runge-Kutta orde-2 . . . . . . . . . . . . . . . . . . . . . . . 52
3.2.2 Metode Runge-Kutta orde-4 . . . . . . . . . . . . . . . . . . . . . . . 58
3.3 Latihan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.4 Sistem Berorde Tinggi (Higher-Order Systems) . . . . . . . . . . . . . . . . . 64
3.5 Metode Beda Hingga . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
1
Daftar Gambar
2.1 (a) Kurva fungsi f(x), dan (b) Kurva fungsi f(x) menggunakan metode Trape-
zoidal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.2 Ilustrasi aturan composite trapezoidal . . . . . . . . . . . . . . . . . . . . . . 39
2.3 Ilustrasi aturan Simpson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.4 Ilustrasi aturan Composite-Simpson. Bandingkan gambar tersebut dengan
gambar 2.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
2.5 Ilustrasi aturan Simpson 3/8 . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2
Bab 1
1.1 Pengantar
Salah satu bagian terpenting dalam pengolahan data yakni analisis data melalui grafik atau
kurva. Akan tetapi, terkadang data yang dihasilkan saat pengambilan data atau pengukuran
tidak merepresentasikan data secara keseluruhan atau kurang, sehingga proses analisis data
menjadi sedikit rumit dan pada akhirnya hasil yang diperoleh kurang baik (tidak akurat).
Di sisi yang lain, pemahaman seseorang tentang treatment kurva sangat kurang sehingga
menambah ketidakakuratan hasil yang diperoleh.
Untuk Ada dua teknik treatment kurva yang sering digunakan yakni interpolasi (interpo-
lation) dan pencocokan kurva (fitting curve). Kedua metode ini memiliki perbedaan yaitu;
pada metode interpolasi, konstruksi kurva didasarkan pada data-data yang ada, artinya kurva
yang dibentuk harus melalui semua titik yang data yang ada. Sedangkan, metode pencocok-
an kurva digunakan pada data yang mengandung noise, biasanya untuk menghitung tingkan
kesalahan (error ) suatu data antara.
3
atau
Contoh
Dari suatu eksperimen diperoleh data sebagai berikut: Tentukan bentuk persamaan polino-
Solusi
Dari data yang ada diketahui bahwa jumlah data (n) adalah 3, sehingga bentuk persamaan
polinomial yang mungkin terjadi adalah:
f (x) = p1 x2 + p2 x + p3
ρ(T ) = p1 T 2 + p2 T + p3 (2.3)
Substitusi seluruh data hasil eksperimen pada persamaan 2.3, sehingga diperoleh:
Dari ketiga persamaan tersebut (2.4 - 2.6), koefisien p1 , p2 dan p3 dengan mudah diperoleh:
1 clear all;
2 clc;
3 %diketahui Ap = b
4 %tentukan nilai p
5 A = [90000 300 1; 160000 400 1; 250000 500 1];
6 b = [0.616; 0.525; 0.457]
7 p = inv(A)*b
Contoh di atas merupakan penyelesaian secara umum metode interpolasi menggunakan in-
terpolasi. Pada bagian selajutnya akan dijelaskan beberapa varians dari metode interpolasi
dengan menggunakan teknik polinomial, seperti; metode polinomial Lagrange, Newton, dan
Neville.
4
Metode Lagrange
Metode Lagrange merupakan salah satu varians dari metode interpolasi polinomial yang
sangat sederhana. Metode Lagrange dapat diungkapkan dalam bentuk persamaan:
n
X
Pn−1 (x) = yi li (x) (2.8)
i=1
dimana:
x − x1 x − x2 x − xi−1 x − xi+1 x − xn
li = · ··· · ···
xi − x1 xi − x 2 xi − xi−1 xi − xi+1 xi − xn
n
Y x − xj
= , i = 1, 2, · · · , n (2.9)
j=1
x i − x j
j6=i
Persamaan 2.9 disebut sebagai fungsi kardinal (cardinal functions), dimana n merupakan
jumlah data yang digunakan.
Contoh
1. Jika jumlah data yang digunakan n = 2, maka dengan menggunakan persamaan 2.8,
persamaan polinomial yang memenuhi persamaan tersebut adalah:
Dimana:
(x − x2 )(x − x3 )
l1 (x) = (2.15)
(x1 − x2 )(x1 − x3 )
(x − x1 )(x − x3 )
l2 (x) = (2.16)
(x2 − x1 )(x2 − x3 )
(x − x1 )(x − x2 )
l3 (x) = (2.17)
(x3 − x1 )(x3 − x2 )
5
Aplikasi
Contoh
Tentukanlah massa jenis (ρ) suatu bahan pada T = −10 ◦C, jika diketahui data:
T (◦ C) -40 0 20 50
ρ (kg/m3 ) 1.52 1.29 1.20 1.09
Solusi
Sebelum menentukan nilai ρ pada temperature T = −10 ◦C, terliebih dahulu dilakukan plot-
ting data (Gambar ??)
Dari gambar ?? terlihat bahwa penggunaan data dalam jumlah banyak sangat berpenga-
ruh. Semakin besar data yang digunakan, sebakin baik pula hasil yang diperoleh. Mari kita
membandingkan hasil dengan menggunakan jumlah data n= 2, 3, dan 4.
T1 = −40 ρ1 = 1.52
T2 = 0 ρ2 = 1.29
6
2. Untuk n = 3, dengan data:
T1 = −40 ρ1 = 1.52
T2 = 0 ρ2 = 1.29
T3 = 20 ρ3 = 1.20
maka ρ pada T = −10 ◦C memenuhi persamaan:
(T − T2 )(T − T3 ) (T − T1 )(T − T3 ) (T − T1 )(T − T2 )
ρ(T ) = ρ1 + ρ2 + ρ3
(T1 − T2 )(T1 − T3 ) (T2 − T1 )(T2 − T3 ) (T3 − T1 )(T3 − T2 )
(−10)(−30) (30)(−30) (30)(−10)
ρ(−10) = 1.52 + 1.29 + 1.20
(−40)(−60) (40)(−20) (60)(20)
(300) (−900) (−300)
= 1.52 + 1.29 + 1.20 = 1.34125
(2400) (−800) (1200)
3. Jika n = 4, maka lebih baik gunakan program (code) untuk menyelesaikan atau me-
nentukan massa jenis pada T = −10 ◦C
1 clear all;
2 clc;
3 T = [−40 0 20 50];
4 d = [1.52 1.29 1.2 1.09];
5 Tt = −10;
6 yint = Lagrange(T,d,Tt);
7 disp('Massa Jenis = ');
8 fprintf('%10.15f\nLeftarrow',yint);
Fungsi Lagrange yang digunakan pada code di atas, dapat digunakan untuk semua jenis data
sepanjang masih menggunakan metode Lagrange.
7
Latihan
Soal
Tentukanlah nilai y pada x = 1, jika diketahui data:
x 0 2 3
y 7 11 28
Solusi
Diketahui bahwa jumlah data (n) = 3, sehingg persamaan memenuhi:
1 clear all;
2 clc;
3 x = [0 2 3];
4 y = [7 11 28];
5 xt = 1;
6 yint = Lagrange(x,y,xt);
7 disp('Nilai y pada x = 1 adalah');
8 fprintf('%1.2f\nLeftarrow',yint);
Hasil:
Nilai y pada x = 1 adalah
4.00
8
Alternatif Solusi
Gunakan persamaan 2.18, diperoleh:
dengan menggunakan persamaan 2.19 diperoleh nilai y pada x = 1 adalah 4. Jika tabel 1.1
diploting dan dibandingkan dengan ploting menggunakan persamaan 2.19 diperoleh:
(a) (b)
Gambar 1.3: (a) Plotting grafik secara langsung, dan (b) Plotting kurva menggunakan me-
tode polinomial Lagrange
Metode Newton
Secara prosedur metode Lagrange tidak efisien untuk menentukan nilai suatu variabel teri-
kat. Salah satu alternatif yang juga sering digunakan adalah menggunakan metode Newton.
Metode ini sering juga disebut sebagai metode selisih terbagi (divided differences). Bentuk
umum interpolasi polinomial menggunkan metode Newton adalah:
9
dimana n adalah jumlah data, dan koefisien a1 , a2 , a3 , hingga an memenuhi persamaan:
a1 = f (x1 ) (2.20)
a2 = f [x2 , x1 ] (2.21)
a3 = f [x3 , x2 , x1 ] (2.22)
·
·
·
an = f [xn , xn−1 , · · · , x2 , x1 ] (2.23)
sedangkan f [x2 , x1 ], f [x3 , x2 , x1 ], dan f [xn , xn−1 , · · · , x2 , x1 ] dapat diungkapkan dalam ben-
tuk:
f (xi ) − f (xj )
f [xi , xj ] = (2.24)
xi − xj
f [xi , xj ] − f [xj , xk ]
f [xi , xj , xk ] = (2.25)
xi − xk
f [xn , xn−1 , · · · , x2 ] − f [xn−1 , xn−2 , · · · , x1 ]
f [xn , xn−1 , · · · , x2 , x1 ] = (2.26)
xn − x1
Contoh
Tentukan bentuk persamaan polinomial menggunakan metode Newton, jika jumlah data n
= 4.
Untuk menyelesaikan persoalan tersebut maka persamaan yang memenuhi adalah:
P3 (x) = a1 + (x − x1 )a2 + (x − x1 )(x − x2 )a3 + (x − x1 )(x − x2 )(x − x3 )a4
dan nilai a1 , a2 , a3 , dan a4 dapat diungkapkan:
a1 = f (x1 ) (2.27)
f (x2 ) − f (x1 )
a2 = (2.28)
x2 − x1
f [x3 , x2 ] f [x2 , x1 ] f (x3 ) − f (x2 ) f (x2 ) − f (x1 )
a3 = − = − (2.29)
x3 − x1 x3 − x1 (x3 − x1 )(x3 − x2 ) (x3 − x1 )(x2 − x1 )
f (x4 ) − f (x3 ) f (x3 ) − f (x2 ) f (x2 ) − f (x1 )
a4 = − − (2.30)
(x4 − x1 )(x4 − x3 ) (x4 − x1 )(x3 − x2 ) (x4 − x1 )(x2 − x1 )
Jika mengacu pada bentuk umum interpolasi polinomial Newton dan persamaan (2.20 - 2.23),
maka persamaan interpolasi polinomial Newton dapat dituliskan menjadi lebih sederhana.
Pn−1 (x) = f (x1 ) + (x − x1 )f [x2 , x1 ] + (x − x1 )(x − x2 )f [x3 , x2 , x1 ]
+ · · · + (x − x1 )(x − x2 ) · · · (x − xn−1 )f [xn , xn−1 , · · · , x2 , x1 ] (2.31)
Xn
Pn−1 (x) = f (x1 ) + (x − x1 )(x − x2 ) · · · (x − xk−1 )f [xk , xk−1 , · · · , x2 , x1 ] (2.32)
k=1
10
Latihan
Soal
Diberikan data sebagai berikut:
x1 = 1 f (x1 ) = 0
x2 = 4 f (x2 ) = 1.386294
x3 = 6 f (x3 ) = 1.791759
x4 = 5 f (x4 ) = 1.609438
Solusi
Karena jumlah data (n) = 4, maka persamaan interpolasi polinomial metode Newton me-
menuhi persamaan:
f (x1 ) = 0
1.386294 − 0
f [x2 , x1 ] = = 0.462098
4−1
1.791759 − 1.386294
f [x3 , x2 ] = = 0.2027325
6−4
1.609438 − 1.791759
f [x4 , x3 ] = = 0.182321
5−6
Variabel polinomial orde kedua:
0.2027325 − 0.462098
f [x3 , x2 , x1 ] = = −0.0518731
6−1
0.182321 − 0.2027325
f [x4 , x3 , x2 ] = = −0.0204115
1
Variabel polinomial orde ketiga:
−0.0204115 − (−0.0518731)
f [x4 , x3 , x2 , x1 ] = = 0.0078654
4
Substitusi nilai f (x1 ), f [x2 , x1 ], f [x3 , x2 , x1 ], dan f [x4 , x3 , x2 , x1 ] dan juga nilai x1 , x2 , x3 ,
dan x4 ke persamaan (2.33).
11
Jadi persamaan interpolasi polinomial Newton yang memenuhi adalah:
Jika ingin menentukan nilai f(x) pada saat x = 2, maka substitusi nilai tersebut ke persamaan
2.35.
Alternative Solusi
Pada dasarnya cara menyelesaikan dengan sistem manual dimungkinkan, namun untuk jum-
lah data (n) yang banyak diperlukan suatu sistem perhitungan numerik dengan bantuan
komputasi. Berikut ini cara menyelesaikan problem interpolasi polinomial Newton menggu-
nakan MATLAB.
Untuk menyelesaikan persoalan ini, kita membuat dua fungsi, dimana fungsi pertama un-
tuk menentukan nilai koefisien (f (x1 ), f [x2 , x1 ], · · · , f [x4 , x3 , x2 , x1 ]) dan fungsi kedua untuk
menentukan nilai suatu interpolasi.
1 function a = coefNewton(xx,yy)
2 %xx adalah data variabel bebas
3 %yy adalah data variabel terikat
4 n = length(xx); %jumlah data variabel terikat
5 a = yy;
6 for k = 2:n
7 a(k:n)=(a(k:n)−a(k−1))./(xx(k:n)−xx(k−1));
8 end
12
1 function p = PolyNewton(a,xx,xt)
2 %xx adalah data variabel bebas
3 %a adalah nilai koefisien
4 %xt adalah variabel bebas yang ingin dihitung
5 n = length(xx); %jumlah data variabel terikat
6 p = a(n);
7 for k = 1:n−1
8 p=a(n−k)+(x−xx(n−k))*p;
9 end
Dengan menggunakan kedua code fungsi eksternal di atas dapat ditentukan nilai f(x) pada x
= 2.
1 clear all;
2 clc;
3 xx = [1 4 6 5];
4 yy = [0 1.386294 1.791759 1.609438];
5 xt = 2; % nilai x yang ingin diselesaikan
6 %Menentukan variabel f(x1), f[x2,x1], ..., f[x4,x3,x2,x1]
7 a = coefNewton(xx,yy);
8 %Menentutukan nilai y pada x
9 p = PolyNewton(a,xx,xt);
10 coefInt=a';
11 disp('Koefisien interpolasi Newton:');
12 disp(coefInt);
13 disp('Nilai y pada x = 2 menggunakan interpolasi polinomial Newton adalah');
14 fprintf('%1.20f\nLeftarrow',p);
Hasil
Dengan menggunakan code ini, dapat juga diploting grafik sebelum dan sesudah interpolasi
polinomial Newton (Gambar 1.4).
Metode Neville
Interpolasi polinomial dengan menggunakan metode Neville terdiri atas dua tahap; (1) per-
hitungan koefisien, dan (2) menghitung nilai polinomial. Metode Neville merupakan varians
13
(a) (b)
Gambar 1.4: (a) Plotting grafik secara langsung, dan (b) Plotting kurva menggunakan me-
tode polinomial Newton
dari metode interpolasi polinomial yang baling bagus, jika dibandingkan dengan Lagrange
dan Newton.
Jika diketahui polinomial berderajat k Pk [xi , xi+1 , · · · , xi+k ] yang melalui sejumlah data
k + 1 pada titik (xi , yj ), (xi+1 , yj+1 ), · · · , (xi+k , yj+k ). Jika menggunakan satu titik data,
maka:
P0 [xi ] = yi (2.36)
P0 [xi ] = yi
(xi − xi+1 )P0 [xi ]
P1 [xi , xi+1 ] = = P0 [xi ]
xi − xi+1
(xi − xi+2 )P1 [xi , xi+1 ]
P2 [xi , xi+1 , x2+i ] = = P1 [xi , xi+1 ]
xi − xi+1
Jadi dari ketiga persamaan di atas dapat diungkapkan sebagai berikut:
14
Jika nilai x = xi+2 , maka persamaan (2.36), (2.37), dan (2.38) dapat dituliskan:
P2 [xi , xi+1 , x2+i ] = P1 [xi , xi+2 ] = yi+2 (2.40)
dan jika nilai x = xi+1 , memenuhi:
(xi+1 − xi+2 )yi+1 + (xi − xi+2 )yi+1
P2 [xi , xi+1 , xi+2 ] = (2.41)
xi − xi+2
Dengan menggunakan pola di atas, maka dapat dibuatkan persamaan umum sebagai berikut:
Pk [xi , xi+1 , · · · , xi+k ] (2.42)
(x − xi+k )Pk−1 [xi , xi+1 , · · · , xi+k−1 ] + (xi − x)Pk−1 [xi+1 , xi+2 , · · · , xi+k ]
=
xi − xi+k
atau secara sederhana dapat diilustrasikan dengan menggunakan tabel betikut ini:
Tabel 1.2: Penyederhanaan interpolasi polinomial Neville
Contoh
Soal
Tentukan nilai f(x) pada saat x = 1.5 dengan menggunakan metode Neville, jika diberikan
data sebagai berikut:
x 1.0 1.3 1.6 1.9 2.2
f(x) 0.7651977 0.6200860 0.4554022 0.2818186 0.1103623
Solusi
Untuk menyelesaikan persoalan tersebut di atas gunakan tabel 1.2, dimana nilai-nilai pada
tabel diselesaikan dengan cara:
1. Untuk k = 0;
P0 [x1 ] = 0.7651977
P0 [x2 ] = 0.6200860
P0 [x3 ] = 0.4554022
P0 [x4 ] = 0.2818186
P0 [x5 ] = 0.1103623
15
2. Untuk k = 1, gunakan persamaan:
(x − xi+1 )P0 [xi ] + (xi − x)P0 [xi+1 ]
P1 [xi , xi+1 ] = (2.43)
xi − xi+1
Sama halnya dengan P1 [x1 , x2 ], maka P1 [x2 , x3 ], P1 [x3 , x4 ] dan P1 [x4 , x5 ] adalah:
P1 [x2 , x3 ] = 0.5102968
P1 [x3 , x4 ] = 0.5132634
P1 [x4 , x5 ] = 0.510427
(x − xi+3 )P2 [xi , xi+1 , xi+2 ] + (xi − x)P2 [xi+1 , xi+2 , xi+3 ]
P3 [xi , xi+1 , xi+2 , xi+3 ] =
xi − xi+3
Sehingga:
(−0.4)0.5124715 + (−0.5)0.5112857
P3 [x1 , x2 , x3 , x4 ] = = 0.5118127
−0.9
dan P3 [x2 , x3 , x4 , x5 ] = 0.5118302
16
sehingga,
Jadi nilai f (x) pada x = 1.5 adalah 0.5118200. Jika dilihat proses perhitungan secara manua-
l/konvensional sangat panjang dan rumit. Sehingga, diperlukan alat bantu berupa komputa-
si. Berikut ini adalah fungsi yang digunakan untuk menghitung nilai tertentu menggunakan
interpolasi polinomial Neville.
Untuk membuat fungsi ini, maka gunakan panduan melalui persamaan (2.43).
1 function fx = Neville(xx,yy,xt)
2 %xx adalah array data variabel bebas
3 %yy adalah array data variabel terikat
4 %xt adalah nilai variabel bebas untuk perhitungan
5
6 n= length(xx);
7 y= yy;
8 for k = 1:n−1
9 y(1:n−k) = ((xt−xx(k+1:n)).*y(1:n−k)+(xx(1:n−k)−xt).*y(2:n−k+1))...
10 ./(xx(1:n−k) − xx(k+1:n));
11 end
Code program
1 clear all;
2 clc;
3 xx = [1.0 1.3 1.6 1.9 2.2];
4 yy = [0.7651977 0.6200860 0.4554022 0.2818186 0.1103623];
5 xt = 1.5; % nilai x yang ingin diselesaikan
6
7 fx = Neville(xx,yy,xt)
8 disp('Nilai f(x) pada x = 1.5 menggunakan interpolasi Neville adalah');
9 fprintf('%1.20f\n',fx(1));
17
Hasil komputasi
(a) (b)
Gambar 1.5: (a) Plotting grafik secara langsung, dan (b) Plotting kurva menggunakan me-
tode polinomial Neville
1.3 Tugas
1. Diberikan data:
Tabel 1.3: Data hubungan x dan y
18
(a) Gunakan interpolasi Lagrange, Newton, dan Neville untuk mencari persamaan
yang memenuhi kondisi data-data tersebut.
(b) Bandingkan ketiga metode tersebut dengan solusi eksak. Gunakan grafik untuk
melihat perbandingan interpolasi dan gunakan pula operator perintah hold on.
(c) Manakah dari ketiga metode tersebut yang lebih mendekati dengan solusi eksak.
Jelaskan!.
(Catatan: solusi eksak merupakan hasil ploting langsung persamaan y =
cos(π(x))exp(−0.55x)
19
2. Konstanta untuk setiap kubik harus sama
si (x) = fi + bi (x − xi ) + ci (x − xi )2 + di (x − xi )3 (4.46)
3. Setiap kubik harus dihubungkan dengan suatu titik, dimana titik x = xi+1 memenuhi:
Untuk menentukan variabel bi+1 , maka persamaan (4.46) diurai menjadi bentuk turun-
an pertama:
4. Untuk memenetukan nilai ci+1 maka persamaan (4.49) diubah menjadi turunan perta-
ma lagi:
dan nilai di :
ci+1 − ci
di = (4.53)
3hi
Substitusi nilai di ke persamaan (4.48):
ci+1 − ci
fi+1 = fi + bi (hi ) + ci (hi )2 + (hi )3
3hi
(hi )2
= fi + bi (hi ) + (2ci + ci+1 ) (4.54)
3
Persamaan (4.54) dapat dituliskan dalam bentuk lain:
fi+1 − fi (hi )
bi = − (2ci + ci+1 ) (4.55)
hi 3
Jika indek persamaan (4.55) direduksi 1 tahap:
fi − fi−1 (hi−1 )
bi−1 = − (2ci−1 + ci ) (4.56)
hi−1 3
20
Sementara itu, untuk menentukan bi+1 substitusi persamaan (4.53) ke persamaan (4.50):
Ax = b
21
Contoh
Soal 1
Solusi
f3 − f2 1.5
h1 = 4.5 − 3.0 = 1.5, a1 = f1 = 2.5, f [x3 , x2 ] = =
x3 − x2 2.5
f2 − f1 −1.5
h2 = 7.0 − 4.5 = 2.5, a2 = f2 = 1.0, f [x2 , x1 ] = =
x2 − x1 1.5
f4 − f3 −2
h3 = 9.0 − 7.0 = 2.0, a3 = f3 = 2.5, , f [x4 , x3 ] = =
x4 − x3 2
a4 = f4 = 0.5,
c1 = 0.
c2 = 0.8395437
c3 = −0.7665399
c4 = 0.
d1 = 0.1865653 b1 = −1.419771863
d2 = −0.2141445 b2 = −0.160456274
d3 = 0.1277567 b3 = 0.022053232
22
(c) Substitusi nilai ai , bi , ci , dan di ke persamaan umum polinomial (4.44), sehingga:
Aplikasi MATLAB
Salah satu cara yang mudah untuk untuk menyelesaikan permasalah di atas yakni dengan
menggunakan MATLAB. Berikut ini adalah code yang digunakan dalam menyelesaikan ma-
salah tersebut:
1 clc;
2 close;
3 clear all;
4 x = [3.0 4.5 7.0 9.0];
5 y = [2.5 1.0 2.5 0.5];
6
7 plot(x,y,'sr');
8
9 n = length(x);
10 for k = 1:n−1
11 h(k) = x(k+1) − x(k);
12 end
13
20 a = y; %koefisien nilai a
21 r(1,1)=0;
22 for k = 2:n−1
23 H(k,k) = 2*(h(k−1)+h(k));
24 H(k,k−1) = h(k−1);
25 H(k,k+1) = h(k);
26 r(k,1) = 3/h(k)*(a(k+1)−a(k)) − 3/h(k−1)*(a(k)−a(k−1));
27 end
28
29 r(n,1)=0;
30 c = inv(H)*r; % menentukan nilai c
31 disp('nilai c:');
32 disp(c)
23
33
34 for k = 1:n−1
35 b(k,1)= 1/h(k)*(a(k+1)−a(k))− h(k)/3*(2*c(k)+c(k+1)); %tentukan nilai b
36 d(k,1)= 1/(3*h(k))*(c(k+1)−c(k)); %menentukan nilai b
37 end
38 disp('nilai b:');
39 disp(b);
40 disp('nilai d:');
41 disp(d);
42
43 hold on
44 for k=2:n
45 xx=x(k−1):0.01:x(k);
46 S=a(k−1)+b(k−1)*(xx−x(k−1))+c(k−1)*(xx−x(k−1)).^2+d(k−1)*(xx−x(k−1)).^3;
47 plot(xx,S);
48 end
Hasil
nilai c:
0
0.8395
-0.7665
nilai b:
-1.41198
-0.1605
0.0221
nilai d:
0.1866
-0.1278
0.1278
atau dengan menggunakan fungsi internal (internal function) yang tersedia pada MAT-
LAB.
1 clc;
2 close;
3 clear all;
4 x = [3.0 4.5 7.0 9.0];
5 y = [2.5 1.0 2.5 0.5];
6
7 xt = 3:0.01:9;
8 yt = interp1(x,y,xt,'spline');
9 plot(x,y,'o',xt,yt,'−');
24
Jika dibandingkan hasil kedua program tersebut adalah:
Persamaan Umum
Jika diketahui sekumpulan data (xi , yi ), dimana i = 1, 2, · · · , m. Maka persamaan fungsi
polinomial memenuhi:
dimana n < m − 1.
Untuk meminimalisasi error E = E2 (a0 , a1 , · · · , an ):
25
m
X 2
E = yi − fn (xi )
i=1
m m m
X X X 2
= yi2 −2 fn (xi )yi + fn (xi )
i=1 i=1 i=1
Xm Xm X
n m X
X n 2
= yi2 − 2 aj xji yi + aj xji
i=1 i=1 j=0 i=1 j=0
Xn Xn X m n
XX n m
X
= yi2 − 2 aj xji yi + aj ak xj+k
i (5.61)
i=1 j=0 i=1 j=0 k=0 i=1
∂E
Untuk menentukan koefisien a0 , a1 , · · · , an , maka gunakan asumsi = 0, sehingga persa-
∂aj
maan (5.61) menjadi:
m n m
∂E X
j
X X
0 = = −2 xi y i + 2 ak xj+k
i (5.62)
∂aj i=1 k=0 i=1
atau:
n
X m
X m
X
ak xij+k = xji yi , j = 0, 1, · · · , n (5.63)
k=0 i=1 i=1
Persamaan (5.63) dapat dituliskan dalam suatu sistem persamaan sebagai berikut:
m
X m
X m
X m
X m
X
a0 x0i + a1 x1i + a2 x2i + · · · + an xni = x0i yi
i=1 i=1 i=1 i=1 i=1
m
X m
X m
X m
X m
X
a0 x1i + a1 x2i + a2 x3i + · · · + an xni = x1i yi
i=1 i=1 i=1 i=1 i=1
..
.
m
X m
X m
X m
X m
X
a0 xni + a1 xn+1
i + a2 xn+2
i + · · · + an x2n
i = xni yi
i=1 i=1 i=1 i=1 i=1
Catatan: Jika nilai n = m, maka ini bukan fitting curve, karena nilai standar deviasi
bernilai nol dan σ tidak bernilai apa-apa.
26
Contoh
Soal 1
Tentukanlah persamaan menggunakan least-square fit yang memenuhi fungsi polinomial orde
2 dengan menggunakan data-data hasil eksperiment sebagai berikut:
Tabel 1.4
Solusi Analitik
Dari tabel (1.4) diketahui bahwa: jumlah data (m) = 5, dan derajat atau orde fungsi po-
linomial (n) = 2. Sehingga dengan menggunakan asumsi tersebut dapat diketahui bahwa
data-data tersebut memiliki 3 bentuk sistem persamaan yang memenuhi bentuk:
m
X m
X m
X m
X
a0 x0i + a1 x1i + a2 x2i = x0i yi (5.65)
i=1 i=1 i=1 i=1
Xm Xm Xm Xm
a0 x1i + a1 x2i + a2 x3i = x1i yi (5.66)
i=1 i=1 i=1 i=1
m
X m
X m
X m
X
a0 x2i + a1 x3i + a2 x4i = x2i yi (5.67)
i=1 i=1 i=1 i=1
Dari ketiga persamaan tersebut di atas, dengan menggunakan eliminasi gaussian akan dipe-
roleh nilai a0 , a1 , dan a2 yakni sebagai berikut:
Dari code di atas diperoleh bahwa nilai a0 = 1.0051371, a1 = 0.8641829, dan a2 = 0.8436571.
Sehingga fungsi yang diperoleh dari data-data tersebut memenuhi:
Jika data-data hasil eksperiment (1.4) dibandingkan dengan fungsi interpolasi (5.68), maka
akan diperoleh:
27
>>A = [5 2.5 1.875; 2.5 1.875 1.5625; 1.875 1.5625 1.3828125];
>>b = [8.768; 5.4514; 4.4015375];
>>a = inv(A)*b
a =
1.0051371
0.8641829
0.8436571
Gambar 1.8: Grafik perbandingan antara data eksperiment dan fungsi interpolasi
28
11 xt = 0:0.05:1;
12 yt = 1.0051371+0.8641829.*xt+0.8436571.*(xt.^2);
13 plot(x,y,'o',xt,yt,'−');
Dari hasil plotting grafik tersebut, terlihat bahwa metode least-square fit memiliki derajat ke-
salahan (error ). Untuk menentukan nilai error dari fungsi polinomial tersebut maka gunakan
persamaan yang sudah dijelaskan di atas:
m
X 2
E = yi − fn (xi ) (5.69)
i=1
Tabel 1.5
i 1 2 3 4 5 Jumlah
xi 0 0.25 0.50 0.75 1.00 2.5
yi 1.0000 1.2840 1.6487 2.1170 2.7183 8.768
f (xi ) 1.0051371 1.273911 1.648142825 2.127831394 2.7129771 8.7679998
yi − f (xi ) -0.0051371 0.01008861 0.000557175 -0.010831394 0.0053229 1.875E-07
2
yi − f (xi ) 2.639E-05 0.0001018 3.10444E-07 0.0001173191 2.833E-05 0.000274
Solusi Komputasi
Pada MATLAB, penyelesaian persoalan fitting curve dapat dilakukan dengan sangat seder-
hana yakni dengan menggunakan operator fungsi internal polyfit.
29
11 %Menentukan variabel a0, a1, a2 dan nilai residual
12 [a,residual] = polyfit(xData,yData,n);
13 disp('nilai koefisien a =');
14 disp(a);
15 disp('nilai standar deviasi =');
16 disp(residual)
nilai koefisien a =
0.8437 0.8642 1.0051
Sehingga dengan menggunakan hasil tersebut dapat dituliskan fungsi interpolasi dengan
menggunakan metode least-square fit yakni sebagai berikut:
f2 x = 1.005 + 0.8642x + 0.8437x2
dengan standar deviasi (σ) adalah 0.0166.
Contoh Lain
Soal
Seorang peneliti melakukan penelitian untuk menghitung gravitasi suatu planet A. Dari hasil
penelitiannya ia memperoleh data sebagai berikut:
Tabel 1.6
30
Solusi
Pada bagian ini, kita tidak lagi menggunakan perhitungan manual untuk menentukan nilai
gravitasi planet A. Mari kita menggunakan perhitungan secara komputasi.
Namun sebelum menggunakan komputasi, tinjau dahulu konsep umum gerak jatuh bebas
(GLBB) berikut ini:
1
h0 + v0 t − gt2 = h (5.70)
2
dimana h0 adalah posisi awal (m), g dan v0 masing-masing adalah percepatan gravitasi
(m s−2 ) dan kecepatan awal (m s−1 ), kemudian, t dan h adalah pertambahan waktu atau
updating waktu (s) dan h adalah perubahan posisi atau updating posisi (m).
Jika persamaan (5.70) dimodifikasi menjadi:
1
h0 + v0 t − gt2 = h
2
a1 + a2 ti − a3 t2i = h (5.71)
dimana a1 = h0 , a2 = v0 dan a3 =− 12 g.
Gunakan persamaan (5.71) dan data tabel (1.6) pada code MATLAB berikut ini:
1 clear all;
2 clc;
3
4 xx = [0.00:0.25:5.00];
5 yy = [5.00 5.75 6.40 6.94 7.38 7.72 7.96 8.10 8.13 8.07 7.90 7.62 7.25 ...
6 6.77 6.20 5.52 4.73 3.85 2.86 1.77 0.58];
7
8 [a,residual] = polyfit(xx,yy,2);
9
10 disp(['Ketinggian Awal (a1) = ' num2str(a(3))]);
11 disp(['Kecepatan Awal (a2) = ' num2str(a(2))]);
12 disp(['a3 = ' num2str(a(1))]);
13 Grav = −2*a(1); %persamaan a3 = −g/2
14 disp(['Percepatan Gravitasi = ' num2str(Grav)]);
15
16 xx1 = [0:0.1:5.00];
17 yyt = a(1).*(xx1.^2)+a(2).*xx1+a(3);
18 plot(xx,yy,'o',xx1,yyt,'−');
31
Hasil code:
>>residual
residual =
R: [3x3 double]
df: 18
normr: 0.0141
>>sigma = 0.0141;
>>Error = (sigma^(2))*(21-2)
Error =
0.0038
Jadi dari hasil program diperoleh bahwa: Percepatan gravitasi (a) = 1.633 m s−2 , Kecepatan
awal (v0 ) = 3.2007 m s−1 , Ketinggian awal (h0 ) = 4.9995 m, serta standar deviasi dan error
adalah 0.0141 dan 0.0038.
Tugas
1. Suatu survei seismik dilakukan untuk mengetahui kedalaman suatu reflektor mendatar
sebagaimana tampak pada gambar (1.9) memiliki data sebagai berikut:
32
Gambar 1.9: Reflektor mendatar pada kedalaman z
4z 2 x2
+ 2 = t2 (5.72)
v2 v
Tentukan kecepatan (v ) dan kedalaman (z ) berdasarkan data dan asumsi di atas meng-
gunakan metode least-square fit. Tentukan error dan standar deviasinya juga!
Catatan: ubah persamaan (5.72) menjadi a1 + a2 x + a3 x2 = t2
2. Diketahui data suatu hasil survei seismik untuk mengetahui suatu reflektor miring (gambar
1.10) sebagai berikut: Jika waktu tempuh gelombang memenuhi persamaan berikut ini:
33
Tabel 1.8: Data survei seismik
4z 2 4z sin αx x2
+ + 2 = t2 (5.73)
v2 v2 v
Tentukan; (a) kecepatan v, (b) kedalaman z, dan (c) sudut reflektor α. Disamping itu pula
tentukan error dan standar deviasi. Catatan: Ubah persamaan 5.73 menjadi bentuk
a1 + a2 x + a3 x2 = t2
34
Bab 2
Integral
2.1 Pendahuluan
Proses integral dari suatu fungsi merupakan operasi matematika yang sangat penting dan
sering digunakan pada persoalan sains dan teknik. Pada dasarnya, integral didefinisikan
sebagai proses penjumlahan untuk menentukan luas daerah di bawah kurva y = f (x) dari
a ke b.
Z b
I = f (x)dx (1.1)
a
atau;
n
X
I = Ai f (xi ) (1.2)
i=1
dimana titik xi dan luas Ai tergantung pada aturan yang digunakan, apakah menggunakan
aturan Trapezoidal ataukah Simpson.
Operasi integral sering diselesaikan dengan menggunakan metode analitik atau menyelesaikan
langsung. Akan tetapi, untuk kasus-kasus yang kompleks metode ini kerap kali sangat sulit
atau bahkan tidak menyelesaikan persoalan, sehingga dibutuhkan metode numerik integral
untuk menyesaikan masalah tersebut. Pada bagian ini akan dijelaskan mengenai aturan
Trapezoidal dan Simpson untuk menyelesaikan persoalan fungsi integral.
35
(a) (b)
Gambar 2.1: (a) Kurva fungsi f(x), dan (b) Kurva fungsi f(x) menggunakan metode Trape-
zoidal
dimana A1 :
b b
(x − x2 )
Z Z
A1 = l1 (x)dx = dx
a a x1 − x 2
Z b Z b
(x − x2 ) (x − b)
= − dx = − dx
a x2 − x1 a b−a
Z b
(x − b) 1 b
Z
= − dx = − (x − b)
a h h a
1 2 1
= (b + a2 − 2ab) = (b − a)2
2h 2h
h
A1 = (2.5)
2
36
dan A2 :
Z b
A2 = l2 (x)dx
a
b
(x − x1 )
Z
A2 = dx
a x2 − x1
Z b
(x − x1 ) 1 b
Z
= dx = (x − a)
a h h a
1 2 1
= (b + a2 − 2ab) = (b − a)2 (2.6)
2h 2h
h
A2 = (2.7)
2
Substitusi persamaan (2.5) dan (2.7) ke dalam persamaan (2.4):
h
I = f (a) + f (b) (2.8)
2
Persamaan (2.8) dikenal sebagai aturan Trapezoidal.
Contoh
Soal
Tentukanlah nilai integral berikut ini:
Z π
2 sin(x)dx (2.9)
0
Solusi
Jika persoalan diselesaikan dengan menggunakan metode analitik maka diperoleh hasil seba-
gai berikut:
Z π
2
I = sin(x)dx
0
π
I = − cos(x)02 = 1
π
Jadi diperoleh solusi eksak untuk fungsi f (x) = sin(x) dari 0 ke adalah 1.
2
Sekarang mari kita membandingkan hasil tersebut dengan hasil yang menggunakan aturan
trapezoidal. Untuk menyelesaikan persoalan dengan fungsi tersebut, maka kita menggunakan
dua file; (a) file function dan (b) file aturan trapezoidal.
1. File function
37
1 %Code IIIa.m
2 function y = f(x)
3 % f(x) merupakan fungsi yang ingin diselesaikan
4 % f(x) dapat berubah tergantung fungsi yang ingin diselesaikan
5 y = sin(x);
2. File Trapezoidal
1 clc;
2 clear all;
3 a = 0; % syarat batas bawah integral
4 b = pi/2; % syarat batas atas integral
5 h = b − a;
6
7 %metode trapezoidal
8 Luas_area = h/2*(f(b)+f(a));
9 disp(['Luas area = ' num2str(Luas_area)]);
Jika diperhatikan hasil perhitungan secara analitik dan numerik memiliki perbedaan. Hal ini
karena aturan trapezoidal memiliki tingkat kesalahan (error ) yang besar, seperti yang ada
pada gambar (2.1b). Terlihat bahwa area antara bawah kurva dan garis miring berada di
luar area trapesium dan area ini tidak dihitung. Dari hal tersebut, perlu adanya aturan lain
untuk mengurangi tingkat kesalahan.
38
Gambar 2.2: Ilustrasi aturan composite trapezoidal
Contoh
Soal
Tentukan luas area di bawah kurva dengan menggunakan fungsi (2.9)!
Solusi
Untuk menyelesaikan persoalan tersebut dengan aturan composite trapezoidal, maka gunakan
code berikut ini:
1 %code CompTrapez.m
2 clc;
3 clear all;
4 a = 0; % syarat batas bawah integral
5 b = pi/2; % syarat batas atas integral
6 n = 1;
7
8 %metode composite trapezoidal
39
9 Luas_area = CompTrapz(a,b,n,'f');
10 disp(['Luas area = ' num2str(Luas_area)]);
atau
Aturan Simpson
Secara umum aturan ini membagi daerah di bawah kurva menjadi dua buah daerah baru.
Untuk lebih jelasnya lihat gambar (2.3).
40
Secara umum aturan Simpson diformulasikan sebagai berikut:
Z b n
X
f (x)dx = Ai f (xi )
a i=1
Jika pada aturan Trapezoidal memiliki nilai n = 2, maka aturan ini memiliki nilai n = 3,
untuk aturan Simpson 1/3 dan n = 4, untuk Simpson 3/8. sehingga:
Z b 3
X
f (x)dx = Ai f (xi )
a i=1
h ih
= f (x1 ) + 4f (x2 ) + f (x3 )
3
h a + b ih
= f (a) + 4f + f (b) (4.13)
2 3
dimana nilai h memenuhi:
b−a
h =
n−1
b−a
= (4.14)
2
Persamaan (4.13) disebut juga persamaan Simpson 31 . Sedangkan untuk aturan Simpson 3
8
memenuhi persamaan:
h i 3h
I = f (x1 ) + 3f (x2 ) + 3f (x3 ) + f (x4 ) (4.15)
8
nilai h memenuhi:
b−a
h =
n−1
b−a
= (4.16)
3
Aturan Composite-Simpson
Jika aturan Trapezoidal dikenal memiliki varians Composite-Trapezoidal, maka sama halnya
aturan Simpson memiliki Composite-Simpson. Untuk lebih jelasnya lihat gambar berikut ini:
Metode ini pengembangan dari metode dasarnya yakni aturan Simpson. Adapun persamaan
umum metode ini adalah:
Z b
I = f (x)
a
h ih
= f (x1 ) + 4f (x2 ) + 2f (x3 ) + 4f (x4 ) + · · · + 2f (xn−2 ) + 4f (xn−1 ) + f (xn )
3
41
Gambar 2.4: Ilustrasi aturan Composite-Simpson. Bandingkan gambar tersebut dengan gam-
bar 2.2
Contoh
Soal
Hitunglah nilai integral dari suatu persamaan berikut ini:
Z π
2 sin(x)dx (4.17)
0
1 3
Gunakan aturan Simpson , Simpson dan Aturan Composite-Simpson!
3 8
Solusi
Pada permasalahan ini, kita sudah ketahui bersama bahwa hasil integral yang diperoleh
menggunakan metode analitik adalah 1. Marilah kita gunakan ketiga metode tersebut untuk
menentukan nilai integral fungsi tersebut.
1. Aturan Simpson 1/3
Code yang digunakan pada aturan ini hampir sama dengan code Trapezoidal, yang
diubah hanyalah file Trapezoidal sedangkan file function tidak berubah.
1 %Code: Simpson13.m
2 clc;
3 clear all;
4 a = 0; % syarat batas bawah integral, a adalah x1
5 b = pi/2; % syarat batas atas integral, b adalah x3
6 h = (b − a)/2;
7 c = a + h; % c adalah x2
8
9 %metode trapezoidal
10 Luas_area = h/3*(f(a)+4*f(c)+f(b));
11 disp(['Luas area = ' num2str(Luas_area)]);
42
2. Aturan Simpson 3/8
Untuk menyelesaikan persoalan tersebut gunakan persamaan (4.15).Disamping itu juga
untuk lebih memudahkan lihat ilustrasi gambar berikut ini:
Dari gambar tersebut diketahui bahwa aturan ini haruslah menggunakan 4 titik data,
yakni titik a, b, c dan d. Titik a dan b sudah diketahui sebelumnya yaitu a = 0 dan
b = π/2. Sedangkan nilai c dan d diperoleh dengan menggunakan persamaan (4.14).
Catatan dalam menentukan kedua nilai tersebut haruslah memiliki nilai h yang sama.
Sehingga dengan mengacu pada aturan ini diperoleh:
c = a+h
d = a + 2h
1 %Code: Simpson38.m
2 clc;
3 clear all;
4 a = 0; % syarat batas bawah integral, a adalah x1
5 b = pi/2; % syarat batas atas integral, b adalah x4
6 h = (b − a)/2;
7 c = a + h; % c adalah x2
8 d = a + 2*h; % c adalah x3
9
10 %metode trapezoidal
11 Luas_area = (3*h/8)*(f(a)+3*f(c)+3*f(d)+f(b));
12 disp(['Luas area = ' num2str(Luas_area)]);
Catatan: fungsi eksternal yang digunakan sama dengan fungsi pada code Trapezoidal
ataupun Simpson 1/3.
Dari hasil code ini diperoleh sebagai berikut:
43
Luas area = 1.001
3. Aturan Composite-Simpson
Seperti yang sudah dijelaskan di atas, bahwa Composite-Simpson memiliki kesamaan
dengan Composite-Trapezoidal, maka tentu codenya hampir sama. Mari perhatikan
code berikut ini:
1 %code CompTrapez.m
2 clc;
3 clear all;
4 a = 0; % syarat batas bawah integral
5 b = pi/2; % syarat batas atas integral
6 n = 3;
7
8 %metode composite trapezoidal
9 Luas_area = CompTrapz(a,b,n,'f');
10 disp(['Luas area = ' num2str(Luas_area)]);
44
Semakin kecil nilai error yang dihasilkan dari metode numerik tersebut, maka semakin bagus
metode numerik tersebut.
2.6 Latihan
1. Tentukan nilai integral dari persamaan-persamaan menggunakan metode analitik
Z 0.71
exp −t
I = 2
dt
0 t + 0.51
Z 3
x
I = √ dx
0 x2 − 4
Z 2
I = sin(2πx) cos(5πx)dx
0
Z π/2
dθ
I = p
0 1 − sin2 (15) sin2 θ
45
Bab 3
Persamaan Differensial
Persamaan differensial muncul secara alamiah dari usaha untuk memahami bagaimana dunia
nyata bekerja lalu dari pemahaman tersebut berusaha memprediksi bagaimana kelakuan di-
namika tersebut. Secara mendasar, persamaan differensial merupaan model beberapa situasi
nyata. Sebagai contoh, persamaan yang mengungkapkan Hukum Newton II:
d~p
F~ = (0.1)
dt
dimana F~ merupakan vektor gaya dan p~ serta juga t merupakan momentum vektor dan
waktu. Memodelkan suatu situasi nyata ini boleh sederhana yang hanya memibatkan satu
persamaan differensial atau lebih kompleks yang melibatkan banyak persamaan differensial
berpasangan (couple equation).
Persamaan differensial sering diklasifikasikan berdasarkan orde (order ). Contoh, persamaan
(0.1) merupakan persamaan differensial orde pertama, sedangkan untuk persamaan differen-
sial orde dua dapat diungkapkan dalam bentuk:
d2~x d~x
m 2
+ c + k~x = 0 (0.2)
dt dt
persamaan (0.2) merupakan persamaan differesial osilasi teredam, dimana m merupakan
massa, c adalah koefisien teredam, dan k merupakan konstanta pegas.
Pada umumnya, metode yang sering digunakan untuk menyelesaikan persamaan differensial
parsial adalah dengan menggunakan metode hitung langsung (solusi analitik). Tentunya,
metode ini memberikan hasil yang sangat akurat namun pada sisi yang lain metode ini sulit
atau bahkan tidak bisa menyelesaikan persoalan-persoalan yang kompleks. Sehingga, salah
satu alternatif menyelesaikan persoalan persamaan differensial yaitu dengan cara simulasi
numerik. Berikut ini adalah ilustrasi perbandingan metode analitik dan metode numerik
(Gambar 3.1):
Ada beberapa metode yang sering digunakan untuk menyelesaikan persamaan differensial
menggunakan metode numerik. Pada bagian ini akan dijelaskan metode numerik seperti;
metode Euler, Runge-Kutta, sistem order tingkat tinggi (higher-order systems) dan metode
beda hingga (finite difference method ). Pemilihan keempat metode ini karena sering kali
metode ini digunakan untuk menyelesaikan permasalahan persamaan differensial.
46
Gambar 3.1: Ilustrasi perhitungan differensial secara analitis dan numerik
Jika nilai t dibatasi dari a hingga b, dan syarat awal sudah diketahui yakni; y(a) = α.
Metode Euler diturunkan menggunakan deret Taylor. Misalkan fungsi y(t) yang memiliki
turunan dalam inteval [a, b], maka menurut aturan deret Taylor fungsi f(t) dapat diungkapkan
dalam bentuk:
(ti+1 + ti )2 00
y(ti+1 ) = y(ti ) + (ti+1 − ti )y 0 (ti ) + y (ξi ) (1.5)
2
jika nilai (ti+1 − ti ) diungkapkan sebagai:
(ti+1 − ti ) = h (1.6)
h2 00
y(ti+1 ) = y(ti ) + hy 0 (ti ) + y (ξi ) (1.7)
2
dan, jika menggunakan persamaan (1.4), maka:
h2 00
y(ti+1 ) = y(ti ) + hf (ti , y(ti )) + y (ξi ) (1.8)
2
47
Pada metode Euler, suku terakhir pada persamaan (1.8) dapat diabaikan. Sehingga, dari
persamaan tersebut metode Euler dapat diformulasikan sebagai berikut:
yi+1 = yi + hf (ti , yi ) (1.9)
dengan i = 0, 1, 2, · · · , N − 1. Sementara N merupakan bilangan bulat (integer ) positif dan
syarat awal y0 = α. Persamaan (1.9) disebut juga sebagai metode eksplisit Euler.
48
3. Menentukan posisi titik-titik ti
ti = a + ih = 0.2i
4. Mengitung nilai yi .
Pada bagian ini, gunakan persamaan (1.9), dengan nilai i = 0, 1, 2, · · · , 9.
yi+1 = yi + hf (ti , yi )
= yi + 0.2(ti )
= yi + 0.04i (1.14)
y1 = y0 + 0.04(0) = 0
Pada saat i = 1
y2 = y1 + 0.04(1) = 0.04
Pada saat i = 2
y3 = y2 + 0.04(2) = 0.12
y10 = y9 + 0.04(9)
= 1.44 + 0.04(9) = 1.8
1 clear all
2 clc
3 format long
4
5 b = 2; %batas atas
6 a = 0; %batas bawah
7 N = 10; %bilangan integer positif
8 h = (b−a)/N; %nilai step size
9 y0 = 0; %nilai y awal
10 t0 = 0; %nilai t awal
11
49
21 for i = 2:N
22 k = i−1;
23 y(i) = y(k)+h*(t(k));
24 end
25 disp('nilai solusi numerik');
26 y'
Untuk membandingkan hasil numerik dengan solusi analitis, tambahkan code berikut
ini pada code sebelumnya.
1 %solusi analitis
2 yy(1) = (1/2).*(t0).^2;
3 for i = 2:N
4 k = i−1;
5 yy(i) = (1/2).*(t(k)).^2;
6 end
7 disp('nilai solusi analitis');
8 yy'
9
10 %plot grafik
11 plot(t,y,'o',t,yy,'−');
12 legend('solusi numerik','solusi analitis')
Jika diperhatikan dari grafik perbandingan antara solusi analitis dan numerik memiliki
selisih atau perbedaan. Perbedaan inilah yang disebut sebagai nilai error metode ini.
50
atau dapat pada MATLAB:
Jika diperhatikan nilai error yang dihasilkan semakin besar seiring dengan bertambah-
nya nilai ti . Artinya metode ini kurang akurat pada rentang nilai yang besar, sehingga
dibutuhkan metode lain.
51
3.2.1 Metode Runge-Kutta orde-2
Persamaan umum metode Runge-Kutta orde-2 adalah:
yi+1 = yi + hf (ti , yi )
yi+1 = yi + h(a1 k1 + a2 k2 ) (2.22)
dimana:
k1 = f (ti , yi )
k2 = f (ti + p1 h, yi + q11 k1 h)
dengan menggunakan kedua nilai k1 dan k2 diperoleh persamaan:
yi+1 = yi + h(a1 f (ti , yi ) + a2 f (ti + p1 h, yi + q11 k1 h)) (2.23)
Deret Taylor dua variabel
∂g ∂g
g(x + r, y + s) = g(x, y) + r +s + ··· (2.24)
∂x ∂y
dimana r dan s adalah suatu konstanta
52
Metode Midpoint
Pada metode Midpoint, nilai a2 diasumsikan bernilai 1. Sehingga, diperoleh a1 = 0 dan
p1 = q11 = 1/2 dan persamaan (2.22) menjadi:
yi+1 = yi + hk2 (2.27)
dimana
k1 = f (ti , yi )
k2 = f (ti + h/2, yi + k1 h/2)
Metode Ralston
Asumsi yang digunakan pada metode ini adalah a2 = 2/3, sehingga dengn begitu nilai
a1 = 1/3 dan p1 = q11 = 3/4 dan persamaan (2.22) menjadi:
1 2
yi+1 = yi + h k1 + k2 (2.28)
3 3
dimana
k1 = f (ti , yi )
k2 = f (ti + 3h/4, yi + k1 h3/4)
Contoh 4.2 Gunakan metode Heun, Midpoint, dan Ralston untuk menentukan solusi dari
persamaan differensial berikut ini:
dy
= t
dt
dari t = 0 hingga t = 2, dimana pada kondisi awal y(0) = 0. Kita sudah ketahui bersama
bahwa solusi khusus dengan menggunakan metode analitis adalah
1 2
y = t
2
Sekarang mari gunakan metode Runge-Kutta orde-2 dengan varians Heun, Midpoint, dan
Ralston. Namun sebelum menyelesaikan dengan meggunakan ketiga varians tersebut,langkah
pertama yang harus dilakukan adalah menentukan nilai h yakni sebagai berikut:
b−a
h =
N
2−0
= = 0.2
10
nilai N pada metode ini disamakan dengan nilai N pada metode Euler, hal ini dikarenakan
hasil metode ini akan dibandingkan dengan hasil yang sudah diperoleh dengan menggunakan
metode Euler. Dan, menentukan posisi titik-titik ti
ti = a + ih = 0.2i
53
1. Metode Heun
Tahapan perhitungan metode ini dimulai dari menghitung nilai nilai k1 dan k2 :
Untuk i = 0,
k1 = f (t0 , y0 )
= t0
= 0.2(0) = 0
k2 = f (t0 + h, y0 + k1 h)
= f (0 + 0.2, 0 + 0(0.2)) (2.29)
= f (0.2, 0) = 0.2 (2.30)
Untuk i = 1,
k1 = f (t1 , y1 )
= t1
= 0.2(1) = 0.2
k2 = f (t1 + h, y1 + k1 h)
= f (0.2 + 0.2, 0.02 + 0.2(0.2)) (2.32)
= f (0.4, 0.06) = 0.4 (2.33)
Adapun untuk memperoleh nilai y3 , y4 , · · · , y10 , diperoleh dengan cara hampir sama
dengan penentuan y1 , dan y2 . Sedangkan dengan cara sederhana dapat persoalan ini
dapat diselesaikan dengan menggunakan MATLAB.
54
1 %Metode Runge−Kutta orde 2
2 %Dengan pendekatan Heun
3 %Tentukan solusi khusus persamaan berikut ini:
4 %dy/dt = t
5 clear all;
6 clc;
7 format long
8
9 b = 2; %batas atas
10 a = 0; %batas bawah
11 N = 10; %bilangan bulat positif
12 h = (b−a)/N; %nilai step−size
13 t0 = 0; %nilai awal t
14 y0 = 0; %nilai awal y
15
16 %perubahn t sesui step−size h adalah
17 for i=1:N
18 t(i) = a+(i*h);
19 end
20 disp('nilai t(i)');
21 t'
22
1 function dy = persamaan(t,y)
2 dy = t;
55
Catatan
function dy dapat berubah tergantung persoalan yang dihadapi.
Contoh:
Tentukan solusi persamaan:
dy
= t2 + 2y
dt
maka function dy menjadi:
1 function dy = persamaan(t,y)
2 dy = t.^2 + 2.*y;
2. Metode Midpoint
Untuk menentukan solusi dari persoalan di atas, maka pada Metode Midpoint memiliki
tahapan penyelesaian sebagai berikut:
Untuk i = 0,
k1 = f (t0 , y0 )
= t0
= 0.2(0) = 0
yi+1 = yi + hk2
y1 = y0 + hk2
= 0 + 0.2(0.1) = 0.02 (2.36)
1 k2 = persamaan(t0+h/2,y0+(h*k1/2));
2 y(1) = y0 + h*(k2);
56
3
4 %menentukan k1, k2, dan y pada i = 1, 2, 3, ..., 10
5 for i=2:N
6 k = i−1;
7 k1 = persamaan(t(k),y(k));
8 k2 = persamaan(t(k)+h/2,y(k)+(h*k1/2));
9 y(i) = y(k) + h*(k2);
10 end
3. Metode Ralston
Untuk i = 0,
k1 = f (t0 , y0 )
= t0
= 0.2(0) = 0
1 k2 = persamaan(t0+3*h/2,y0+(3*h*k1/4));
2 y(1) = y0 + h*((k1/3)+(2*k2/3));
3
4 %menentukan k1, k2, dan y pada i = 1, 2, 3, ..., 10
5 for i=2:N
6 k = i−1;
7 k1 = persamaan(t(k),y(k));
8 k2 = persamaan(t(k)+3*h/2,y(k)+(3*h*k1/4));
9 y(i) = y(k) + h*((k1/3)+(2*k2/3));
10 end
57
(a) (b) (c)
Gambar 3.3: (a) Metode Heun, (b) Metode Midpoint dan (c) MEtode Ralston
Adapun hasil dari ketiga metode ini adalah: Jika diperhatikan dari ketiga grafik terse-
but tidak memiliki perbedaan berbeda.
k1 = f (ti , yi ) (2.41)
1 1
k2 = f ti + h, yi + k1 h (2.42)
2 2
1 1
k3 = f ti + h, yi + k2 h (2.43)
2 2
k4 = f (ti + h, yi + k3 h) (2.44)
Contoh 4.2 Gunakan Metode Runge-Kutta orde 4 untuk menentukan solusi dari persamaan
differensial berikut ini:
dy
= t
dt
Solusi Untuk menyelesaikan persoalan tersebut maka yang pertama dihitung adalah nilai
interval h.
b−a
h =
N
2−0
= = 0.2
10
dan posisi titik-titik ti
ti = a + ih = 0.2i
58
Kita ketahui bahwa nilai y0 = 0. Untuk menentukan nilai yi+1 maka gunakan nilai k1 , k2 , k3 ,
dan k4 .
Untuk i = 0
nilai k1
k1 = f (t0 , y0 )
= t0 = 0
nilai k2
1 1
k2 = f t0 + h, y0 + k1 h
2 2
= f (0 + 0.1, 0 + 0)
= f (0.1, 0) = 0.1
nilai k3
1 1
k3 = f t0 + h, y0 + k2 h
2 2
= f (0.1, 0.01) = 0.1
nilai k4
k4 = f (t0 + h, y0 + k3 h)
= f (0.2, 0.02) = 0.2
Sedangkan untuk nilai y2 , y3 , · · · , y10 dapat diselesaikan dengan cara yang hampir sama
dengan cara menentukan y1 . Secara sederhana dapat diselesaikan menggunakan MATLAB.
59
14 for i=1:N
15 t(i) = a+(i*h);
16 end
17 disp('nilai t(i)');
18 t'
19 %untuk i = 0
20 %nilai k1, k2, k3, k4, dn y1 memenuhi
21 k1 = persamaan(t0,y0);
22 k2 = persamaan(t0+h/2,y0+(h*k1*0.5));
23 k3 = persamaan(t0+h/2,y0+(h*k2*0.5));
24 k4 = persamaan(t0+h,y0+h*k3);
25 y(1) = y0 + h*(k1+2*k2+2*k3+k4)/6;
26 %menentukan k1, k2, k3, k4 dan y pada i = 1, 2, 3, ..., 10
27 for i=2:N
28 k = i−1;
29 k1 = persamaan(t(k),y(k));
30 k2 = persamaan(t(k)+h/2,y(k)+(h*k1*0.5));
31 k3 = persamaan(t(k)+h/2,y(k)+(h*k2*0.5));
32 k4 = persamaan(t(k)+h,y(k)+h*k3);
33 y(i) = y(k) + h*(k1+2*k2+2*k3+k4)/6;
34 end
35 disp('nilai y(i)');
36 y'
37 %membandingkan dengan solusi analitik
38 yy(1) = 0.5.*t0.^2;
39 for i=2:N
40 yy(i) = (1/2).*(t(i)).^2;
41 end
42 disp('nilai yy(i)');
43 yy'
44 plot(t,y,'o',t,yy,'−');
45 legend('solusi numerik','solusi analitik');
Gambar 3.4: Grafik perbandingan solusi analitis dan numerik menggunakan Metode Runge-
Kutta orde 4
60
3.3 Latihan
Soal: Tentukan solusi khusus dari persamaan:
dN
= −λN (3.45)
dt
Jika pada t = 0, maka N = N0 = 1. Gunakan nilai λ = 0.1
Solusi:
Jika diselesaikan secara analitik maka diperoleh hasil sebagai berikut:
N = N0 exp(−λt) (3.46)
Bagaimana jika menggunakan perhitungan numerik untuk menentukan solusi khusus?. Pada
sesi ini, kita tidak lagi menurunkan secara manual, di sini saya hanya menggunakan code
secara langsung. Saya akan membandingkan Metode Heun dan Metode Runge-Kutta orde-4
dan membandingkan keduanya dengan hasil yang diperoleh secara analitik. Adapun langkah
yang dilakukan adalah:
1. Membuat fungsi
1 function dy = persamaan(t,y)
2 dy = −0.1.*y;
21 %untuk i = 0
22 %nilai k1, k2, k3, k4, dn y1 memenuhi
23 %metode Heun
61
24 kk1 = persamaan(t0,y0);
25 kk2 = persamaan(t0+h,y0+(h*kk1));
26 yy(1) = y0 + h*(0.5*kk1+0.5*kk2);
27
28 %metode Runge−Kutta orde4
29 k1 = persamaan(t0,y0);
30 k2 = persamaan(t0+h/2,y0+(h*k1*0.5));
31 k3 = persamaan(t0+h/2,y0+(h*k2*0.5));
32 k4 = persamaan(t0+h,y0+h*k3);
33 y(1) = y0 + h*(k1+2*k2+2*k3+k4)/6;
34
35 %menentukan k1, k2, k3, k4 dan y pada i = 1, 2, 3, ..., 10
36 for i=2:N
37 k = i−1;
38 %metode Heun
39 kk1 = persamaan(t(k),y(k));
40 kk2 = persamaan(t(k)+h,y(k)+(h*kk1));
41 yy(i) = yy(k) + h*(0.5*kk1+0.5*kk2);
42
Jika diperhatikan dari hasil yang sudh diperoleh, menunjukan bahwa kedua metode ini bagus
karena nilai error yang dihasilkan cukup kecil. Namun jika diperhatikan lagi nilai error
terkecil terdapat pada metode Runge-Kutta. Hal ini terlihat dari tabel berikut ini (Tabel
3.1):
62
Tabel 3.1: Perbandingan Error antara Metode Runge-Kutta orde 4 dan orde 2 (Metode Hu-
en)
63
3.4 Sistem Berorde Tinggi (Higher-Order Systems)
Persamaan differensial tidak selalu diungkapkan dalam bentuk persamaan differensial orde 1
saja. Namun dapat pula diungkapkan dalam berbagai bentuk, seperti persamaan differensial
orde 2, 3, dan seterusya. Pada fenomena-fenomena fisis yang kompleks, untuk menggambark-
an atau mengungkapkan hubungan antara parameter satu dengan parameter yang lainnya
sering digunakan persamaan differensial parsial, dan untuk persamaan differensial parsial
pada kasus 1 dimensi bisanya menggunakan persamaan differensial orde 2.
Pada sesi ini, kita akan belajar bagaimana menyelesaikan suatu bentuk persamaan differen-
sial orde 2 dengan menggunakan pendekatan numerik. Untuk menyelesaikan persoalan ini,
d2 y
yang pertama yang harus dilakukan adalah melakukan diskritisasi dari suatu suku dan
dx2
dy
suku . Untuk menyelesaikan gunakan pendekatan Deret Taylor yang sudah kita ketahui
dx
bersama.
h2
yi+1 = yi + hyi0 + yi00 (4.47)
2
dan
h2
yi−1 = yi − hyi0 + yi00 (4.48)
2
Jika kedua persamaan tersebut (4.47 - 4.48) dijumlahkan maka:
yi+1 + yi−1 = 2yi + h2 yi00 (4.49)
atau
yi+1 − 2yi + yi−1
yi00 = (4.50)
h2
Sedangkan jika persamaan (4.47 - 4.48) diperkurangkan maka diperoleh persamaan:
yi+1 − yi−1
yi0 = (4.51)
2h
Dari kedua persamaan tersebut (4.50 dan 4.51), maka secara sederhana solusi dari suatu
persamaan differensial orde 2 dapat selesaikan.
Contoh 4.4.1 Tentukanlah solusi persamaan differensial berikut ini:
d2 y dy
2
+ 3 + 2y = 0 (4.52)
dt dt
dimana kondisi awal memenuhi y(0) = 1 dan y 0 (0) = 0.
Jika persamaan (4.52) diselesaikan dengan menggunakan metode analitik maka diperoleh:
d2 y dy
2
+ 3 + 2y = 0
dt dt
d
D2 y + 3Dy + 2y = 0, misal: = D
dt
D2 + 3D + 2 = 0
(D + 2)(D + 1) = 0 (4.53)
64
Dari persamaan (4.53), diperoleh nilai D1 = -2 dan D2 = -1, sehingga solusi umum persamaan
(4.52) memenuhi persamaan:
y(t) = a exp(−2t) + b exp(−t)
Untuk memperoleh solusi khusus, maka gunakan kondisi y(0) = 1 dan y 0 (0) = 0.
Untuk y(0) = 1
y(0) = a exp(−2(0)) + b exp(−(0))
1 = a+b (4.54)
Untuk y 0 (0) = 0
y 0 (0) = −2a exp(−2(0)) − b exp(−(0))
0 = −2a − b
2a = −b
b
a = − (4.55)
2
Substitusi nilai a pada persamaan 4.54, sehingga diperoleh:
b
1 = − +b
2
b
1 =
2
b = 2 (4.56)
dan nilai a adalah a = −1. Dari nilai a dan b, sehingga diperoleh solusi khusus:
y(t) = − exp(−2t) + 2 exp(−t) (4.57)
Sekarang, mari kita menyelesaikan persoalan tersebut dengan menggunakan metode numerik.
Untuk menyelesaikan persamaan 4.52, gunakan persamaan (4.50) dan (4.51).
d2 y dy
+ 3 + 2y = 0
dt2 dt
yi+1 − 2yi + yi−1 yi+1 − yi−1
+3 + 2yi = 0
h2 2h
3h
yi+1 − 2yi + yi−1 + (yi+1 − yi−1 ) + 2h2 yi = 0
2
3h 2
3h
1− yi−1 + (2h − 2)yi + 1 + yi+1 = 0
2 2
3h 3h
2
− 1 yi−1 + (2 − 2h )yi = 1 + yi+1 (4.58)
2 2
Dari persamaan (4.58), diketahui bahwa i = 1, 2, 3, · · · , N . Maka, yang ingin diketahui
adalah yi+1 . Untuk menyelesaikan persoalan di atas maka gunakan program MATLAB.
Pada program ini menggunakan nilai N = 50, maka nilai h memenuhi:
1−0
h = = 0.02
50
65
1 clear all;
2 clc;
3
4 N = 50;
5 t = linspace(0,1,N);
6 h = t(2)−t(1);
7
8 y=zeros(size(t));
9 y(1) = 1; y(2) = 1; %Syarat Batas
10
11 fact = (1 + 3*h/2);
12
13 for j = 2:(N−1)
14 y(j+1) = ((3*h/2 − 1)*(y(j−1)) + (2 − 2*h^2)*y(j))/fact; %Pers. 4.58
15 end
16
Dari program MATLB tersebut diperoleh nilai error pada kisaran 0.005. Adapun untuk
grafik dapat dilihat sebagai berikut:
Gambar 3.5: Grafik perbandingan solusi analitis dan numerik menggunakan Metode Higher
Order Systems orde 4
66
Persamaan Laplace
∇2 u = 0 (5.59)
Persamaan Poisson
∇2 u = f (x, y, z) (5.60)
2 1 ∂ 2u
∇u = 2 2 (5.62)
v ∂t
Persamaan Helmholtz
∇2 F + k 2 F = 0 (5.63)
Persamaan Schroedinger
h̄2 2 ∂
− ∇ ψ + V ψ = ßh̄ ψ (5.64)
2m ∂t
Atau jika persamaan differensial parsial dinyatakan dalam bentuk:
∂ 2u ∂ 2u
(x, y) + (x, y) = f (x, y), a < x < b, c < y < d (5.66)
∂x2 ∂y 2
67
Gambar 3.6: Skema grid dan mesh pada Metode Beda Hingga
dan
Untuk menyelesaikan persamaan (5.66), maka persamaan tersebut harus didiskritisasi terha-
dap posisi, yakni sebagai berikut:
68
Bibliografi
[1] Edward B. Margab, Shapour Azarm, Balakumar Balachandran, James H. Duncan, Keith
E. Herold dan Gregory C. Walsh, 2011, An Engineer’s Guide to MATLAB With Applica-
tions Form Mechanical, Aerospace, Electrical, civil dan Biological Systems Engineering,
Third Edition, Prentice Hall, New Jersey, USA.
[2] James Stewart, 2008, Calculus Early Transcendentals, Sixth Edition, Thomson Brook-
s/Cole, USA.
[3] Richard L. Burden dan J. Douglas Faires, 2005, Numerical Analysis, Ninth Edition, Bro-
oks/Cole, USA.
[4] Stephen J. Chapman, 2016, MATLAB Programming For Engineers, Fifth Edition, Ce-
ngage Learning, USA.
[5] Steven C. Chapra, 2012, Applied Numerical Method with MATLAB for Engineers and
Scientists, Third Edition, Mc Graw-Hill, New York, USA.
[6] Supriyanto Suparno, 2013, Komputasi untuk Sains dan Teknik Menggunakan MATLAB,
Departemen Fisika-FMIPA, Universitas Indonesia.
69