BAB 6. INTERPOLASI - Python
BAB 6. INTERPOLASI - Python
Mengenai:
1. Pengertian Interpolasi
2. Teknik Umum yang digunakan dalam Interpolasi
3. Interpolasi menggunakan Python
Pendahuluan Interpolasi
Interpolasi digunakan untuk mencari suatu nilai yang berada di antara beberapa
titik data yang telah diketahui nilainya. Untuk dapat memperkirakan nilai tersebut,
pertama kali dibuat suatu fungsi atau persamaan yang melalui titik data.
Metode interpolasi yang banyak digunakan adalah interpolasi polinomial.
Persamaan polinomial adalah persamaan aljabar yang mengandung jumlah dari variabel
x berpangkat bilangan bulat (integer). Pada bab ini akan dijelaskan metode untuk orde
satu (interpolasi linear), yang mempunyai bentuk sedarhana dan mudah dipahami. Pada
polinomial berderajat satu, diperoleh bentuk interpolasi linear yang sudah banyak
dikenal. Interpolasi linear memberikan hasil yang kurang teliti. Berdasarkan pemahaman
tersebut, selanjutnya akan dipelajari interpolasi polinomial dengan deraj at lebih besar
dari satu (kuadrat, kubik), yang merupakan fungsi tidak linear. Interpolasi ini
memberikan hasil lebih baik.
x x0 x1 x2 …… xn
f(x) f(x 0) f(x 1) f(x 2) …… f(x n)
f(x1 ) − f(x0 )
f1 (x) = f(x0 ) + (x − x0 )
x1 − x0
Interpolasi linear menggunakan dua titik (x0 , y 0 ) dan (x1 , y1 ) yang berada paling dekat
dengan nilai x.
Algoritma Interpolasi Linear
1. Tentukan nilai x0 , y0 x1 , dan y1 .
2. Periksa apakah x0 = x1 . Jika ya, maka kembali ke langkah 1 sebab nilai fungsinya
tidak terdefinisi dalam kondisi ini. Jika tidak, maka dilanjutkan ke langkah 3.
3. Masukkan nilai x.
4. Periksa apakah min {x0 , x1 } ≤ x ≤ max {x0 , x1 }. Jika tidak, maka masukkan nilai x
yang lain. Jika ya, maka dilanjutkan langkah 5.
y2 −y1
5. Hitung P = y1 + (x − x1 ) atau dapat juga menggunakan f1 (x) = f(x0 ) +
x2−x1
f(x1)− f(x0)
(x − x0 )
x1− x0
6− 5
= 5+ (5 − 4)
7− 4
1
= 5 + (1) = 5,333
3
b. Interpolasi Kuadratik
x1,y
y1
1
y2 x2,y2
y0
x0,y
0
x0 x1 x2 X
y = b0 + b1 (x − x0 ) + b2 (x − x0 )(x − x1 )
Dimana: b0 = y 0
y1 − y0 y 2 − y1 c1 − b1
b1 = c1 = b2 =
x1 − x0 x2 − x1 x2 − x0
6. Hitung y = b0 + b1 (x − x0 ) + b2 (x − x0 )(x − x1 )
7. Periksa apakah b2 = 0. Jika ya, maka persamaan yang dihasilkan linear. Jika tidak
maka persamaan yang dihasilkan merupakan persamaan kuadrat.
8. Tulis hasil y = P.
Contoh 6.2:
Diketahui data sebagai berikut:
x y
1,00 3,00
4,00 5,00
7,00 9,00
10,00 16,00
Untuk x = 5, maka diambil titik data (4, 5), (7,9) dan (10, 16)
b0 = y0 = 5
y1 − y0 9−5
b1 = = = 1,333
x1− x0 7−4
y2 − y1 16−9
c1 = = = 2,333
x2 − x1 10−7
c 1− b1 2,333−1,333
b2 = = = 0,167
x2 − x0 10−4
y = b0 + b1 (x − x0 ) + b2 (x − x0 )(x − x1 )
= 5 + 1,333(5 - 4) + 0,167 (5 – 4)(5 – 7)
= 5 + 1,333 – 0,333 = 6
Contoh 6.3:
Diketahui data sebagai berikut:
x y
0.5 0.148
0.7 0.248
0.9 0.370
1.1 0.518
Untuk x = 0,8, maka diambil titik data (0.5,0.418) , (0.7,0.248), (0.9,0.370), dan
(1.1,0.518)
b0 = y 0 = 0,148
y1− y0 0.248−0.418
b1 = = = −0,85
x1− x0 0.7−0.5
y2 − y1 0.370 − 0.248
c1 = = = 0,61
x2 − x1 0.9 − 0.7
y3 − y2 0.518 − 0.370
d1 = = = 0,74
x3 − x2 1.1 − 0.9
c1 − b1 0,61 − (−0,85)
b2 = = = 3,65
x2 − x0 0,9 − 0,5
d1 − c1 0,74 − 0,61
c2 = = = 0,325
x3 − x1 1,1 − 0,7
c2 − b2 0,325 − 3,65
b3 = = = −5,54167
x3 − x0 1,1 − 0,5
y = b0 + b1 (x − x0 ) + b2 (x − x0 )(x − x1 ) + b3 (x − x0 )(x − x1 )(x − x2 )
= 0,148 + (-0,85)(0,8 - 0,5) + 3,65(0,8 – 0,5)(0,8 – 0,7) + (-5,54167)(0,8 – 0,5)(0,8
- 0,7)(0,8 - 0,9)
=0,418 + (-0,255) + 0,1095 + 0,016625= 0,2891250 ≅ 0,306
a. Interpolasi Linear
Kita juga dapat menyelesaikan permasalahan interpolasi linear dengan menerapkan
ke dalam kode Python. Untuk implementasi interpolasi linear pada permasalahan
contoh 6.1 di atas kita dapat amati pada listing program 6.1 berikut ini.
# Tampilkan hasil
print('Nilai interpolasi pada titik x %0.4f adalah
%0.4f' %(x,yp))
x_=np.array([x0,x,x1])
y_=np.array([y0,yp,y1])
plt.scatter(x_,y_,color="black")
plt.plot(x_,y_,color="black")
plt.show()
Maka jika program tersebut dijalankan akan menghasilkan output seperti gambar 6.5
dibawah ini.
b. Interpolasi Kuadratik
Kita juga dapat menyelesaikan permasalahan Interpolasi Kuadratik dengan
menerapkan ke dalam kode Python. Untuk implementasi Interpolasi Kuadratik pada
permasalahan contoh 6.2 di atas kita dapat amati pada listing program 6.2 berikut ini.
# Mengimpor library
import numpy as np
import matplotlib.pyplot as plt
from scipy.interpolate import interp1d
b0=y0
b1 = (y1-y0)/(x1-x0)
c1 = (y2-y1)/(x2-x1)
b2 = (c1-b1)/(x2-x0)
# Nilai y pada Interpolasi kuadratik
yp = interpolasi_kuadratik(x0, y0, x1, y1, x2, y2, x, b0, b1, b2)
# Tampilkan hasil
print('Nilai interpolasi pada titik x %0.4f adalah %0.4f' %(x,yp))
# Membuat Grafik
titik_x = np.array([x0,x1,x,x2])
titik_y = np.array([y0,y1,yp,y2])
plt.show()
# Mengimpor library
from scipy.interpolate import interp1d
import numpy as np
import matplotlib.pyplot as plt
b0=y0
b1 = (y1-y0)/(x1-x0)
c1 = (y2-y1)/(x2-x1)
b2 = (c1-b1)/(x2-x0)
d1 = (y3 - y2)/(x3-x2)
c2 = (d1 - c1)/(x3-x1)
b3 = (c2 - b2)/(x3-x0)
# Tampilkan hasil
print('Nilai interpolasi pada titik x %0.4f adalah %0.4f' %(x,yp))
# Membuat Grafik
titik_x = np.array([x0,x1,x,x2,x3])
titik_y = np.array([y0,y1,yp,y2,y3])
plt.show()
Listing program 6.3b: Lanjutan dari listing program interpolasi polinomial newton
Sehingga jika program tersebut dijalankan, maka output dari program tersebut dapat
dilihat seperti gambar 6.9 dibawah ini
Refrensi
Delima, N. (2021, Februari 1 Januari 2022). Metode Numerik. Retrieved from
researchgate.net: https://www.researchgate.net/publication/349311746
Muzzamil. (2017, Mai 1 Januari 2022). Metode Newton Raphson. Retrieved from
steemit.com: https://steemit.com/indonesia/@muzammil/metode-newton-
raphson
Paulus, E. d. (2018). Perangkat Komputasi Numerik SCILAB berbasis Open-Source:
Algoritma dan Penerapannya. Yogyakarta: Deepublish.
Rosidi, M. (2019, Desember 23). Metode Numerik Menggunakan R Untuk Teknik
Lingkungan. Retrieved from https://bookdown.org/
Sanjaya WS, M. (2015). Metode Numerik Berbasis Python. Yogyakarta: Penerbit Gava
Media.
Sasongko, B. S. (2010). Metode Numerik dengan Scilab. Yogyakarta: Penerbit ANDI.
Sholihun, & Fatomi, Z. S. (2021). Pemrograman dan Komputasi Numerik
Menggunakan Python. Yogyakarta: Gadjah Mada University Press.
Triatmodjo, B. (2018). Metode Numerik. Yogyakarta: Beta Offset.