praktikum metode numerik iv
DESCRIPTION
metnumTRANSCRIPT
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 | 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 | 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 | 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 | 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 | 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'