Anda di halaman 1dari 71

See discussions, stats, and author profiles for this publication at: https://www.researchgate.

net/publication/322143888

Catatan Kuliah Komputasi Geofisika

Book · December 2017

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:

Study of Wave Propagation: Numerical Scheme Vs. Experiment View project

Heat and Mass Transfer in Agricultural Products View project

All content following this page was uploaded by Sayahdin Alfat on 01 January 2018.

The user has requested enhancement of the downloaded file.


Catatan Kuliah
Komputasi Geofisika

Sayahdin Alfat

29 Desember 2017
Daftar Isi

Daftar Isi 1

1 Interpolasi dan Pencocokan Kurva 3


1.1 Pengantar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Interpolasi Polinomial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 Tugas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.4 Interpolasi Cubic Spline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.5 Least-Square Fit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

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

1.1 Treatment data melalui interpolasi dan pencocokan kurva . . . . . . . . . . . 3


1.2 Treatment data melalui interpolasi dan pencocokan kurva . . . . . . . . . . . 6
1.3 (a) Plotting grafik secara langsung, dan (b) Plotting kurva menggunakan me-
tode polinomial Lagrange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.4 (a) Plotting grafik secara langsung, dan (b) Plotting kurva menggunakan me-
tode polinomial Newton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.5 (a) Plotting grafik secara langsung, dan (b) Plotting kurva menggunakan me-
tode polinomial Neville . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.6 Ilustrasi interpolasi cubic spline . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.7 Grafik perbandingan antara code I dan code II . . . . . . . . . . . . . . . . . 25
1.8 Grafik perbandingan antara data eksperiment dan fungsi interpolasi . . . . . 28
1.9 Reflektor mendatar pada kedalaman z . . . . . . . . . . . . . . . . . . . . . 33
1.10 Reflektor mendatar pada kedalaman z . . . . . . . . . . . . . . . . . . . . . 33

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

3.1 Ilustrasi perhitungan differensial secara analitis dan numerik . . . . . . . . . 47


3.2 Grafik perbandingan solusi analitis dan numerik . . . . . . . . . . . . . . . . 50
3.3 (a) Metode Heun, (b) Metode Midpoint dan (c) MEtode Ralston . . . . . . . 58
3.4 Grafik perbandingan solusi analitis dan numerik menggunakan Metode Runge-
Kutta orde 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
3.5 Grafik perbandingan solusi analitis dan numerik menggunakan Metode Higher
Order Systems orde 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
3.6 Skema grid dan mesh pada Metode Beda Hingga . . . . . . . . . . . . . . . . 68

2
Bab 1

Interpolasi dan Pencocokan Kurva

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.

Gambar 1.1: Treatment data melalui interpolasi dan pencocokan kurva

1.2 Interpolasi Polinomial


Salah satu metode interpolasi yang sering digunakan adalah metode polinomial. Secara
umum metode ini dapat diungkapkan dalam persamaan:
f (x) = a1 + a2 x + a3 x2 + · · · + an xn−1 (2.1)

3
atau

f (x) = p1 xn−1 + p2 xn−2 + p3 xn−3 + · · · + pn−1 x + pn (2.2)

dimana n merupakan jumlah data yang digunakan.

Contoh
Dari suatu eksperimen diperoleh data sebagai berikut: Tentukan bentuk persamaan polino-

T (◦ C) 300 400 500


ρ (kg/m3 ) 0.616 0.525 0.457

mial yang memenuhi hasil eksperimen tersebut?

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:

0.616 = p1 90000 + p2 300 + p3 (2.4)


0.525 = p1 160000 + p2 400 + p3 (2.5)
0.457 = p1 250000 + p2 500 + p3 (2.6)

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

Dari hasil perhitungan diperoleh persamaan eksak untuk 2.3 memenuhi:

ρ(T ) = 0.00000115T 2 − 0.001715T + 1.027 (2.7)

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:

P1 (x) = y1 l1 (x) + y2 l2 (x) (2.10)

dimana nilai l1 (x) dan l2 (x) memenuhi persamaan:


x − x2
l1 (x) = (2.11)
x1 − x2
x − x1
l2 (x) = (2.12)
x2 − x1
Jika persamaan (2.11) dan (2.12) ke persamaan 2.10, maka diperoleh:
x − x2 x − x1
P1 (x) = y1 + y2 (2.13)
x 1 − x2 x2 − x1

2. Bagaimana jika jumlah data (n) = 3, maka persamaan yang diperoleh:

P2 (x) = y1 l1 (x) + y2 l2 (x) + y3 l3 (x) (2.14)

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 ??)

Gambar 1.2: Treatment data melalui interpolasi dan pencocokan kurva

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.

1. Untuk n = 2, data yang digunakan:

T1 = −40 ρ1 = 1.52
T2 = 0 ρ2 = 1.29

maka ρ pada T = −10 ◦C memenuhi persamaan:


T − T2 T − T1
ρ(T ) = ρ1 + ρ2
T1 − T2 T2 − T1
−10 − 0 −10 − (−40)
ρ(−10) = 1.52 + 1.29
−40 − 0 0 − (−40)
−10 30
= 1.52 + 1.29 = 1.3475
−40 40

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);

dengan fungsi Lagrange adalah:

1 function yint = Lagrange(x,y,xx)


2 % x adalah variabel bebas
3 % y adalah variabel terikat
4 % xx adalah nilai variabel bebas yang dihitung
5 n = length(x); % jumlah data yang digunakan
6 s = 0;
7 for i = 1:n
8 P = y(i); %array variabel terikat
9 for j = 1:n
10 if i ~= j
11 li = (xx − x(j))/(x(i)−x(j)); % menentukan nilai L_{i}
12 P = P*li;
13 end
14 end
15 s = s+P;
16 end
17 yint = s;

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:

Tabel 1.1: Data hubungan x dan y

x 0 2 3
y 7 11 28

Solusi
Diketahui bahwa jumlah data (n) = 3, sehingg persamaan memenuhi:

(x − x2 )(x − x3 ) (x − x1 )(x − x3 ) (x − x1 )(x − x2 )


y(x) = y1 + y2 + y3 (2.18)
(x1 − x2 )(x1 − x3 ) (x2 − x1 )(x2 − x3 ) (x3 − x1 )(x3 − x2 )
(−1)(−2) (1)(−2) (1)(−1)
y(1) = 7 + 11 + 28
(−2)(−3) (2)(−1) (3)(1)
1 1
= 7 + 11 − 28 = 4
3 3
Untuk membandingkan hasil tersebut, maka uji coba dengan menggunakan code. Gunakan
fungsi Lagrange.

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:

(x − 2)(x − 3) (x)(x − 3) (x)(x − 2)


y(x) = 7 − 11 + 28
6 2 3
7 2 11 2 28 2
y(x) = (x − 5x + 6) − (x − 3x) + (x − 2x)
6 2 3
7 2 33 2 56 2
= (x − 5x + 6) − (x − 3x) + (x − 2x)
6 6 6
y(x) = 5x2 − 8x + 7 (2.19)

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:

Pn−1 (x) = a1 + (x − x1 )a2 + (x − x1 )(x − x2 )a3 + · · · + (x − x1 )(x − x2 ) · · · (x − xn−1 )an

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

Tentukan nilai f (x) pada saat x = 2?

Solusi
Karena jumlah data (n) = 4, maka persamaan interpolasi polinomial metode Newton me-
menuhi persamaan:

P3 (x) = f (x1 ) + (x − x1 )f [x2 , x1 ] + (x − x1 )(x − x2 )f [x3 , x2 , x1 ] + · · ·


(x − x1 )(x − x2 )(x − x3 )f [x4 , x3 , x2 , x1 ] (2.33)

dimana variabel polinomial orde pertama:

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).

P3 (x) = (x − 1)0.462098 + (x2 − 5x + 4)(−0.0518731) + (x3 − 11x2 + 34x − 24)(0.0078654)


= 0.0078654x3 − 0.1383925x2 + 0.9888871x − 0.85836 (2.34)

11
Jadi persamaan interpolasi polinomial Newton yang memenuhi adalah:

P3 (x) = 0.0078654x3 − 0.1383925x2 + 0.9888871x − 0.85836 (2.35)

Jika ingin menentukan nilai f(x) pada saat x = 2, maka substitusi nilai tersebut ke persamaan
2.35.

P3 (2) = 0.0078654(8) − 0.1383925(4) + 0.9888871(2) − 0.85836


P3 (2) = 0.6287674

Jadi f(x) pada x = 2 bernilai 0.6287674.

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. Fungsi penentuan nilai koefisien


Untuk membuat fungsi penentuan nilai koefisien pada interpolasi polinomial Newton
gunakan persamaan 2.26, yakni sebagai berikut:

f [xn , xn−1 , · · · , x2 ] − f [xn−1 , xn−2 , · · · , x1 ]


f [xn , xn−1 , · · · , x2 , x1 ] =
xn − x1

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

2. Fungsi penentuan nilai interpolasi


Untuk membuat fungsi interpolasi gunakan persamaan:
n
X
Pn−1 (x) = f (x1 ) + (x − x1 )(x − x2 ) · · · (x − xk−1 )f [xk , xk−1 , · · · , x2 , x1 ]
k=1

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

Koefisien interpolasi Newton:


0
0.462098000000000
-0.059738500000000
0.007865400000000

Nilai y pada x = 2 menggunakan interpolasi polinomial Newton adalah


0.628767400000000

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)

Adapun persamaan untuk dua data memenuhi persamaan:


(x − xi+1 )P0 [xi ] + (xi − x)P0 [xi+1 ]
P1 [xi , xi+1 ] = (2.37)
xi − xi+1
dan tiga titik data:
(x − xi+2 )P1 [xi , xi+1 ] + (xi − x)P1 [xi+1 , xi+2 ]
P2 [xi , xi+1 , x2+i ] = (2.38)
xi − xi+1

Jika x = xi , maka persamaan (2.36), (2.37), dan (2.38) dapat dituliskan:

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:

P2 [xi , xi+1 , x2+i ] = P1 [xi , xi+1 ] = yi (2.39)

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

k=0 k=1 k=2 k=3


x1 P0 [x1 ] = y1 P1 [x1 , x2 ] P2 [x1 , x2 , x3 ] P3 [x1 , x2 , x3 , x4 ]
x2 P0 [x2 ] = y2 P1 [x2 , x3 ] P2 [x2 , x3 , x4 ]
x3 P0 [x3 ] = y3 P1 [x3 , x4 ]
x4 P0 [x4 ] = y4

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

Sehingga untuk P1 [x1 , x2 ], P1 [x2 , x3 ], P1 [x3 , x4 ] dan P1 [x4 , x5 ] memenuhi:

(x − x2 )P0 [x1 ] + (x1 − x)P0 [x2 ] (0.2)0.7651977 + (−0.5)0.6200860


P1 [x1 , x2 ] = =
x1 − x2 −0.3
= 0.5233449

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

3. Untuk k = 2, gunakan persamaan (2.43):

(x − xi+2 )P1 [xi , xi+1 ] + (xi − x)P1 [xi+1 , xi+2 ]


P2 [xi , xi+1 , xi+2 ] =
xi − xi+2
Maka:
(x − x3 )P1 [x1 , x2 ] + (x1 − x)P1 [x2 , x3 ]
P2 [x1 , x2 , x3 ] =
x1 − x3
(−0.1)0.5233449 + (−0.5)0.5102968
= = 0.5124715
−0.6
P2 [x2 , x3 , x4 ] = 0.5112857
P2 [x3 , x4 , x5 ] = 0.5137361

4. Untuk k = 3, gunakan persamaan (2.43):

(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

5. Untuk k = 4, persamaan yang digunakan memenuhi:

P4 [xi , xi+1 , xi+2 , xi+3 , xi+4 ]


(x − xi+4 )P3 [xi , xi+1 , xi+2 , xi+3 ] + (xi − x)P3 [xi+1 , xi+2 , xi+3 , xi+4 ]
=
xi − xi+4

16
sehingga,

(x − x5 )P3 [x1 , x2 , x3 , x4 ] + (x1 − x)P3 [x2 , x3 , x4 , x5 ]


P4 [x1 , x2 , x3 , x4 , x5 ] =
x1 − x5
(−0.7)0.5118127 + (−0.5)0.5118302
= = 0.5118200
−1.2

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).

Pk [xi , xi+1 , · · · , xi+k ]


(x − xi+k )Pk−1 [xi , xi+1 , · · · , xi+k−1 ] + (xi − x)Pk−1 [xi+1 , xi+2 , · · · , xi+k ]
=
xi − xi+k

Code fungsi interpolasi Neville

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

Nilai f(x) pada x = 1.5 menggunakan interpolasi Neville adalah


0.5118200

Hasil plotting grafik

(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

x 0. 2.5 5. 7.5 10.


y 1. 7.741e-17 - 0.0639279 - 4.356e-17 0.0040868

Tentukan nilai y pada saat x = 3.75 menggunakan metode:


(a) Metode Lagrange, Metode Newton, dan Metode Neville (Catatan: Gunakan per-
hitungan manual (secara analitis) dan menggunakan komputasi)
(b) Buatkanlah algoritma perhitungan dari ketiga metode tersebut. (Catatan: Anda
boleh menggunakan diagram alir atau pseudo-code)
2. Data 1.3 secara fisis memenuhi persamaan y = cos(π(x))exp(−0.55x). Pertanyaan:

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)

1.4 Interpolasi Cubic Spline


Pada bagian ini, kita akan membahas salah satu varians dari metode interpolasi cubic spline
yakni Natural Cubic Spline. Penggunaan interpolasi dengan metode natural cubic spline
sering sekali digunakan. Metode ini dipilih karena algoritma yang digunakan sederhana dan
memberikan hasil interpolasi yang baik.

Gambar 1.6: Ilustrasi interpolasi cubic spline

Persamaan umum interpolasi cubic spline


Secara umum persamaan interpolasi orde tiga dapat diungkapkan dalam bentuk:
si (x) = ai + bi (x − xi ) + ci (x − xi )2 + di (x − xi )3 (4.44)
Pada dasarnya persamaan 4.44 dapat diselesaikan hanya dengan cara menentukan koefisien
ai , bi , ci , dan di . Salah satu caranya untuk menentukan koefisien-koefisien tersebut adalah
dengan menggunakan metode cubic spline. Berikut ini langkah-langkah untuk menentukan
koefisien tersebut:
1. Persamaan tersebut haruslah melintasi seluruh titik data.
fi = ai + bi (xi − xi ) + ci (xi − xi )2 + di (xi − xi )3
f i = ai (4.45)
dari kondisi tersebut diketahui bahwa fi = ai .

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:

fi+1 = fi + bi (xi+1 − xi ) + ci (xi+1 − xi )2 + di (xi+1 − xi )3 (4.47)

jika xi+1 − xi = hi , maka persamaan (4.47) menjadi:

fi+1 = fi + bi (hi ) + ci (hi )2 + di (hi )3 (4.48)

Untuk menentukan variabel bi+1 , maka persamaan (4.46) diurai menjadi bentuk turun-
an pertama:

s0i (x) = bi + 2ci (x − xi ) + 3di (x − xi )2 (4.49)

maka pada titik x = xi+1 diketahui nilai bi+1 :

bi+1 = bi + 2ci (xi+1 − xi ) + 3di (xi+1 − xi )2


bi+1 = bi + 2ci hi + 3di h2i (4.50)

4. Untuk memenetukan nilai ci+1 maka persamaan (4.49) diubah menjadi turunan perta-
ma lagi:

s00i (x) = 2ci + 6di (x − xi ) (4.51)

dan pada titik x = xi+1 diketahui nilai ci+1 :

ci+1 = ci + 3di hi (4.52)

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):

bi+1 = bi + hi (ci + ci+1 ) (4.57)

Dan, jika persamaan (4.57) direduksi 1 tahap menjadi:

bi = bi−1 + hi−1 (ci−1 + ci ) (4.58)

Substitusi persamaan (4.55) dan (4.56) ke persamaan (4.58), maka menjadi:


f − f fi − fi−1 
i+1 i
hi−1 ci−1 + 2(hi−1 − hi )ci + hi ci+1 =3 − (4.59)
hi hi−1
dimana i = 1, 2, · · · , n − 1. Pada persamaan tersebut di atas, parameter yang diketahui
adalah A serta b dan yang tidak diketahui adalah x. Jika c1 dan cn bernilai nol, maka
persamaan (4.59) dapat diungkapkan dalam bentuk:
 
1
 h1 2(h1 + h2 ) h2 
... ... ...
 
 
A=
 
.. .. .. 

 . . . 

 hn−2 2(hn−2 + hn−1 ) hn−1 ) 
1
 
c1
 c2 
 .. 
.
 
x=
 
.. 

 . 

 cn−1 
cn
 
0
 3(f [x3 , x2 ] − f [x2 , x1 ]) 
 .. 
.
 
b=
 
.. 

 . 

 3(f [xn , xn−1 ] − f [xn−1 , xn−2 ]) 
0
atau:

Ax = b

21
Contoh
Soal 1

Diberikan suatu data:

x 3.0 4.5 7.0 9.0


f(x) 2.5 1.0 2.5 0.5

Tentukan nilai f(x) pada x = 5 menggunakan interpolasi natural cubic spline.

Solusi

Untuk menentukan nilai f(x) maka lakukan tahapan:

(a) Tentukan variabel-variabel berikut ini:


    
1 c1 0
h1 2(h1 + h2 ) h2  c2  3(f [x3 , x2 ] − f [x2 , x1 ])
   =  
 h2 2(h2 + h3 ) h3  c3  3(f [x4 , x3 ] − f [x3 , x2 ])
1 c4 0

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,

Dengan menggunakan variabel-variabel tersebut di atas, variabel c1 , c2 , c3 dan c4


dapat dengan mudah diselesaikan dengan menggunakan eliminasi gauss:

c1 = 0.
c2 = 0.8395437
c3 = −0.7665399
c4 = 0.

(b) Tentukan variabel di dan bi . Gunakan persamaan (4.58) dan (4.53):

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:

s1 (x) = 2.51.419771863(x − 3) + 0.1865653(x − 3)3


s2 (x) = 1.00.160456274(x − 4.5) + 0.8395437(x − 4.5)2 − 0.2141445(x − 3)3
s3 (x) = 2.5 + 0.022053232(x − 7) − 0.7665399(x − 7)2 + 0.1277567(x − 7)3

(d) Untuk menentukan nilai f(x) pada x = 5, maka gunakan:

s2 (x) = 1.00.160456274(x − 4.5) + 0.8395437(x − 4.5)2 − 0.2141445(x − 3)3


s2 (5) = 1.102889734

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

14 %langkah pertama membuat matrix H


15 H = zeros(n);
16 H(1,1) = 1; % atur pada saat (1,1) bernilai satu
17 H(n,n) = 1; %atur pada saat (n,n) bernilai satu
18
19

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:

Gambar 1.7: Grafik perbandingan antara code I dan code II

1.5 Least-Square Fit


Metode least-square fit, biasa juga disebut sebagai metode kuadrat terkecil, merupakan salah
satu metode pencocokan kurva. Metode ini sering dipakai dalam menyelesaikan persoalan-
persoalan data yang sifatnya tersusun secara acak. Metode least-square fit termasuk dalam
varians metode-metode pendekatan distributed error. Pada dasarnya metode ini bertujuan
mencari atau menentukan variabel-variabel yang memenuhi fungsi polinomial dengan cara
meminimalisasi nilai error.

Persamaan Umum
Jika diketahui sekumpulan data (xi , yi ), dimana i = 1, 2, · · · , m. Maka persamaan fungsi
polinomial memenuhi:

fn (x) = a0 + a1 x + a2 x2 + · · · + an−1 xn−1 + +an xn (5.60)

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

Untuk standar deviasi diperoleh dengan menggunakan persamaan:


r
E
σ = (5.64)
m−n
dimana; m adalah jumlah data, dan n merupakan derajat suatu persamaan.

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

xi 0 0.25 0.50 0.75 1.00


yi 1.0000 1.2840 1.6487 2.1170 2.7183

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

dengan menggunakan ketiga sistem persamaan di atas diperoleh:

5a0 + 2.5a1 + 1.875a2 = 8.768


2.5a0 + 1.875a1 + 1.5625a2 = 5.4514
1.875a0 + 1.5625a1 + 1.3828125a2 = 4.4015375

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:

f2 (x) = 1.0051371 + 0.8641829x + 0.8436571x2 (5.68)

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

1 %Plotting grafik perbandingan data eksperiment dan fungsi interpolasi


2 clc;
3 close;
4 clear all;
5
6 %Data Eksperiment
7 x = [0 0.25 0.50 0.75 1.00];
8 y = [1.0000 1.2840 1.6487 2.1170 2.7183];
9
10 %Fungsi hasil 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

Untuk lebih mudahnya gunakan tabel berikut ini:

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

Dari tabel tersebut diperoleh total error (E) adalah:


m
X 2
E = yi − fn (xi ) = 0.000274
i=1

Sedangkan standar deviasi adalah:


r
E
σ = = 0.01655
m−n

Solusi Komputasi
Pada MATLAB, penyelesaian persoalan fitting curve dapat dilakukan dengan sangat seder-
hana yakni dengan menggunakan operator fungsi internal polyfit.

1 %Program fitting kurva menggunakan metode least−square fit


2 clc;
3 close;
4 clear all;
5 %Data Eksperiment
6 xData = [0 0.25 0.50 0.75 1.00];
7 yData = [1.0000 1.2840 1.6487 2.1170 2.7183];
8 %derajat atau order fungsi polinomial
9 n = 2;
10

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)

dari program di atas diperoleh:

nilai koefisien a =
0.8437 0.8642 1.0051

nilai standar deviasi =


r: [3x3 double]
df: 2
normr: 0.0166

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

Waktu (dt) Ketinggian (m) Waktu (dt) Ketinggian (m)


0.00 5.00 2.75 7.62
0.25 5.75 3.00 7.25
0.50 6.40 3.25 6.77
0.75 6.94 3.50 6.20
1.00 7.38 3.75 5.52
1.25 7.72 4.00 4.73
1.50 7.96 4.25 3.85
1.75 8.10 4.50 2.86
2.00 8.13 4.75 1.77
2.25 8.07 5.00 0.58
2.50 7.90

Tentukan gravitas planet A dengan menggunakan metode least-square fit.

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:

Ketinggian Awal (a1) = 4.9995


Kecepatan Awal (a2) = 3.2007
a3 = -0.81688
Percepatan Gravitasi = 1.6338

>>residual
residual =
R: [3x3 double]
df: 18
normr: 0.0141

>>sigma = 0.0141;
>>Error = (sigma^(2))*(21-2)

Error =
0.0038

%21 = jumlah data


% 2 = polinomial orde 2

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:

Tabel 1.7: Data survei seismik

Receiver R ke-i Offset (x ) Travel time (t)


1 60 0.5147
2 80 0.5151
3 100 0.5155
4 120 0.5161
5 140 0.5167
6 160 0.5175
7 180 0.5183
8 200 0.5192

32
Gambar 1.9: Reflektor mendatar pada kedalaman z

Asumsi yang digunakan:

(a) Kecepatan gelombang diangap konstan


(b) Kedalaman dianggap konstan

Jika waktu tempuh gelombang (t) memenuhi persamaan:

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

Gambar 1.10: Reflektor mendatar pada kedalaman z

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

Receiver R ke-i Offset (x ) Travel time (t)


1 60 0.4877
2 80 0.4900
3 100 0.4924
4 120 0.4949
5 140 0.4974

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

3. Buatkanlah algoritma dari kedua persoalan di atas (no. 1 dan 2).

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.

2.2 Aturan Trapezoidal


Penjelasan
Secara sederhana, penyelesaian atau penentuan luas daerah di bawah kurva dengan menggu-
nakan metode Trapezoidal adalah dengan cara membagi area/daerah di bawah kurva menjadi
trapesium kecil (gambar 2.1).

35
(a) (b)

Gambar 2.1: (a) Kurva fungsi f(x), dan (b) Kurva fungsi f(x) menggunakan metode Trape-
zoidal

Untuk menentukan nilai h maka bagi range integral (a, b) dengan n - 1 :


(b − a)
h =
(n − 1)
(b − a)
h = Aturan trapezoidal n = 2
(2 − 1)
h = b−a (2.3)

Untuk menentukan luas daerah di bawah kurva, gunakan persamaan (1.2):


n
X
I = Ai f (xi )
i=1
2
X
I = Ai f (xi )
i=1
I = A1 f (x1 ) + A2 f (x2 )
= A1 f (a) + A2 f (b) (2.4)

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)]);

Dari hasil code tersebut diperoleh:

Luas area = 0.7854

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.

2.3 Aturan Composite Trapezoidal


Pada dasarnya metode ini hampir sama dengan aturan trapezoidal, yakni membagi area di
bawah kurva menjadi trapesium kecil. Akan tetapi letak perbedaan aturan ini adalah jumlah
trapesium yang digunakan lebih dari satu trapesium (n - 1), hal ini menyebabkan hasil yang
diperoleh lebih akurat jika dibandingan dengan aturan trapezoidal (Gambar 2.2).
Jika persamaan untuk aturan trapezoidal diungkapkan dalam persamaan 2.6, maka sama
halnya dengan persamaan tersebut, persamaan untuk aturan composite trapezoidal dapat
diungkapkan dalam bentuk seperti itu juga.
n−1
X
I = Ii = I1 + I2 + · · · + In−1
i=1
= A1 f (x1 ) + 2A2 f (x2 ) + 2A3 f (x3 ) + · · · + 2An−1 f (xn−1 ) + An f (xn ) (3.10)
Untuk menentukan nilai A1 , A2 dan seterusnya, perhatikan persamaan (2.5) dan (2.7), dari
persamaan tersebut diperoleh bahwa:
h
A1 = A2 = A3 = · · · = An−1 = An = (3.11)
2

38
Gambar 2.2: Ilustrasi aturan composite trapezoidal

Bedasarkan persamaan (3.11), persamaan (3.10) menjadi:


h
I = (f (x1 ) + 2f (x2 ) + 2f (x3 ) + · · · + 2f (xn−1 ) + f (xn )) (3.12)
2
Persamaan (3.12) disebut sebagai persamaan umum 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 function integral = CompTrapz(a,b,n,f)


2 % a adalah batas bawah
3 % b adalah batas atas
4 % n adalah jumlah trapesium
5 % f adalah persamaan fungsi yang ingin diselesaikan
6 % f yang digunakan adalah fungsi yang sama pada aturan trapezoidal
7 h = (b−a)/n;
8 x = [a+h:h:b−h];
9 integral = (h/2)*(2*sum(feval(f,x))+feval(f,a)+feval(f,b));

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)]);

Dari kedua code di atas diperoleh hasil sebagai berikut:

Luas area = 0.7854 % untuk n = 1

atau

Luas area = 0.99992 % untuk n = 50

Hasil yang diperoleh menggunakan trapezoidal dan composite trapezoidal memberikan


nilai yang sama. Hal ini karena pada composite trapezoidal menggunakan nilai n yang sama.
Aturan composite trapezoidal akan lebih akurat jika menggunakan jumlah trapesium n yang
banyak.

2.4 Aturan Simpson


Selain menggunakan aturan trapezoidal untuk menentukan nilai integral suatu fungsi f(x)
antara nilai a ke nilai b, aturan lain yang sering juga digunakan adalah aturan Simpson.
Metode ini sering disebut juga sebagai metode kuadratik, karena membagi setiap daerah
di bawah kurva fungsi f(x) menggunakan interpolasi parabolik. Aturan ini dipandang lebih
baik dibandingkan dengan aturan Trapezoidal. Pada bagian ini akan dijelaskan dua varians
1 3
aturan Simpson, pertama adalah aturan Simpson dan aturan Simpson . Kedua adalah
3 8
aturan composite-Simpson.

Aturan Simpson
Secara umum aturan ini membagi daerah di bawah kurva menjadi dua buah daerah baru.
Untuk lebih jelasnya lihat gambar (2.3).

Gambar 2.3: Ilustrasi aturan Simpson

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)]);

Dari code di atas diperoleh hasil sebagai berikut:

Luas area = 1.0023

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:

Gambar 2.5: Ilustrasi aturan Simpson 3/8

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

Gunakan kedua persamaan tersebut dalam code berikut ini:

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 function integral = CompSipm(a,b,n,f)


2 % a adalah batas bawah
3 % b adalah batas atas
4 % n adalah jumlah trapesium
5 % f adalah persamaan fungsi yang ingin diselesaikan
6 % f yang digunakan adalah fungsi yang sama pada aturan trapezoidal
7 h = (b−a)/(n−1);
8 x1 = [a+2*h:2*h:b−h]; %x ganjil selain x1, misalnya x3, x5,x7,...
9 x2 = [a+h:2*h:b−h]; %x genap misalnya x2, x4,x8,...
10 integral = (h/3)*(2*sum(feval(f,x))+4*sum(feval(f,x2))+feval(f,a)...
11 +feval(f,b));

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)]);

Maka hasil yang diperoleh adalah:

Luas area = 1.0023

Bagaimana jika nilai n = 4, 5, 6, 7, 8, · · · , apa yang terjadi?

2.5 Menentukan nilai error


Sangat sederhana menentukan nilai error dari suatu aturan Trapezoidal ataupun Simpson,
yakni dengan cara mengurangi nilai hasil analitik dengan hasil numerik. Secara matematis
dapat diungkapan dalam bentuk:

Error = Nilai Analitik − Nilai Numerik

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

I = p
0 1 − sin2 (15) sin2 θ

2. Gunakan Aturan Trapezoidal dan Simpson untuk menyelesaikan pemasalahan di atas?

3. Tentukan nilai error dari setiap aturan-aturan tersebut?

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

3.1 Metode Euler


Suatu persamaan differensial yang dinyatakan dalam fungsi f (t, y), dimana y(t) merupakan
persamaan asalnya, dapat diungkapkan dalam bentuk:
dy
= f (t, y) (1.3)
dt
y(ti )0 = f (ti , y(ti )) (1.4)

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)

maka persamaan (1.5) menjadi bentuk:

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.

Contoh 4.1 Tentukanlah solusi persamaan differensial berikut ini:


dy
= t
dt
dari t = 0 hingga t = 2, dimana pada kondisi awal y(0) = 0. Secara analitik persoalan di
atas dapat diselesaikan dengan cara:
dy = t dt
Z Z
dy = t dt
1 2
y = t +c (1.10)
2
Persamaan (1.10) merupakan solusi umum untuk persoalan di atas. Untuk menentukan solusi
khusus, maka gunakan syarat atau kondisi awal y(0) = 0, sehingga diperoleh:
1 2
y(t) = t +c
2
1 2
y(0) = (0) + c
2
0 = c (1.11)
Substitusi persamaan (1.11) ke persamaan solusi umum (1.10), sehinga diperoleh solusi khu-
sus sebagai berikut:
1 2
y = t (1.12)
2
Persamaan tersebut di atas (1.12) merupakan hasil akhir penyelesaian dengan cara meto-
de analitis. Sekarang, bagaimana jika persoalan di atas diselesaikan dengan menggunakan
metode numerik, dalam hal ini menggunakan metode Euler. Untuk menyelesaikan dengan
metode ini, lakukan tahapan berikut ini:
1. Menentukan jumlah N, besar kecilnya jumlah N akan menentukan hasil numerik yang
diperoleh. Pada perhitungan kali ini, nilai N = 10.
2. Menentukan nilai interval h, nilai h diperoleh dengan menggunakan persamaan:
b−a
h = (1.13)
N
dimana b = 2 dan a = 0, dan merupakan syarat atau kondisi batas.
2−0
h = = 0.2
10

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)

Pada saat i = 0 diketahui bahwa y0 = 0, maka y1 :

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

Demikian seterusnya, hingga mencapai i = 9

y10 = y9 + 0.04(9)
= 1.44 + 0.04(9) = 1.8

Atau dalam MATLAB dapat dituliskan sebagai berikut:

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

12 %menentukan posisi titik−titik t_{i}


13 for i =1:N
14 t(i) = a+(i*h);
15 end
16 disp('nilai t(i)');
17 t'
18
19 %solusi numerik y_i
20 y(1) = y0+h*(t0);

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.

Gambar 3.2: Grafik perbandingan solusi analitis dan numerik

Nilai error dapat ditentukan dengan menggunakan persamaan berikut ini:


error = Solusi Numerik − Solusi Analisis
error = |yi − yyi |

50
atau dapat pada MATLAB:

1 %Jadikan satu dengan program sebelumnya


2 %nilai error
3 error = abs(y − yy);
4 disp('nilai error');
5 error'

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.

3.2 Metode Runge-Kutta


Kita sudah ketahui bahwa metode Euler akan memiliki atau bertambah nilai error seiring
dengan pertambahan iterasi (ti ). Salah satu alternative yang sering digunakan adalah dengan
menggunakan metode Runge-Kutta. Sama halnya metode Euler, metode ini juga menggu-
nakan aturan deret Taylor dengan tanpa melibatkan suku kedua dari persamaan tersebut
(Pers. 1.8).
yi+1 = yi + hf (ti , yi ) (2.15)
dimana f (ti , yi ) disebut sebagai increment function dan fungsi ini merepresentasikan Reunge-
Kutta orde tertentu. Secara umum increment function untuk orde ke-n adalah:
f (ti , yi ) = a1 k1 + a2 k2 + · · · + an kn (2.16)
dimana a merupakan suatu konstanta dan k adalah:
k1 = f (ti , yi ) (2.17)
k2 = f (ti + p1 h, yi + q11 k1 h) (2.18)
k3 = f (ti + p2 h, yi + q21 k1 h + q22 k2 h) (2.19)
..
.
kn = f (ti + pn−1 h, yi + qn−1,1 k1 h + qn−1,2 k2 h + · · · + qn−1,n−1 kn−1 h) (2.20)
dimana p dan q adalah suatu konstanta.
Pada metode Runge-Kutta, jumlah atau semakin besar order (n) yang digunakan maka hasil
perhitungan yang diperoleh akan semakin akurat. Contohnya, jika yang digunakan adalah
Runge-Kutta orde-1, maka persamaannya sama dengan metode Euler (pers. 1.9) yakni:
yi+1 = yi + hf (ti , yi )
yi+1 = yi + ha1 k1
yi+1 = yi + ha1 f (ti , yi ) (2.21)
Sehingga dengan mengacu fakta di atas, maka pada bagian ini akan dijelaskan Runge-Kutta
orde kedua, dan keempat.

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

Dengan mengacu pada aturan tersebut, persamaan 2.23 menjadi:


∂f ∂f
yi+1 = yi + ha1 f (ti , yi ) + ha2 f (ti , yi ) + h2 a2 p1 + h2 a2 q11 f (ti , yi )
∂t ∂y
h ∂f ∂f i 2
yi+1 = yi + [a1 + a2 ]hf (ti , yi ) + a2 p1 + a2 q11 f (ti , yi ) h (2.25)
∂t ∂y
dimana:
a1 + a2 = 1
a2 p1 = 1/2
a2 q11 = 1/2
1
p1 = q11 =
2a2
Ada beberapa metode yang digunakan untuk menentukan nilai a1 , a2 yakni; Metode Heun
tanpa Interasi, Metode Titik Tengah (Midpoint), dan Metode Ralston.

Metode Heun tanpa Iterasi


Metode ini mengasumsikan bahwa nilai a2 = 1/2, sehingga dengan mudah diperoleh nilai
a1 = 1/2 dan p1 = q11 = 1 dan persamaan (2.22) menjadi:
1 1 
yi+1 = yi + h k1 + k2 (2.26)
2 2
dengan
k1 = f (ti , yi )
k2 = f (ti + h, yi + k1 h)

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)

Substitusi nilai k1 dan k2 ke persamaan:


1 1 
yi+1 = yi + h k1 + k2 (2.31)
2 2
sehingga diperoleh:
1 1 
y1 = y0 + 0.2 (0) + (0.2)
2 2
= 0 + 0.2(0.1) = 0.02

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)

Substitusi nilai k1 dan k2 ke persamaan:


1 1 
y2 = y1 + h k1 + k2
2 2
= 0.02 + 0.2(0.1 + 0.2) = 0.08

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

23 %untuk i = 0, nilai k1, k2, dan y1 memenuhi


24 k1 = persamaan(t0,y0);
25 k2 = persamaan(t0+h,y0+(h*k1));
26 y(1) = y0 + h*(0.5*k1+0.5*k2);
27
28 %menentukan k1, k2, dan y pada i = 1, 2, 3, ..., 10
29 for i=2:N
30 k = i−1;
31 k1 = persamaan(t(k),y(k));
32 k2 = persamaan(t(k)+h,y(k)+(h*k1));
33 y(i) = y(k) + h*(0.5*k1+0.5*k2);
34 end
35 disp('nilai y(i)');
36 y'
37
38 %membandingkan dengan solusi analitik
39 yy(1) = 0.5.*t0.^2;
40 for i=2:N
41 yy(i) = (1/2).*(t(i)).^2;
42 end
43 disp('nilai yy(i)');
44 yy'
45
46 plot(t,y,'o',t,yy,'−');
47 legend('solusi numerik','solusi analitik');

dengan fungsi persamaan(t,y) adalah

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

k2 = f (t0 + h/2, y0 + k1 h/2)


= f (0 + 0.1, 0 + 0(0.1)) (2.34)
= f (0.1, 0) = 0.1 (2.35)

Untuk memperoleh y1 , substitusi nilai k1 dan k2 ke persamaan:

yi+1 = yi + hk2
y1 = y0 + hk2
= 0 + 0.2(0.1) = 0.02 (2.36)

Adapun untuk memperoleh nilai k1 , k2 , yi pada i = 1, 2, · · · , 9, maka langkah yang


ditempuh sama dengan langkah yang dilakukan sebelumnya atau sama saat menentukan
k1 , k2 , dan yi pada i = 0. Jika menggunakan MATLAB, dapat diselesaikan dengan
mengganti atau memodifikasi baris 27 - 36 pada code Metode Runge-Kutta orde 2
dengan pendekatan Huen menjadi:

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

Adapun untuk menyelesaikan dengan menggunakan Metode Ralston, dapat diselesaikan


dengan cara sebagai berikut:

Untuk i = 0,

k1 = f (t0 , y0 )
= t0
= 0.2(0) = 0

k2 = f (t0 + 3h/4, y0 + 3k1 h/4)


= f (0 + 0.15, 0 + 0) (2.37)
= f (0.15, 0) = 0.15 (2.38)

Untuk memperoleh y1 , substitusi nilai k1 dan k2 ke persamaan:


1 2 
yi+1 = yi + h k1 + k2
3 3
1 2 
y1 = y0 + h k1 + k2
3 3
= 0 + 0.2(0 + 0.1) = 0.02 (2.39)

Adapun untuk memperoleh nilai k1 , k2 , yi pada i = 1, 2, · · · , 9, maka langkah yang


ditempuh sama dengan langkah yang dilakukan sebelumnya atau sama saat menentukan
k1 , k2 , dan yi pada i = 0. Jika menggunakan MATLAB, dapat diselesaikan dengan
mengganti atau memodifikasi baris 27 - 36 pada code Metode Runge-Kutta orde 2
dengan pendekatan Huen menjadi:

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.

3.2.2 Metode Runge-Kutta orde-4


Persamaan Metode Runge-Kutta orde-4 dinyatakan dalam bentuk berikut ini:
1
yi+1 = yi + (k1 + 2k2 + 2k3 + k4 )h (2.40)
6
dimana:

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

Untuk menentukan nilai y1 , substitusi nilai k1 , k2 , k3 , dan k4 pada persamaan (2.40):


1
y1 = y0 + (0 + 0.2 + 0.2 + 0.2)0.2
6
y1 = 0 + 0.1333 = 0.02

Sedangkan untuk nilai y2 , y3 , · · · , y10 dapat diselesaikan dengan cara yang hampir sama
dengan cara menentukan y1 . Secara sederhana dapat diselesaikan menggunakan MATLAB.

1 %Metode Runge−Kutta orde 4


2 %Tentukan solusi khusus persamaan berikut ini:
3 %dy/dt = t
4 clear all;
5 clc;
6 format long
7 b = 2; %batas atas
8 a = 0; %batas bawah
9 N = 10; %bilangan bulat positif
10 h = (b−a)/N; %nilai step−size
11 y0 = 0; %nilai awal y
12 t0 = 0; %nilai awal t
13 %perubahn t sesui step−size h adalah

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');

Dari hasil kedua code tersebut diperoleh hasil sebagai berikut:

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;

2. Membuat code utama

1 %Tentukan solusi khusus persamaan berikut ini:


2 %dN/dt = −lambda(N)
3
4 clear all;
5 clc;
6 format long
7
8 b = 2; %batas atas
9 a = 0; %batas bawah
10 N = 20; %bilangan bulat positif
11 lambda = 0.1;
12 h = (b−a)/N; %nilai step−size
13 t0 = 0; %nilai awal t0
14 y0 = 1; %nilai awal y0 atau N0
15 %perubahn t sesui step−size h adalah
16 for i=1:N
17 t(i) = a+(i*h);
18 end
19 t';
20

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

43 %metode Runge−Kutta orde4


44 k1 = persamaan(t(k),y(k));
45 k2 = persamaan(t(k)+h/2,y(k)+(h*k1*0.5));
46 k3 = persamaan(t(k)+h/2,y(k)+(h*k2*0.5));
47 k4 = persamaan(t(k)+h,y(k)+h*k3);
48 y(i) = y(k) + h*(k1+2*k2+2*k3+k4)/6;
49 end
50 yy'; %Hasil metode Heun
51 y'; %Hasil metode Runge−Kutta Orde 2
52
53 %membandingkan dengan solusi analitik
54 ww(1) = y0.*exp(−lambda.*t0);
55 for i=2:N
56 ww(i) = y0.*exp(−lambda.*t(i));
57 end
58 ww';
59
60 plot(t,yy,'o',t,y,'−',t,ww,'−−');
61 legend('Metode Heun','Metode RK4','Sol. Analitik');
62
63 %menentukan nilai error
64 error1 = abs(y−ww); %error untuk metode Huen
65 error2 = abs(yy−ww); %error untuk metode Runge−Kutta

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)

i Metode Runge-Kutta Metode Huen


0 0.009950166250000 0.009950000000000
1 0.000000000001647 0.000000330847432
2 0.000000000002446 0.000000493806261
3 0.000000000003229 0.000000655143614
4 0.000000000003997 0.000000814875625
5 0.000000000004748 0.000000973018269
6 0.000000000005484 0.000001129587359
7 0.000000000006206 0.000001284598552
8 0.000000000006912 0.000001438067351
9 0.000000000007603 0.000001590009102
10 0.000000000008281 0.000001740439000
11 0.000000000008944 0.000001889372088
12 0.000000000009592 0.000002036823259
13 0.000000000010227 0.000002182807260
14 0.000000000010849 0.000002327338688
15 0.000000000011457 0.000002470431997
16 0.000000000012052 0.000002612101497
17 0.000000000012634 0.000002752361355
18 0.000000000013203 0.000002891225597
19 0.000000000013760 0.000003028708109

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

17 Exact_Sol = 2*exp(−t)−exp(−2*t); %Persamaan 4.57


18 error = abs(y − Exact_Sol);
19 error'
20 plot(t,Exact_Sol,t,y,'.','MarkerSize',10);
21 legend('Exact Solution','Numerical Solution');

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

3.5 Metode Beda Hingga


Sebelum mempelajari lebih jauh tentang Metode Beda Hingga, terlebih dahulu akan diper-
kenalkan beberapa type persamaan differensial parsial.

66
Persamaan Laplace

∇2 u = 0 (5.59)

Persamaan Poisson

∇2 u = f (x, y, z) (5.60)

Persamaan Difusi atau Persamaan Panas


1 ∂u
∇2 u = (5.61)
α2 ∂t
Persamaan Gelombang

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:

a11 uxx + 2a12 uxy + a22 uyy + a1 ux + a2 uy + a0 u = 0 (5.65)

Maka persamaan differensial differensial dapat dibedakan menjadi:

Persamaan Elliptic, jika a212 < a11 a22

Persamaan Hyperbolic, jika a212 > a11 a22

Persamaan Parabolic, jika a212 = a11 a22

Jika persamaan-persamaan differensial parsial di atas diselesaikan dengan menggunakan me-


tode analitis, maka metode yang biasa ditempuh adalah dengan cara menggunakan metode
pemisahan variabel (separate variable method ). Metode ini cukup rumit dan membutuhkan
waktu penyelesaikan yang sangat lama. Maka harus ada alternative metode untuk menyelesa-
ikan persamaan tersebut. Salah satu cara yang sering dilakukan adalah dengan menggunakan
Metode Beda Hingga, metode ini cukup secerhana hanya dengan menggunakan aturan deret
Taylor.Misalnya diketahui persamaan differensial parsial pada domain 2 dimensi:

∂ 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

Dari gambar 3.6, diketahui bahwa:

xi = a + ih, dimanai = 1, 2, · · · , n (5.67)

dan

yi = c + jk, dimanaj = 1, 2, · · · , m (5.68)

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

View publication stats

Anda mungkin juga menyukai