METODE NUMERIK POLINOM LAGRANGE AND POLINOM NEWTON

Polinom Lagrange dan Newton - Metode Numerik

Polinom Lagrange dan Polinom Newton

Interpolasi polinomial adalah salah satu metode numerik yang berguna untuk memperkirakan nilai fungsi di antara titik data yang diketahui. Pada artikel ini, kita akan membahas dua metode populer: Polinom Lagrange dan Polinom Newton.

1. Polinom Lagrange

Metode ini membentuk polinomial berdasarkan titik-titik data yang diberikan. Bentuk umum Polinom Lagrange adalah:

L(x) = Σ (y[i] * Π ((x - x[j]) / (x[i] - x[j])))
        

Langkah-langkah:

  • Identifikasi titik data (x[i], y[i]).
  • Hitung basis polinomial untuk setiap titik.
  • Jumlahkan hasil kali basis dengan nilai y untuk setiap titik.

Contoh Kode Python

def lagrange_interpolation(x_data, y_data, x0):
    n = len(x_data)
    result = 0
    for i in range(n):
        term = y_data[i]
        for j in range(n):
            if i != j:
                term *= (x0 - x_data[j]) / (x_data[i] - x_data[j])
        result += term
    return result

# Contoh penggunaan
x = [1, 2, 3]
y = [1, 4, 9]
x0 = 2.5
print(f"Hasil interpolasi: {lagrange_interpolation(x, y, x0)}")

2. Polinom Newton

Polinom Newton menggunakan pendekatan rekursif dengan selisih terbagi (divided differences). Bentuk umum polinomialnya:

P(x) = f[x0] + f[x0, x1](x - x0) + f[x0, x1, x2](x - x0)(x - x1) + ...
        

Contoh Kode Python

def divided_differences(x_data, y_data):
    n = len(x_data)
    diff_table = [y_data[:]]
    for i in range(1, n):
        column = []
        for j in range(n - i):
            value = (diff_table[i - 1][j + 1] - diff_table[i - 1][j]) / (x_data[j + i] - x_data[j])
            column.append(value)
        diff_table.append(column)
    return [row[0] for row in diff_table]

def newton_interpolation(x_data, y_data, x0):
    coeff = divided_differences(x_data, y_data)
    result = coeff[0]
    product = 1
    for i in range(1, len(x_data)):
        product *= (x0 - x_data[i - 1])
        result += coeff[i] * product
    return result

# Contoh penggunaan
x = [1, 2, 3]
y = [1, 4, 9]
x0 = 2.5
print(f"Hasil interpolasi: {newton_interpolation(x, y, x0)}")




Comments