MA3072METODE NUMERIKLaporan Praktikum#3Nama : R. M. Adham Tirtaramadhan F.12211084Dosen : Novriana Sumarti, Ph.D.Nama Asisten : Theoza Nopranda (12210064) Hamid Alkadrie (12210009)Tanggal Penyerahan : Kamis, 28 Maret 2013
PROGRAM STUDI MATEMATIKAFAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAMINSTITUT TEKNOLOGI BANDUNG
2013Teori Singkat
Metode hampiran turunan yang digunakan di sini adalah metode beda hingga. Metode
ini didasarkan pada uraian Taylor pada titik-titik disekitar titik yang dihampiri turunannya
(x0). Terdapat tiga macam metode ini yakni,
1. Beda Maju
Metode ini menghampiri dengan titik-titik yang ada di sebelah kanan x0. Misal x1,
x2,…xn.
2. Beda Mundur
Metode ini menghampiri dengan titik-titik yang ada di sebelah kiri x0. Misal x-1,
x-2, x-3.
3. Beda Pusat
Metode ini menghampiri dengan titik-titik di kanan dan kiri x0. Misal pada x1 dan
x-1.
Interpolasi bertujuan membangun sebuah kurva yang melalui semua titik yang
digunakan. Terdapat 2 metode interpolasi yang dipelajari yakni interpolasi polinom
lagrange dan interpolasi bagi dua. Perbedaan keduanya ada pada jika ingin ditambahkan
satu titik untuk membangun persamaan. Dengan metode Newton akan langsung dengan
mudah menambahkan titik, tetapi metode Lagrange harus membangun persamaan ulang
dengan penambahan titik tersebut.
Algoritma Penyelesaian Masalah
A. Hampiran Turunan
Masukan : h;
Keluaran : y2, hampiran turunan kedua orde galat 4
galat
Langkah-langkah :
Masukkan h kedalam persamaan
Di dapat hampiran turunan kedua.
Galat=abs(y2-nilai sebenarnya)
B. Interpolasi Lagrange
Masukan : n derajat polinom lagrange;
r, nilai yang dihitung
Keluaran : p, hasil interpolasi pada titik x
galat,
Langkah-langkah :
1. Pembuatan titik acuan
x[0]=-1.5
Untuk k=0,1,2,…,n
x[k+1]=x[k]+0.25
Untuk k=0,1,2,…,n
y[k]=f(x[k])
2. Menentukan L
Untuk k =0, 1, 2, 3, ..., n
sa=1, sb=1
Untuk i =0, 1, 2, …, k
jika (k<>i) maka sa = sa * (r-x[i]), sb = sb * (x[k]-x[i])
L[k] = sa/sb
3. Menentukan p
p=0
Untuk i=0, 1, 2, …, n
p=p+L[i]*y[i]
4. Mencari galat
galat= abs(p-F(r))
Source Code C++
A. Hampiran turunan
include <iostream>
#include <conio.h>
#include <math.h>
#define F(x) 1/(1+((x)*(x)*25))
using namespace std;
int main()
{
int i,j,n;
float y2,h, t;
float y[100];
float x[100];
x[0]= -1;
cout<<"\nMencari
hampiran turunan kedua dengan
metode beda pusat\n";
cout<<"Orde galat = 4\n";
cout<<"Masukkan h: ";
cin>>h;
for(i=0; i<=8; i++)
{
x[i+1]=x[i]+0.25;
}
for(i=0; i<=8; i++)
{
y[i]=F(x[i]);
}
for(i=0; i<=8; i++)
{
if(x[i]==0.25)
{n=i;}
}
y2=((-1*y[n+2])
+(16*y[n+1])-(30*y[n])+(16*y[n-
1])-(y[n-2]))/(12*h*h);
cout<<"\n hampiran
turunan kedua pada (x=0.25)
dengan (h="<<h<<") = "<<y2;
t=10.9575;
cout<<"\n\nnilai
sebenarnya turunan kedua pada
(x=0.25)= "<<t;
cout<<"\n\nGalat=
"<<fabs(y2-t);
getch();
return 0;
}
B. Interpolasi Lagrange
#include <iostream>
#include <conio.h>
#include <math.h>
#define F(x) 1/(1+((x)*(x)*25))
using namespace std;
int main ()
{
cout<<"Mencari Persamaan
dengan pendekatan Interpolasi
Lagrange\n";
float L[100];
float x[100];
float y[100];
int i, j, k, n;
float sa, sb, r, p;
//memasukkan nilai x
cout<<"Masukkan Derajat
Polinom Lagrange: ";
cin>>n;
x[0]= -1.5;
cout<<"Masukkan Nilai x yang
akan dihitung: ";
cin>>r;
for(i=0; i<n; i++)
{
x[i+1]=x[i]+0.25;
}
for(i=0; i<=n; i++)
{
sa=1;sb=1;
for(j=0; j<=n; j++)
{
if(i!=j){sa=sa*(r-x[j]);
sb=sb*(x[i]-x[j]);}
}
L[i]=sa/sb;
y[i]=F(x[i]);
}
for(i=0; i<=n; i++)
{
cout<<"\nx"<<i<<"= "<<x[i]<<"
\t y"<<i<<"= "<<y[i];
}
p=0;
for(i=0; i<=n; i++)
{
p=p+L[i]*y[i];
}
cout<<"\n\nnilai
P"<<n<<"("<<r<<")= "<<p;
cout<<"\n\nnilai sebenarnya
F("<<r<<")= "<<F(r);
cout<<"\nGalat= "<<fabs(p-F(r));
getch();
Analisis
Pada hampiran turunan pertama kita mencari orde galat dari persamaan yang di dapat.
Ini dapat diturunkan dengan deret Taylor dan metode beda pusat dengan range y-2 hingga
y2. Disini kita memakai deret Taylor hingga orde ke-6.
y2= y0+2h y0'+
4h2 y0' '
2+
8h3 y0' ' '
6+
16 h4 y0(iv )
24+
32h5 y0(v )
120+
64h6 y0( vi )
720
y1= y0+h y0'+h2 y0
' '
2+h3 y0
' ' '
6+h4 y0
(iv )
24+h5 y0
( v )
120+h6 y0
( vi)
720
y−1= y0−h y0'+h2 y0
' '
2−h3 y0
' ' '
6+h4 y0
(iv )
24−h5 y0
( v )
120+h6 y0
( vi )
720
y−2= y0−2h y0'+
4 h2 y0' '
2−
8h3 y0' ' '
6+
16 h4 y0(iv )
24−
32h5 y0( v )
120+
64 h6 y0(vi )
720
Jika kita jumlahkan y1 dan y-1 maka suku ganjil akan saling menghilangkan dan didapat
y1+ y−1=2 y0+2h2 y0
' '
2+
2h4 y0(iv )
24+
2h6 y0(vi )
720
Juga jika kita menjumlahkan y2 dan y-2 suku ganjil juga akan hilang, maka didapat
y2+ y−2=2 y0+8h2 y0
' '
2+
32h4 y0(iv )
24+
128h6 y0( vi )
720
Jika ingin menghilangkan suku ke-4 maka y1+y-1 kita kalikan 16 lalu kita kurangkan
dengan y2+y-2, maka
16 y1+16 y−1− y2 - y−2=30 y0+12h2 y0' '−
96h6 y0(vi )
720
Kita rearrange persamaan tersebut menjadi,
y0' '=
− y2+16 y1+16 y−1 - y−2−30 y0
12h2 +h4 y0
( vi)
90
h4 y0( vi )
90 adalah galat dari persamaan di atas. Jadi kita dapat orde galat = 4.
Dari hasil eksekusi program diketahui bahwa dengan h=0.5, galat= 8.94319, dan
dengan h=0.25, galat=2.90024. Terlihat bahwa memang galat berorde 4 karena hanya
dengan h berkurang 0.25, galat turun sejauh 6 point. Terlihat juga trend bahwa jika h
semakin kecil h semakin kecil galat. Namun ternyata jika dimasukkan h=0.125, akan
didapat galat=21.2715.
Dapat disimpulkan bahwa ternayata trend tersebut salah. Ini dikarenakan galat yang kita
lihat disini hanya galat truncation. Selain itu terdapat galat round-off yang dirumuskan
dengan. E f=4∈h2 , dari rumus ini terlihat bahwa jika h semakin kecil maka galat semakin
besar. Maka galat akan terlimitasi pada suatu h sehingga galat minimum. Titik ini desibut
h optimum yang dapat diturunkan dari
E=4∈h2 +
h4 y0( vi )
90 .
Dari interpolasi lagrange kita dapatkan,
x P11(x) P12(x) F(x)
-0.2575 0.36883 0.366614 0.376271
galat 0.007381 0.00965783
-0.1555 0.687648 0.709036 0.623245
galat 0.064402 0.0857916
Dari tabel diatas dapat disimpulkan bahwa untuk data yang ada P11(x) lebih menghampiri
F(x) daripada P12(x). Hal ini kemungkinan karena kestidakstabilan nilai. Saya tidak bisa
menentukan apa penyebabnya, karena belum melihat grafik P11(x) dan P12(x).
Hal ini berarti kita harus bijak untuk menentukan orde dari interpolasi. Untuk
menghindari ketidakstabilan ini kita dapat menggunakan rumus komposit polinom, yakni
range awal dipecah menjadi sub-sub interval. Lalu pada setiap sub interval tersebut
diterapkan polinom lagrange.
Kesimpulan
1. Pada hampiran turunan terdapat dua galat yakni galat trunctation dan galat round-
off, dari keduanya dapat dicari h optimum yang menhasilkan galat minimum.
2. Pada interpolasi lagrange tidak selalu orde yang besar menghasilkan persamaan
polinom yang mendekati persamaan asli.
3. Dapat menggunakan rumus komposit polinom untuk menghindari ketidakstabilan
nilai pada interpolasi lagrange.
Recommended