A. TUJUAN
Tujuan dari praktikum kali ini adalah sebagai berikut:
1.
Mampu menerapkan metode Newton untuk menetukan koefisien
polinomial dan evaluasi polinomial.
2.
Mampu menerapkan metode Newton untuk Neville polynomial.
B. LANDASAN
TEORI
Matlab (atau Matrix
Laboratorium) adalah software komputer yang mengandung numerikal dan bahasa
pemrograman komputer. Software ini biasanya diaplikasikan pada ilmu komputasi,
pemrograman, dan membantu pengerjaan pada bidang matematika.
Matlab dibuat bertujuan
untuk mempermudah akses untuk perangkat lunak matrix yang di kembangkan oleh
linpack (sistem paket linear) dan eispack (sistem paket eigen). Matlab adalah
bahasa kinerja tinggi untuk komputasi teknis. Ini mengintegrasikan komputasi,
visualisasi, dan lingkungan pemrograman. Selanjutnya, matlab adalah lingkungan
bahasa pemrograman modern: memiliki struktur data yang canggih , berisi
built-in editing dan alat debugging, dan mendukung pemrograman berorientasi
obyek.faktor-faktor ini membuat matlab aplikasi yang sangat baik untuk
pengajaran dan penelitian (Ameliaadz 2013).
Dalam analisis numerik, metode Newton (juga dikenal
sebagai metode Newton-Raphson), yang mendapat nama dari Isaac Newton dan Joseph
Raphson, merupakan metode yang paling dikenal untuk mencari hampiran terhadap
akar fungsi riil(Bismo Setijo, 1999).
Metode
Newton sering konvergen dengan cepat, terutama bila iterasi dimulai "cukup
dekat" dengan akar yang diinginkan. Namun bila iterasi dimulai jauh dari
akar yang dicari, metode ini dapat meleset tanpa peringatan. Implementasi
metode ini biasanya mendeteksi dan mengatasi kegagalan konvergensi.
Diketahui
fungsi ƒ(x) dan turunannya ƒ '(x), kita memulai dengan tebakan pertama, x0.
Hampiran yang lebih baik x1 adalah
Deskripsi metode Newton
Ilustrasi salah satu iterasi metode
Newton (fungsi ƒ ditunjukkan dengan warna biru dan garis singgung dalam warna
merah). Kita melihat bahwa xn+1 adalah hampiran yang lebih baik
daripada xn untuk akar x dari fungsi f.
Gagasan
metode ini adalah sebagai berikut: kita memulai dengan tebakan awal yang cukup
dekat terhadap akar yang sebenarnya, kemudian fungsi tersebut dihampiri dengan
garis singgungnya (yang dapat dihitung dengan alat-alat kalkulus, dan kita
dapat menghitung perpotongan garis ini dengan sumbu-x (yang dapat dilakukan
dengan mudah menggunakan aljabar dasar). Perpotongan dengan sumbu-x ini
biasanya merupakan hampiran yang lebih baik ke akar fungsi daripada tebakan
awal, dan metode ini dapat diiterasi.
Misalkan
ƒ : [a, b] → R adalah fungsi terturunkan yang terdefinisi pada selang [a, b]
dengan nilai merupakan bilangan riil R. Rumus untuk menghampiri akar dapat
dengan mudah diturunkan. Misalkan kita memiliki hampiran mutakhir xn.
Maka kita dapat menurunkan hampiran yang lebih baik, xn+1 dengan
merujuk pada diagram di kanan. Kita tahu dari definisi turunan pada suatu
titik bahwa itu adalah kemiringan garis singgung pada titik tersebut,
yaitu:
Di
sini, f ' melambangkan turunan fungsi f. Maka dengan aljabar sederhana kita
mendapatkan
Kita
memulai proses dengan nilai awal sembarang x0. Metode ini biasanya
akan mengerucut pada akar, dengan syarat tebakan awal cukup dekat
pada akar tersebut, dan bahwa ƒ'(x0) ≠ 0(Anonim).
C. ALGORITMA
DAN FLOWCHART
3.1.
Algoritma
A.
Function NewtonPoly
Algoritma pada function NewtonPoly adalah sebagai berikut:
a.
Menginput nilai xData dan yData dimana
xData = [0.15;
2.3; 3.15; 4.85; 6.25; 7.95;]
yData = [4.79867; 4.49013;
4.22430; 3.47313;2.66674; 1.51909]
b.
Menghitung nilai
n=length(xData)
p=a(n)
c.
Menghitung matriks k dengan eliminasi NewtonPoly
k = 1:n-1
d.
Menghitung nilai p
p = a(n-k) + (x
- xData(n-k))*p
e.
Menampilkan hasil dari nilai p
B.
Function NewtonCoeff
Algoritma pada function
NewtonCoeff adalah sebagai berikut:
a.
Menginput nilai xData dan yData dimana
xData = [0.15;
2.3; 3.15; 4.85; 6.25; 7.95;]
yData = [4.79867; 4.49013;
4.22430; 3.47313;2.66674; 1.51909]
b.
Menghitung nilai
n =
length(xData)
a = yData
c.
Menghitung matriks k dengan eliminasi NewtonCoeff
k =2:n
d.
Menghitung nilai a
a(k:n)=(a(k:n) - a(k-1))./(xData(k:n) - xData(k-1))
e.
Menampilkan hasil dari nilai a
C. Function Neville
Algoritma pada function
Neville adalah sebagai berikut:
a.
Menginput nilai xData dan yData dimana
xData
=
[-1.2;0.3;1.1]
yData = [-5.76;-5.61;-3.69]
b.
Menghitung nilai
n =
length(xData)
y =
yData
c.
Menghitung matriks k dengan eliminasi Neville
k =2:n
d.
Menghitung nilai yInterp
y(1:n-k)
= ((x - xData(k+1:n)).*y(1:n-k)...
+ (xData(1:n-k) - x).*y(2:n-k+1))...
./(xData(1:n-k) - xData(k+1:n))
e.
Menampilkan hasil dari nilai yInterp
3.2.
Flowchart
|
START
|
|
Input
nilai xData =[0.15; 2.3; 3.15; 4.85; 6.25;
7.95;]
yData =[4.79867; 4.49013; 4.22430; 3.47313;2.66674; 1.51909]
|
|
n = length(xData)
p = a(n)
|
|
p = a(n-k) + (x - xData(n-k))*p
|
|
k = 1:n-1
|
|
p
|
|
k
|
|
STOP
|
|
START
|
|
Input
nilai xData =[0.15; 2.3; 3.15; 4.85; 6.25;
7.95;]
yData =[4.79867; 4.49013; 4.22430; 3.47313;2.66674; 1.51909]
|
|
n = length(xData)
a = yData
|
|
a(k:n) =
(a(k:n) - a(k-1))./(xData(k:n) - xData(k-1))
|
|
k =2:n
|
|
a
|
|
k
|
|
STOP
|
|
START
|
|
STOP
|
|
yInterp
|
|
yInterp = y(1)
|
|
k
|
|
y(1:n-k) = ((x -
xData(k+1:n)).*y(1:n-k)...
+ (xData(1:n-k) -
x).*y(2:n-k+1))...
./(xData(1:n-k) -
xData(k+1:n))
|
|
k = 1:n-1
|
|
n = length(xData)
y = yData
|
|
Input
nilai yData = [-1.2;0.3;1.1]
xData = [-5.76;-5.61;-3.69]
|
D. HASIL
DAN PEMBAHASAN
4.1. Hasil
Nomor 1
· Menggunakan Neville’s method
function yInterp = neville(xData,yData,x)
% Neville's polynominal interpolation;
% return the value of the interpolant at x.
% USAGE: yInterp = neville(xData,yData,x)
% xData = x-coordinates of data points.
% yData = y-coordinates of data points.
x=0;
yData = [-1.2;0.3;1.1]';
xData = [-5.76;-5.61;-3.69]';
n = length(xData);
y = yData;
for k = 1:n-1
y(1:n-k) = ((x -
xData(k+1:n)).*y(1:n-k)...
+ (xData(1:n-k) -
x).*y(2:n-k+1))...
./(xData(1:n-k) -
xData(k+1:n));
end
yInterp = y(1);
ans =
-93.2000
Published with MATLAB® 7.6
·
Menggunakan
eliminasi Lagrange’s method
x1=0;
xData = [-1.2;0.3;1.1];
yData = [-5.76;-5.61;-3.69];
n=length(xData);
for i=1:n
ih=1;
ir=0;
for ir=ir+1:n
if (ir==i)
ir=i+1;
elseif (ir~=i)
ih=ih*((x1-xData(ir))/(xData(i)-xData(ir)));
end
end
y(i)=ih*yData(i);
yHasil=sum(y);
end
display(yHasil);
yHasil =
-6.0000
x1=0;
xData = [0;0.5;1;1.5];
yData = [1.8421;2.4694;2.4921;1.9047];
n=length(xData);
for i=1:n
ih=1;
ir=0;
for ir=ir+1:n
if (ir==i)
ir=i+1;
elseif (ir~=i)
ih=ih*((x1-xData(ir))/(xData(i)-xData(ir)));
end
end
y(i)=ih*yData(i);
yHasil=sum(y);
end
display(yHasil);
yHasil =
1.8421
x1=0;
xData = [0;0.5;1;1.5;2];
yData = [1.8421;2.4694;2.4921;1.9047;0.8509];
n=length(xData);
for i=1:n
ih=1;
ir=0;
for ir=ir+1:n
if (ir==i)
ir=i+1;
elseif (ir~=i)
ih=ih*((x1-xData(ir))/(xData(i)-xData(ir)));
end
end
y(i)=ih*yData(i);
yHasil=sum(y);
end
display(yHasil);
yHasil =
1.8421
Nomor 3
function yInterp = neville(xData,yData,x)
% Neville's polynominal interpolation;
% return the value of the interpolant at x.
% USAGE: yInterp = neville(xData,yData,x)
% xData = x-coordinates of data points.
% yData = y-coordinates of data points.
x=0.7679;
xData = [0;0.5;1;1.5]';
yData = [1.8421;2.4694;2.4921;1.9047]';
n = length(xData);
y = yData;
for k = 1:n-1
y(1:n-k) = ((x - xData(k+1:n)).*y(1:n-k)...
+ (xData(1:n-k) - x).*y(2:n-k+1))...
./(xData(1:n-k) - xData(k+1:n));
end
yInterp = y(1);
ans =
2.5571
function yInterp = neville(xData,yData,x)
% Neville's polynominal interpolation;
% return the value of the interpolant at x.
% USAGE: yInterp = neville(xData,yData,x)
% xData = x-coordinates of data points.
% yData = y-coordinates of data points.
x=pi/4;
xData = [0;0.5;1;1.5;2]';
yData = [-1.00;1.75;4.00;5.75;7.00]';
n = length(xData);
y = yData;
for k = 1:n-1
y(1:n-k) = ((x - xData(k+1:n)).*y(1:n-k)...
+ (xData(1:n-k) - x).*y(2:n-k+1))...
./(xData(1:n-k) - xData(k+1:n));
end
yInterp = y(1);
ans =
3.0955
x1=pi/2;
xData = [0;0.5;1;1.5;2];
yData = [-0.7854;0.6529;1.7390;2.2071;1.9425];
n=length(xData);
for i=1:n
ih=1;
in=0;
for in=in+1:n
if (in==i)
in=i+1;
elseif (in~=i)
ih=ih*((x1-xData(in))/(xData(i)-xData(in)));
end
end
y(i)=ih*yData(i);
yHasil=sum(y);
end
display(yHasil);
yHasil =
2.2149
·
Dengan
nilai pi/4
x1=pi/4;
xData = [0;0.5;1;1.5;2];
yData = [-0.7854;0.6529;1.7390;2.2071;1.9425];
n=length(xData);
for i=1:n
ih=1;
in=0;
for in=in+1:n
if (in==i)
in=i+1;
elseif (in~=i)
ih=ih*((x1-xData(in))/(xData(i)-xData(in)));
end
end
y(i)=ih*yData(i);
yHasil=sum(y);
end
display(yHasil);
yHasil =
-4.3061
Nomor 6
xData = [-2 1 4 -1 3 -4]';
yData = [-1 2 59 4 24 -53]';
n=length(xData);
dy=[xData yData];
for hik=3:n+1
ma=hik-3;
for ma=ma+2:n
dy(ma,hik)=(dy(ma,hik-1)-dy(hik-2,hik-1))/(dy(ma,1)-dy(hik-2,1));
dyHasil=dy;
end
end
display(dyHasil);
dyHasil =
-2 -1 0 0 0 0 0
1 2 1 0 0 0 0
4 59 10 3 0 0 0
-1 4 5 -2 1 0 0
3 24 5 2 1 0 0
-4 -53 26 -5 1 0 0
xData = [-3;2;-1;3;1]';
yData = [0;5;-4;12;0]';
a = newtonCoeff(xData,yData);
' x yInterp yExact'
for x = 0: 0.5: 8
y = newtonPoly(a,xData,x);
yExact = 4.8*cos(pi*x/20);
fprintf('%10.5f',x,y,yExact)
fprintf('\n')
end
ans =
x yInterp yExact
0.00000 -3.00000 4.80000
0.50000 -1.75000 4.78520
1.00000 0.00000 4.74090
1.50000 2.25000 4.66738
2.00000 5.00000 4.56507
2.50000 8.25000 4.43462
3.00000 12.00000 4.27683
3.50000 16.25000 4.09267
4.00000 21.00000 3.88328
4.50000 26.25000 3.64995
5.00000 32.00000 3.39411
5.50000 38.25000 3.11735
6.00000 45.00000 2.82137
6.50000 52.25000 2.50799
7.00000 60.00000 2.17915
7.50000 68.25000 1.83688
8.00000 77.00000 1.48328
function yInterp = neville(xData,yData,x)
% Neville's polynominal interpolation;
% return the value of the interpolant at x.
% USAGE: yInterp = neville(xData,yData,x)
% xData = x-coordinates of data points.
% yData = y-coordinates of data points.
x=0;
yData = [-1;1;3]';
xData = [17;-7;-15]';
n = length(xData);
y = yData;
for k = 1:n-1
y(1:n-k) = ((x - xData(k+1:n)).*y(1:n-k)...
+ (xData(1:n-k) - x).*y(2:n-k+1))...
./(xData(1:n-k) - xData(k+1:n));
end
yInterp = y(1);
ans =
-0.2031
x1 = 1;
xData = [0;3;6]';
yData = [1.225;0.905;0.652]';
n=length(xData);
for i=1:n
ih=1;
in=0;
for in=in+1:n
if (in==i)
in=i+1;
elseif (in~=i)
ih=ih*((x1-xData(in))/(xData(i)-xData(in)));
end
end
y(i)=ih*yData(i);
yHasil=sum(y);
end
display(yHasil);
yHasil =
1.1109
function yInterp = neville(xData,yData,x)
% Neville's polynominal interpolation;
% return the value of the interpolant at x.
% USAGE: yInterp = neville(xData,yData,x)
% xData = x-coordinates of data points.
% yData = y-coordinates of data points.
x=1.1;
% xData = [-2.0;-0.1;-1.5;0.5]';
% yData = [2.2796;1.0025;1.6467;1.0635]';
xData = [-0.6;2.2;1.0;1.8]';
yData = [1.0920;2.6291;1.2661;1.9896]';
n = length(xData);
y = yData;
for k = 1:n-1
y(1:n-k) = ((x - xData(k+1:n)).*y(1:n-k)...
+ (xData(1:n-k) - x).*y(2:n-k+1))...
./(xData(1:n-k) - xData(k+1:n));
end
yInterp = y(1);
ans =
1.3228
function cpInterp = neville(tData,cpData,t)
% Neville's polynominal interpolation;
% return the value of the interpolant at x.
% USAGE: yInterp = neville(xData,yData,x)
% xData = x-coordinates of data points.
% yData = y-coordinates of data points.
t=200;
tData = [-250;-200;-100;0;100;300]';
cpData = [0.0163;0.318;0.699;0.870;0.941;1.04]';
n = length(tData);
cp = cpData;
for k = 1:n-1
cp(1:n-k) = ((t - tData(k+1:n)).*cp(1:n-k)...
+ (tData(1:n-k) - t).*cp(2:n-k+1))...
./(tData(1:n-k) - tData(k+1:n));
end
cpInterp = cp(1);
ans =
0.9933
x1=0.46;
xData = [0;0.0204;0.1055;0.241;0.582;0.712;0.981]';
yData = [0.385;1.04;1.79;2.63;4.39;4.99;5.27]';
n=length(xData);
for i=1:n
ih=1;
is=0;
for is=is+1:n
if (is==i)
is=i+1;
elseif (is~=i)
ih=ih*((x1-xData(is))/(xData(i)-xData(is)));
end
end
y(i)=ih*yData(i);
yHasil=sum(y);
end
display(yHasil);
yHasil =
4.8785
x1=90;
xData = [0;21.1;37.8;54.4;71.1;87.8;100]';
yData = [1.79;1.13;0.696;0.519;0.338;0.321;0.296]';
n=length(xData);
for i=1:n
ih=1;
in=0;
for in=in+1:n
if (in==i)
in=i+1;
ih=ih*((x1-xData(in))/(xData(i)-xData(in)));
end
end
y(i)=ih*yData(i);
yHasil=sum(y);
end
display(yHasil);
yHasil =
0.3334
x1=10.5;
xData = [1;1.525;3.050;4.755;6.10;7.625;9.150]';
yData = [1;0.8617;0.738;0.6292;0.5328;0.4481;0.3741]';
n=length(xData);
for i=1:n
ih=1;
in=0;
for in=in+1:n
if (in==i)
in=i+1;
elseif (in~=i)
ih=ih*((x1-xData(in))/(xData(i)-xData(in)));
end
end
y(i)=ih*yData(i);
yHasil=sum(y);
end
display(yHasil);
yHasil =
0.4818
4.2
Pembahasan
Metode
Numerik adalah teknik untuk menyelesaikan
permasalahan-permasalahan yang diformulasikan secara matematik dengan cara
operasi hitungan (arithmetic).Beberapa definisi metode numerik dikemukakan ahli matematika, misalnya metode
numerik adalah teknik di mana masalah matematika diformulasikan
sedemikian rupa sehingga dapat diselesaikan oleh pengoperasian aritmetika. Metode
numerik adalah teknik -teknik yang digunakan untuk merumuskan masalah
matematika agar dapat diselesaikan han ya dengan operasi hitungan, yang terdiri
dari operasi tambah, kurang, kali dan bagi.
Polinomial Newton adalah polinom
interpolasi untuk kumpulan titik data tertentu dalam bentuk Newton. Polinomial
Newton kadang-kadang disebut perbedaan interpolasi polinomial Newton, karena
koefisien polinomial dihitung dengan menggunakan perbedaan yang terbagi. Keakuratan
interpolasi polinomial bergantung pada seberapa dekat titik interpolasi ke
tengah nilai x dari himpunan titik yang digunakan. Jelas, karena poin baru
ditambahkan di salah satu ujungnya, kelas menengah itu semakin jauh dan jauh
dari titik data pertama. Oleh karena itu, jika tidak diketahui berapa banyak
poin yang akan dibutuhkan untuk keakuratan yang diinginkan, nilai tengah x
mungkin jauh dari tempat interpolasi selesai.
Praktikum yang ke dua yang berjudul
Interpolation And Curve Fitting, dimana function
yang digunakan yaitu metode Lagrange, NewtonPoly,
Function NewtonCoeff, dan function Neville. Pada soal nomor satu menggunakan
metode Neville’s method dan metode Lagrange dimana hal yang pertama dilakukan yaitu menginput nilai Neville’s
method dimana nilai yData =
[-1.2;0.3;1.1]'; dan xData =
[-5.76;-5.61;-3.69]'; selanjutnya di disimpan lalu di run sehinga mendapatkan
nilai ans =-93.2000 selanjutnya pada metode Lagrange’s method dimana x1=0; xData= [1.2 ;
0. 3 ;1. 1] dan yData= [5.76; 5.61;-3;
69]. selanjutnya di disimpan lalu di run sehinga mendapatkan yHasil
=-6.0000.
Selanjutnya percobaan kedua kami menggunakan metode
NewtonPoly dimana cara yang digunakan yaitu terlebih dahulu menginput nilai
xData =[0.15; 2.3; 3.15; 4.85; 6.25; 7.95;], yData
=[4.79867; 4.49013; 4.22430; 3.47313;2.66674; 1.51909], kemudian menghitung
nilai n=length kemudian menghitung nilai k hingga habis atau biasa yang disebut
dengan proses pengulangan. Kemudian menampilkan output atau hasil.
Analisis metode Numerik
pada Polynomial Newton
seperti pada problem set nomor 6 cara yang dilakukan yaitu terlebih dahulu
menginput matriks xData = [-2 1 4 -1 3 -4]';
yData = [-1 2 59 4 24 -53]'; kemudian menghitug nilai
n=length (xData), setelah itu memasukkan
rumus dy(ma,hik)=(dy(ma,hik-1)-dy(hik-2,hik-1))/(dy(ma,1)-dy(hik-2,1)) kemudian RUN untuk mendapakan yhasil.
Selajutnya metode
Neville digunakan pada nomor 3 dimana
pertama yang dilakukan yaitu dengan memasukkan nilai x=0.7679;
xData = [0;0.5;1;1.5]'; yData = [1.8421;2.4694;2.4921;1.9047]'; kemudian menghitung
n=length (xData), untuk mendapatkan nilai y masukkan rumus y(1:n-k) = ((x - xData(k+1:n)).*y(1:n-k)
+ (xData(1:n-k) - x).*y(2:n-k+1))/(xData(1:n-k) -
xData(k+1:n));, kemudian RUN untuk mendapatkan yInterp.
Untuk menghitung
function NewtonCoeff yang pertma dilakukan yaitu menginput nilai Input
nilai xData =[0.15; 2.3; 3.15; 4.85; 6.25;
7.95;]yData =[4.79867; 4.49013; 4.22430; 3.47313;2.66674; 1.51909], kemudian
menghitung n = length(xData), kemudian menghitung nilai Menghitung nilai a(k:n)=(a(k:n) - a(k-1))./(xData(k:n) - xData(k-1)). Untuk Menampilkan hasil dari nilai a .maka klik RUN.
E. PENUTUP
5.1 Kesimpulan
Kesimpulan pada praktikum kali ini
adalah sebagai berikut :
1.Dalam menentukan
koefisien polinomial dan evaluasi polinomial dengan menggunakan metode newton
terdiri atas metode Lagrange, Polynomial Newton, newtonPoly dan newtonCoeff
dimana dari semua metode ini memiliki program yang berbeda yang diterapkan pada
problem sheet 3.1 pada nomor 1(a), 2 , 5, 9, 15, 16,
19 dan 20 untuk metode lagrange dan nomor
6 dan 7 dengan menggunakan metode polynomial newton.
2.Metode Newton untuk Neville
polynomial diterapkan pada tugas nomor 1(b), 3, 4, 8, dan 14 dengan nilai x
yang berbeda.
5.2
Saran
Saran
saya pada praktikum ini yaitu sebaiknya pelaksanaan praktikum lebih diperjelas
lagi karena jika kita hanya diberi program saja, itu tidak akan dimengerti secara baik.
REFERENSI :
Ameliaadz
2013.http://ameliaadz.blogspot.co.id/2013/03/
pengertian -matlab.ht ml. Diakses pada tanggal
16 April 2017. Pukul 22.13 WITA.
Anonim.
http://wikipedia.com/metode-newton.
Diakses pada tanggal 16 April 201 7. Pukul 22.13 WITA.
Bismo, Setijo. 1999. Kumpulan
Bahan Kuliah Metode Numerik.
JurusanTGP-FT UI. Jakarta.
Tidak ada komentar:
Posting Komentar