praktikum metode numerik iv

6
M. Ziaul Arif, S.Si 2011/2012 Praktikum Metode Numerik FAKULTAS MATEMATIKA dan IPA UNIVERSITAS JEMBER 2011/2012

Upload: raskhy

Post on 04-Jan-2016

64 views

Category:

Documents


3 download

DESCRIPTION

metnum

TRANSCRIPT

Page 1: Praktikum Metode Numerik IV

M.

Zia

ul

Ar

if,

S.S

i

20

11

/20

12

Pr

ak

tik

um

Me

tod

e N

um

er

ik

FAKULTAS MATEMATIKA dan IPA

UNIVERSITAS JEMBER

2011/2012

Page 2: Praktikum Metode Numerik IV

Page | 1

PRAKTIKUM METODE NUMERIK IV

INTERPOLASI

TUJUAN

• Mahasiswa bisa membuat program untuk mencari nilai di antara beberapa titik data

yang telah diketahui nilainya.

• Mahasiswa bisa membandingkan tingkat efisiensi interpolasi polinomial: interpolasi

Newton (selisih terbagi) dan interpolasi lagrange.

• Mahasiswa bisa menentukan metode yang tepat untuk menyelesaikan masalah yang

berhubungan dengan interpolasi.

Dasar teori:

A. INTERPOLASI POLINOMIAL NEWTON (SELISIH TERBAGI)

Misalkan fungsi f(x) terdefinisi pada interval [a,b], dan misalkan 1 2 3 1, , ,...,n

x x x x+

adalah (n+1)

bilangan berlainan pada interval [a,b]. maka terdapat sebuah polinomial tunggal ( )n

P x

berderajat paling tinggi n yang memenuhi

( ) ( ) untuk k=1,2,3,...(n+1)k n k

f x P x=

Polinomial Newton ini adalah

1 2 1 3 1 2 3 1 2 3

1 1 2 3

( ) ( ) ( )( ) ( )( )( ) ...

( )( )( )...( )

n

n n

P x a a x x a x x x x a x x x x x x

a x x x x x x x x+

= + − + − − + − − − +

− − − −

Dengan 1 2 3[ , , ,... ], untuk k=1,2,3,...,(n+1)k k

a f x x x x=

Dengan definisi fungsi dalam kurung siku ([…]) adalah selisih terbagi.

Selisih terbagi tingkat pertama:

( ) ( )[ , ]

i j

i j

i j

f x f xf x x

x x

−=

Selisih terbagi tingkat ke dua:

[ , ] [ , ][ , , ]

i j j k

i j k

i k

f x x f x xf x x x

x x

−=

Selish terbagi tingkat k-n:

1 1 1 2 01 1 0

0

[ , ,..., ] [ , ,..., ][ , ,..., , ] n n n n

n n

n

f x x x f x x xf x x x x

x x

− − −

−=

Page 3: Praktikum Metode Numerik IV

Page | 2

Berikut tabel skema selisih terbagi Newton :

i i

x ( )i

f x pertama kedua ketiga

0 0x 0( )f x

1 0[ , ]f x x 2 1 0[ , , ]f x x x

3 2 1 0[ , , , ]f x x x x

1 1x 1( )f x

2 1[ , ]f x x 3 2 1[ , , ]f x x x

2 2x 2( )f x

3 2[ , ]f x x

3 3x 3( )f x

Contoh :

Buatlah program untuk mencari tabel selisih terbagi newton jika diketahui data dari fungsi

f(x)=ln x sebagai berikut:

x 1 4 5 6

F(x) 0 1,3863 1,6094 1,7918

Penyelesaian:

Berikut Hasil running program pada MATLAB.

Command Window

>>selisih_trbgi

Tabel Selisih Terbagi Newton

Press Enter to continue

masukkan nilai X yang akan diproses (Beri []) :[1 4 6 5]

Masukkan nilai Y yang akan diproses (Beri []):[0 1.3863 1.7918

1.6094]

ans =

1.0000 0 0.4621 -0.0519 0.0079

4.0000 1.3863 0.2027 -0.0203 0

6.0000 1.7918 0.1824 0 0

5.0000 1.6094 0 0 0

Page 4: Praktikum Metode Numerik IV

Page | 3

Listing program

Berikut Listing program selisih terbagi Newton. Simpan pada MATLAB dengan nama

”selisih_trbgi”.

TUGAS:

Gunakan Program selisih terbagi Newton diatas untuk membuat program hampiran nilai f(2)

dengan polinomial Newton derajat 3 jika diketahui data dari fungsi f(x)=ln x sebagai berikut:

x 1 4 5 6

F(x) 0 1,3863 1,6094 1,7918

Plot-kan fungsi polinomial newton yang anda buat kemudian bandingkan dengan fungsi

f(x)=ln(x).

B. INTERPOLASI POLINOMIAL LAGRANGE

Secara umum bentuk interpolasi lagrange order n adalah:

1

( ) ( ) ( )n

n i i

i

f x L x f x=

=∑

Dengan

0

( )n

j

i

j i jj i

x xL x

x x=≠

−=

−∏

Adalah fungsi-fungsi kardinal lagrange.

clear clc disp(' Tabel Selisih Terbagi Newton ') disp(' Press Enter to continue ') pause clc %% x=input('masukkan nilai X yang akan diproses (Beri []) :'); y=input('Masukkan nilai Y yang akan diproses (Beri []):'); n=length(x); D(1,1:n)=x; D(2,1:n)=y; for j=3:n+1 for k=1:n-j+2 D(j,k)=(D(j-1,k+1)-D(j-1,k))/(x(k+j-2)-x(k)); end end D'

Page 5: Praktikum Metode Numerik IV

Page | 4

Misal: interpolasi lagrange order 3. Maka persamaannya sebagai berikut:

3

3

0

0 0 1 1 2 2 3 3

( ) ( ) ( )

( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )

i i

i

f x L x f x

L x f x L x f x L x f x L x f x

=

=

= + + +

Dengan,

3 0 31 2 10 2

0 1 0 2 0 3 2 0 2 1 2 3

0 3 02 1 21 3

1 0 1 2 1 3 3 0 3 1 3 2

( ) ( )

( ) ( )

x x x x x xx x x x x xL x L x

x x x x x x x x x x x x

x x x x x xx x x x x xL x L x

x x x x x x x x x x x x

− − −− − −= =

− − − − − −

− − −− − −= =

− − − − − −

Sehingga bentuk fungsi polinomial lagrange order 3 adalah

3 0 31 2 23 0 1

0 1 0 2 0 3 1 0 1 2 1 3

0 3 01 1 22 3

2 0 2 1 2 3 3 0 3 1 3 2

( ) ( ) ( ) ( ) ( )

( ) ( ) ( ) ( )

x x x x x xx x x x x xf x x f x x f x

x x x x x x x x x x x x

x x x x x xx x x x x xx f x x f x

x x x x x x x x x x x x

− − −− − −= +

− − − − − −

− − −− − −+ +

− − − − − −

Contoh :

Buatlah program interpolasi polinomial Lagrange orde 3 untuk mencari hampiran dari f(2) jika

diketahui data fungsi f(x)=ln x sebagai berikut:

x 1 4 5 6

F(x) 0 1,3863 1,6094 1,7918

Page 6: Praktikum Metode Numerik IV

Page | 5

Penyelesaian:

Berikut Hasil running program pada MATLAB.

Listing program

Berikut Listing program Interpolasi Polinomial Lagrange. Simpan pada MATLAB dengan nama

”lagrange”.

Command Window

>>lagrange

masukkan nilai X yang akan diproses (Beri []) :[1 4 6 5]

Masukkan nilai Y yang akan diproses (Beri []):[0 1.3863 1.7918

1.6094]

Masukkan nilai x yang akan dihampiri :2

nilai Kardinalnya adalah :

L =

0.4000 2.0000 0.6000 -2.0000

z =

2

nilai f(z)=

0.6289

clear clc disp(' Interpolasi polinomial Lagrange ') disp(' Press Enter to continue ') pause clc %% x=input('masukkan nilai X yang akan diproses (Beri []) :'); y=input('Masukkan nilai Y yang akan diproses (Beri []):'); z=input('Masukkan nilai x yang akan dihampiri :'); n=length(x); for k=1:n L(k)=1; for j=1:n if j~=k, L(k)=L(k)*((z-x(j))/(x(k)-x(j))); end; end end disp('nilai Kardinalnya adalah :') L z disp('nilai f(z)= ') y*L'