Interpolasi Polinomial Newton – Script Matlab

2 min read

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 :

Polinomial Newton

Maka solusi dari interpolasi Polinomialnya adalah :

Interpolasi Newton

Jika diturunkan akan ketemu dengan deret :

Solusi dari Deret Fourier

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) :

Solusi dari persamaan Interpolasi Newton

Dalam bentuk matriks dapat ditulis :

BEntuk Matriks Interpolasi NEwton

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 :

Rumus Akhir Polinomial Newton

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.

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.

Polinomial Newton basis Baru

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

Interpolasi Newton untuk suku N+1

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

Interpolasi Newton pada titik n+1

Maka interpolasi newton dengan basis n+1 menjadi

Interpolasi Newton Basis n+1

Dimana suku pertama dari n+1 untuk deret Taylor memiliki kesalahan perpotongan dengan persamaan :

Interpolasi NEwton terbaru

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 :

Jarak pada Interpoalsi Polinomial Newton

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

Interpolasi Newton Polinomila dengan deret Fourier

dimana

Bilangan C i untuk Deret Fourier dan Interpolasi Newton

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

i0123
xi-1012
f (xi)1,941,001,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

Tinggalkan Balasan