Admin 31 May 2026 17:10

 

Interpolasi Spline

Metode matematis untuk melengkungkan data secara mulus

Definisi Interpolasi Spline

Interpolasi spline adalah teknik numerik yang digunakan untuk membangun fungsifungsi polinomial berdasar sekumpulan titik data (node) sehingga fungsi tersebut tidak hanya melewati semua titik tersebut, tetapi juga memiliki turunan yang kontinu pada tiap titik pertemuan. Kata spline diambil dari istilah teknik konstruksisebuah balok fleksibel yang dapat melengkung dengan halus.

Berbeda dengan interpolasi polinomial tunggal (misalnya Lagrange), spline memecah domain menjadi intervalinterval kecil dan menyesuaikan sebuah polinomial rendah (biasanya derajat 3) di tiap interval. Keuntungan utama:

  • Kurva yang lebih halus (kontinuitas turunan pertama dan/atau kedua).
  • Stabilitas numerik lebih baik, terutama ketika jumlah titik data besar.
  • Kontrol lokalperubahan satu titik tidak mengubah seluruh kurva.

Jenisjenis Spline

Berbagai varian spline diciptakan untuk memenuhi kebutuhan khusus. Berikut yang paling umum:

1. Linear Spline

Polinomial berderajat satu pada tiap interval; hanya menjamin kontinuitas nilai, bukan turunan.

2. Quadratic Spline

Polinomial kuadrat; memberikan kontinuitas nilai dan turunan pertama, namun memerlukan lebih banyak kondisi batas.

3. Cubic Spline

Polinomial derajat tiga; paling populer karena memberikan kontinuitas nilai, turunan pertama, dan turunan kedua.

4. Natural Cubic Spline

Variasi cubic spline dengan kondisi batas kedua turunan di ujungujung sama dengan nol (menghasilkan kurva longgar).

5. Clamped (or FixedEnd) Spline

Menetapkan nilai turunan pertama pada kedua ujung (biasanya dari data kecepatan atau kemiringan).

6. BSpline dan NURBS

Generalitas lebih tinggi; menggunakan basis fungsi Bspline yang memungkinkan kontrol yang lebih fleksibel dengan sejumlah kontrol poin.

Rumus Dasar Cubic Spline

Misalkan ada n+1 titik data \((x_0,y_0),\dots,(x_n,y_n)\) dengan \(x_i < x_{i+1}\). Pada tiap interval \([x_i,x_{i+1}]\) kita definisikan:

S_i(x) = a_i + b_i (x-x_i) + c_i (x-x_i)^2 + d_i (x-x_i)^3            

Koefisien \(a_i,b_i,c_i,d_i\) harus memenuhi:

  • Kondisi interpolasi: \(S_i(x_i)=y_i\) dan \(S_i(x_{i+1})=y_{i+1}\).
  • Kontinuitas turunan pertama: \(S_i'(x_{i+1}) = S_{i+1}'(x_{i+1})\).
  • Kontinuitas turunan kedua: \(S_i''(x_{i+1}) = S_{i+1}''(x_{i+1})\).
  • Kondisi batas: tergantung tipe spline (natural, clamped, dsb).

Jika kita definisikan interval panjang \(h_i = x_{i+1}-x_i\) dan selisih kemiringan \(\Delta_i = \frac{y_{i+1}-y_i}{h_i}\), maka persamaan tridiagonal untuk turunan kedua \(M_i=S_i''(x_i)\) menjadi:

h_{i-1} M_{i-1} + 2 (h_{i-1}+h_i) M_i + h_i M_{i+1} = 6 (_i - _{i-1})            

Persamaan ini dibentuk untuk i=1,,n1 dan diselesaikan dengan kondisi batas yang dipilih.

LangkahLangkah Implementasi (Cubic Spline)

  1. Siapkan data: vektor x dan y, pastikan x terurut.
  2. Hitung h dan : h[i] = x[i+1]-x[i], [i] = (y[i+1]-y[i])/h[i].
  3. Buat matriks tridiagonal A dan vektor rhs:
    • A(i,i1)=h[i1], A(i,i)=2(h[i1]+h[i]), A(i,i+1)=h[i].
    • rhs[i]=6([i]-[i1]).
  4. Terapkan kondisi batas:
    • Natural: set M = M = 0 baris pertama dan terakhir A menjadi 1 pada diagonal, rhs menjadi 0.
    • Clamped: masukkan nilai turunan pada ujung ke dalam sistem.
  5. Selesaikan sistem linear: gunakan metode Thomas (algoritma O(n)) untuk memperoleh M.
  6. Hitung koefisien spline:
    a_i = y_ib_i = _i - (h_i/6)*(2*M_i + M_{i+1})c_i = M_i/2d_i = (M_{i+1}-M_i)/(6*h_i)                    
  7. Evaluasi: untuk nilai x* cari intervalnya, lalu gunakan persamaan S_i(x*).
Catatan: Pada bahasa pemrograman modern (Python, MATLAB, R) biasanya sudah tersedia fungsi siap pakai, tetapi memahami langkahlangkah di atas membantu mengoptimalkan atau menyesuaikan kebutuhan spesifik.

Contoh Kode Python (Natural Cubic Spline)

import numpy as npimport matplotlib.pyplot as pltdef natural_cubic_spline(x, y):    n = len(x) - 1    h = np.diff(x)    delta = np.diff(y) / h    # Matriks tridiagonal    A = np.zeros((n+1, n+1))    rhs = np.zeros(n+1)    A[0,0] = 1                     # natural boundary    A[n,n] = 1    for i in range(1, n):        A[i, i-1] = h[i-1]        A[i, i]   = 2*(h[i-1] + h[i])        A[i, i+1] = h[i]        rhs[i] = 6*(delta[i] - delta[i-1])    M = np.linalg.solve(A, rhs)    # M_i = S''(x_i)    # Koefisien tiap interval    a = y[:-1]    b = delta - h*(2*M[:-1] + M[1:])/6    c = M[:-1]/2    d = (M[1:] - M[:-1])/(6*h)    return a, b, c, d, xdef evaluate_spline(a,b,c,d,xk, xv):    # cari interval    i = np.searchsorted(xk, xv)-1    i = np.clip(i, 0, len(a)-1)    dx = xv - xk[i]    return a[i] + b[i]*dx + c[i]*dx**2 + d[i]*dx**3# Data contohx = np.array([0, 1, 2, 3, 4, 5], dtype=float)y = np.array([0, 0.8, 0.9, 0.1, -0.8, -1.0])a,b,c,d,knots = natural_cubic_spline(x, y)xs = np.linspace(x[0], x[-1], 400)ys = evaluate_spline(a,b,c,d,knots, xs)plt.plot(x, y, 'o', label='Data')plt.plot(xs, ys, '-', label='Natural Cubic Spline')plt.legend()plt.title('Interpolasi Spline')plt.show()            

Kode di atas menyelesaikan sistem tridiagonal secara langsung, menghitung koefisien, dan menggambar kurva hasil interpolasi.

Kesimpulan

Interpolasi spline, khususnya cubic spline, menyediakan cara yang efisien dan akurat untuk memperkirakan nilai di antara titiktitik terukur sambil menjaga kelancaran fungsi. Dengan memanfaatkan sifat lokal polinomial berderajat rendah, spline menghindari osilasi yang umum pada interpolasi polinomial tinggi serta memberikan kontrol fleksibel lewat pilihan tipe batas. Baik dalam aplikasi grafis komputer, animasi, pemodelan geofisika, ataupun pengolahan sinyal, pemahaman konsep spline menjadi bekal penting bagi siapa pun yang bekerja dengan data berkelanjutan.

File Referensi Untuk Interpolasi Spline
Screenshoot
Nama File
1656357121_interpolasi_spline_|_Matematika.pdf

Ukuran File
0.16 MB

Tipe File
PDF

Situs File
Deskripsi
File ini hanya file referensi untuk Interpolasi Spline. Tidak menjamin hal-hal spesifik yang diinginkan terdapat didalamnya.
Download langsung (menunggu 10 detik)

Rumah Kawin dan Link Download File Referensi

Equality Education Package B dan Link Download File Referensi

SEKOLAH TINGGI TEKNOLOGI KEDIRGANTARAAN (STTKD) dan Link Download File Referensi

Ruang Lingkup Termodinamika dan Link Download File Referensi

Kegiatan Ekstrakurikuler dan Link Download File Referensi