Anda di halaman 1dari 34

INTERPOLASI NUMERIK

I PUTU EKA WIDYA PRATAMA, S.Si.,M.Sc.RWTH

WEEK 11
APA ITU INTERPOLASI?
• Interpolasi adalah proses pencarian dan perhitungan nilai suatu
fungsi yang grafiknya melalui sekumpulan titik yang diberikan. Titik
tersebut mungkin merupakan hasil eksperimen sebuah percobaan,
atau diperoleh dari sebuah fungsi yang diketahui. Fungsi interpolasi
biasanya dipilih dari sekelompok fungsi tertentu seperti fungsi linear
maupun polynomial.
TUJUAN INTERPOLASI
➢Mencari nilai yang tidak ada pada data
➢Dapat digunakan untuk penghalusan kurva
GAMBARAN
Atau dalam bentuk data
tabel

X Y

1 3 Diketahui data hasil pengukuran


seperti tabel di atas. Berapa nilai ‘y’
2 4 saat x = 5.25 →
5 6 Solusi : nilai ‘y’ dapat diketahui
7 8 dengan teknik interpolasi

9 10
JENIS – JENIS METODE INTERPOLASI
❖ INTERPOLASI LINEAR
❖ INTERPOLASI KUADRATIK
❖ INTERPOLASI LAGRANGE Untuk derajat/orde
polynomial yang tinggi
❖ INTERPOLASI NEWTON
INTERPOLASI LINEAR
• Interpolasi linier merupakan metode yang digunakan untuk mencari nilai dari
sebuah titik yang tidak diketahui dari dua buah titik yang membentuk garis linier
yang sudah diketahui terlebih dahulu. Persamaan garis linier adalah :

Y = aX + b
Misalkan dua buah yang membentuk garis lurus dari titik P1 di x1,y1 ke
titik P2 di titik x2,y2. Maka bisa dibandingkan antara P1 dan P2 sebagai
berikut :

Persamaan ini kemudian bisa ditulis menjadi :

Persamaan ini bisa digunakan untuk mencari nilai y di titik x


sembarang.
CONTOH KASUS
Sebuah hasil pengukuran sebuah benda yang bergerak terhadap satuan
waktu seperti pada tabel di bawah ini!

Jarak (m) 5 10 15 20
Waktu (s) 3,4 6,6 10,1 13,8

1.Tentukan berapa waktu yang dibutuhkan untuk bergerak sejauh 12 m!


2.Tentukan Jarak tempuh benda jika bergerak selam 12 sekon!
PENYELESAIAN
• 1. Untuk soal ini pada grafik andaikan jarak adalah sumbu x dan
waktu adalah sumbu y dalam grafik. Pada data jarak 12 m berada
pada titik 10 dan 15 dengan waktu masing – masing 6,6 dan 10,1
berarti nilai ini menjadi x1 =10; x2 =15; y1 =6,6; y2 =10,1. Dengan
menggunakan rumus interpolasi Linear diperoleh :

10,1 −6,6
= 12 − 10,1 + 6,6 = 7,93
15 −10

Maka diperoleh nilai Y = 7,93 yang berarti waktu untuk jarak 12 m


INTERPOLASI KUADRATIK
• Bentuk Dungsi : y = f(x) = ax2 + bx + c

Gambar grafik data

Titik-titik data (x1,y1) (x2,y2) (x3,y3)


Rumus untuk mencari titik baru sembarang (x,y)
( x − x2 )( x − x3 ) ( x − x1 )( x − x3 ) ( x − x1 )( x − x2 )
y = y1 + y2 + y3
( x1 − x2 )( x1 − x3 ) ( x2 − x1 )( x2 − x3 ) ( x3 − x1 )( x3 − x2 )
Mini Quiz 1
• Coba gunakan interpolasi kuadratik untuk menyelesaikan soal pada
slide 7
Mini Quiz 2
• Seorang mahasiswa ingin meneliti tentang pengaruh biaya promosi terhadap volume penjualan pada
perusahaan jual beli motor. Variabel dependen (Y) adalah volume penjualan dan variabel independen (X)
adalah biaya promosi. Data-data yang di dapat ditabulasikan sebagai berikut:

• Carilah:
a) Pendekatan Interpolasi Linier Y = aX + b dengan menggunakan pendekatan linear untuk mencari volume
penjualan apabila biaya promosi 16.000
b) Carilah Pendekatan Interpolasi Kuadratik Y = aX2 + bX + c dengan menggunakan pendekatan kuadratik
untuk mencari volume penjualan apabila biaya promosi 16.000
CODE MATLAB INTERPOLASI LINEAR
clear;
clc;
disp('Interpolasi Linier');
disp('================================');
x1=input('masukkan nilai x1= ');
y1=input('masukkan nilai y1= ');
x2=input('masukkan nilai x2= ');
y2=input('masukkan nilai y2= ');
x=input('masukkan nilai x= ');
y=((y2-y1)/(x2-x1))*(x-x1)+y1;
disp(['nilai y= ', num2str(y)]);
CODE MATLAB INTERPOLASI KUADRATIK
clc;
clear;
disp('Interpolasi Kuadratik');
disp('================================');
x1=input('Masukkan nilai x1 = ' );
y1=input('Masukkan Nilai y1 = ');
x2=input('Masukkan Nilai x2 = ');
y2=input('Masukkan Nilai y2 = ');
x3=input('Masukkan Nilai x3 = ');
y3=input('Masukkan Nilai y3 = ');
x=input('Masukkan Nilai x = ');
y=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)));
disp(['nilai y= ', num2str(y)]);
INTERPOLASI LAGRANGE
• Contoh Interpolasi Lagrange 2
titik (orde 1) dari gambar

𝑥 − 𝑥1 𝑥 − 𝑥0
𝑝1 𝑥 = 𝑦0 + 𝑦1
𝑥0 − 𝑥1 𝑥1 − 𝑥0
= y1
= y0
𝐿0 𝐿1
Bentuk umum dari Interpolasi
Idenya sama dengan Interpolasi linier tapi untuk Lagrange
polynomial (suku banyak)
𝒑𝒊 𝒙 = σ𝑵𝒊=𝟎 𝒚𝒊 𝑳𝒊 (𝒙)
= 𝒚𝟎 𝑳𝟎 (𝒙) + 𝒚𝟏 𝑳𝟏 𝒙 +
𝒚𝟐 𝑳𝟐 (𝒙) + …
ILUSTRASI GRAFIK INTERPOLASI LAGRANGE
UNTUK ORDE 1 DAN 3
CONTOH PENGGUNAAN
Misalkan ada 4 buah titik data yang diketahui seperti tabel dibawah, Tentukan nilai Y saat X = 3
xi yi

0 7
1 13
2 21
4 43

Penyelesaian pertama kita tentukan bentuk Polinomial Lagrange nya untuk 4 titik, setelah itu masukan ke
persamaan polynomial Lagrange

Dengan menyelesaikan persamaan diatas,


untuk nilai Y saat X = 3 diperoleh Y = 31
Mini Quiz 3
• Carilah nilai dari ln 2 dengan metode interpolasi
polinomial Lagrange Orde dua berdasar data sebagai
berikut ln 1 = 0, ln 4 = 1,3862944 dan ln 6 = 1,7917595
JAWABAN MINI QUIZ 3
• Dari soal di atas dapat diperoleh data sbg brkt..
• x0= 1, y0 = 0
• x1= 4, y1 = 1,3862944
• x2= 6, y2 = 1,7917595
Dari data yg diketahui masukkan ke persamaan
interpolasi lagrange orde 2..

𝑝2 𝑥 = 𝑦0 + 𝑦1 + 𝑦2

Dengan menyelsaikan persamaan diatas menggunakan x = 2 diperoleh nilai


𝑝2 2 = 0.56584437
Mini Quiz 4
Sebuah Benda bergerak pada bidang datar. Dalam pengamatan benda
kecepatan benda tersebut berubah sebagai fungsi waktu yang disajikan
dalam tabel dibawah. Tentukan berapa kecepatan saat t =16s dengan
menggunakan Interpolasi Lagrange untuk polynomial orde 3
CODE MATLAB INTERPOLASI LAGRANGE
clc;
clear;
syms x;
disp('Interpolasi Lagrange')
disp('============================')
disp(' ')
%menginputkan banyaknya titik
b=input('Masukkan banyak titik (gunakan titik untuk angka desimal) = ');
%menginputkan masing-masing titik
for i=1:b
fprintf('x%d',i)
bx(i)=input(' = ');
fprintf('y%d',i)
by(i)=input(' = ');
end
%menampilkan titik-titik yang sudah diinputkan ke layar
disp('Titik-titik yang diketahui adalah sebagai berikut:');
for i=1:b
fprintf('(%d,%1.1f)',bx(i),by(i));
end
%inisialisasi fx
fx=0;
fprintf('\n\n');
disp('Nilai masing-masing L(x)');
% mulai proses pencarian q(x), qx1, lx, dan px
for i=1:b
%inisialisasi qx
qx=1;
%perulangan untuk mencari qx
for j=1:b
if (i~=j)
qx=qx*(x-bx(j));
end
end
%mencari qx1 dengan substitusi x ke gx
qx1=subs(qx,x,bx(i));
%mencari lx
lx=qx/qx1;
lx1=collect(lx);
%menampilkan lx
fprintf('L%d(x) = ',i);
disp(lx1);
%mencari fx
fx=fx+by(i)*lx;
end
%menyederhanakan f menjadi px dan menampilkan ke layar
px=collect(fx);
fprintf('Bentuk Umum polinom Lagrange nya = '); disp(px);
disp('Masukkan nilai yang ingin ditaksir ')
c=input('c = ');
f=inline(px);
disp(['Maka nilai taksirannya adalah ' num2str(f(c))])
KELEMAHAN INTERPOLASI LAGRANGE
• Kurang disukai dalam praktek karena jumlah komputasi yang
diperlukan untuk satu kali interpolasi , besar.
• Harus mengulang lagi dengan proses yang sama untuk interpolasi
dengan nilai x yang berbeda
• Tidak dapat dipastikan derajat polynomial untuk mendapatkan hasil
yang akurat
INTERPOLASI NEWTON
• Persamaan Polinom Linier
( y1 − y0 )
p1 ( x) = y0 + ( x − x0 )
( x1 − x0 )
• Bentuk pers ini dapat ditulis :
p1 ( x) = a0 + a1 ( x − x0 )
• Yang dalam hal ini a0 = y 0 = f ( x0 ) (1)

• Dan
( y1 − y0 ) f ( x1 ) − f ( x0 )
a1 = = (2)
( x1 − x0 ) ( x1 − x0 )
• Pers ini mrpk bentuk selish terbagi (divided-difference)
a1 = f [ x1 , x0 ]
• Polinom kuadratik p2 ( x) = a0 + a1 ( x − x0 ) + a2 ( x − x0 )( x − x1 )

• Atau p2 ( x) = p1 ( x) + a2 ( x − x0 )( x − x1 )

• Dari pers ini menunjukkan bahwa p2(x) dapat dibentuk dari pers
sebelumnya p1(x). Nilai a2 dapat ditemukan dengan mengganti x=x2 untuk
mendapatkan f (x ) − a − a (x − x )
a2 = 2 0 1 2 0
(3)
( x2 − x0 )( x2 − x1 )

• Nilai a0 dan a1 pada pers 1 dan 2 dimasukkan pada pers 3

f ( x 2 ) − f ( x0 ) f ( x1 ) − f ( x0 )

x 2 − x0 x1 − x0
a2 =
x 2 − x1
• Dengan melakukan utak-atik aljabar, pers ini
lebih disukai
f ( x 2 ) − f ( x0 ) f ( x1 ) − f ( x0 )

x 2 − x1 x1 − x0 f [ x 2 , x1 ] − f [ x1 , x0 ]
a2 = =
x 2 − x0 x 2 − x0

• Jadi tahapan pembentukan polinom Newton :


p1 ( x) = p0 ( x) + a1 ( x − x0 )
p1 ( x) = a0 + a1 ( x − x0 )
p2 ( x) = p1 ( x) + a2 ( x − x0 )( x − x1 )
p2 ( x) = a0 + a1 ( x − x0 ) + a2 ( x − x0 )( x − x1 )
p3 ( x) = p 2 ( x) + a3 ( x − x0 )( x − x1 )( x − x2 )
p3 ( x) = a0 + a1 ( x − x0 ) + a2 ( x − x0 )( x − x1 ) + a3 ( x − x0 )( x − x1 )( x − x2 )
• Nilai konstanta a0, a1, a2,…, an, merupakan nilai selisih terbagi , dg nilai
a 0 = f ( x0 )
a1 = f [ x1 , x0 ]
a 2 = f [ x 2 , x1 , x0 ]
a n = f [ x n , x n −1 ,..., x1 , x0 ]
• Yang dalam hal ini

f ( xi ) − f ( x j )
f [ xi , x j ] =
xi − x j
f [ xi , x j ] − f [ x j , x k ]
f [ xi , x j , x k ] =
xi − x k
f [ x n , x n −1 ,..., x1 ] − f [ x n −1 , x n − 2 ,..., x1 , x0 )
f [ x n , x n −1 ,..., x1 , x0 ] =
x n − x0
• Dengan demikian polinom Newton dapat ditulis
dalam hub rekursif sebagai :
• Rekurens
pn ( x) = pn−1 ( x) + ( x − x0 )( x − x1 )...( x − xn−1 ) f [ xn , xn−1 ,..., x1 , x0 ]

• Basis p 0 ( x) = f ( x 0 )
• Atau dalam bentuk polinom yang lengkap sbb :
p n ( x) = f ( x0 ) + ( x − x0 ) f [ x1 , x0 ] + ( x − x0 )( x − x1 ) f [ x2 , x1 , x0 ]
+ ( x − x0 )( x − x1 )...( x − x n −1 ) f [ x n , x n −1 ,..., x1 , x0 ]
CONTOH SOAL
• Bentuklah polinom Newton derajat satu, dua, tiga dan empat yang
menghampiri f(x)=cos(x) dalam range[0.0, 4] dan jarak antar titik adalah
1.0. Lalu taksirlah f(x) dengan x=2.5 dengan Polinom Newton derajat 3.

Nb : ST adalah Selisih terbagi


xi yi ST-1 ST-2 ST-3 ST-4
0.0 1 -0.4597 -0.2484 0.1466 -0.0147
1.0 0.5403 -0.9564 0.1913 0.0880
2.0 -0.4161 -0.5739 0.4551
3.0 -0.99 0.3363
4.0 -0.6536
CONTOH SOAL

• Contoh cara menghitung nilai selisih terbagi pada


tabel :
f ( x1 ) − f ( x0 ) 0.5403 − 1
f [ x1 , x0 ] = = = −0.4597
( x1 − x0 ) 1− 0
f ( x 2 ) − f ( x1 ) − 0.4161 − 0.5403
f [ x 2 , x1 ] = = = −0.9564
( x 2 − x1 ) 2 −1
f [ x 2 , x1 ] − f [ x1 , x0 ] − 0.9564 + 0.4597
f [ x 2 , x1 , x0 ] = = = −0.2484
( x 2 − x0 ) 2−0
CONTOH SOAL
• Maka polinom Newton derajat 1,2 dan 3 dengan x0 = 0
sebagai titik pertama :
cos( x)  p1 ( x) = 1.0 − 0.4597( x − 0.0)
cos( x)  p 2 ( x) = 1.0 − 0.4597 ( x − 0.0) − 0.2484( x − 0.0)( x − 1.0)
cos( x)  p3 ( x) = 1.0 − 0.4597 ( x − 0.0) − 0.2484( x − 0.0)( x − 1.0) +
0.1466( x − 0.0)( x − 1.0)( x − 2.0)
cos( x)  p 4 ( x) = 1.0 − 0.4597 ( x − 0.0) − 0.2484( x − 0.0)( x − 1.0) +
0.1466( x − 0.0)( x − 1.0)( x − 2.0) − 0.0147( x − 0.0)( x − 1.0)( x − 2.0)( x − 3.0)

• Nilai sejati f(2.5) adalah


• F(2.5) = cos(2.5)=-0.8011
CODE MATLAB INTERPOLASI NEWTON
disp('Program Interpolasi Newton');
disp('==========================');
disp(' ');
n=input('Masukkan jumlah titik = ');
x=zeros(1,n);
F=zeros(1,n);
for i=1:1:n
x(1,i)=input(['x(',num2str(i),')= ']);
F(1,i)=input(['F(',num2str(i),')= ']);
end;
disp(' ')
z=input('Masukkan nilai yang akan ditaksir
= ');
eps=input('Epsilon/galat = ');
b(1,1)=F(1,1);
tic
pbagi=b(1,1);
factor=1;
for i=2:1:n
b(1,i)=F(1,i);
for j=i-1:-1:1
end;
b(1,j)=(b(1,j+1)-b(1,j))/(x(1,i)-x(1,j));
end;
factor=factor*(z-x(1,i-1));
suku=b(1,1)*factor;
pbagi=pbagi+suku;
if (abs(suku) <= eps)
return;
end;
interpolasi=pbagi;
disp(' ');
disp(['Jadi nilai taksirannya adalah '
num2str(interpolasi)])
TERIMA KASIH

Anda mungkin juga menyukai