Anda di halaman 1dari 11

Nama: Phahul Zhemas Zul Nehan

NRP : 01111940000004
Kelas : Fisika Komputasi I
Tugas Interpolasi
A. Interpolasi Polinomial Newton
Ord Skrip Matlab Hasil
o
10 %deklarasi data: batas bawah x = -1, batas atas x=1
x=[-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1]; %input
nilai x
y=1./(1+8*x.^2);%input fungsi y terhadap x

%algoritma polinomial Newton:


N=length(x)-1;%panjang data N dari x
DD=zeros(N+1,N+1); %Menentukan matriks kosong dengan ordo
tertentu
DD(1:N+1,1)=y'; %Untuk memanggil baris y pada matriks DD
dalam bentuk kolom pertama

%Menentukan Divided Difference


for k=2:N+1 %penentuan matriks kolom 2 sampai ke N+1
for m=1:N+2-k %penentuan matriks baris 2 sampai ke
N+2-k
DD(m,k)=(DD(m+1,k-1)-DD(m,k-1))/(x(m+k-1)-x(m));
%proses menentukan nilai devided defference
end
end

a=DD(1,:);%Memanggil data matriks a baris pertama dari


matriks DD
n=a(N+1);%Memanggil n sebagai nilai a paling terakhir dari
(N+1)
for k=N:-1:1 %Penentuan baris ke-N hingga baris ke-1
dengan pengurangan minus 1
n=conv(n, [1 -x(k)])+[zeros(size(n)) a(k)] %Proses
menentukan koefisien interpolasi polinomial newton
terbesar untuk setiap kondisi orde n
end

%%%plot grafik
xx=[-1:0.02: 1]; % Interval to look over
yy=1./(1+8*xx.^2); % Graph of the true function
yy1=polyval(n,xx); % Graph of the approximate polynomial
function
subplot(221), plot(xx,yy,'k-', x,y,'o', xx,yy1,'b')
subplot(222), plot(xx,yy1-yy,'r') % Graph of the error
function
8 %deklarasi data: batas bawah x = -1, batas atas x=1
x=[-1 -0.75 -0.5 -0.25 0 0.25 0.5 0.75 1]; %input nilai x
y=1./(1+8*x.^2);%input fungsi y terhadap x

%algoritma polinomial Newton:


N=length(x)-1;%panjang data N dari x
DD=zeros(N+1,N+1); %Menentukan matriks kosong dengan ordo
tertentu
DD(1:N+1,1)=y'; %Untuk memanggil baris y pada matriks DD
dalam bentuk kolom pertama

%Menentukan Divided Difference


for k=2:N+1 %penentuan matriks kolom 2 sampai ke N+1
for m=1:N+2-k %penentuan matriks baris 2 sampai ke
N+2-k
DD(m,k)=(DD(m+1,k-1)-DD(m,k-1))/(x(m+k-1)-x(m));
%proses menentukan nilai devided defference
end
end

a=DD(1,:);%Memanggil data matriks a baris pertama dari


matriks DD
n=a(N+1);%Memanggil n sebagai nilai a paling terakhir dari
(N+1)
for k=N:-1:1 %Penentuan baris ke-N hingga baris ke-1
dengan pengurangan minus 1
n=conv(n, [1 -x(k)])+[zeros(size(n)) a(k)] %Proses
menentukan koefisien interpolasi polinomial newton
terbesar untuk setiap kondisi orde n
end

%%%plot grafik
xx=[-1:0.02: 1]; % Interval to look over
yy=1./(1+8*xx.^2); % Graph of the true function
yy1=polyval(n,xx); % Graph of the approximate polynomial
function
subplot(221), plot(xx,yy,'k-', x,y,'o', xx,yy1,'b')
subplot(222), plot(xx,yy1-yy,'r') % Graph of the error
function

4 %deklarasi data: batas bawah x = -1, batas atas x=1


x=[-1 -0.5 0 0.5 1]; %input nilai x
y=1./(1+8*x.^2);%input fungsi y terhadap x

%algoritma polinomial Newton:


N=length(x)-1;%panjang data N dari x
DD=zeros(N+1,N+1); %Menentukan matriks kosong dengan
ordo tertentu
DD(1:N+1,1)=y'; %Untuk memanggil baris y pada matriks
DD dalam bentuk kolom pertama

%Menentukan Divided Difference


for k=2:N+1 %penentuan matriks kolom 2 sampai ke N+1
for m=1:N+2-k %penentuan matriks baris 2 sampai
ke N+2-k
DD(m,k)=(DD(m+1,k-1)-DD(m,k-1))/(x(m+k-1)-x(m));
%proses menentukan nilai devided defference
end
end

a=DD(1,:);%Memanggil data matriks a baris pertama


dari matriks DD
n=a(N+1);%Memanggil n sebagai nilai a paling terakhir
dari (N+1)
for k=N:-1:1 %Penentuan baris ke-N hingga baris ke-1
dengan pengurangan minus 1
n=conv(n, [1 -x(k)])+[zeros(size(n)) a(k)]
%Proses menentukan koefisien interpolasi polinomial
newton terbesar untuk setiap kondisi orde n
end

%%%plot grafik
xx=[-1:0.02: 1]; % Interval to look over
yy=1./(1+8*xx.^2); % Graph of the true function
yy1=polyval(n,xx); % Graph of the approximate
polynomial function
subplot(221), plot(xx,yy,'k-', x,y,'o', xx,yy1,'b')
subplot(222), plot(xx,yy1-yy,'r') % Graph of the
error function
B. Interpolasi Polinomial Lagrange

%deklarasikan data
x=[-2 -1 1 2 4]; %masukkan nilai x
y=[-6 0 0 6 60]; %masukkan nilai y

%cari vektor koefisien n dengan menggunakan polinomial newton


N=length(x)-1;%panjang data dari x
DD=zeros(N+1,N+1); %Menentukan matriks kosong dengan ordo tertentu
DD(1:N+1,1)=y'; %Untuk memanggil baris y pada matriks DD dalam bentuk kolom pertama

%Menentukan Divided Difference


for k=2:N+1 %penentuan matriks kolom 2 sampai ke N+1
for m=1:N+2-k %penentuan matriks baris 2 sampai ke N+2-k
DD(m,k)=(DD(m+1,k-1)-DD(m,k-1))/(x(m+k-1)-x(m)); %proses menentukan nilai devided defference
end
end

a=DD(1,:); %Memanggil data matriks a baris pertama dari matriks DD


n=a(N+1); %Memanggil n sebagai nilai a paling terakhir dari (N+1)
for k=N:-1:1 %Penentuan baris ke-N hingga baris ke-1 dengan pengurangan minus 1
n=conv(n,[1 -x(k)])+[zeros(size(n)) a(k)] %Proses menentukan koefisien interpolasi polinomial newton terbesar untuk
setiap kondisi orde n
end

%%%cari vektor koefisien l dengan menggunakan polinomial lagrange


l=0; %memanggil untuk menentukan nilai l=0
for m=1:N+1 %penentuan matriks baris 1 sampai ke N+1
P=1; %memanggil konstanta polinomial untuk identitas yaitu bernilai 1
for k=1:N+1 %penentuan matriks kolom 1 sampai ke N+1
if k~=m,P=conv(P,poly(x(k)))/(x(m)-x(k)); %proses menentukan persamaan dan digunakan metode konvolusi untuk
mengalikan dua fungsi
end
end
L=[]; %Memanggil matriks L berupa matriks kosong
L(m,:)=P %Memanggil matriks L baris m untuk semua kolom dengan mengimput dari P
l=l+y(m)*P %untuk menyatakan konstanta polinomial Lagrange
end

%%%plot grafik Newton


xxN=[-2:0.02:2];
yyN=polyval(n,xxN);%n merupakan vektor koefisien (a0, a1, dst)
clf, plot(xxN,yyN,'b-',x,y,'*');

%%%Plot grafik Lagrange


figure()
xxL=[-2: 0.02 : 2]; yyL=polyval(l,xxL); % interpolate for [-2,2]
clf, plot(xxL,yyL,'b', x,y,'*') % plot the graph
Hasil Interpolasi Polinomial Lagrange
n =

0 1

n =

0 1 -3

n =

0 1 -2 3

n =

0 1 0 -1 0

L =

0.0139 -0.0833 0.0972 0.0833 -0.1111

l =

-0.0833 0.5000 -0.5833 -0.5000 0.6667

L =
0 0 0 0 0
-0.0333 0.1667 0 -0.6667 0.5333

l =

-0.0833 0.5000 -0.5833 -0.5000 0.6667

L =

0 0 0 0 0
0 0 0 0 0
0.0556 -0.1667 -0.4444 0.6667 0.8889

l =

-0.0833 0.5000 -0.5833 -0.5000 0.6667

L =

0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
-0.0417 0.0833 0.3750 -0.0833 -0.3333

l =

-0.3333 1.0000 1.6667 -1.0000 -1.3333


L =

0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0.0056 0.0000 -0.0278 0.0000 0.0222

l =

0.0000 1.0000 0.0000 -1.0000 0

Anda mungkin juga menyukai