Fungsi polinomial memiliki banyak kegunaan di dalam matematika, yang salah satunya adalah pada interpolasi [1]. Dua formula eksplisit interpolasi polinomial yang umum digunakan adalah polinomial Lagrange dan Newton [2], yang bersama-sama dengan spline dimanfaatkan dalam sains data [3]. Polinomial Lagrange telah pula diimplementasikan dalam bahasa Wolfram [4].
Sebagai ilustrasi terdapat empat titik data dan satu titik yang ingin diperoleh melalui interpolasi polinomial sebagaimana diberikan pada gambar berikut ini.
Gambar 1. Hubungan titik-titik data $(x_1, y_1)$, $(x_2, y_2)$, $(x_3, y_3)$, dan $(x_4, y_4)$ dengan nilai yang ingin diperoleh $y$ bila diketahui $x$.
Perhatikan bahwa titik data $x$ yang ingin diketahui nilai fungsinya $y$ berada di atas semua nilai-nilai $y_1$, $y_2$, $y_3$, dan $y_4$. Orde suatu polinomial merupakan pangkat tertinggi dari suku-sukunya
\begin{equation}\label{eqn:polynomial-function-order-n} p(x) = \sum_{n = 0}^N c_n x^n, \end{equation}
di mana $N$ adalah orde polinomial. Perhatikan bahwa
\[p(x) = 1 + 273x^4\]adalah contoh polionomial berorde 4 walaupun terdapat suku-suku berorde rendah yang tidak ada dikarenakan $c_2 = 0$ dan $c_3 = 0$.
Polinomial interpolasi Lagrange dengan derajat $\le (N-1)$ akan melewati $N$ buat titik-titik data $(x_1, y_1)$, .., $(x_N, y_N)$, di mana $y_i = f(x_i)$ dengan $f(x)$ adalah fungsi interpolasi yang akan dicari. Polinomial interpolasi Lagrange dirumuskan sebagai
\begin{equation}\label{eqn:lagrange-interpolating-polynomial-p} P(x) = \sum_{i = 1}^N P_i(x), \end{equation}
dengan
\begin{equation}\label{eqn:lagrange-interpolating-polynomial-pj} P_i(x) = y_i \prod_{\begin{array}{c}j = 1 \newline j \ne i \end{array}}^N \frac{x - x_j}{x_i - x_j}. \end{equation}
Terdapat data beberapa titik seperti diberikan pada gambar berikut ini.
Gambar 2. Titik-titik data $(1, 11)$, $(4, 18)$, $(7, 7)$, dan $(10, 5)$.
Akan dilakukan interpolasi polinomial pada empat titik data yang diberikan pada Gambar 2 sehingga dapat dicari nilai $y$ pada sembarang $x$ untuk $1 \le x \le 10$.
Gambar 3. Kurva hasil interpolasi polinomial untuk titik-titik data $(1, 11)$, $(4, 18)$, $(7, 7)$, dan $(10, 5)$.
Hasil interpolasi polinomial berupa kurva yang melewati semua titik-titik data diberikan pada Gambar 3.
Terdapat program sederhana menggunakan bahasa pemrograman Python berikut ini
# 0502-lagrange-inter.py
# Lagrange interpolatio
# Sparisoma Viridi | https://github.com/dudung
# 20220222 Create this example.
# define data points
x = [1, 4, 7, 10]
y = [11, 18, 7, 5]
N = min(len(x), len(y))
# define lagrange interpolating polynomial function p(x)
def prod(i, xx):
prod = 1
for j in range(N):
if j != i:
prodj = (xx - x[j]) / (x[i] - x[j])
else:
prodj = 1
prod = prod * prodj
return prod
def p(xx):
sum = 0
for i in range(N):
pi = y[i] * prod(i, xx)
sum = sum + pi
return sum
# use the function
for xx in range(1, 11):
yy = p(xx)
print(xx, "%.3f" % yy)
yang akan memberikan hasil berikut
==== RESTART: 0502-lagrange-inter.py ====
1 11.000
2 17.000
3 19.000
4 18.000
5 15.000
6 11.000
7 7.000
8 4.000
9 3.000
10 5.000
saat dijalankan. Program tersebut dapat dijalan secara daring di OneCompiler 3xu45zkbs.
Hasil keluaran program dapat disajikan dalam bentuk tabel berikut ini.
Tabel 1 Hasil keluaran program ``.
$x$ | $y$ |
---|---|
$\color{#88e}{1}$ | $\color{#88e}{11.00}$ |
2 | 17.00 |
3 | 19.00 |
$\color{#88e}{4}$ | $\color{#88e}{18.00}$ |
5 | 15.00 |
6 | 11.00 |
$\color{#88e}{7}$ | $\color{#88e}{7.00}$ |
8 | 4.00 |
9 | 3.00 |
$\color{#88e}{10}$ | $\color{#88e}{5.00}$ |
Perhatikan bahwa nilai-nilai telah dibulatkan sampai dua angka di belakang koma pada Tabel 1 untuk yang bukan bilangan bulat. Nilai-nilai berwarna ($\color{#88e}\blacksquare$) adalah titik-titik data, sedangkan yang lainnnya merupakan hasil interpolasi polinomial
Gambar 4. Kurva interpolasi polinomial Lagrange dan titik-titik hasil interpolasi ($\circ$) serta titik-titik datanya semula ($\color{#88e}\blacksquare$).
Perhatikan bahwa pada Gambar 4 telah terdapat titik-titik pada kurva polinomial, yang semula hanya menghubungkan titik-titik data pada Gambar 3 dan belum ada titik-titik lain di antara titik-titik data.
0502-lagrange-inter.py
carilah nilai $y$ untuk $x = 3.5, 6.5, 9.5$. Tampilkan sampai tiga angka di belakang koma.— Sparisoma Viridi (@6unpnp) February 22, 2022