NGB (Newton Gregory Backward) adalah metode numerik yang digunakan untuk menyelesaikan
perhitungan diferensial atau derivatif dari suatu fungsi. Kita dapat menentukan derivatif atau turunan dari suatu fungsi dengan rumus-rumus derivative yang telah baku atau diketahui. Dua situasi mendasar apabila suatu proses memerlukan turunan numerik:
1. Apabila fungsi f dinyatakan hanya dengan sekumpulan titik-titik data (x0, f0 ), (x1, f1 ), (x3, f3 ), …, (xn, fn ) dan nilai-nilai fungsi tersebut tidak diketahui.
2. Apabila fungsi f terlalu rumit dan diferensiasi secara analitik sukar dilakukan meskipun nilai fungsi f mudah ditentukan.
Rumus-rumus turunan numerik untuk pendekatan NGB dapat diturunkan dari deret Taylor.
Penurunan Rumus Turunan dengan Deret Taylor
Misalkan diberikan titik-titik (xi, fi) , i = 0, 1, 2, ..., n, yang dalam hal ini xi= x0+ih dan fi= f(xi). Kita ingin menghitung f '(x), yang dalam hal ini x = x0 + sh, s ∈R .
Kurva Pendekatan Penghitungan Turunan Numerik
Pendekatan NGB
Pendekatan Turunan Pertama NGB
Uraikan f(xi-1) disekitar xi:
yang dalam hal ini galat berupa: O(h) = -h/2 f’’(t), xi-1Untuk nilai-nilai f di x0 dan x1 persamaan rumusnya:
dalam hal ini, O(h) = -h/2 f’’(t), xi-1
Pendekatan Turunan Kedua NGB
Dengan cara yang sama seperti di atas, diperoleh
dalam hal ini, O(h) = hf’’(t), xi-2
Untuk nilai-nilai f di x-2, x0 dan x1 persamaan rumusnya:
dalam hal ini, O(h) = h f’’(t), xi-2
Contoh:
1. Backward difference (dua titik)
RUMUS:
Diketahui data sebagai berikut
x 𝑓 𝑥 = 𝑒−𝑥 𝑆𝑖𝑛 (𝑥)
0.4 0.261035
0.6 0.309882
0.8 0.322329
1 0.309560
1.2 0.280725
1.4 0.243009
1.6 0.201810
𝑓′ 1 = −0.110794 (𝑒𝑘𝑠𝑎𝑘)
Hitung nilai pendekatan f’(1) dan galat dengan selisih h = 0.2 !
Penyelesaian Metode NGB Dengan Matlab
List Matlab:
clear;
clc;
disp('metode NGB')
n=input('masukkan nilai n = ');
x=[0.4 0.6 0.8 1 1.2 1.4 1.6];
f=[0.261035 0.309882 0.322329 0.309560 0.280725 0.243009 0.201810];
for i=1:n-1
del(i,1)=f(i+1)-f(i);
end
for j=2:n-1
for i=1:n-j
del(i,j)=del(i+1,j-1)-del(i,j-1);
end
end
del=del;
h=x(2)-x(1);
jawab='y';
while jawab=='y';
xcari=input('masukkan nilai xcari = ');
b=(xcari-x(n))/h;
i=1;
hasil=f(n);
for j=1:n-1
i=i*(b-j+1);
hasil=hasil+del(n-j,j)*i/factorial(j);
end
disp(['hasil=',num2str(hasil)]);
disp(['b= ',num2str(b)]);
disp(['jawab= ',num2str(jawab)]);
end
perhitungan diferensial atau derivatif dari suatu fungsi. Kita dapat menentukan derivatif atau turunan dari suatu fungsi dengan rumus-rumus derivative yang telah baku atau diketahui. Dua situasi mendasar apabila suatu proses memerlukan turunan numerik:
1. Apabila fungsi f dinyatakan hanya dengan sekumpulan titik-titik data (x0, f0 ), (x1, f1 ), (x3, f3 ), …, (xn, fn ) dan nilai-nilai fungsi tersebut tidak diketahui.
2. Apabila fungsi f terlalu rumit dan diferensiasi secara analitik sukar dilakukan meskipun nilai fungsi f mudah ditentukan.
Rumus-rumus turunan numerik untuk pendekatan NGB dapat diturunkan dari deret Taylor.
Penurunan Rumus Turunan dengan Deret Taylor
Misalkan diberikan titik-titik (xi, fi) , i = 0, 1, 2, ..., n, yang dalam hal ini xi= x0+ih dan fi= f(xi). Kita ingin menghitung f '(x), yang dalam hal ini x = x0 + sh, s ∈R .
Kurva Pendekatan Penghitungan Turunan Numerik
Pendekatan NGB
Pendekatan Turunan Pertama NGB
Uraikan f(xi-1) disekitar xi:
yang dalam hal ini galat berupa: O(h) = -h/2 f’’(t), xi-1
dalam hal ini, O(h) = -h/2 f’’(t), xi-1
Pendekatan Turunan Kedua NGB
Dengan cara yang sama seperti di atas, diperoleh
dalam hal ini, O(h) = hf’’(t), xi-2
Untuk nilai-nilai f di x-2, x0 dan x1 persamaan rumusnya:
dalam hal ini, O(h) = h f’’(t), xi-2
Contoh:
1. Backward difference (dua titik)
RUMUS:
Diketahui data sebagai berikut
x 𝑓 𝑥 = 𝑒−𝑥 𝑆𝑖𝑛 (𝑥)
0.4 0.261035
0.6 0.309882
0.8 0.322329
1 0.309560
1.2 0.280725
1.4 0.243009
1.6 0.201810
𝑓′ 1 = −0.110794 (𝑒𝑘𝑠𝑎𝑘)
Hitung nilai pendekatan f’(1) dan galat dengan selisih h = 0.2 !
Penyelesaian Metode NGB Dengan Matlab
List Matlab:
clear;
clc;
disp('metode NGB')
n=input('masukkan nilai n = ');
x=[0.4 0.6 0.8 1 1.2 1.4 1.6];
f=[0.261035 0.309882 0.322329 0.309560 0.280725 0.243009 0.201810];
for i=1:n-1
del(i,1)=f(i+1)-f(i);
end
for j=2:n-1
for i=1:n-j
del(i,j)=del(i+1,j-1)-del(i,j-1);
end
end
del=del;
h=x(2)-x(1);
jawab='y';
while jawab=='y';
xcari=input('masukkan nilai xcari = ');
b=(xcari-x(n))/h;
i=1;
hasil=f(n);
for j=1:n-1
i=i*(b-j+1);
hasil=hasil+del(n-j,j)*i/factorial(j);
end
disp(['hasil=',num2str(hasil)]);
disp(['b= ',num2str(b)]);
disp(['jawab= ',num2str(jawab)]);
end
Comments
Post a Comment