Turunan Numerik
Nama Kelompok :
Bobby Chandra A
1
Definisi Turunan (derivatif)
f '(x) =
lim f ( x+h ) − fx)
h → 0 h
• Bila persamaan fungsi f(x) diberikan secara eksplisit, maka kita
dapat menentukan fungsi turunannya, f '(x), f "(x), ..., f (n+1)(x), lalu
menggunakannya untuk menghitung nilai turunan fungsi di x = t.
• Tetapi jika fungsi f(x) tidak diketahui secara eksplisit, tetapi kita
hanya memiliki beberapa titik data saja. Pada kasus seperti ini kita
tidak dapat menemukan nilai turunan fungsi secara analitik.
• Sebaliknya, pada kasus lain, meskipun f(x) diketahui secara eksplisit
tetapi bentuknya rumit sehingga menentukan fungsi turunannya
merupakan pekerjaan yang tidak mangkus
2
Persoalan Turunan Numerik
• Persoalan turunan numerik ialah menentukan
hampiran nilai turunan fungsi f yang diberikan dalam
bentuk tabel.
• Tiga pendekatan dalam menghitung turunan
numerik:
1. Hampiran selisih maju
2. Hampiran selisih mundur
3. Hampiran selisih pusat
3
1. Hampiran Selisih Maju (forward difference
approximation)
f ( x +h ) −f ( x ) f f
f '(x0) =
y
y1
y0
0 0
h
y = f(x)
h
1 − 0
=
h
x-1 x0 x1 x
4
2. Hampiran selisih-mundur (backward difference
approximation)
f
f '(x0) =
y
y0
y-1
( x0 ) − f ( x − h0
h
h
) f f0 − 1
=
h
y = f(x)
x-1 x0 x1 x
5
3. Hampiran selisih-pusat (central difference
approximation)
f
f '(x0) =
y
y0
y-1
( x0 +h ) − f ( x
2h
0 −h ) f − f1 −1
=
2 h
y = f(x)
2h
x-1 x0 x-1
6
• Rumus-rumus turunan numerik untuk ketiga
pendekatan tersebut dapat diturunkan dengan dua
cara, yaitu:
1. Dengan bantuan deret Taylor
2. Dengan hampiran polinom interpolasi
• Kedua cara tersebut menghasilkan rumus yang sama.
7
Penurunan Rumus dengan Deret Taylor
(a) Hampiran selisih-maju
Uraikan f(xi+1) di sekitar xi :
x
f(xi+1) = f(xi) + ( i+1
− x )i
f '(xi) +
2
( x − x )i+1 i
f "(xi) + ...
1! 2!
fi+1 = fi + hfi' + h2/2 fi " + .. .
hfi ' = fi+1 - fi - h2/2 fi " + ...
f − f
fi ' =
f
fi ' =
i+1
i+1
i
- h/2 fi "
h
− f i
+ O(h)
h
yang dalam hal ini, O(h) = h/2 f "(t), xi < t < xi+1
8
Untuk nilai-nilai f di x0 dan x1 persamaan rumusnya menjadi:
f − f
f0
1 0
' = + O(h)
h
yang dalam hal ini O(h) = h/2 f "(t), xi < t < xi+1 .
9
(b) Hampiran selisih-mundur
Uraikan f(xi-1) di sekitar xi :
x
f(xi-1) = f(xi) + ( i+1 − x ) xi
f '(xi) + (
2
− x )i+1 i
f "(xi) + ...
1! 2!
fi-1 = fi - hfi ' + h2/2 fi " + ...
hfi ' = fi - fi-1 + h2/2 fi " + ...
f − f
fi ' =
f
fi ' =
i
i
i −1
- h/2 fi " + ...
h
− f i −1
+ O(h),
h
yang dalam hal ini, O(h) = - h/2 f "(t), xi-1 < t < xi
10
Untuk nilai-nilai f di x0 dan x-1 persamaan rumusnya menjadi:
f0
f
' = 0 − f −1
+O(h)
h
yang dalam hal ini, O(h) = - h/2 f "(t), xi+1 < t < xi.
11
(a) Hampiran selisih-pusat
Kurangkan persamaan (P.7.4) dengan persamaan (P.7.6):
fi+1 - fi-1 = 2hfi' + h3/3 fi "' + ...
2hfi ' = fi+1 - fi-1
f − f
- h3/3 fi "' + ...
fi ' =
f
fi ' =
i+1
i+1
i −1
- h2/6 fi "' + ...
2h
− f i −1
+ O(h2),
2h
yang dalam hal ini, O(h2) = - h2/6 f "'(t), xi-1 < t < xi+1
Untuk nilai-nilai f di x-1 dan x1 persamaan rumusnya menjadi:
f1 − f −1 2
fo '= + O(h )
2h
yang dalam hal ini, O(h2) = - h/6 f "'(t), xi-1 < t < xi+1.
12
Rumus untuk Turunan Kedua, f ’’(x), dengan
Bantuan Deret Taylor
(a) Hampiran selisih-pusat
Tambahkan persamaan (P.7.4) dengan persamaan (P.7.6) di atas :
fi+1 + fi-1 = 2 fi + h2 fi " + h4/12 fi (4) + ...
fi+1 - 2fi + fi-1 = h2 fi " + h4/12 fi (4)
f − 2f + f
Jadi,
f i+1
fi" =
i+1
fi" =
− 2 f i + f i −1
2
h
i i −1
- h2/12 fi (4)
2
h
+ O(h2),
yang dalam hal ini, O(h2) = - h2/12 f (4)(t), xi-1 < t < xi+1
13
Untuk nilai-nilai f di x-1 , x0, dan x1 persamaan rumusnya menjadi:
1
f0" = f
− 2 f + f0 1
+ O(h2)2
h
yang dalam hal ini O(h2) = - h2/12 f (4)(t), xi-1 < t < xi+1.
14
(b) Hampiran selisih-mundur
Dengan cara yang sama seperti (a) di atas, diperoleh :
f
fi" =
i −2 − 2 f + fi −1 i
+ O(h),2
h
yang dalam hal ini O(h) = h f "(t), xi-2 < t < xi
Untuk nilai-nilai f di x-2 , x-1, dan x0 persamaan rumusnya :
f0
f
"= −2 − 2 f + f−1 0
+ O(h),2
h
yang dalam hal ini, O(h) = h f "(t) , xi-2 < t < xi
15
(c) Hampiran selisih-maju
Dengan cara yang sama seperti di atas, diperoleh :
i+2
fi" = f
− 2 f i+1 + f i
+ O(h),2
h
yang dalam hal ini, O(h) = - h f "(t), xi < t < xi+2
Untuk nilai-nilai f di x0 , x1, dan x2 persamaan rumusnya :
f0
f
"= 2
− 2 f + f1 0
+ O(h),2
h
yang dalam hal ini, O(h) = - h f "(t), x1 < t < xi+2.
16
Penurunan Rumus Turunan Numerik
dengan Polinom Interpolasi
• Polinom Newton-Gregory:
s Δf
f (x) ≈ pn(x) = f0 +
1 !
0
+ s(s-1)
Δ2 f0
2!
n
Δ f
Δ3 f0
+ s(s-1)(s-2) +
3!
0
s(s-1)(s-2)...(s- n+1)
n!
= F(s)
yang dalam hal ini, s = (x-x0)/h.
17
s Δf
f (x) ≈ pn(x) = f0 +
1 !
0
+ s(s-1)
Δ2 f0
2!
n
Δ f
Δ3 f0
+ s(s-1)(s-2) +
3!
0
s(s-1)(s-2)...(s- n+1)
n!
= F(s)
yang dalam hal ini, s = (x-x0)/h.
18
(a) Hampiran selisih-maju
- bila digunakan titik-titik x0 dan x1 :
f1 − f0
f '(x0) = 1/h ( Δf0) =
h
- bila digunakan titik-titik x0, x1, dan x2 :
f '(x0) = 1/h ( Δf0 + (s- 1/2) Δ2 f 0 )
untuk titik x0 → s = (x0 - x0)/h = 0, sehingga
f '(x0) = 1/h ( Δf0 - 1/2 Δ2f 0 )
= 1/h ( Δf0 - 1/2( Δf1 - Δf0) )
= 1/h (3/2 Δf0 - 1/2 Δf1)
= 1/h (3/2 f1 - 3/2 f0 - 1/2 f2+ 1/2 f1 )
= 1/h (-3/2 f0 + 2 f1 - 1/2 f2 )
−3f 0 +4f 1 − f 2
f '(x0 ) =
2h
19
(b) Hampiran selisih-mundur
- polinom interpolasi: Newton-Gregory mundur
- bila digunakan titik-titik x0 dan x-1 :
f − f0 −1
f '(x0) = 1/h ( ∇f0) =
h
20
(c) Hampiran selisih-pusat
- digunakan tiga titik x0 , x1 , dan x2 :
f '(x0) = 1/h ( Δf0 + (s - 1/2) Δ2f 0 )
untuk titik x1 → s = (x1 - x0)/h = h/h = 1, sehingga
f '(x1) = 1/h ( Δf0 + 1/2 Δ2f 0 )
= 1/h ( Δf0 + 1/2( Δf1 - Δf0) )
= 1/h (1/2 Δf0 + 1/2 Δf1)
= 1/2h ( f1 - f0 + f2 - f1 )
f2 − f0
=
2h
untuk titik x-1 , x0 , dan x1 :
f '(x0)
f 1 − f −1
=
2h
21
Rumus untuk Turunan Kedua, f "(x),
dengan Polinom Interpolasi
Turunan kedua f adalah
2
d f
2
dx
=
d df  ds
 
ds dx  dx
= 1/h (0 + Δ2f 0 + (s - 1) Δ3f 0 ) . 1/h
= 1/h2 ( Δ2 f0 + ( s - 1) Δ3f0 )
22
Misalkan untuk hampiran selisih-pusat, titik-titik yang digunakan x0 , x1 , dan x2 :
- pada titik x1 → s = (x1 - x0)/h = h/h = 1, sehingga
f "(x1) = 1/h2 ( Δ2f 0 + (1 - 1) Δ3f 0 )
= 1/h2 ( Δ2f 0 )
= 1/h2 ( Δf1 - Δf0)
2
= 1/h ( f2 - f1 + f1 + f0 )
= 1/h2 ( f0 - 2f1 + f2 )
- untuk titik x-1 , x0 , dan x1 :
f − 2 f + f
f " (x0
−1 0
) = 2
h
1
23
Ringkasan Rumus-Rumus Turunan
1. Rumus untuk turunan pertama
f0' =
f0' =
f0' =
f0' =
f 1 − f 0
+ O(h)
h
f − f0 −1
+ O(h)
h
f 1 − f −1
+ O(h2)
2h
−3 f 0 +4 f 1 − f 2
2h
− f 2 +8 f 1 −8 f −1
(selisih-maju)
(selisih-mundur)
(selisih-pusat)
+ O(h2) (selisih-maju)
+ f − 2
f0' = + O(h4)
12h
(selisih-pusat)
24
2. Rumus untuk turunan kedua
f
f0" =
f
1 − 2f + f0 −1
+ O(h2)2
h
− 2f + f
(selisih-pusat)
−2
f0" =
h
f −2f
−1 0
+ O(h)2
+ f
(selisih-mundur)
2 1
f0" = 2
h
− f +4
0
+ O(h)
f −5 f +2 f
(selisih-maju)
3
f0" =
− f
2 1
12h
+16 f −30 f
0
+ O(h2)
+16 f − f
(selisih-maju)
2 1 0 −1 −2
f0" = + O(h4)2
12h
(selisih-pusat)
25
3. Rumus untuk turunan ketiga
f
f0"' =
f
3 − 3f + 3f −2 1
3
h
− 2 f + 2 f −
f0
+ O(h) (selisih-maju)
f2 1 −1 −2
f0"' = 3
2h
4. Rumus untuk turunan keempat
f − 4 f + 6 f − 4 f
+ O(h2) (selisih-pusat)
+ f4
f0(iv) =
f − 4
3 2
4
h
f + 6 f − 4 f
1 0
+ O(h)
+ f
(selisih-maju)
2 1
f0(iv) = 0 −1 −2
+ O(h2)4
h
(selisih-pusat)
26
Contoh
Diberikan data dalam bentuk tabel sebagai berikut :
x f(x)
1.3 3.669
1.5 4.482
1.7 5.474
1.9 6.686
2.1 8.166
2.3 9.974
2.5 12.182
(a) Hitunglah f '(1.7) dengan rumus hampiran selisih-pusat orde O(h2) dan O(h4)
(b) Hitunglah f '(1.4)dengan rumus hampiran selisih-pusat orde O(h2)
(c) Rumus apa yang digunakan untuk menghitung f '(1.3) dan f '(2.5) ?
27
Penyelesaian:
(a) Orde O(h2):
f − f1 −1f0' =
2h
Ambil titik-titik x-1 = 1.5 dan x1 = 1.9, yang dalam hal ini x0 = 1.7 terletak di tengah
keduanya dengan h = 0.2.
f '(1.7) =
Orde O(h4):
− f
6.686 − 4.482
= 5.510
2 (0.2)
+8 f −8 f + f
(empat angka bena)
2 1
f0' =
12h
−1 2
28
Ambil titik-titik x-2 = 1.3 dan x-1 = 1.5 , x1 = 1.9, dan x2 = 2.1, yang dalam hal ini x0 =
1.7 terletak di pertengahannya.
f '(1.7)
(b) Orde O(h2):
−8.166 + 8 ( 6.686 ) −8 ( 4.482 ) + 3.669
=
12 (0.2)
= 5.473 (4 angka bena)
Ambil titik-titik x-1 = 1.3 dan x1 = 1.5, yang dalam hal ini x0 = 1.4 terletak di
tengahnya dan h = 0.1.
f '(1.4) =
4.482 − 3.669
= 4.065
2 (0.1)
(4 angka bena)
29
(c) Untuk menghitung f '(1.3) digunakan rumus hampiran selisih-maju, sebab x = 1.3
hanya mempunyai titik-titik sesudahnya (maju), tetapi tidak memiliki titik-titik sebelumnya.
Sebaliknya, untuk menghitung nilai f '(2.5) digunakan rumus hampiran selisih-mundur,
sebab x = 2.5 hanya mempunyai titik-titik sebelumnya (mundur).
Hampiran selisih-maju :
f f
f0' =
f '(1.3) =
1 − 0
+ O(h)
h
4.482 − 3.669
= 4.065
Hampiran selisih-mundur :
f
f0' = 0 − f −1
+ O(h)
h
f '(2.5) = 12.182 −9.974 = 11.04
30
Terapan Turunan Numerik dalam Bidang
Pengolahan Citra
• Citra digital dapat disajikan oleh matriks f yang berukuran M
N dengan bentuk


f
f
11 f f 12 1N

f f
f =  21
 M

fM 1
22 2n
M M M
f fM 2 MN




• Tiap elemen matriks adalah bilangan bulat dalam rentang
[0..255] untuk citra 8 bit.
31
• Salah satu proses yang terdapat dalam pengolahan
citra ialah pendeteksian tepi.
• Tepi merupakan feature yang penting pada suatu citra.
• Tepi didefinisikan sebagai perubahan intensitas yang
besar dalam jarak yang singkat.
• Perbedaan intensitas inilah yang menampakkan rincian
pada gambar. Tepi memberikan informasi batas-batas
objek dengan lingkungannya atau dengan objek yang
lain, feature untuk mengidentifikasi objek, dan untuk
terapan penapisan citra.
32
33
34
• Salah satu pendekatamyang dipakai dalam
pendeteksian sisi adalah dengan kemiringan
diferensial (differential gradient).
• Secara matematis perubahan intensitas yang
besar dalam jarak yang sangat singkat dapat
dipandang sebagai suatu fungsi yang memiliki
kemiringan yang besar.
• Pengukuran kemiringan suatu fungsi dilakukan
dengan menghitung turunan pertamanya.
35
• Dalam citra digital, pendeteksian tepi dapat dilakukan dengan
cara yang mirip, yaitu dengan turunan pertamanya secara
parsial dalam ruang diskrit:
∇ f(x, y) =
∂f / ∂x 
 
f 
= x 
∂f / ∂y  fy 
• yang dalam hal ini kedua turunan parsial didefinisikan sebagai
D1(x) =
D1( y) =
∂f ( x, y )
∂x
∂f ( x, y )
∂y
f ( x+Δx, y ) − f ( x, y )
≈
Δx
f ( x, y+Δy ) − f ( x, y )
≈
Δy
36
Biasanya Δx = Δy = 1, sehingga persamaan turunan pertama menjadi:
D1
D1
∂f (x,
(x) =
∂x
∂f (x,
(y) =
∂y
y)
= f (x +1,y) − f (x, y)
y)
= f (x, y+1) − f (x, y)
37
• Kekuatan tepi pada setiap pixel citra dihitung dengan
rumus:
G[f(x,y)] = | fx2 | + | fy2 |
• atau dengan rumus
G[f(x,y)] = max ( fx2 | , | fy2 |)
• Suatu pixel dianggap sebagai pixel sisi jika kekuatan
tepinya di atas nilai ambang (threshold) tertentu.
38
• D1(x) dan D1( y) merupakan hampiran selisih-maju.
Hampiran lain yang dipakai adalah hampiran selisih-
pusat, yaitu:
D2(x) =
D2(y) =
∂f ( x, y )
≈
∂x
∂f ( x, y )
≈
∂y
f ( x+Δx, y ) − f(x − Δx , y
2 Δ x
f ( x, y+Δy ) − f(x, y − Δy )
2 Δ y
)
39
• Operator lain yang digunakan untuk mendeteksi sisi
adalah yang berdasarkan pada operasi turunan
kedua, yang dikenal dengan operator Laplace
(Laplacian).
• Operator Laplace mendeteksi lokasi tepi lebih akurat
khususnya pada tepi yang curam.
40
f(x)
∂f / ∂x
∂2f / ∂x2
•
(a) Tepi landai (b) Tepi curam
41
• Jika digunakan hampiran selisih-maju, maka operator Laplace
diturunkan sebagai berikut:
∇2f =
2 2
∂ f ∂ f
+2 2
∂x ∂y
= D1(D1(x)) + D1( D1( y))
1 1
= D1 ( f(x + Δx, y) - D1( f(x,y)) +
Δx
D1( f(x, y))
1 f ( x x+Δx, y ) − f ( x + Δx ,y
D1( f(x, y + Δy) -
Δy
) f ( x+ Δx, y ) − f ( x, y ) 
=
Δx
1

 Δx
f ( x, y +Δy+Δy
−
) − f ( x, y + Δy ) f
+
Δx 
( x, y+ Δy ) − f ( x, y ) 
=
Δy
f ( x

 Δy
+ 2 Δ x, y ) − 2 f ( x+Δx,
( Δx )2
− 
Δy 
y ) + f ( x, y )
+
f (x, y + 2 Δy)− 2 f (x, y+Δy )+ f (x, y)
(Δy)2
42
(a) (b)
(a) citra botol; (b) hasil pendeteksian tepi dengan operator Laplace
43
CONTOH PROGRAM
#include // pembacaan cout dan cin.
#include // tampilan standar input output.
#include // di gunakan untuk membuat teks antarmuka pengguna.
#include // prototype fungsi untuk pustaka matematika.
main() // program utama
{ // pembuka program .
int i=1, k; // pendeklarasian variabel dengan menggunakan tipe data integer.
float x0, x1, xr, fx0, fx1, E, e=0.00001; // pendeklarasian variabel dengan
menggunakan tipe data float.
clrscr(); // untuk menghapus data yang tidak perlu.
gotoxy(18,6);cout<<" METODE SECANT f(x)=2x^2-
5x+1"<gotoxy(18,7);cout<<"---------------------------------------"; // tampilan output
tabel.
gotoxy(14,9);cout<< "Masukkan Nilai Awal : ";cin>>x0; // input nilai awal
gotoxy(14,10);cout<<"Masukkan Nilai Akhir : ";cin>>x1; // input nilai akhir
gotoxy(7,12);cout<<"+------------------------------------------------+"<
LANJUTAN PROGRAM
gotoxy(8,13);cout<<"iterasi"; // pembacaan nilai iterasi.
gotoxy(18,13);cout<<"x0"; // pembacaan nilai x0 (masukan nilai awal).
gotoxy(24,13);cout<<"x1"; // pembacaan nilai x1 (masukan nilai akhir).
gotoxy(30,13);cout<<"xr"; // pembacaan nilai xr.
gotoxy(34,13);cout<<"f(x0)"; // pembacaan nilai f(x0) turunan nilai dari x0.
gotoxy(43,13);cout<<"f(x1)"; // pembacaan nilai f(x1) turunan nilai dari x1.
gotoxy(50,13);cout<<"E"; // pembacaan nilai error.
gotoxy(7,14);cout<<"+------------------------------------------------+"<k=15; //
do // menggunakan perulangan.
{ // pembuka program
fx0 = (2*(x0*x0))-(5*x0)+1; // rumus untuk pemanggilan nilai f(x0).
fx1 = (2*(x1*x1))-(5*x1)+1; // rumus untuk pemanggilan nilai f(x1).
xr = x1-(fx1*((x1-x0)/(fx1-fx0))); // rumus untuk pemanggilan nilai xr.
E = fabs((xr-x1)/xr); // rumus untuk pemanggilan nilai E.
LANJUTAN PROGRAM
gotoxy(10,k);cout<gotoxy(16,k);printf("%.3f",x0); // pemanggilan tampilan output hasil
hitungan x0.
gotoxy(22,k);printf("%.3f",x1); // pemanggilan tampilan output hasil hitungan x1.
gotoxy(28,k);printf("%.3f",xr); // pemanggilan tampilan output hasil hitungan xr.
gotoxy(34,k);printf("%.3f",fx0); // pemanggilan tampilan output hasil hitungan f(x0).
gotoxy(42,k);printf("%.3f",fx1); // pemanggilan tampilan output hasil hitungan f(x1).
gotoxy(50,k);printf("%.3f",E); // // pemanggilan tampilan output hasil hitungan E.
x0=x1; // pembacaan nilai x0 = x1.
x1=xr; // pembacaan nilai x1 = xr.
k++; //
i++; // pembacaan urutan nomor iterasi.
} // penutup program.
while(E>e); //
gotoxy(7,k);cout<<"+------------------------------------------------+"<getch();
return 0;
}
OUT PUT

Turunan numerik

  • 1.
    Turunan Numerik Nama Kelompok: Bobby Chandra A 1
  • 2.
    Definisi Turunan (derivatif) f'(x) = lim f ( x+h ) − fx) h → 0 h • Bila persamaan fungsi f(x) diberikan secara eksplisit, maka kita dapat menentukan fungsi turunannya, f '(x), f "(x), ..., f (n+1)(x), lalu menggunakannya untuk menghitung nilai turunan fungsi di x = t. • Tetapi jika fungsi f(x) tidak diketahui secara eksplisit, tetapi kita hanya memiliki beberapa titik data saja. Pada kasus seperti ini kita tidak dapat menemukan nilai turunan fungsi secara analitik. • Sebaliknya, pada kasus lain, meskipun f(x) diketahui secara eksplisit tetapi bentuknya rumit sehingga menentukan fungsi turunannya merupakan pekerjaan yang tidak mangkus 2
  • 3.
    Persoalan Turunan Numerik •Persoalan turunan numerik ialah menentukan hampiran nilai turunan fungsi f yang diberikan dalam bentuk tabel. • Tiga pendekatan dalam menghitung turunan numerik: 1. Hampiran selisih maju 2. Hampiran selisih mundur 3. Hampiran selisih pusat 3
  • 4.
    1. Hampiran SelisihMaju (forward difference approximation) f ( x +h ) −f ( x ) f f f '(x0) = y y1 y0 0 0 h y = f(x) h 1 − 0 = h x-1 x0 x1 x 4
  • 5.
    2. Hampiran selisih-mundur(backward difference approximation) f f '(x0) = y y0 y-1 ( x0 ) − f ( x − h0 h h ) f f0 − 1 = h y = f(x) x-1 x0 x1 x 5
  • 6.
    3. Hampiran selisih-pusat(central difference approximation) f f '(x0) = y y0 y-1 ( x0 +h ) − f ( x 2h 0 −h ) f − f1 −1 = 2 h y = f(x) 2h x-1 x0 x-1 6
  • 7.
    • Rumus-rumus turunannumerik untuk ketiga pendekatan tersebut dapat diturunkan dengan dua cara, yaitu: 1. Dengan bantuan deret Taylor 2. Dengan hampiran polinom interpolasi • Kedua cara tersebut menghasilkan rumus yang sama. 7
  • 8.
    Penurunan Rumus denganDeret Taylor (a) Hampiran selisih-maju Uraikan f(xi+1) di sekitar xi : x f(xi+1) = f(xi) + ( i+1 − x )i f '(xi) + 2 ( x − x )i+1 i f "(xi) + ... 1! 2! fi+1 = fi + hfi' + h2/2 fi " + .. . hfi ' = fi+1 - fi - h2/2 fi " + ... f − f fi ' = f fi ' = i+1 i+1 i - h/2 fi " h − f i + O(h) h yang dalam hal ini, O(h) = h/2 f "(t), xi < t < xi+1 8
  • 9.
    Untuk nilai-nilai fdi x0 dan x1 persamaan rumusnya menjadi: f − f f0 1 0 ' = + O(h) h yang dalam hal ini O(h) = h/2 f "(t), xi < t < xi+1 . 9
  • 10.
    (b) Hampiran selisih-mundur Uraikanf(xi-1) di sekitar xi : x f(xi-1) = f(xi) + ( i+1 − x ) xi f '(xi) + ( 2 − x )i+1 i f "(xi) + ... 1! 2! fi-1 = fi - hfi ' + h2/2 fi " + ... hfi ' = fi - fi-1 + h2/2 fi " + ... f − f fi ' = f fi ' = i i i −1 - h/2 fi " + ... h − f i −1 + O(h), h yang dalam hal ini, O(h) = - h/2 f "(t), xi-1 < t < xi 10
  • 11.
    Untuk nilai-nilai fdi x0 dan x-1 persamaan rumusnya menjadi: f0 f ' = 0 − f −1 +O(h) h yang dalam hal ini, O(h) = - h/2 f "(t), xi+1 < t < xi. 11
  • 12.
    (a) Hampiran selisih-pusat Kurangkanpersamaan (P.7.4) dengan persamaan (P.7.6): fi+1 - fi-1 = 2hfi' + h3/3 fi "' + ... 2hfi ' = fi+1 - fi-1 f − f - h3/3 fi "' + ... fi ' = f fi ' = i+1 i+1 i −1 - h2/6 fi "' + ... 2h − f i −1 + O(h2), 2h yang dalam hal ini, O(h2) = - h2/6 f "'(t), xi-1 < t < xi+1 Untuk nilai-nilai f di x-1 dan x1 persamaan rumusnya menjadi: f1 − f −1 2 fo '= + O(h ) 2h yang dalam hal ini, O(h2) = - h/6 f "'(t), xi-1 < t < xi+1. 12
  • 13.
    Rumus untuk TurunanKedua, f ’’(x), dengan Bantuan Deret Taylor (a) Hampiran selisih-pusat Tambahkan persamaan (P.7.4) dengan persamaan (P.7.6) di atas : fi+1 + fi-1 = 2 fi + h2 fi " + h4/12 fi (4) + ... fi+1 - 2fi + fi-1 = h2 fi " + h4/12 fi (4) f − 2f + f Jadi, f i+1 fi" = i+1 fi" = − 2 f i + f i −1 2 h i i −1 - h2/12 fi (4) 2 h + O(h2), yang dalam hal ini, O(h2) = - h2/12 f (4)(t), xi-1 < t < xi+1 13
  • 14.
    Untuk nilai-nilai fdi x-1 , x0, dan x1 persamaan rumusnya menjadi: 1 f0" = f − 2 f + f0 1 + O(h2)2 h yang dalam hal ini O(h2) = - h2/12 f (4)(t), xi-1 < t < xi+1. 14
  • 15.
    (b) Hampiran selisih-mundur Dengancara yang sama seperti (a) di atas, diperoleh : f fi" = i −2 − 2 f + fi −1 i + O(h),2 h yang dalam hal ini O(h) = h f "(t), xi-2 < t < xi Untuk nilai-nilai f di x-2 , x-1, dan x0 persamaan rumusnya : f0 f "= −2 − 2 f + f−1 0 + O(h),2 h yang dalam hal ini, O(h) = h f "(t) , xi-2 < t < xi 15
  • 16.
    (c) Hampiran selisih-maju Dengancara yang sama seperti di atas, diperoleh : i+2 fi" = f − 2 f i+1 + f i + O(h),2 h yang dalam hal ini, O(h) = - h f "(t), xi < t < xi+2 Untuk nilai-nilai f di x0 , x1, dan x2 persamaan rumusnya : f0 f "= 2 − 2 f + f1 0 + O(h),2 h yang dalam hal ini, O(h) = - h f "(t), x1 < t < xi+2. 16
  • 17.
    Penurunan Rumus TurunanNumerik dengan Polinom Interpolasi • Polinom Newton-Gregory: s Δf f (x) ≈ pn(x) = f0 + 1 ! 0 + s(s-1) Δ2 f0 2! n Δ f Δ3 f0 + s(s-1)(s-2) + 3! 0 s(s-1)(s-2)...(s- n+1) n! = F(s) yang dalam hal ini, s = (x-x0)/h. 17
  • 18.
    s Δf f (x)≈ pn(x) = f0 + 1 ! 0 + s(s-1) Δ2 f0 2! n Δ f Δ3 f0 + s(s-1)(s-2) + 3! 0 s(s-1)(s-2)...(s- n+1) n! = F(s) yang dalam hal ini, s = (x-x0)/h. 18
  • 19.
    (a) Hampiran selisih-maju -bila digunakan titik-titik x0 dan x1 : f1 − f0 f '(x0) = 1/h ( Δf0) = h - bila digunakan titik-titik x0, x1, dan x2 : f '(x0) = 1/h ( Δf0 + (s- 1/2) Δ2 f 0 ) untuk titik x0 → s = (x0 - x0)/h = 0, sehingga f '(x0) = 1/h ( Δf0 - 1/2 Δ2f 0 ) = 1/h ( Δf0 - 1/2( Δf1 - Δf0) ) = 1/h (3/2 Δf0 - 1/2 Δf1) = 1/h (3/2 f1 - 3/2 f0 - 1/2 f2+ 1/2 f1 ) = 1/h (-3/2 f0 + 2 f1 - 1/2 f2 ) −3f 0 +4f 1 − f 2 f '(x0 ) = 2h 19
  • 20.
    (b) Hampiran selisih-mundur -polinom interpolasi: Newton-Gregory mundur - bila digunakan titik-titik x0 dan x-1 : f − f0 −1 f '(x0) = 1/h ( ∇f0) = h 20
  • 21.
    (c) Hampiran selisih-pusat -digunakan tiga titik x0 , x1 , dan x2 : f '(x0) = 1/h ( Δf0 + (s - 1/2) Δ2f 0 ) untuk titik x1 → s = (x1 - x0)/h = h/h = 1, sehingga f '(x1) = 1/h ( Δf0 + 1/2 Δ2f 0 ) = 1/h ( Δf0 + 1/2( Δf1 - Δf0) ) = 1/h (1/2 Δf0 + 1/2 Δf1) = 1/2h ( f1 - f0 + f2 - f1 ) f2 − f0 = 2h untuk titik x-1 , x0 , dan x1 : f '(x0) f 1 − f −1 = 2h 21
  • 22.
    Rumus untuk TurunanKedua, f "(x), dengan Polinom Interpolasi Turunan kedua f adalah 2 d f 2 dx = d df  ds   ds dx  dx = 1/h (0 + Δ2f 0 + (s - 1) Δ3f 0 ) . 1/h = 1/h2 ( Δ2 f0 + ( s - 1) Δ3f0 ) 22
  • 23.
    Misalkan untuk hampiranselisih-pusat, titik-titik yang digunakan x0 , x1 , dan x2 : - pada titik x1 → s = (x1 - x0)/h = h/h = 1, sehingga f "(x1) = 1/h2 ( Δ2f 0 + (1 - 1) Δ3f 0 ) = 1/h2 ( Δ2f 0 ) = 1/h2 ( Δf1 - Δf0) 2 = 1/h ( f2 - f1 + f1 + f0 ) = 1/h2 ( f0 - 2f1 + f2 ) - untuk titik x-1 , x0 , dan x1 : f − 2 f + f f " (x0 −1 0 ) = 2 h 1 23
  • 24.
    Ringkasan Rumus-Rumus Turunan 1.Rumus untuk turunan pertama f0' = f0' = f0' = f0' = f 1 − f 0 + O(h) h f − f0 −1 + O(h) h f 1 − f −1 + O(h2) 2h −3 f 0 +4 f 1 − f 2 2h − f 2 +8 f 1 −8 f −1 (selisih-maju) (selisih-mundur) (selisih-pusat) + O(h2) (selisih-maju) + f − 2 f0' = + O(h4) 12h (selisih-pusat) 24
  • 25.
    2. Rumus untukturunan kedua f f0" = f 1 − 2f + f0 −1 + O(h2)2 h − 2f + f (selisih-pusat) −2 f0" = h f −2f −1 0 + O(h)2 + f (selisih-mundur) 2 1 f0" = 2 h − f +4 0 + O(h) f −5 f +2 f (selisih-maju) 3 f0" = − f 2 1 12h +16 f −30 f 0 + O(h2) +16 f − f (selisih-maju) 2 1 0 −1 −2 f0" = + O(h4)2 12h (selisih-pusat) 25
  • 26.
    3. Rumus untukturunan ketiga f f0"' = f 3 − 3f + 3f −2 1 3 h − 2 f + 2 f − f0 + O(h) (selisih-maju) f2 1 −1 −2 f0"' = 3 2h 4. Rumus untuk turunan keempat f − 4 f + 6 f − 4 f + O(h2) (selisih-pusat) + f4 f0(iv) = f − 4 3 2 4 h f + 6 f − 4 f 1 0 + O(h) + f (selisih-maju) 2 1 f0(iv) = 0 −1 −2 + O(h2)4 h (selisih-pusat) 26
  • 27.
    Contoh Diberikan data dalambentuk tabel sebagai berikut : x f(x) 1.3 3.669 1.5 4.482 1.7 5.474 1.9 6.686 2.1 8.166 2.3 9.974 2.5 12.182 (a) Hitunglah f '(1.7) dengan rumus hampiran selisih-pusat orde O(h2) dan O(h4) (b) Hitunglah f '(1.4)dengan rumus hampiran selisih-pusat orde O(h2) (c) Rumus apa yang digunakan untuk menghitung f '(1.3) dan f '(2.5) ? 27
  • 28.
    Penyelesaian: (a) Orde O(h2): f− f1 −1f0' = 2h Ambil titik-titik x-1 = 1.5 dan x1 = 1.9, yang dalam hal ini x0 = 1.7 terletak di tengah keduanya dengan h = 0.2. f '(1.7) = Orde O(h4): − f 6.686 − 4.482 = 5.510 2 (0.2) +8 f −8 f + f (empat angka bena) 2 1 f0' = 12h −1 2 28
  • 29.
    Ambil titik-titik x-2= 1.3 dan x-1 = 1.5 , x1 = 1.9, dan x2 = 2.1, yang dalam hal ini x0 = 1.7 terletak di pertengahannya. f '(1.7) (b) Orde O(h2): −8.166 + 8 ( 6.686 ) −8 ( 4.482 ) + 3.669 = 12 (0.2) = 5.473 (4 angka bena) Ambil titik-titik x-1 = 1.3 dan x1 = 1.5, yang dalam hal ini x0 = 1.4 terletak di tengahnya dan h = 0.1. f '(1.4) = 4.482 − 3.669 = 4.065 2 (0.1) (4 angka bena) 29
  • 30.
    (c) Untuk menghitungf '(1.3) digunakan rumus hampiran selisih-maju, sebab x = 1.3 hanya mempunyai titik-titik sesudahnya (maju), tetapi tidak memiliki titik-titik sebelumnya. Sebaliknya, untuk menghitung nilai f '(2.5) digunakan rumus hampiran selisih-mundur, sebab x = 2.5 hanya mempunyai titik-titik sebelumnya (mundur). Hampiran selisih-maju : f f f0' = f '(1.3) = 1 − 0 + O(h) h 4.482 − 3.669 = 4.065 Hampiran selisih-mundur : f f0' = 0 − f −1 + O(h) h f '(2.5) = 12.182 −9.974 = 11.04 30
  • 31.
    Terapan Turunan Numerikdalam Bidang Pengolahan Citra • Citra digital dapat disajikan oleh matriks f yang berukuran M N dengan bentuk   f f 11 f f 12 1N  f f f =  21  M  fM 1 22 2n M M M f fM 2 MN     • Tiap elemen matriks adalah bilangan bulat dalam rentang [0..255] untuk citra 8 bit. 31
  • 32.
    • Salah satuproses yang terdapat dalam pengolahan citra ialah pendeteksian tepi. • Tepi merupakan feature yang penting pada suatu citra. • Tepi didefinisikan sebagai perubahan intensitas yang besar dalam jarak yang singkat. • Perbedaan intensitas inilah yang menampakkan rincian pada gambar. Tepi memberikan informasi batas-batas objek dengan lingkungannya atau dengan objek yang lain, feature untuk mengidentifikasi objek, dan untuk terapan penapisan citra. 32
  • 33.
  • 34.
  • 35.
    • Salah satupendekatamyang dipakai dalam pendeteksian sisi adalah dengan kemiringan diferensial (differential gradient). • Secara matematis perubahan intensitas yang besar dalam jarak yang sangat singkat dapat dipandang sebagai suatu fungsi yang memiliki kemiringan yang besar. • Pengukuran kemiringan suatu fungsi dilakukan dengan menghitung turunan pertamanya. 35
  • 36.
    • Dalam citradigital, pendeteksian tepi dapat dilakukan dengan cara yang mirip, yaitu dengan turunan pertamanya secara parsial dalam ruang diskrit: ∇ f(x, y) = ∂f / ∂x    f  = x  ∂f / ∂y  fy  • yang dalam hal ini kedua turunan parsial didefinisikan sebagai D1(x) = D1( y) = ∂f ( x, y ) ∂x ∂f ( x, y ) ∂y f ( x+Δx, y ) − f ( x, y ) ≈ Δx f ( x, y+Δy ) − f ( x, y ) ≈ Δy 36
  • 37.
    Biasanya Δx =Δy = 1, sehingga persamaan turunan pertama menjadi: D1 D1 ∂f (x, (x) = ∂x ∂f (x, (y) = ∂y y) = f (x +1,y) − f (x, y) y) = f (x, y+1) − f (x, y) 37
  • 38.
    • Kekuatan tepipada setiap pixel citra dihitung dengan rumus: G[f(x,y)] = | fx2 | + | fy2 | • atau dengan rumus G[f(x,y)] = max ( fx2 | , | fy2 |) • Suatu pixel dianggap sebagai pixel sisi jika kekuatan tepinya di atas nilai ambang (threshold) tertentu. 38
  • 39.
    • D1(x) danD1( y) merupakan hampiran selisih-maju. Hampiran lain yang dipakai adalah hampiran selisih- pusat, yaitu: D2(x) = D2(y) = ∂f ( x, y ) ≈ ∂x ∂f ( x, y ) ≈ ∂y f ( x+Δx, y ) − f(x − Δx , y 2 Δ x f ( x, y+Δy ) − f(x, y − Δy ) 2 Δ y ) 39
  • 40.
    • Operator lainyang digunakan untuk mendeteksi sisi adalah yang berdasarkan pada operasi turunan kedua, yang dikenal dengan operator Laplace (Laplacian). • Operator Laplace mendeteksi lokasi tepi lebih akurat khususnya pada tepi yang curam. 40
  • 41.
    f(x) ∂f / ∂x ∂2f/ ∂x2 • (a) Tepi landai (b) Tepi curam 41
  • 42.
    • Jika digunakanhampiran selisih-maju, maka operator Laplace diturunkan sebagai berikut: ∇2f = 2 2 ∂ f ∂ f +2 2 ∂x ∂y = D1(D1(x)) + D1( D1( y)) 1 1 = D1 ( f(x + Δx, y) - D1( f(x,y)) + Δx D1( f(x, y)) 1 f ( x x+Δx, y ) − f ( x + Δx ,y D1( f(x, y + Δy) - Δy ) f ( x+ Δx, y ) − f ( x, y )  = Δx 1   Δx f ( x, y +Δy+Δy − ) − f ( x, y + Δy ) f + Δx  ( x, y+ Δy ) − f ( x, y )  = Δy f ( x   Δy + 2 Δ x, y ) − 2 f ( x+Δx, ( Δx )2 −  Δy  y ) + f ( x, y ) + f (x, y + 2 Δy)− 2 f (x, y+Δy )+ f (x, y) (Δy)2 42
  • 43.
    (a) (b) (a) citrabotol; (b) hasil pendeteksian tepi dengan operator Laplace 43
  • 44.
    CONTOH PROGRAM #include //pembacaan cout dan cin. #include // tampilan standar input output. #include // di gunakan untuk membuat teks antarmuka pengguna. #include // prototype fungsi untuk pustaka matematika. main() // program utama { // pembuka program . int i=1, k; // pendeklarasian variabel dengan menggunakan tipe data integer. float x0, x1, xr, fx0, fx1, E, e=0.00001; // pendeklarasian variabel dengan menggunakan tipe data float. clrscr(); // untuk menghapus data yang tidak perlu. gotoxy(18,6);cout<<" METODE SECANT f(x)=2x^2- 5x+1"<gotoxy(18,7);cout<<"---------------------------------------"; // tampilan output tabel. gotoxy(14,9);cout<< "Masukkan Nilai Awal : ";cin>>x0; // input nilai awal gotoxy(14,10);cout<<"Masukkan Nilai Akhir : ";cin>>x1; // input nilai akhir gotoxy(7,12);cout<<"+------------------------------------------------+"<
  • 45.
    LANJUTAN PROGRAM gotoxy(8,13);cout<<"iterasi"; //pembacaan nilai iterasi. gotoxy(18,13);cout<<"x0"; // pembacaan nilai x0 (masukan nilai awal). gotoxy(24,13);cout<<"x1"; // pembacaan nilai x1 (masukan nilai akhir). gotoxy(30,13);cout<<"xr"; // pembacaan nilai xr. gotoxy(34,13);cout<<"f(x0)"; // pembacaan nilai f(x0) turunan nilai dari x0. gotoxy(43,13);cout<<"f(x1)"; // pembacaan nilai f(x1) turunan nilai dari x1. gotoxy(50,13);cout<<"E"; // pembacaan nilai error. gotoxy(7,14);cout<<"+------------------------------------------------+"<k=15; // do // menggunakan perulangan. { // pembuka program fx0 = (2*(x0*x0))-(5*x0)+1; // rumus untuk pemanggilan nilai f(x0). fx1 = (2*(x1*x1))-(5*x1)+1; // rumus untuk pemanggilan nilai f(x1). xr = x1-(fx1*((x1-x0)/(fx1-fx0))); // rumus untuk pemanggilan nilai xr. E = fabs((xr-x1)/xr); // rumus untuk pemanggilan nilai E.
  • 46.
    LANJUTAN PROGRAM gotoxy(10,k);cout<gotoxy(16,k);printf("%.3f",x0); //pemanggilan tampilan output hasil hitungan x0. gotoxy(22,k);printf("%.3f",x1); // pemanggilan tampilan output hasil hitungan x1. gotoxy(28,k);printf("%.3f",xr); // pemanggilan tampilan output hasil hitungan xr. gotoxy(34,k);printf("%.3f",fx0); // pemanggilan tampilan output hasil hitungan f(x0). gotoxy(42,k);printf("%.3f",fx1); // pemanggilan tampilan output hasil hitungan f(x1). gotoxy(50,k);printf("%.3f",E); // // pemanggilan tampilan output hasil hitungan E. x0=x1; // pembacaan nilai x0 = x1. x1=xr; // pembacaan nilai x1 = xr. k++; // i++; // pembacaan urutan nomor iterasi. } // penutup program. while(E>e); // gotoxy(7,k);cout<<"+------------------------------------------------+"<getch(); return 0; }
  • 47.