Anda di halaman 1dari 5

BAB 8

Interpolasi

Objektif :
⊲ Mengenalkan Interpolasi Lagrange
⊲ Mengenalkan Interpolasi Spline-cubic

Interpolasi adalah upaya untuk memprediksi suatu nilai berdasarkan data tertentu, di-
mana nilai prediksi berada dalam rentang data tersebut. Jika nilai prediksi berada di luar
rentang data yang ada, ini disebut ekstrapolasi. Nilai prediksi dapat diperoleh dari suatu
persamaan matematika atau yang dikenal dengan fungsi polinomial. Bab ini akan memba-
has bagaimana cara mendapatkan fungsi polinomial untuk keperluan interpolasi melalui
metode interpolasi Lagrange dan interpolasi Spline-cubic.

8.1 Interpolasi Lagrange


Metode interpolasi Lagrange diterapkan untuk mendapatkan fungsi polinomial, P (u),
berderajat tertentu. Kurva dari fungsi polinomial harus terbukti melewati sejumlah titik
data. Misalnya, kita ingin mendapatkan fungsi polinomial yang kurvanya akan melewati
dua buah titik data yaitu (x0 , y0 ) dan (x1 , y1 ). Langkah pertama yang kita lakukan adalah
mendefinisikan fungsi polinomial P (u) sebagai berikut

P (u) = L0 (u)y0 + L1 (u)y1 (8.1)

dimana L0 (u) dan L1 (u) merupakan koefisien-koefisien Lagrange yang memenuhi

u − x1
L0 (u) = (8.2a)
x0 − x1
u − x0
L1 (u) = (8.2b)
x1 − x0

Untuk menguji apakah Persamaan (8.1) valid untuk data (x0 , y0 ) dan (x1 , y1 ), kita bisa
uji satu per satu, yaitu ketika u = x0

x0 − x1 x 0 − x0
P (x0 ) = y0 + y1 = y 0
x0 − x1 x 1 − x0

162
Kitab Komputasi untuk Geosains - Edisi 1 - Dr. Eng. Supriyanto, M.Sc 163

dan ketika u = x1
x1 − x1 x 1 − x0
P (x1 ) = y0 + y1 = y 1
x0 − x1 x 1 − x0
Berdasarkan hasil uji di atas, dapat disimpulkan bahwa Persamaan (8.1) valid untuk data
(x0 , y0 ) dan (x1 , y1 ).
Sekarang bagaimana jika data yang diberikan terdiri atas 3 pasang angka, misalnya
(x0 , y0 ), (x1 , y1 ) dan (x2 , y2 ). Fungsi polinomial Lagrange yang valid terhadap data ter-
sebut adalah
P (u) = L0 (u)y0 + L1 (u)y1 + L2 (u)y2 (8.3)

dimana koefisien-koefisien Lagrange didefinisikan sebagai

(u − x1 )(u − x2 )
L0 (u) = (8.4a)
(x0 − x1 )(x0 − x2 )
(u − x0 )(u − x2 )
L1 (u) = (8.4b)
(x1 − x0 )(x1 − x2 )
(u − x0 )(u − x1 )
L2 (u) = (8.4c)
(x2 − x0 )(x2 − x1 )

Bukti bahwa Persamaan (8.3) valid untuk (x0 , y0 ), (x1 , y1 ) dan (x2 , y2 ) adalah sebagai
berikut, ketika u = x0

(x0 − x1 )(x0 − x2 ) (x0 − x0 )(x0 − x2 ) (x0 − x0 )(x0 − x1 )


P (x0 ) = y0 + y1 + y2 = y0
(x0 − x1 )(x0 − x2 ) (x1 − x0 )(x1 − x2 ) (x2 − x0 )(x2 − x1 )

pada saat u = x1

(x1 − x1 )(x1 − x2 ) (x1 − x0 )(x1 − x2 ) (x1 − x0 )(x1 − x1 )


P (x1 ) = y0 + y1 + y2 = y1
(x0 − x1 )(x0 − x2 ) (x1 − x0 )(x1 − x2 ) (x2 − x1 )(x2 − x1 )

dan pada saat u = x2

(x2 − x1 )(x2 − x2 ) (x2 − x0 )(x2 − x2 ) (x2 − x0 )(x2 − x1 )


P (x2 ) = y0 + y1 + y2 = y2
(x0 − x1 )(x0 − x2 ) (x1 − x0 )(x1 − x2 ) (x2 − x0 )(x2 − x1 )

Terbukti bahwa Persamaan (8.3) valid.


Kalau kita bandingkan antara Persamaan (8.1) dan Persamaan (8.3), terlihat bahwa
derajat Persamaan (8.3) lebih tinggi dibandingkan dengan derajat Persamaan (8.1). Hal
ini terlihat dari adanya faktor u2 yang dikandung oleh Persamaan (8.3); sementara pada
Persamaan (8.1) hanya ada u saja. Berdasarkan hal ini, Persamaan (8.3) disebut fungsi
polinomial berderajat 2, sedangkan Persamaan (8.1) disebut fungsi polinomial berderajat
1.
Script Python berikut ini mengaplikasikan fungsi polinomial Lagrange berderajat 2
Kitab Komputasi untuk Geosains - Edisi 1 - Dr. Eng. Supriyanto, M.Sc 164

yang sesuai Persamaan (8.3) untuk 3 pasang nilai yang sudah diketahui, yaitu (2;4),
(4;6,3), dan (7,2;5). Polinomial Lagrange ditugaskan untuk memprediksi nilai pasang-
an dari angka 5.

1 import numpy as np
2 import matplotlib.pyplot as plt
3
4 #-----Menginputkan 3 pasangan nilai---------------------------------
5 x = np.array([2, 4, 7.2]) #pasangan nilai x dan y
6 y = np.array([4, 6.3, 5]) #yang sudah diketahui
7
8 #=====Metode Interpolasi Lagrange (derajat 2)=======================
9 u = 5 #berapa angka pasangan dari 5?
10 #-----Menghitung koefisien Lagrange---------------------------------
11 L = np.zeros(3)
12 L[0] = (u-x[1])*(u-x[2]) / ((x[0]-x[1])*(x[0]-x[2]))
13 L[1] = (u-x[0])*(u-x[2]) / ((x[1]-x[0])*(x[1]-x[2]))
14 L[2] = (u-x[0])*(u-x[1]) / ((x[2]-x[0])*(x[2]-x[1]))
15 #-----Menghitung interpolasi Lagrange-------------------------------
16 P = L[0]*y[0] + L[1]*y[1] + L[2]*y[2]; #inilah angka pasangan dari 5
17 #===================================================================
18
19 #-----Memplot seluruh pasangan angka--------------------------------
20 plt.plot(x,y,’or’) # memplot semua titik x,y
21 plt.plot(u,P,’sb’) # memplot titik u,P
22 plt.grid() # membuat grid
23 plt.title("Interpolasi Lagrange") # membuat judul grafik
24 plt.xlabel("nilai x") # membuat label sumbu x
25 plt.ylabel("P(x)") # membuat label sumbu y
26 plt.axhline(y=0, color=’#000000’) #menegaskan garis sumbu-x
27 plt.axvline(x=0, color=’#000000’) #menegaskan garis sumbu-y
28 plt.show() # menampilkan grafik

Gambar 8.1 memperlihatkan sebaran 3 titik data dan nilai prediksi berdasarkan script
Python di atas.
Optimasi terhadap script Python di atas menghasilkan script Python yang bisa me-
nyesuaikan jumlah pasangan titik data sekaligus, kemudian dilanjutkan dengan membuat
kurva persamaan polinomial Lagrange. script Python teroptimasi dimaksud adalah seba-
gai berikut:

1 import numpy as np
2 import matplotlib.pyplot as plt
3
4 x = np.array([2, 4, 7.2])
5 y = np.array([4, 6.3, 5])
6 n = np.size(x)
7
8 u = np.linspace(np.min(x), np.max(x), 50)
9 m = np.size(u)
10
11 P = np.zeros(m)
12 L = np.zeros(n)
Kitab Komputasi untuk Geosains - Edisi 1 - Dr. Eng. Supriyanto, M.Sc 165

Interpolasi Lagrange

4
P(x)

0 1 2 3 4 5 6 7

nilai x

Gambar 8.1 Nilai prediksi (titik biru) sebagai hasil dari interpolasi Lagrange berdasarkan data
yang terdiri atas 3 pasangan angka (titik merah)

Kurva interpolasi Lagrange

4
P(x)

0
0 1 2 3 4 5 6 7
nilai x

Gambar 8.2 Kurva biru adalah kurva interpolasi Lagrange (dari script Python teroptimasi) berda-
sarkan 3 pasangan angka (titik merah)
Kitab Komputasi untuk Geosains - Edisi 1 - Dr. Eng. Supriyanto, M.Sc 166

13 for j in range(m):
14 for q in range(n):
15 M = 1
16 N = 1
17 for k in range(n):
18 if q != k:
19 M = M * (u[j]-x[k])
20 N = N * (x[q]-x[k])
21 L[q] = M/N
22 for i in range(n):
23 P[j] = P[j] + L[i]*y[i]
24
25 plt.plot(u,P,’-b’) # memplot kurva interpolasi Lagrange
26 plt.plot(x,y,’or’) # memplot titik x,y pada grafik
27 plt.grid() # membuat garis-garis pada grafik
28 plt.title("Kurva interpolasi Lagrange") # membuat judul grafik
29 plt.xlabel("nilai x") # membuat label sumbu x
30 plt.ylabel("P(x)") # membuat label sumbu y
31 plt.axhline(y=0, color=’#000000’) #menegaskan garis sumbu-x
32 plt.axvline(x=0, color=’#000000’) #menegaskan garis sumbu-y
33 plt.show() # menampilkan grafik

8.2 Interpolasi Cubic Spline


Sekarang mari kita bahas konsep dari interpolasi cubic spline. Ngomong-ngomong,
kapan anda biasa mendengar kata cubic (baca: kubik)? Kata kubik sering dihubungkan
dengan satuan volume, misalnya meter-kubik (m3 ) atau centimeter-kubik (cm3 ). Kubik
itu sendiri artinya adalah pangkat 3. Bandingkan dengan kata persegi yang berhubungan
dengan satuan luas, misalnya meter-persegi (m2 ) atau kilometer-persegi (km2 ). Dalam
konteks pembahasan interpolasi cubic spline, kita akan menggunakan pendekatan poli-
nomial pangkat 3 atau berderajat 3 untuk menghubungkan sejumlah titik dalam suatu
koordinat.
Apa bedanya dengan Lagrange? Disini kita akan menciptakan segmen-segmen ku-
rva polinomial berderajat 3 diantara titik-titik yang sudah diketahui. Itulah penjelasan
dari kata spline yang merupakan singkatan dari separation line. Ok, mari kita masuki
pembahasan ini lebih dalam lagi..
Gambar (8.3) memperlihatkan sebaran dari sejumlah titik yang masing-masing me-
miliki pasangan koordinat (x, y). Pertanyaannya adalah bagaimanakah cara cubic spline
menciptakan suatu kurva yang bisa menghubungkan semua titik tersebut? Atau pertanya-
an yang lebih tepat adalah bagaimanakah cara cubic spline menciptakan fungsi polinomial
yang bisa menghubungkan semua titik tersebut? Agar nantinya fungsi polinomial itu da-
pat digunakan untuk memperkirakan titik-titik yang belum terlihat pada Gambar (8.3)
sehingga kita akan dapatkan kurvanya seperti Gambar (8.4)
Untuk bisa menghasilkan kurva seperti yang tampak pada Gambar (8.4), interpolasi
cubic spline menciptakan sejumlah fungsi polinomial S(x) yang merupakan potongan

Anda mungkin juga menyukai