My published book (extract from Chap 6), "Komputasi Numerik dengan MATLAB" (Penerbit ANDI, 2005)

(1)

6

P

ENURUNAN

F

UNGSI

S

ECARA

N

UMERIK

P

ada bab ini kita membicarakan metode numerik untuk menaksir nilai turunan suatu fungsi. Suatu fungsif, baik diketahui rumus-nya secara eksplisit maupun dalam bentuk data titik-titik yang di-lalui kurvanya, dihampiri dengan sebuah fungsi lain yang lebih seder-hana. Suatu polinomialpmerupakan pilihan yang paling mudah sebagai hampiran fungsif, karena setiap polinomial dapat dengan mudah ditu-runkan.

Turunan polinomialp, yaknip 0

(x), digunakan sebagai hampiran un-tukf

0

(x)untuk sebarang nilaix. Secara geometris hal ini ekivalen dengan menghampiri gradien garis singgung pada kurvaf dix dengan gradien garis singgung pada kurvapdix.

Rumus-rumus turunan numerik bermanfaat di dalam pengemban-gan algoritma untuk menyelesaikan masalah nilai awal pada persamaan diferensial biasa dan parsial.

6.1

Turunan Tingkat Satu

6.1.1 Rumus Selisih Maju Dua-Titik

Misalkanf(x)adalah sebuah fungsi riil satu variabel dan termasuk dalam kelas fungsiC

2

. Perhatikan polinomial Taylor berderajad 1 untukf(x)di sekitarx=x

0:

f(x)=f(x 0

)+(x x 0

)f 0

(x 0

)+(x x 0

) 2

f 00

()=2 (6.1)

denganadalah sebuah bilangan antaraxdanx 0. Misalkanx = x

0

+h, denganh >0. Maka (6.1) dapat ditulis ulang sebagai

f(x 0

+h)=f(x 0

)+hf 0

(x 0

)+h 2

f 00

()=2 untuksuatu 2[x 0

; x 0


(2)

Jadi,

f 0

(x 0

)= f(x

0

+h) f(x 0

) h

h f

00 () 2

: Jikah mengecil,(f(x

0

+h) f(x 0

))=hakan memberikan taksiran untuk nilaif

0 (x

0

). Ini berarti

f 0

(x 0

) f(x

0

+h) f(x 0

) h

(6.2) Galat di dalam hampiran ini dinyatakan sebagai

jgalatj Mh

2

(6.3) denganM adalah batas atasf

00

(x)pada[x 0

;x 0

+h℄. Batas galat (6.3) da-pat diturunkan dari deret Taylor (6.1). Rumus (6.2) disebutrumus selisih maju dua-titik.

x0 x0+h x

h

y=f(x)

f(x0)

f(x0+h)

garis singgung di x0

hampiran

garis singgung di x0

Gambar 6.1: Gradien busur sebagai hampiran gradien garis singgung: Ru-mus dua–titik–maju.

Perhatikan bahwa ruas kanan dalam rumus (6.2) merupakan gradien cSahid (2004 – 2012)


(3)

6.1.3 Rumus Selisih Pusat Dua-Titik Dari (6.2) kita mempunyai

hf 0

(x 0

)=f(x 0

+h) f(x 0

): Dari (6.4) kita dapatkan

hf 0

(x 0

)= f(x 0

h)+f(x 0

): Dengan menjumlahkan keduanya kita peroleh

2hf 0

(x 0

)=f(x 0

+h) f(x 0

h): Jadi,

f 0

(x 0

)= f(x

0

+h) f(x 0

h) 2h

: (6.6)

x0-h x0 x0+h x

h h

f(x0+h)

f(x0-h)

garis singgung f di x0

hampiran

garis singgung

f di x0

y=f(x)

Gambar 6.3: Gradien busur sebagai hampiran gradien garis singgung: Ru-mus selisih pusat.

Rumus (6.6) disebut rumus selisih pusat dua-titik. Perhatikan


(4)

Pada tabel hasil perhitungan MATLAB di atas, kolom ketiga merupakan galat selisih pusat berorde O(h

2

) dan kolom terakhir merupakan galat selisih pusat berordeO(h

4

). Terlihat bahwa nilai-nilai pada kolom terakhir lebih kecil hampirh

2

kali kolom ketiga. Kedua hampiran (kolom kedua dan keempat) juga semakin menuju ke 0.5 semakinh mengecil, namun kolom keempat konvergen lebih cepat.

Pembaca mungkin bertanya, berapakah nilai hyang optimal untuk menghitung hampiran nilai suatu turunan? Berikut diberikan dua rumus untuk menentukan nilaihyang mengoptimalkan galat hampiran turunan fungsi. Pembaca yang tertarik untuk mengetahui lebih detil dapat melihat pada referensi [1] halaman 321 –324.

Untuk hampiran turunan pertama dengan rumus selisih terbagi pusat berordeO(h

2 ):

f 0

(x)=

f(x+h) f(x h) 2h

+E(f;h);

dengan syaratf 2 C 3

[a;b℄danx h;x;x+h 2 [a;b℄, nilai h yang meminimumkanE(f;h)adalah

h=

3 M

1=3

; (6.20)

denganadalah batas galat pembulatan dan M = max

axb fjf

(3) (x)jg:

Untuk hampiran turunan pertama dengan rumus selisih terbagi pusat berordeO(h

4 ):

f 0

(x)=

f(x+2h)+8f(x+h) 8f(x h)+f(x+2h) 12h

+E(f;h);

dengan syaratf 2C 5

[a;b℄danx 2h;x h;x;x+h;x+2h2[a;b℄, nilaihyang meminimumkanE(f;h)adalah

h=

45 4M

1=5

; (6.21)


(5)

peroleh

3f 0

(x 0

)4R 0

(h) R 0

(2h)= 4(f

1 f

1 ) 2h

f 2

f 2 4h atau

f 0

(x 0

) 4R

0

(h) R 0

(2h) 3

= f

2 +8f

1 8f

1 +f

2 12h

(6.26) Perhatikan, ruas kanan pada (6.26) adalah rumus selisih pusat beroder O(h

4

), dan ternyata dapat diperoleh dari rumus selisih pusat (6.22) yang berordeO(h

2

). Dengan demikian galat rumus selisih pusat da-pat diperkecil dengan menggunakan rumus (6.26). Suatu metode untuk mendapatkan rumus untukf

0 (x

0

) yang berorde lebih tinggi dari rumus yang berorde lebih rendah disebutekstrapolasi. Ruas tengah pada (6.26) merupakanrumus ekstrapolasi Richardsonuntuk menghasilkan rumus hampiran turunanf

0 (x

0

)berordeO(h 4

)dari rumus selisih pusat berorde O(h

2 ).

Dengan cara serupa kita dapat menurunkan rumus selisih pusat berorde lebih tinggi dari rumus selisih pusat berorde O(h

4

). Dengan menggunakan notasi sebelumnya dan mendefinisikan

R 1

(kh)= f

2k +8f

k 8f

k +f

2k 12kh

= 4R

0

(kh) R 0

(2kh) 3

; k=1;2;

(6.27)

dapat diturunkan rumus ekstrapolasi berorde O(h 6

) untuk hampiran f

0 (x

0 ):

f 0

(x 0

) 16R

1

(h) R 1

(2h) 15

: (6.28)

Secara umum pembahasan ekstrapolasi di atas dapat dinyatakan dalam teorema di bawah ini.

TEOREMA6.3 (HAMPIRAN TURUNAN–EKSTRAPOLASI RICHARDSON).

JikaR k 1

(h)dan R k 1

(2h) adalah dua hampiran f 0

(x 0

)yang berorde O(h 2k

)

dan memenuhi

f 0

(x 0

) = R k 1

(h)+a 1

h 2k

+a 2

h 2(k+1)

+:::; (6.29) f

0 (x

0

) = R k 1

(2h)+a 1

(2h) 2k

+a 2

(2h) 2(k+1)

+:::; (6.30)

maka hampiran tersebut dapat ditingkatkan ordenya menjadiO(h 2(k+1)

)dengan


(6)

R 3

(0:025) = 64R

2

(0:25) R 2

(0:05) 63

=22:1671683

Kita tahu bahwa turunan fungsif(x)=xe x

adalahf 0

(x)=xe x

+e x

, sehingga f

0

(2) = 2e 2

+e 2

= 3e 2

= 22:1671683. Bandingkah hasil-hasil pendekatan di atas dengan nilai yang sesungguhnya! Anda dapat menilai pendekatan mana yang terbaik untuk kasus ini.

Untuk keperluan perhitungan secara praktis, proses perhitungan hampiran turunan dengan menggunakan ekstrapolasi Richardson dapat dilakukan dengan menggunakan tabel seperti Tabel 6.1.4. Perhitungan pada tabel tersebut dimulai dari baris pertama yang dihitung menggu-nakan rumus selisih pusat. Selanjutnya, setiap sel di bawahnya dihitung dengan menggunakan sel di atasnya dan sel di kanan atasnya dengan pen-gali dan pembagi seperti tercantum pada setiap baris. Hampiran terakhir untukf

0 (x

0

)adalahR (n;1).

Tabel 6.1: Tabel Ekstrapolasi Richardson untuk Hampiran Turunan R (i;j)=

4 i i

R(i 1;j) R(i 1;j+1) 4

i 1

1 Lebar langkah i R (1;j)=

fj f j 2

j h

; j=1;2;3;:::;n h 2h 4h ::: 2 n 1

h

1 Pengali (4 i 1

) Pengali (4 i 1

) R(1,1) R(1,2) R(1,3) ::: R(1,n)

2 4 3 R(2,1) R(2,2) R(2,3) ::: xxx

3 16 15 R(3,1) R(3,2) R(3,3) ::: xxx

4 64 63 R(4,1) R(4,2) R(4,3) ::: xxx

..

. ... ... ... ... ... . .. xxx

n 4

n 1

4 n 1

1 R(n,1) xxx xxx xxx xxx

CONTOH6.5.

Perhitungan pada contoh sebelumnya dapat dilakukan dengan MATLAB sebagai berikut.

>> f=inline(’x.*exp(x)’) f =

Inline function: f(x) = x.*exp(x) >> x0=2;

>> h=0.025 h =

0.02500000000000 >> h=h*2.^[0:3] h =

0.0250000000000 0.0500000000000 0.1000000000000 0.2000000000000


(7)

function R=deriver(f,x0,h,n)

% menghitung turunan dengan ekstrapolasi Richardson % f fungsi yang dihitung f’(x0)

% h = lebar interval awal, n = cacah iterasi h=h*2.^[0:n-1];

R=(f(x0+h)-f(x0-h))./(2*h) % rumus selisih pusat for j=1:n-1, % ekstrapolasi Richardson

R=(4^j*R(1:n-j)-R(2:n-j+1))./(4^j-1) end

Gambar 6.4: Fungsi MATLAB deriver.m implementasi ekstrapolasi Richardson

Misalkan P n

(x)adalah polinomial berderajadn yang menginterpo-lasikanf(x)din+1titik dengan absisx

1 ;x

2, ..., x

n, x

n+1, yakni P

n (x

k )= f(x

k

)untukk =1;2;:::;n+1. Dalam hal iniP n

(x)merupakan hampiran untuk f(x)untukminfx

k

g x maxfx k

g, sehingga kita dapat meng-hampirif

0

(x), untukxpada interval tersebut, dengan f

0

(x)P 0 n

(x): (6.32)

Sebagaimana telah dibahas pada bab Interpolasi, kita dapat meng-gunakan polinomial Lagrange atau polinomial Newton sebagai poli-nomial interpolasi. Dari polipoli-nomial-polipoli-nomial interpolasi dapat ditu-runkan rumus-rumus hampiran turunan. Misalkan kita mulai dengan titik(x

1 ;f(x

1

))dan(x 2

;f(x 2

)). Kita tahu bahwa polinomial yang meng-interpolasikan kedua titik tersebut adalah

P 1

(x)= f(x

2

) f(x 1

) x

2 x

1

(x x 1

)+f(x 1

):

Apabila polinomial tersebut kita turunkan, maka diperoleh

P 0 1

(x)= f(x

2

) f(x 1

) x

2 x

1

: (6.33)

Selanjutnya, apabila pada (6.33) kita gantix 1

= x 0

hdanx 2

= x 0

+h,


(8)

P 0 2 (x 0 ) = 3f(x 0

)+4f(x 0

+h) f(x 0 +2h) 2h f 0 (x 0 ): (6.35) Rumus hampiran turunan (6.35) disebut rumus selisih maju tiga titik. Dengan cara serupa, apabila kita gantix

1 =x 0 ;x 2 =x 0

hdanx 3

=x 0

+ h, maka diperolehrumus selisih pusat, dan apabila kita gantix

1 =x 0 ;x 2 = x 0

hdanx 3

=x 0

2h, maka diperolehrumus selisih mundur tiga titik

P 0 2 (x 0 )= 3f(x 0

) 4f(x 0

h)+f(x 2h) 2h f 0 (x 0 ): (6.36) Demikian seterusnya, kita dapat menggunakan polinomial-polinomial berderajad lebih tinggi (dengan cacah titik semakin bertam-bah) untuk mendapatkan rumus-rumus hampiran turunan fungsi di suatu titik. Polinomial Newton P

N

(x) berorde N yang menginter-polasikan f(x) di N + 1 titik dengan absis x

0 ;x

1 ; x

2 ; ..., x

N adalah

P N

(x)=a 0 + N 1 X j=0 a j+1 j Y k=0 (x x k ): (6.37) TurunanP N (x)adalah P 0 N

(x)=a 1 + N 1 X j=1 a j+1 j X i=0 j Y k=0;k6=i (x x k ): (6.38) Selanjutnya, nilaiP

0 N

(x)dix=x

0adalah P 0 N (x 0

)=a 1 + N 1 X j=1 a j+1 j Y k6=0 (x 0 x k ): (6.39) Apabila x k = x 0

+kh untuk suatu h > 0 dank = 1; 2; 3; :::; maka

f 0

(x 0

)=P 0 N

(x 0

)+O(h N 1

):

Metode ini dapat digabungkan dengan metode selisih terbagi Newton un-tuk menghitung koefisien-koefisien polinomial interpolasi Newton. Catatan:

Rumus (6.39) harus digunakan untuk menghitungf 0

(x 0

) P N

(x 0

): Un-tuk menghitung, misalnya f

0 (x

k ) P

N (x

k

); absis-absis harus disusun ulang menjadi fx

k ;x

0 ;:::;x

k 1 ;x

k+1 ;:::;x

N

g kemudian dibentuk


(9)

ans =

-2.21999067245464 0.00325360302929 -2.22321172408835 0.00003255139559 -2.22324394993922 0.00000032554471

Dari hasil perhitungan di atas, khususnya dengan mengamati kolom kedua matriksans, terlihat bahwa galatnya semakin berkurang dengan faktor

sek-itar 1/100 semakin nilaihmengecil 1/10 kali.

2. Dari persamaan (6.43) kita gunakan rumus hampiran turunan kedua:

f"(x) f

2 +16f

1 30f

0 +16f

1 f

2 12h

2

:

Perhitungan dengan MATLAB menggunakan rumus tersebut adalah seba-gai berikut (kita hanya perlu menghitung nilaid2fyang baru):

>> d2f=(-f(x0+2*h)+16*f(x0+h)-30*f(x0) ... +16*f(x0-h)-f(x0-2*h))./(12*h.^2); >> [d2f d2f-df2(x0)]

ans =

-2.22323807255170 0.00000620293224 -2.22324427486357 0.00000000062036 -2.22324427541961 0.00000000006432

(Tanda tiga titik di akhir baris MATLAB artinya disambung ke baris di bawahnya. Pada MATLAB langsung sambung dengan baris di bawahnya jika masih cukup.)

Terlihat bahwa galat hampiran-hampiran di atas jauh lebih kecil daripada galat-galat pada perhitungan sebelumnya, dan juga penurunan galat terse-but sebesar kira-kira 1/10000 kali dengan penurunan nilaihsebesar 1/10. Nilai turunan yang sebenarnya adalahf"(1)= 2:22324427548393 : Galat dalam perhitungan hampiran nilai turunan suatu fungsi meliputi galat dalam perhitungan nilai fungsi (pembulatan) dan galat pe-motongan deret Taylor. Apabila galat dalam perhitungan fungsi dike-tahui batas atasnya (misalnya dengan menentukan tingkat keakuratan) dan turunan-turunan yang lebih tinggi terbatas, maka kita dapat menen-tukan lebar langkah (h) yang optimal (yakni yang meminimumkan galat). Hal ini mengingat galat pemotongan berkaitan erat dengan orde rumus yang bersangkutan terhadap lebar langkah yang dipakai (h).


(10)

k= 5; 4; 3; 2; 1;0;1;2;3;4 ;5. f"(x 0 ) 2f 0 5f 1 +4f 2 f 3 h 2 ; (6.54) 2f 0 5f 1 +4f 2 f 3 h 2 : (6.55) f (3) (x 0 ) 5f 0 +18f 1 24f 2 +14f 3 3f 4 2h 3 ; (6.56) 5f 0 +18f 1 24f 2 +14f 3 3f 4 2h 3 : (6.57) f (4) (x 0 ) 3f 0 14f 1 +26f 2 24f 3 +11f 4 2f 5 h 4 ; (6.58) 3f 0 14f 1 +26f 2 24f 3 +11f 4 2f 5 h 4 : (6.59) Berikut ditunjukkan bagaimana menurunkan rumus selisih maju (6.54) dengan menggunakan polinomial interpolasi Newton.

Kita mulai dengan polinomial interpolasi Newton kubik yang meng-interpolasikanf(x)di empat titik dengan absisx

0 ;x

1 ;x

2

;danx 3

: Polino-mial ini adalah

P 3

(x)=a 0

+a 1

(x x 0

)+a 2

(x x 0

)(x x 1

)+a 3 (x x 0 )(x x 1 )(x x 2 ); dengan koefisien-koesfisiennya merupakan selisih-selisih terbagi New-ton, yakni a 0 = f 0 ; a 1 = f 1 f 0 h ; a 2 = f 2 f 1 h f 1 f 0 h 2h = f 0 2f 1 +f 2 2h 2 ; a 3 = f 0 +3f 1 3f 2 +f 3 6h 3 :

Turunan keduaP 3

(x)adalah P

3

"(x) = 2a 2

+2a 3

[(x x 0

)+(x x 1

)+(x x 2

)℄: Dix

0nilai turunan tersebut adalah P 3 "(x 0 ) = f 0 2f 1 +f 2 h 2 + f 0 +3f 1 3f 2 +f 3 3h 3

( h 2h)

= 2f 0 5f 1 +4f 2 f 3 h 2 f"(x 0 ):


(11)

LATIHAN 6.2

1. Tulis program MATLAB untuk menghitung hampiran nilai f 00

(x)

dengan menggunakan rumus (6.41) dengan lebar interval2 k

h

un-tukk=0; 1; 2; :::, nilaihditentukan.

2. Misalkanf(x)=lnx. Hitunglah hampiran nilaif 00

(5)dengan

meng-gunakan rumus (6.40) dengan h = 0:01. Ulangi perhitungan

de-ngan menggunakan rumus (6.41). Bandingkan galat kedua ham-piran tersebut.

3. Gunakah rumus (6.40) dengan h = 0:01 untuk menghitung

ham-piranf 00

(1)untuk fungsi-fungsi di bawah ini.

(a)f(x)=x 2

e osx

(b)f(x)=lnx 2

(c)f(x)=x 5

+sinx

4. Gunakah rumus (6.41) dengan h = 0:01 untuk menghitung

ham-piranf 00

(1)untuk fungsi-fungsi di bawah ini.

(a)f(x)=x 2

e osx

(b)f(x)=lnx 2

(c)f(x)=x 5

+sinx

5. Hitung hampiran nilai f 00

(1) untuk fungsi f(x) = sin4x dengan

menggunakan rumus

f 00

(x 1

) 1 h

2 (f

2 2f

1 +f

0 )

denganh =0.05, 0.04, 0.03, 0.02, dan 0.01. Gunakan tingkat

keaku-ratan perhitungan sampai enam angka di belakang koma.

6. Gunakan ekspansi Taylor untukf(x+h), f(x h),f(x+2h), dan f(x 2h)untuk menurunkan rumus selisih pusat

f 000

(x)

(f(x+2h) f(x 2h)) 2(f(x+h) f(x h)) 2h

3

:

7. Gunakan rumus yang diperoleh pada soal no. 6 untuk menghitung hampiran nilai-nilaif

000

(1)untuk fungsi-fungsi di bawah ini dengan

menggunakan panjang interval diberikan. Bandingkan hasil perhi-tungan tersebut dengan nilai eksaknya.

(a)f(x)=sin(x); h =0:1 (d)f(x)=e x

; h=0:01

(b)f(x)=sin(x)lnx; h=0:01 (e)f(x)=e x

os (x); h=0:01

(c)f(x)=x 3

lnx; h=0:01 (f)f(x)=x 2

e x

; h=0:01


(12)

hampiran turunan parsial, misalnya

f x

(x;y)=

f(x+h;y) f(x h;y) 2h

+O(h 2

)

f y

(x;y)=

f(x;y+h) f(x;y h) 2h

+O(h 2

)

(a) Misalkanf(x;y)= xy

x+y. Hitunglah hampiran nilai-nilai f

x (2;3)

dan f y

(2;3) dengan menggunakan rumus-rumus di atas

de-ngan h = 0.1, 0.01, dan 0.001. Bandingkan hasilnya dengan

nilai eksaknya.

(b) Misalkan f(x;y) = tan 1

( y x

). Hitunglah hampiran nilai-nilai f

x

(3;4) dan f y

(3;4) dengan menggunakan rumus-rumus di

atas denganh =0.1, 0.01, dan 0.001. Bandingkan hasilnya

de-ngan nilai eksaknya.

12. Hampiran turunan parsial yang lebih tinggi dapat diperoleh de-ngan mengadaptasi rumus hampiran turunan yang lebih tinggi un-tuk fungsi satu variabel, misalnya

f xx

(x;y)=

f(x+2h;y) 2f(x;y)+f(x 2h;y) 4h

2

f yy

(x;y)=

f(x;y+2h) 2f(x;y)+f(x;y 2h) 4h

2

Gunakan rumus-rumus di atas untuk menghitung hampiran

f xx

(2;3) dan f yy

(2;3) untuk fungsi-fungsi di bawah ini, dengan

menggunakan nilai-nilaihyang diberikan. Bandingkan hasilnya

de-ngan nilai eksaknya. (a)f(x)=

xy x+y

; h=0:1;0:01 (d)f(x)=e (x y)

; h=0:1;0:05

(b)f(x)=sin(xy); h=0:01;0:001 (e)f(x)=os (y x); h=0:05;0:01

(c)f(x)= sin(xy)

x+y

; h=0:01;0:001 (f)f(x)=ln(xy); h=0:1;0:01

6.3

Rangkuman

Berikut adalah rumus-rumus untuk menghitung hampiran turunan suatu fungsi beserta orde kesalahannya dan nilai optimal lebar langkah yang


(13)

R (i;j)= 4

i i

R(i 1;j) R(i 1;j+1) 4

i 1 1

Lebar langkah

i R (1;j) = f j f j 2 j h

;j=1;2;3;:::;n h 2h 4h ::: 2 n 1

h 1 Pengali (4

i 1

) Pembagi (4 i 1

1) R(1,1) R(1,2) R(1,3) ::: R(1,n)

2 4 3 R(2,1) R(2,2) R(2,3) ::: xxx

3 16 15 R(3,1) R(3,2) R(3,3) ::: xxx

4 64 63 R(4,1) R(4,2) R(4,3) ::: xxx

..

. ... ... ... ... ... . .. xxx

n 4

n 1

4 n 1

1 R(n,1) xxx xxx xxx xxx

Hampiran turunan dengan polinomial interpolasi Jika P n

(x) adalah polinomial berderajad n yang menginterpolasikan f(x) di n + 1 titik dengan absis x

1 ;x

2, ..., x

n, x

n+1, yakni P

n (x

k

) = f(x k

)untuk k = 1;2;:::;n + 1, maka P

n

(x) merupakan hampiran f(x) untuk minfx

k

g x maxfx k

g, sehingga kita dapat menghampirif 0

(x), untukxpada interval tersebut, dengan

f 0

(x)P 0 n

(x):

Rumus selisih maju tiga titik untukf 0 (x 0 ) f 0 (x 0 ) 3f 0 +4f 1 f 2 2h :

Rumus selisih mundur tiga titik untukf 0 (x 0 ) f 0 (x 0 ) 3f 0 4f 1 +f 2 2h :

Rumus-rumus selisih pusat untuk turunan tingkat tinggi

f 00 (x 0 ) = f 1 2f 0 +f 1 h 2 +O(h 2 ) f 00 (x 0 ) = f 2 +16f 1 30f 0 +16f 1 f 2 12h 2 +O(h 4 ) f (3) (x 0 ) = f 2 2f 1 +2f 1 f 2 12h 3 +O(h 2 ) f (3) (x 0 ) = f 3 +8f 2 13f 1 +13f 1 8f 2 +f 3 8h 3 +O(h 4 )


(14)

f (4)

(x 0

) = f

2 4f

1 +6f

0 4f

1 +f

2 h

4

+O(h 2

)

f (4)

(x 0

) = f

3 +12f

2 39f

1 +56f

0 39f

1 +12f

2 f

3 6h

4

+O(h 4

)

Rumus-rumus selisih maju/mundur untuk turunan tingkat tinggi

f"(x 0

) 2f

0 5f

1 +4f

2 f

3 h

2

;

2f

0 5f

1 +4f

2 f

3 h

2

:

f (3)

(x 0

) 5f

0 +18f

1 24f

2 +14f

3 3f

4 2h

3

;

5f

0 +18f

1 24f

2 +14f

3 3f

4 2h

3

:

f (4)

(x 0

) 3f

0 14f

1 +26f

2 24f

3 +11f

4 2f

5 h

4

;

3f

0 14f

1 +26f

2 24f

3 +11f

4 2f

5 h

4

:


(1)

6.2 Turunan Tingkat Dua dan yang Lebih Tinggi 389 ans =

-2.21999067245464 0.00325360302929 -2.22321172408835 0.00003255139559 -2.22324394993922 0.00000032554471

Dari hasil perhitungan di atas, khususnya dengan mengamati kolom kedua matriksans, terlihat bahwa galatnya semakin berkurang dengan faktor

sek-itar 1/100 semakin nilaihmengecil 1/10 kali.

2. Dari persamaan (6.43) kita gunakan rumus hampiran turunan kedua:

f"(x) f

2 +16f

1 30f

0 +16f

1 f

2

12h 2

:

Perhitungan dengan MATLAB menggunakan rumus tersebut adalah seba-gai berikut (kita hanya perlu menghitung nilaid2fyang baru):

>> d2f=(-f(x0+2*h)+16*f(x0+h)-30*f(x0) ... +16*f(x0-h)-f(x0-2*h))./(12*h.^2); >> [d2f d2f-df2(x0)]

ans =

-2.22323807255170 0.00000620293224 -2.22324427486357 0.00000000062036 -2.22324427541961 0.00000000006432

(Tanda tiga titik di akhir baris MATLAB artinya disambung ke baris di bawahnya. Pada MATLAB langsung sambung dengan baris di bawahnya jika masih cukup.)

Terlihat bahwa galat hampiran-hampiran di atas jauh lebih kecil daripada galat-galat pada perhitungan sebelumnya, dan juga penurunan galat terse-but sebesar kira-kira 1/10000 kali dengan penurunan nilaihsebesar 1/10.

Nilai turunan yang sebenarnya adalahf"(1)= 2:22324427548393 :

Galat dalam perhitungan hampiran nilai turunan suatu fungsi meliputi galat dalam perhitungan nilai fungsi (pembulatan) dan galat pe-motongan deret Taylor. Apabila galat dalam perhitungan fungsi dike-tahui batas atasnya (misalnya dengan menentukan tingkat keakuratan) dan turunan-turunan yang lebih tinggi terbatas, maka kita dapat menen-tukan lebar langkah (h) yang optimal (yakni yang meminimumkan galat).

Hal ini mengingat galat pemotongan berkaitan erat dengan orde rumus yang bersangkutan terhadap lebar langkah yang dipakai (h).


(2)

6.2 Turunan Tingkat Dua dan yang Lebih Tinggi 391

k= 5; 4; 3; 2; 1;0;1;2;3;4 ;5.

f"(x 0 ) 2f 0 5f 1 +4f 2 f 3 h 2 ; (6.54) 2f 0 5f 1 +4f 2 f 3 h 2 : (6.55) f (3) (x 0 ) 5f 0 +18f 1 24f 2 +14f 3 3f 4 2h 3 ; (6.56) 5f 0 +18f 1 24f 2 +14f 3 3f 4 2h 3 : (6.57) f (4) (x 0 ) 3f 0 14f 1 +26f 2 24f 3 +11f 4 2f 5 h 4 ; (6.58) 3f 0 14f 1 +26f 2 24f 3 +11f 4 2f 5 h 4 : (6.59)

Berikut ditunjukkan bagaimana menurunkan rumus selisih maju (6.54) dengan menggunakan polinomial interpolasi Newton.

Kita mulai dengan polinomial interpolasi Newton kubik yang meng-interpolasikanf(x)di empat titik dengan absisx

0 ;x

1 ;x

2

;danx 3

:

Polino-mial ini adalah

P

3

(x)=a

0 +a

1 (x x

0 )+a

2 (x x

0

)(x x

1 )+a

3 (x x 0 )(x x 1 )(x x 2 );

dengan koefisien-koesfisiennya merupakan selisih-selisih terbagi New-ton, yakni a 0 = f 0 ; a 1 = f 1 f 0 h ; a 2 = f 2 f 1 h f 1 f 0 h 2h = f 0 2f 1 +f 2 2h 2 ; a 3 = f 0 +3f 1 3f 2 +f 3 6h 3 :

Turunan keduaP 3

(x)adalah P

3

"(x) = 2a

2 +2a

3 [(x x

0

)+(x x

1

)+(x x

2 )℄:

Dix

0nilai turunan tersebut adalah P 3 "(x 0 ) = f 0 2f 1 +f 2 h 2 + f 0 +3f 1 3f 2 +f 3 3h 3

( h 2h)

= 2f 0 5f 1 +4f 2 f 3 h 2 f"(x 0 ):


(3)

6.2 Turunan Tingkat Dua dan yang Lebih Tinggi 393

LATIHAN 6.2

1. Tulis program MATLAB untuk menghitung hampiran nilai f 00

(x) dengan menggunakan rumus (6.41) dengan lebar interval2

k h un-tukk=0; 1; 2; :::, nilaihditentukan.

2. Misalkanf(x)=lnx. Hitunglah hampiran nilaif 00

(5)dengan meng-gunakan rumus (6.40) dengan h = 0:01. Ulangi perhitungan de-ngan menggunakan rumus (6.41). Bandingkan galat kedua ham-piran tersebut.

3. Gunakah rumus (6.40) dengan h = 0:01 untuk menghitung ham-piranf

00

(1)untuk fungsi-fungsi di bawah ini. (a)f(x)=x

2 e

osx

(b)f(x)=lnx 2

(c)f(x)=x 5

+sinx 4. Gunakah rumus (6.41) dengan h = 0:01 untuk menghitung

ham-piranf 00

(1)untuk fungsi-fungsi di bawah ini. (a)f(x)=x

2 e

osx

(b)f(x)=lnx 2

(c)f(x)=x 5

+sinx 5. Hitung hampiran nilai f

00

(1) untuk fungsi f(x) = sin4x dengan menggunakan rumus

f 00

(x 1

) 1 h

2 (f

2 2f

1 +f

0 )

denganh =0.05, 0.04, 0.03, 0.02, dan 0.01. Gunakan tingkat keaku-ratan perhitungan sampai enam angka di belakang koma.

6. Gunakan ekspansi Taylor untukf(x+h), f(x h),f(x+2h), dan f(x 2h)untuk menurunkan rumus selisih pusat

f 000

(x)

(f(x+2h) f(x 2h)) 2(f(x+h) f(x h)) 2h

3

:

7. Gunakan rumus yang diperoleh pada soal no. 6 untuk menghitung hampiran nilai-nilaif

000

(1)untuk fungsi-fungsi di bawah ini dengan menggunakan panjang interval diberikan. Bandingkan hasil perhi-tungan tersebut dengan nilai eksaknya.

(a)f(x)=sin(x); h =0:1 (d)f(x)=e x

; h=0:01 (b)f(x)=sin(x)lnx; h=0:01 (e)f(x)=e

x

os (x); h=0:01 (c)f(x)=x

3

lnx; h=0:01 (f)f(x)=x 2

e x


(4)

6.3 Rangkuman 395 hampiran turunan parsial, misalnya

f x

(x;y)=

f(x+h;y) f(x h;y) 2h

+O(h 2

)

f y

(x;y)=

f(x;y+h) f(x;y h) 2h

+O(h 2

)

(a) Misalkanf(x;y)= xy

x+y. Hitunglah hampiran nilai-nilai f

x (2;3) dan f

y

(2;3) dengan menggunakan rumus-rumus di atas de-ngan h = 0.1, 0.01, dan 0.001. Bandingkan hasilnya dengan nilai eksaknya.

(b) Misalkan f(x;y) = tan 1

( y x

). Hitunglah hampiran nilai-nilai f

x

(3;4) dan f y

(3;4) dengan menggunakan rumus-rumus di atas denganh =0.1, 0.01, dan 0.001. Bandingkan hasilnya de-ngan nilai eksaknya.

12. Hampiran turunan parsial yang lebih tinggi dapat diperoleh de-ngan mengadaptasi rumus hampiran turunan yang lebih tinggi un-tuk fungsi satu variabel, misalnya

f xx

(x;y)=

f(x+2h;y) 2f(x;y)+f(x 2h;y) 4h

2

f yy

(x;y)=

f(x;y+2h) 2f(x;y)+f(x;y 2h) 4h

2

Gunakan rumus-rumus di atas untuk menghitung hampiran f

xx

(2;3) dan f yy

(2;3) untuk fungsi-fungsi di bawah ini, dengan menggunakan nilai-nilaihyang diberikan. Bandingkan hasilnya de-ngan nilai eksaknya.

(a)f(x)= xy x+y

; h=0:1;0:01 (d)f(x)=e (x y)

; h=0:1;0:05 (b)f(x)=sin(xy); h=0:01;0:001 (e)f(x)=os (y x); h=0:05;0:01 (c)f(x)=

sin(xy) x+y

; h=0:01;0:001 (f)f(x)=ln(xy); h=0:1;0:01

6.3

Rangkuman

Berikut adalah rumus-rumus untuk menghitung hampiran turunan suatu fungsi beserta orde kesalahannya dan nilai optimal lebar langkah yang


(5)

6.3 Rangkuman 397

R (i;j)= 4

i i

R(i 1;j) R(i 1;j+1) 4

i 1 1

Lebar langkah

i R (1;j) = f

j f

j 2

j h

;j=1;2;3;:::;n h 2h 4h ::: 2 n 1

h 1 Pengali (4

i 1

) Pembagi (4 i 1

1) R(1,1) R(1,2) R(1,3) ::: R(1,n) 2 4 3 R(2,1) R(2,2) R(2,3) ::: xxx 3 16 15 R(3,1) R(3,2) R(3,3) ::: xxx 4 64 63 R(4,1) R(4,2) R(4,3) ::: xxx

..

. ... ... ... ... ... . .. xxx

n 4

n 1

4 n 1

1 R(n,1) xxx xxx xxx xxx

Hampiran turunan dengan polinomial interpolasi Jika P n

(x) adalah polinomial berderajad n yang menginterpolasikan f(x) di n + 1 titik dengan absis x

1 ;x

2, ..., x

n, x

n+1, yakni P

n (x

k

) = f(x k

)untuk k = 1;2;:::;n + 1, maka P

n

(x) merupakan hampiran f(x) untuk minfx

k

g x maxfx k

g, sehingga kita dapat menghampirif 0

(x), untukxpada interval tersebut, dengan

f 0

(x)P 0 n

(x):

Rumus selisih maju tiga titik untukf 0

(x 0

)

f 0

(x 0

) 3f

0 +4f

1 f

2 2h

:

Rumus selisih mundur tiga titik untukf 0

(x 0

)

f 0

(x 0

) 3f

0 4f

1 +f

2 2h

:

Rumus-rumus selisih pusat untuk turunan tingkat tinggi

f 00

(x 0

) = f

1 2f

0 +f

1 h

2

+O(h 2

)

f 00

(x 0

) = f

2 +16f

1 30f

0 +16f

1 f

2 12h

2

+O(h 4

)

f (3)

(x 0

) = f

2 2f

1 +2f

1 f

2 12h

3

+O(h 2

)

f (3)

(x 0

) = f

3 +8f

2 13f

1 +13f

1 8f

2 +f

3 3

+O(h 4


(6)

398 Bab 6. Penurunan Fungsi Secara Numerik

f (4)

(x 0

) = f

2 4f

1 +6f

0 4f

1 +f

2 h

4

+O(h 2

)

f (4)

(x 0

) = f

3 +12f

2 39f

1 +56f

0 39f

1 +12f

2 f

3 6h

4

+O(h 4

)

Rumus-rumus selisih maju/mundur untuk turunan tingkat tinggi

f"(x 0

) 2f

0 5f

1 +4f

2 f

3 h

2

;

2f

0 5f

1 +4f

2 f

3 h

2

:

f (3)

(x 0

) 5f

0 +18f

1 24f

2 +14f

3 3f

4 2h

3

;

5f

0 +18f

1 24f

2 +14f

3 3f

4 2h

3

:

f (4)

(x 0

) 3f

0 14f

1 +26f

2 24f

3 +11f

4 2f

5 h

4

;

3f

0 14f

1 +26f

2 24f

3 +11f

4 2f

5 h

4

: