MODUL 8 INTERPOLASI Hidayatul Latifah 10211016 Program Studi Fisika, Institut Teknologi Bandung, Indonesia E-mail: [email protected] Asisten: Ulin Nuha A. Q. / 10210095 Fauzia P. Lestari / 10210085 Tanggal Praktikum: 17-04-2014 Abstrak Untuk 𝑛 + 1 data terdapat suatu polinom orde n atau kurang yang melalui semua titik. Metode tersebut disebut dengan interpolasi. Interpolasi dapat dilakukan dengan berbagai macam metode. Pada percobaan ini akan dilakukan interpolasi data dengan menggunakan metode gradient dan metode polinom. Interpolasi dilakukan dengan membuat program dengan menggunakan software Matlab. Dari interpolasi yang dilakukan kemudian dilakukan pembandingan terhadap kedua metode interpolasi. Dari percobaan yang telah dilakukan metode gradien lebih sesuai dengan data yang ada dibanding dengan metode polinom, karena pada metode polinom terdapat penyimpangan. Untuk mengurangi penyimpangan pada metode polinom dilakukan pembagian data agar interpolasi yang diperoleh lebih sesuai. Kata kunci: Interpolasi, Metode Gradien, Metode Polinom I. Pendahuluan Untuk mencari nilai di sebuah titik data yang tidak diketahui sebelumnya biasanya digunakan metode menggunakan suatu polinom. Berikut adalah rumusan untuk polinom berderajat n, 𝑓 𝑥 = 𝑎0 + 𝑎1 𝑥 + 𝑎2 𝑥 2 + 𝑎3 𝑥 3 + ⋯ + 𝑎𝑛 𝑥 𝑛 (1) Untuk 𝑛 + 1 data terdapat suatu polinom orde n atau kurang yang melalui semua titik. Metode tersebut disebut dengan interpolasi. Interpolasi yang paling sederhana adalah interpolasi linier. Metode ini dilakukan dengan cara menghubungkan dua buah titik data dengan suatu garis lurus lalu mencari gradient dua titik tersebut dengan cara, 𝑚= 𝑦2 −𝑦1 𝑥 2 −𝑥 1 (2) Kemudian untuk mencari nilai di antara titik tersebut dapat dilakukan dengan menurunkan persamaan (2), 𝑦2 = 𝑚 𝑥2 − 𝑥1 + 𝑦2 (3) Pada percobaan modul ini, akan dilakukan interpolasi linier dan polinom pada 11 titik pada tabel 1. Kemudian akan dibandingkan hasil interpolasi secara linier dan polinom terhadap data tersebut. No 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Tabel 1. Data sampel X dan Y X Y 1 2.5 3 2.5 4 3 6 8 9 12 12 16 20 18 25 17.5 30 15.5 40 8.5 50 1.5 II. Metode Percobaan Dari data pada tabel 1 akan dibuat interpolasi dengan dua metode yaitu dengan metode linier atau gradien dan dengan metode polinom. Pada metode gradien, dicari gradient pada setiap dua titik pada data yang ada dengan menggunakan persamaan (2). Kemudian dicari nilai di setiap titik pada selang data dengan menggunakan persamaan (3). Lalu dibuat kode sederhana dengan menggunakan Matlab. Pada metode polinom, pada setiap titik memiliki persamaan seperti persamaan (1). Dari persamaan tersebut dapat dibuat matriks, 𝑌 = 𝑋. 𝐴 Sehingga A dapat dicari dengan, 𝐴 = 𝑋 −1 𝑌 metode polinom agar hasil interpolasi lebih sesuai, Dari program yang dibuat kemudian kedua metode dibandingkan apakah sama atau tidak. Dan dilihat metode mana yang lebih baik. III. Data dan Pengolahan Pada percobaan yang dilakukan (membuat program sederhana dengan Matlab) diperoleh data grafik sebagai berikut, Berikut adalah grafik yang diperoleh saat interpolasi menggunakan metode gradient, Gambar 3. Grafik interpolasi dengan metode polinom yang dimodifikasi Gambar 1. Grafik interpolasi dengan metode gradien Berikut adalah grafik interpolasi yang diperoleh dengan menggunakan metode polinom, Gambar 2. Grafik interpolasi dengan metode polinom Karena hasil interpolasi dengan menggunakan metode polinom sangat berbeda dengan pola data yang seharusnya (menyimpang) sehingga dilakukan pembagian interpolasi dengan menggunakan Gambar 4. Grafik interpolasi dengan metode polinom yang dimodifikasi IV. Pembahasan Dari kedua metode interpolasi yang dilakukan diperoleh grafik pada gambar 1 dan 2. Dari kedua grafik dari metode tersebut, metode gradien terlihat lebih sesuai dengan data debanding dengan metode polinom. Metode gradient lebih sesuai karena metode ini dilakukan pada setiap dua titik data sedangkan untuk metode polinom diinterpolasi pada semua data sehingga dapat terjadi penyimpangan pada titik tertentu. Penyimpangan pada metode polinom ini dapat terjadi karena terdapat data yang nilainya jauh berbeda dengan data lainnya sehingga saat dibuat interpolasi dari data tersebut terjadi penyimpangan pola interpolasi. Pola interpolasi yang menyimpang dapt diperbaiki dengan cara memperkecil jumlah n pada persamaan (1) sehingga terdapat lebih dari satu persamaan dalam satu data. Dengan begitu akan memperkecil penyimpangan pola interpolasi yang terjadi. Grafik pada gambar 3 merupakan hasil interpolasi dengan metode polinom dimana data dibagi menjadi 3 bagian dan pada grafik gambar 4 data dibagi menjadi 4 bagian. Dari kedua grafik tersebut terlihat bahwa penyimpangan interpolasi semakin kecil saat data dibagi menjadi lebih banyak. V. Simpulan Dari interpolasi data yang telah dilakukan dengan menggunakan metode gradien dan metode polinom diperoleh bahwa metode gradien lebih sesuai dengan data daripada metode polinom Agar pada metode polinom penyimpangan interpolasi lebih kecil dapat dilakukan dengan cara membagi data saat interpolasi dilakukan VI. Pustaka [1] Steven C. Chapra. 2012. Applied Numerical Methods with Matlab for Engineers and Scientist. New York: The McGraw-Hill Companies. Lampiran Kode program interpolasi menggunakan metode gradien, end end clc close clear A = inv(xx)*y; x = [1;2;4;6;9;12;20;25;30;40;50]; y = [2.5;2.5;3;8;12;16;18;17.5;15.5;8 .5;1.5]; for i = 1 : 10 m(i,1) = (y(i+1,1)y(i,1))/(x(i+1,1)-x(i,1)); end gx = []; gy = []; disp(['x y']); for xx = 1 : 50 for i = 1 : 10 if(xx >= x(i,1) && xx <= x(i+1,1)) fxx = m(i,1)*(xxx(i,1))+y(i,1); end end disp([num2str(xx) ' ' num2str(fxx)]); gx = [gx;xx]; gy = [gy;fxx]; end hold on; plot(x,y,'bsq'); plot(gx,gy,'g'); legend('Data','Interpolasi'); xlabel('x');ylabel('y'); title('Interpolasi Gradien'); Kode program interpolasi menggunakan metode polinom, xx(i,j) = x(i,1)^(j-1); dengan dengan clc close clear px = []; py = []; disp(['x y']); for xs = 1 : 50 fxs = 0; for i = 1 : 11 fxs = fxs + A(i,1)*xs^(i1); end disp([num2str(xs) ' ' num2str(fxs)]); px = [px;xs]; py = [py;fxs]; end hold on; plot(x,y,'bsq'); plot(px,py,'g'); legend('Data','Interpolasi'); xlabel('x');ylabel('y'); title('Interpolasi Gradien'); Kode program interpolasi dengan menggunakan metode polinom dengan dibagi menjadi 3 bagian, clc close clear x = [1;2;4;6;9;12;20;25;30;40;50]; y = [2.5;2.5;3;8;12;16;18;17.5;15.5;8 .5;1.5]; for i = 1 : 4 y1(i,1) = y(i,1); end for i = 1 : 4 y2(i,1) = y(i+3,1); end x = [1;2;4;6;9;12;20;25;30;40;50]; y = [2.5;2.5;3;8;12;16;18;17.5;15.5;8 .5;1.5]; for i = 1 : 5 y3(i,1) = y(i+6,1); end for i = 1 : 11 for j = 1 : 11 for i = 1 : 4 for j = 1 : 4 xx1(i,j) = x(i,1)^(j-1); end end for i = 1 : 4 for j = 1 : 4 xx2(i,j) = x(i+3,1)^(j1); end end for i = 1 : 5 for j = 1 : 5 xx3(i,j) = x(i+6,1)^(j1); end end A1 = inv(xx1)*y1; A2 = inv(xx2)*y2; A3 = inv(xx3)*y3; px = []; py = []; disp(['x y']); for xs = 1 : 50 fxs = 0; if(xs >= x(1,1) && xs <= x(4,1)) for i = 1 : 4 fxs = fxs + xs ^ (i-1); end elseif(xs >= x(4,1) x(7,1)) for i = 1 : 4 fxs = fxs + xs ^ (i-1); end elseif(xs >= x(7,1) x(11,1)) for i = 1 : 5 fxs = fxs + xs ^ (i-1); end end disp([num2str(xs) ' num2str(fxs)]); px = [px;xs]; py = [py;fxs]; end A1(i,1) * && xs <= A2(i,1) * && xs <= A3(i,1) * ' hold on; plot(x,y,'bsq'); plot(px,py,'g'); legend('Data','Interpolasi'); xlabel('x');ylabel('y'); title('Interpolasi Gradien');