Ahmaddahlan.NET – Interpolasi Lagrange yang memenuhi n+1 untuk data {xi,yi=f(xi),i=0,…,n} memenuhi data li(x). Polinomial dari Interpolasi Newton dapat ditulis sebagai berikut :
Maka solusi dari interpolasi Polinomialnya adalah :
Jika diturunkan akan ketemu dengan deret :
Jika data (xn, yn) berikutna didapatkan, maka persamaan ini bisa digunakna untuk menghitung koefisien cn. Untuk derajat polinomial nth maka Nn(x) akan memenuhi n+1 di titik (xi, yi), (i = 0, … , n) :
Dalam bentuk matriks dapat ditulis :
Koefisien c0 , … , cn dapat diselesaikan dengan sistem persamaan segitiga secara bertahap :
c0 =
c1 =
c2 = , dst
secara umum kita tuliskan :
Persamaan dapat dijabarkan ke kth untuk f[x0,…,xk] yang dimulai dari k+1 sehingga Interpolasi Polynomial Newton dapat ditulis :
Interpolasi Polinomial Newton sama dengan yang ada pada Lagrange dan Interpolasi Fungsi Berpangkat yakni Nn(x) = Ln(x)=Pn(x). Ketiganya adalah Polinomial berpangkan nth hanya berasal dari basis dan koefisien yang berbeda.
Daftar Isi
Kondisi Khusus Interpolasi Polinomial Newton
a. xn+1, yn+1
Ketika terdapat titik tambahan xn+1, yn+1 yang bisa digunakan maka semua basis polinomial sebelumnya bisa digunakan dengan koefisien tetap, analisinya hanya perlu mencari polinomial basis baru untuk n+1.
pada titik n+1, perbedaanya ditunjukkan cn+1 = f [ x0 , … , xn , xn+1]. Melalui persamaan ini, Interpolasi Newton yang baru untuk n+1 bisa didapatkan dengan aturan pemjulahan
karena Nn+1 pasti melalui titik (xn+1, yn+1) maka :
f(xn+1) = Nn+1(xn+1) = Nn+1 + f [ x0 , … , xn , xn+1] l(x)
namun titik xn+1 adalah titik yang bisa dimana saja maka, maka kita dapat menggantinya dengan x sehingga
f(x) = Nn(x) = Nn+1 + f [ x0 , … , xn , x] l(x)
b. n + 1
Misalkan semua titik n + 1 mendekati satu posisi, xi → x0, (i = 1,…,n), pada batas diaman semaunya mendekati nilai x0 yang terulang sebanyak n kali
Maka interpolasi newton dengan basis n+1 menjadi
Dimana suku pertama dari n+1 untuk deret Taylor memiliki kesalahan perpotongan dengan persamaan :
dimana ξ (dibaca xi) adalah titik yang sama untuk xi dan x0, maka dari sini kita bisa lihat bahwa deret Taylor adalah kasus khusus untuk interpolasi Polinomial newton.
c. n + 1 pada x0 = a ≤ xi ≤ … ≤ xn-1 ≤ xn = b
x0 = a ≤ xi ≤ … ≤ xn-1 ≤ xn = b jaraknya sama dengan :
Interpolasi Newton dapat disederhanakan dengan x ∈ (a,b), misalkan c = (x – x0) / h, maka x = x0 + ch dan x – xi = (x0 + ch) – (x0 + ih) = (c – i ) h, sehingga Polinomial Newton bisa dituliskan dalam bentuk
dimana
Contoh Kasus :
Sebuah fungsi y = f (x) = x sin (2x + π/4) + 1 dengan derajat polinomial n = 3 dan n + 1 = 4, ditunjukkan pada data berikut ini
i | 0 | 1 | 2 | 3 |
xi | -1 | 0 | 1 | 2 |
f (xi) | 1,94 | 1,00 | 1,35 | -0,99 |
Tentukan : Devide Diference untuk suku f [xi] = f (xi) untuk i = 0, …, n
Script untuk Analisis Menggunakan Matlab
Untuk menyelesaikan maslaah diatas dengan menggunakan bantuan Peprograman Matlab, koefisien ci = f[x0,…,xn] dimana i = 0,…,n
function [v N]=NI(u,x,y) % Newton's Interpolation % vectors x and y contain n+1 points and the corresponding function values % vector u contains all discrete samples of the continuous argument of f(x) n=length(x); % number of interpolating points k=length(u); % number of discrete sample points v=zeros(1,k); % Newton interpolation N=ones(n,k); % all n Newton's polynomials (each of m elements) N(1,:)=y(1); % first Newton's polynomial v=v+N(1,:); for i=2:n % generate remaining Newton's polynomials for j=1:i-1 N(i,:)=N(i,:).*(u-x(j)); end c=DividedDifference(x,y,i) % get the ith coefficient c_i v=v+c*N(i,:); % weighted sum of all Newton's polynomials end end function dd=DividedDifference(x,y,i) % generate f[x_0,...,x_i] in expanded form dd=0; for k=1:i % loop for summation de=1; for l=1:i % loop for product if k~=l de=de*(x(k)-x(l)); end end dd=dd+y(k)/de; % ith coefficient c_i end end function dd=DividedDifferenceMatrix(x,y) % generate divided difference matrix n=length(x); % the coefficients are along diagonal dd=zeros(n); % matrix of divided differences dd(:,1)=y; for i=1:n fprintf('%6.3f\t',dd(i,1)) for j=2:i dd(i,j)=(dd(i,j-1)-dd(i-1,j-1))/(x(i)-x(i-j+1)); fprintf('%6.3f\t',dd(i,j)); end fprintf('\n'); end end