Laporan Metnum 3.docx

12
MA3072 METODE NUMERIK Laporan Praktikum#3 Nama : R. M. Adham Tirtaramadhan F. 12211084 Dosen : Novriana Sumarti, Ph.D. Nama Asisten : Theoza Nopranda (12210064) Hamid Alkadrie (12210009) Tanggal Penyerahan : Kamis, 28 Maret 2013 PROGRAM STUDI MATEMATIKA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT TEKNOLOGI BANDUNG

description

Metode Numerik

Transcript of Laporan Metnum 3.docx

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();

return 0; }

Eksekusi Program

A. Hampiran turunan

B. Interpolasi Lagrange

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.