• Tidak ada hasil yang ditemukan

Catatan Kuliah. Komputasi Geofisika. Sayahdin Alfat

N/A
N/A
Protected

Academic year: 2021

Membagikan "Catatan Kuliah. Komputasi Geofisika. Sayahdin Alfat"

Copied!
70
0
0

Teks penuh

(1)

Catatan Kuliah

Komputasi Geofisika

Sayahdin Alfat

29 Desember 2017

(2)

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)

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

(4)

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 digunakpencocok-an pada data ypencocok-ang mengpencocok-andung noise, biaspencocok-anya untuk menghitung tingkpencocok-an 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:

(5)

atau

f (x) = p1xn−1+ p2xn−2+ p3xn−3+ · · · + pn−1x + 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) = p1x2+ p2x + p3

ρ(T ) = p1T2+ p2T + p3 (2.3)

Substitusi seluruh data hasil eksperimen pada persamaan 2.3, sehingga diperoleh:

0.616 = p190000 + p2300 + p3 (2.4)

0.525 = p1160000 + p2400 + p3 (2.5)

0.457 = p1250000 + p2500 + 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.00000115T2− 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.

(6)

Metode Lagrange

Metode Lagrange merupakan salah satu varians dari metode interpolasi polinomial yang sangat sederhana. Metode Lagrange dapat diungkapkan dalam bentuk persamaan:

Pn−1(x) = n X i=1 yili(x) (2.8) dimana: li = x − x1 xi− x1 · x − x2 xi − x2 · · · x − xi−1 xi− xi−1 · x − xi+1 xi− xi+1 · · · x − xn xi− xn = n Y j=1 j6=i x − xj xi− xj , i = 1, 2, · · · , n (2.9)

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) = y1l1(x) + y2l2(x) (2.10)

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

l1(x) = x − x2 x1− x2 (2.11) l2(x) = x − x1 x2− x1 (2.12) Jika persamaan (2.11) dan (2.12) ke persamaan 2.10, maka diperoleh:

P1(x) = y1 x − x2 x1− x2 + y2 x − x1 x2− x1 (2.13) 2. Bagaimana jika jumlah data (n) = 3, maka persamaan yang diperoleh:

P2(x) = y1l1(x) + y2l2(x) + y3l3(x) (2.14) Dimana: l1(x) = (x − x2)(x − x3) (x1− x2)(x1− x3) (2.15) l2(x) = (x − x1)(x − x3) (x2− x1)(x2− x3) (2.16) l3(x) = (x − x1)(x − x2) (x3− x1)(x3− x2) (2.17)

(7)

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 ) = ρ1 T − T2 T1− T2 + ρ2 T − T1 T2− T1 ρ(−10) = 1.52−10 − 0 −40 − 0 + 1.29 −10 − (−40) 0 − (−40) = 1.52−10 −40+ 1.29 30 40 = 1.3475

(8)

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 ) = ρ1 (T − T2)(T − T3) (T1− T2)(T1− T3) + ρ2 (T − T1)(T − T3) (T2− T1)(T2− T3) + ρ3 (T − T1)(T − T2) (T3− T1)(T3− T2) ρ(−10) = 1.52(−10)(−30) (−40)(−60) + 1.29 (30)(−30) (40)(−20) + 1.20 (30)(−10) (60)(20) = 1.52 (300) (2400)+ 1.29 (−900) (−800)+ 1.20 (−300) (1200) = 1.34125

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.

(9)

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: y(x) = y1 (x − x2)(x − x3) (x1− x2)(x1 − x3) + y2 (x − x1)(x − x3) (x2− x1)(x2− x3) + y3 (x − x1)(x − x2) (x3 − x1)(x3− x2) (2.18) y(1) = 7(−1)(−2) (−2)(−3) + 11 (1)(−2) (2)(−1)+ 28 (1)(−1) (3)(1) = 7 1 3  + 11 − 28 1 3  = 4

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

(10)

Alternatif Solusi

Gunakan persamaan 2.18, diperoleh: y(x) = 7(x − 2)(x − 3) 6 − 11 (x)(x − 3) 2 + 28 (x)(x − 2) 3 y(x) = 7 6(x 2− 5x + 6) − 11 2 (x 2− 3x) + 28 3 (x 2− 2x) = 7 6(x 2− 5x + 6) − 33 6 (x 2− 3x) + 56 6 (x 2− 2x) 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:

(11)

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, xj] = f (xi) − f (xj) xi− xj (2.24) f [xi, xj, xk] = f [xi, xj] − f [xj, xk] xi− xk (2.25) f [xn, xn−1, · · · , x2, x1] = f [xn, xn−1, · · · , x2] − f [xn−1, xn−2, · · · , x1] xn− x1 (2.26)

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) a2 = f (x2) − f (x1) x2− x1 (2.28) a3 = f [x3, x2] x3− x1 − f [x2, x1] x3− x1 = f (x3) − f (x2) (x3− x1)(x3− x2) − f (x2) − f (x1) (x3− x1)(x2− x1) (2.29) a4 = f (x4) − f (x3) (x4− x1)(x4− x3) − f (x3) − f (x2) (x4− x1)(x3− x2) − f (x2) − f (x1) (x4− x1)(x2− x1) (2.30)

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) Pn−1(x) = f (x1) + n X k=1 (x − x1)(x − x2) · · · (x − xk−1)f [xk, xk−1, · · · , x2, x1] (2.32)

(12)

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 f [x2, x1] = 1.386294 − 0 4 − 1 = 0.462098 f [x3, x2] = 1.791759 − 1.386294 6 − 4 = 0.2027325 f [x4, x3] = 1.609438 − 1.791759 5 − 6 = 0.182321

Variabel polinomial orde kedua: f [x3, x2, x1] = 0.2027325 − 0.462098 6 − 1 = −0.0518731 f [x4, x3, x2] = 0.182321 − 0.2027325 1 = −0.0204115

Variabel polinomial orde ketiga: f [x4, x3, x2, x1] =

−0.0204115 − (−0.0518731)

4 = 0.0078654

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

(13)

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 menenun-tukan 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, x1] =

f [xn, xn−1, · · · , x2] − f [xn−1, xn−2, · · · , 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: Pn−1(x) = f (x1) +

n

X

k=1

(14)

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

(15)

(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: P1[xi, xi+1] =

(x − xi+1)P0[xi] + (xi− x)P0[xi+1]

xi− xi+1

(2.37) dan tiga titik data:

P2[xi, xi+1, x2+i] =

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

xi− xi+1

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

P0[xi] = yi P1[xi, xi+1] = (xi− xi+1)P0[xi] xi− xi+1 = P0[xi] P2[xi, xi+1, x2+i] = (xi− xi+2)P1[xi, xi+1] xi− xi+1 = P1[xi, xi+1]

Jadi dari ketiga persamaan di atas dapat diungkapkan sebagai berikut:

(16)

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:

P2[xi, xi+1, xi+2] =

(xi+1− xi+2)yi+1+ (xi− xi+2)yi+1

xi− xi+2

(2.41) 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

(17)

2. Untuk k = 1, gunakan persamaan: P1[xi, xi+1] =

(x − xi+1)P0[xi] + (xi− x)P0[xi+1]

xi− xi+1

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

P1[x1, x2] = (x − x2)P0[x1] + (x1− x)P0[x2] x1− x2 = (0.2)0.7651977 + (−0.5)0.6200860 −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): P2[xi, xi+1, xi+2] =

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

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

4. Untuk k = 3, gunakan persamaan (2.43): P3[xi, xi+1, xi+2, xi+3] =

(x − xi+3)P2[xi, xi+1, xi+2] + (xi− x)P2[xi+1, xi+2, xi+3]

xi− xi+3 Sehingga: P3[x1, x2, x3, x4] = (−0.4)0.5124715 + (−0.5)0.5112857 −0.9 = 0.5118127 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

(18)

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

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

(19)

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)

(20)

(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

fi = ai (4.45)

(21)

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+ 2cihi+ 3dih2i (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+ 3dihi (4.52) dan nilai di: di = ci+1− ci 3hi (4.53) Substitusi nilai di ke persamaan (4.48):

fi+1 = fi+ bi(hi) + ci(hi)2+ ci+1− ci 3hi (hi)3 = fi+ bi(hi) + (hi)2 3 (2ci+ ci+1) (4.54)

Persamaan (4.54) dapat dituliskan dalam bentuk lain: bi =

fi+1− fi

hi

−(hi)

3 (2ci+ ci+1) (4.55)

Jika indek persamaan (4.55) direduksi 1 tahap: bi−1 =

fi− fi−1

hi−1

−(hi−1)

(22)

Sementara itu, untuk menentukan bi+1substitusi 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: hi−1ci−1+ 2(hi−1− hi)ci+ hici+1= 3

fi+1− fi hi − fi− fi−1 hi−1  (4.59) 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:

A =          1 h1 2(h1+ h2) h2 . .. . .. . .. . .. . .. . .. hn−2 2(hn−2+ hn−1) hn−1) 1          x =          c1 c2 .. . .. . cn−1 cn          b =          0 3(f [x3, x2] − f [x2, x1]) .. . .. . 3(f [xn, xn−1] − f [xn−1, xn−2]) 0          atau: Ax = b

(23)

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 h1 2(h1 + h2) h2 h2 2(h2+ h3) h3 1         c1 c2 c3 c4     =     0 3(f [x3, x2] − f [x2, x1]) 3(f [x4, x3] − f [x3, x2]) 0     h1 = 4.5 − 3.0 = 1.5, a1 = f1 = 2.5, f [x3, x2] = f3− f2 x3− x2 = 1.5 2.5 h2 = 7.0 − 4.5 = 2.5, a2 = f2 = 1.0, f [x2, x1] = f2− f1 x2− x1 = −1.5 1.5 h3 = 9.0 − 7.0 = 2.0, a3 = f3 = 2.5, , f [x4, x3] = f4− f3 x4− x3 = −2 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

(24)

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

(25)

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

(26)

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+ a1x + a2x2+ · · · + an−1xn−1+ +anxn (5.60)

dimana n < m − 1.

(27)

E = m X i=1 yi− fn(xi) 2 = m X i=1 yi2− 2 m X i=1 fn(xi)yi+ m X i=1 fn(xi) 2 = m X i=1 yi2− 2 m X i=1 Xn j=0 ajxji  yi+ m X i=1 Xn j=0 ajxji 2 = n X i=1 yi2− 2 n X j=0 aj Xm i=1 xjiyi  + n X j=0 n X k=0 ajak Xm i=1 xj+ki  (5.61)

Untuk menentukan koefisien a0, a1, · · · , an, maka gunakan asumsi

∂E ∂aj = 0, sehingga persa-maan (5.61) menjadi: 0 = ∂E ∂aj = −2 Xm i=1 xjiyi  + 2 n X k=0 ak Xm i=1 xj+ki  (5.62) atau: n X k=0 ak Xm i=1 xj+ki  = Xm i=1 xjiyi  , j = 0, 1, · · · , n (5.63)

Persamaan (5.63) dapat dituliskan dalam suatu sistem persamaan sebagai berikut: a0 m X i=1 x0i + a1 m X i=1 x1i + a2 m X i=1 x2i + · · · + an m X i=1 xni = m X i=1 x0iyi a0 m X i=1 x1i + a1 m X i=1 x2i + a2 m X i=1 x3i + · · · + an m X i=1 xni = m X i=1 x1iyi .. . a0 m X i=1 xni + a1 m X i=1 xn+1i + a2 m X i=1 xn+2i + · · · + an m X i=1 x2ni = m X i=1 xniyi

Untuk standar deviasi diperoleh dengan menggunakan persamaan: σ =

r E

m − n (5.64)

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.

(28)

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:

a0 m X i=1 x0i + a1 m X i=1 x1i + a2 m X i=1 x2i = m X i=1 x0iyi (5.65) a0 m X i=1 x1i + a1 m X i=1 x2i + a2 m X i=1 x3i = m X i=1 x1iyi (5.66) a0 m X i=1 x2i + a1 m X i=1 x3i + a2 m X i=1 x4i = m X i=1 x2iyi (5.67)

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:

(29)

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

(30)

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:

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

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 yi− f (xi) 2

2.639E-05 0.0001018 3.10444E-07 0.0001173191 2.833E-05 0.000274

Dari tabel tersebut diperoleh total error (E) adalah:

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

Sedangkan standar deviasi adalah: σ =

r E

m − n = 0.01655 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

(31)

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:

f2x = 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

(32)

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:

h0+ v0t −

1 2gt

2 = h (5.70)

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: h0+ v0t − 1 2gt 2 = h a1+ a2ti− a3t2i = h (5.71) dimana a1 = h0, a2 = v0 dan a3 =−12g.

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

(33)

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

(34)

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: 4z2 v2 + x2 v2 = t 2 (5.72) 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+ a2x + a3x2 = 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:

(35)

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 4z2 v2 + 4z sin αx v2 + x2 v2 = t 2 (5.73)

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+ a2x + a3x2 = t2

(36)

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. I = Z b a f (x)dx (1.1) atau; I = n X i=1 Aif (xi) (1.2)

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

(37)

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

h = (b − a)

(n − 1)

h = (b − a)

(2 − 1) Aturan trapezoidal n = 2

h = b − a (2.3)

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

I = n X i=1 Aif (xi) I = 2 X i=1 Aif (xi) I = A1f (x1) + A2f (x2) = A1f (a) + A2f (b) (2.4) dimana A1: A1 = Z b a l1(x)dx = Z b a (x − x2) x1− x2 dx = Z b a −(x − x2) x2− x1 dx = Z b a −(x − b) b − a dx = Z b a −(x − b) h dx = − 1 h Z b a (x − b) = 1 2h(b 2 + a2− 2ab) = 1 2h(b − a) 2 A1 = h 2 (2.5)

(38)

dan A2: A2 = Z b a l2(x)dx A2 = Z b a (x − x1) x2 − x1 dx = Z b a (x − x1) h dx = 1 h Z b a (x − a) = 1 2h(b 2+ a2− 2ab) = 1 2h(b − a) 2 (2.6) A2 = h 2 (2.7)

Substitusi persamaan (2.5) dan (2.7) ke dalam persamaan (2.4): I = f (a) + f (b) h

2 (2.8)

Persamaan (2.8) dikenal sebagai aturan Trapezoidal.

Contoh

Soal

Tentukanlah nilai integral berikut ini: Z π 2 0 sin(x)dx (2.9) Solusi

Jika persoalan diselesaikan dengan menggunakan metode analitik maka diperoleh hasil seba-gai berikut: I = Z π2 0 sin(x)dx I = − cos(x) π 2 0 = 1

Jadi diperoleh solusi eksak untuk fungsi f (x) = sin(x) dari 0 ke π

2 adalah 1.

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.

(39)

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.

I = n−1 X i=1 Ii = I1+ I2+ · · · + In−1 = A1f (x1) + 2A2f (x2) + 2A3f (x3) + · · · + 2An−1f (xn−1) + Anf (xn) (3.10)

Untuk menentukan nilai A1, A2 dan seterusnya, perhatikan persamaan (2.5) dan (2.7), dari

persamaan tersebut diperoleh bahwa:

A1 = A2 = A3 = · · · = An−1 = An =

h

(40)

Gambar 2.2: Ilustrasi aturan composite trapezoidal

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

I = (f (x1) + 2f (x2) + 2f (x3) + · · · + 2f (xn−1) + f (xn))

h

2 (3.12)

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

(41)

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 aturan Simpson, pertama adalah aturan Simpson 1

3 dan aturan Simpson 3

8. Kedua adalah 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).

(42)

Secara umum aturan Simpson diformulasikan sebagai berikut: Z b a f (x)dx = n X i=1 Aif (xi)

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 a f (x)dx = 3 X i=1 Aif (xi) = hf (x1) + 4f (x2) + f (x3) ih 3 = hf (a) + 4fa + b 2  + f (b)ih 3 (4.13)

dimana nilai h memenuhi:

h = b − a

n − 1

= b − a

2 (4.14)

Persamaan (4.13) disebut juga persamaan Simpson 13. Sedangkan untuk aturan Simpson 38 memenuhi persamaan: I = hf (x1) + 3f (x2) + 3f (x3) + f (x4) i3h 8 (4.15) nilai h memenuhi: h = b − a n − 1 = b − a 3 (4.16)

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:

I = Z b a f (x) = hf (x1) + 4f (x2) + 2f (x3) + 4f (x4) + · · · + 2f (xn−2) + 4f (xn−1) + f (xn) ih 3

(43)

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

0

sin(x)dx (4.17)

Gunakan aturan Simpson 1

3, Simpson 3

8 dan Aturan Composite-Simpson! 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:

(44)

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.

(45)

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:

(46)

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

I = Z 0.71 0 exp −t t2+ 0.51dt I = Z 3 0 x √ x2− 4dx I = Z 2 0 sin(2πx) cos(5πx)dx I = Z π/2 0 dθ p 1 − sin2(15) sin2θ

2. Gunakan Aturan Trapezoidal dan Simpson untuk menyelesaikan pemasalahan di atas? 3. Tentukan nilai error dari setiap aturan-aturan tersebut?

(47)

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:

~

F = d~p

dt (0.1)

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:

md

2~x

dt2 + c

d~x

dt + k~x = 0 (0.2)

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.

(48)

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

dt = f (t, y) (1.3)

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:

y(ti+1) = y(ti) + (ti+1− ti)y0(ti) +

(ti+1+ ti)2

2 y

00

(ξi) (1.5)

jika nilai (ti+1− ti) diungkapkan sebagai:

(ti+1− ti) = h (1.6)

maka persamaan (1.5) menjadi bentuk:

y(ti+1) = y(ti) + hy0(ti) +

h2 2 y

00

(ξi) (1.7)

dan, jika menggunakan persamaan (1.4), maka:

y(ti+1) = y(ti) + hf (ti, y(ti)) +

h2

2 y

00

(49)

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

dt = t

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 dy = Z t dt y = 1 2t 2 + c (1.10)

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:

y(t) = 1 2t 2 + c y(0) = 1 2(0) 2 + c 0 = c (1.11)

Substitusi persamaan (1.11) ke persamaan solusi umum (1.10), sehinga diperoleh solusi khu-sus sebagai berikut:

y = 1

2t

2 (1.12)

Persamaan tersebut di atas (1.12) merupakan hasil akhir penyelesaian dengan cara meto-de analitis. Sekarang, bagaimana jika persoalan di atas diselesaikan meto-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:

h = b − a

N (1.13)

dimana b = 2 dan a = 0, dan merupakan syarat atau kondisi batas.

h = 2 − 0

(50)

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

(51)

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

(52)

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) = a1k1+ a2k2+ · · · + ankn (2.16)

dimana a merupakan suatu konstanta dan k adalah:

k1 = f (ti, yi) (2.17) k2 = f (ti+ p1h, yi+ q11k1h) (2.18) k3 = f (ti+ p2h, yi+ q21k1h + q22k2h) (2.19) .. . kn = f (ti+ pn−1h, yi+ qn−1,1k1h + qn−1,2k2h + · · · + qn−1,n−1kn−1h) (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+ ha1k1

yi+1 = yi+ ha1f (ti, yi) (2.21)

Sehingga dengan mengacu fakta di atas, maka pada bagian ini akan dijelaskan Runge-Kutta orde kedua, dan keempat.

(53)

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(a1k1 + a2k2) (2.22)

dimana:

k1 = f (ti, yi)

k2 = f (ti+ p1h, yi+ q11k1h)

dengan menggunakan kedua nilai k1 dan k2 diperoleh persamaan:

yi+1 = yi+ h(a1f (ti, yi) + a2f (ti+ p1h, yi+ q11k1h)) (2.23)

Deret Taylor dua variabel

g(x + r, y + s) = g(x, y) + r∂g ∂x + s

∂g

∂y + · · · (2.24)

dimana r dan s adalah suatu konstanta

Dengan mengacu pada aturan tersebut, persamaan 2.23 menjadi: yi+1 = yi+ ha1f (ti, yi) + ha2f (ti, yi) + h2a2p1 ∂f ∂t + h 2a 2q11f (ti, yi) ∂f ∂y yi+1 = yi+ [a1+ a2]hf (ti, yi) + h a2p1 ∂f ∂t + a2q11f (ti, yi) ∂f ∂y i h2 (2.25) dimana: a1+ a2 = 1 a2p1 = 1/2 a2q11 = 1/2 p1 = q11 = 1 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:

yi+1 = yi + h 1 2k1 + 1 2k2  (2.26) dengan k1 = f (ti, yi) k2 = f (ti+ h, yi+ k1h)

(54)

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+ k1h/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:

yi+1 = yi + h 1 3k1 + 2 3k2  (2.28) dimana k1 = f (ti, yi) k2 = f (ti+ 3h/4, yi+ k1h3/4)

Contoh 4.2 Gunakan metode Heun, Midpoint, dan Ralston untuk menentukan solusi dari persamaan differensial berikut ini:

dy

dt = t

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

y = 1

2t

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:

h = b − a

N

= 2 − 0

10 = 0.2

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

(55)

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+ k1h) = 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:

yi+1 = yi+ h 1 2k1 + 1 2k2  (2.31) sehingga diperoleh: y1 = y0+ 0.2 1 2(0) + 1 2(0.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+ k1h) = 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:

y2 = y1+ h 1 2k1+ 1 2k2  = 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

(56)

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;

(57)

Catatan

function dy dapat berubah tergantung persoalan yang dihadapi. Contoh:

Tentukan solusi persamaan:

dy

dt = t

2 + 2y

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+ k1h/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);

(58)

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+ 3k1h/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:

yi+1 = yi+ h 1 3k1+ 2 3k2  y1 = y0+ h 1 3k1+ 2 3k2  = 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

(59)

(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: yi+1 = yi+ 1 6(k1+ 2k2+ 2k3+ k4)h (2.40) dimana: k1 = f (ti, yi) (2.41) k2 = f  ti+ 1 2h, yi+ 1 2k1h  (2.42) k3 = f  ti+ 1 2h, yi+ 1 2k2h  (2.43) k4 = f (ti+ h, yi+ k3h) (2.44)

Contoh 4.2 Gunakan Metode Runge-Kutta orde 4 untuk menentukan solusi dari persamaan differensial berikut ini:

dy

dt = t

Solusi Untuk menyelesaikan persoalan tersebut maka yang pertama dihitung adalah nilai interval h.

h = b − a

N

= 2 − 0

10 = 0.2

dan posisi titik-titik ti

(60)

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 k2 = f  t0+ 1 2h, y0 + 1 2k1h  = f (0 + 0.1, 0 + 0) = f (0.1, 0) = 0.1 nilai k3 k3 = f  t0+ 1 2h, y0 + 1 2k2h  = f (0.1, 0.01) = 0.1 nilai k4 k4 = f (t0+ h, y0+ k3h) = f (0.2, 0.02) = 0.2

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

y1 = y0+

1

6(0 + 0.2 + 0.2 + 0.2)0.2 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

(61)

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

Gambar

Gambar 1.1: Treatment data melalui interpolasi dan pencocokan kurva
Gambar 1.2: Treatment data melalui interpolasi dan pencocokan kurva
Tabel 1.1: Data hubungan x dan y
Gambar 1.3: (a) Plotting grafik secara langsung, dan (b) Plotting kurva menggunakan me- me-tode polinomial Lagrange
+7

Referensi

Dokumen terkait

Nilai MSE dari penaksir rasio regresi linear yang diperolehdengan menggunakan dua karakter tambahan untuk rata-rata populasi yang diajukan pada sampling acak

Menimbang, bahwa terlepas dari ketentuan-ketentuan formil sebagaimana terurai di atas, dalam perkara aquo, disamping ada kepentingan hukum Para Pemohon, juga

This research is undertaken to find the goals of that namely factors causing low writing skill of students, identifying the improvement of the students’ writing skill and

Tujuan utama dari penelitian ini adalah untuk secara kualitatif menganalisis proses dan pelaksanaan demokratisasi pers di pemerintah, yaitu Tabloid Komunika (TK), untuk

Hal ini menunjukkan bahwa perubahan warna tangkai yang terjadi pada bunga potong kasturi yang tidak diaplikasikan 1-MCP menjadi gelap lebih cepat dibandingkan

Ekosistem pertanian atau ogroekosistem merupakan salah satu contoh ekosistem binaan manusia (Untung, 2006). 5 Makin meningkatnya pemanfaatan sumber daya yang

Menimbang, bahwa Tergugat/Pembanding keberatan bahwa anak-anak ditetapkan di bawah asuhan Penggugat/Terbanding karena kelakuan Penggugat/Terbanding tidak bisa mendidik,

Mulai bulan Februari 2017, Bank Indonesia mengubah skema Operasi Pasar Terbuka (OPT) dari metode lelang harga tetap (fixed-rate tender: tingkat diskonto OPT yang