0% menganggap dokumen ini bermanfaat (0 suara)
11 tayangan5 halaman

Metode Interpolasi Lagrange dan Spline

Bab ini membahas dua metode interpolasi, yaitu interpolasi Lagrange dan interpolasi Spline-cubic. Interpolasi Lagrange menggunakan fungsi polinomial untuk memprediksi nilai berdasarkan data titik yang diketahui, sementara interpolasi Spline-cubic menggunakan kurva berbentuk S yang lebih halus. Kedua metode dijelaskan dengan contoh script Python untuk mendapatkan nilai prediksi dan menggambar kurva interpolasi berdasarkan data titik.

Diunggah oleh

Mulia Saputra
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
11 tayangan5 halaman

Metode Interpolasi Lagrange dan Spline

Bab ini membahas dua metode interpolasi, yaitu interpolasi Lagrange dan interpolasi Spline-cubic. Interpolasi Lagrange menggunakan fungsi polinomial untuk memprediksi nilai berdasarkan data titik yang diketahui, sementara interpolasi Spline-cubic menggunakan kurva berbentuk S yang lebih halus. Kedua metode dijelaskan dengan contoh script Python untuk mendapatkan nilai prediksi dan menggambar kurva interpolasi berdasarkan data titik.

Diunggah oleh

Mulia Saputra
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd

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, [Link] 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, [Link] 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 [Link] as plt
3
4 #-----Menginputkan 3 pasangan nilai---------------------------------
5 x = [Link]([2, 4, 7.2]) #pasangan nilai x dan y
6 y = [Link]([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 = [Link](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 [Link](x,y,’or’) # memplot semua titik x,y
21 [Link](u,P,’sb’) # memplot titik u,P
22 [Link]() # membuat grid
23 [Link]("Interpolasi Lagrange") # membuat judul grafik
24 [Link]("nilai x") # membuat label sumbu x
25 [Link]("P(x)") # membuat label sumbu y
26 [Link](y=0, color=’#000000’) #menegaskan garis sumbu-x
27 [Link](x=0, color=’#000000’) #menegaskan garis sumbu-y
28 [Link]() # 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 [Link] as plt
3
4 x = [Link]([2, 4, 7.2])
5 y = [Link]([4, 6.3, 5])
6 n = [Link](x)
7
8 u = [Link]([Link](x), [Link](x), 50)
9 m = [Link](u)
10
11 P = [Link](m)
12 L = [Link](n)
Kitab Komputasi untuk Geosains - Edisi 1 - Dr. Eng. Supriyanto, [Link] 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, [Link] 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 [Link](u,P,’-b’) # memplot kurva interpolasi Lagrange
26 [Link](x,y,’or’) # memplot titik x,y pada grafik
27 [Link]() # membuat garis-garis pada grafik
28 [Link]("Kurva interpolasi Lagrange") # membuat judul grafik
29 [Link]("nilai x") # membuat label sumbu x
30 [Link]("P(x)") # membuat label sumbu y
31 [Link](y=0, color=’#000000’) #menegaskan garis sumbu-x
32 [Link](x=0, color=’#000000’) #menegaskan garis sumbu-y
33 [Link]() # 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