Senin, 15 Juli 2013


TUGAS METODE NUMERIK
PROGRAM INTERPOLASI NUMERIK







TEKNIK INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS TRUNOJOYO MADURA
2012



INTERPOLASI POLINOMIAL

1.      Pengertian
Interpolasi menghubungkan titik-titik data diskret dalam suatu cara yang masuk akal sehingga dapat diperoleh taksiran layak dari titik-titik data di antara titik-titik yang diketahui. Dicatat bahwa kurva interpolasi melalui semua titik data.
Interpolasi polinomial digunakan untuk mencari titik-titik antara dari n buah titik P1(x1,y1), P2(x2,y2), P3(x3,y3), ... , PN(xN,yN) dengan menggunakan pendekatan fungsi polinomial pangkat n-1 :
Masukkan nilai dari setiap titik ke dalam persamaan polinomial di atas dan diperoleh persamaan simultan dengan n persamaan dan n variabel bebas :
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Penyelesaian persamaan simultan di atas adalah nilai-nilai a0, a1, a2, a3, ..., an yang merupakan nilai-nilai koefisien dari fungsi pendekatan polinomial yang akan digunakan.
Dengan memasukkan nilai x dari titik yang dicari pada fungsi polinomialnya, akan diperoleh nilai y dari titik tersebut.
Interpolasi merupakan penentuan nilai suatu data yang terletak di antara dua titik data.

2.      Algoritma Interpolasi Polinomial
a.       Menentukan jumlah titik N yang diketahui.
b.      Memasukkan titik-titik yang diketahui Pi = (xi , yi) untuk i=1,2,3, . . . , N



c.       Menyusun augmented matrik dari titik-titik yang diketahui sebagai berikut :
d.      Menyelesaikan persamaan simultan dengan augmented matrik di atas dengan menggunakan metode eliminasi gauss/Jordan.
e.       Menyusun koefisien fungsi polinomial berdasarkan penyelesaian persamaan simultan di atas.
a = { ai | ai = J( i , n ), 0 ≤ i ≤ n – 1}
f.       Memasukkan nilai x dari titik yang diketahui.
g.      Menghitung nilai y dari fungsi polinomial yang dihasilkan.
h.      Menampilkan titik (x,y).

3.      Source Code
Program ini dibuat dengan Matlab R2008a
No.
Komponen
Isi
Tag
String/Title/Name
1
Push Button
data_excel
Data Excel
2
Push Button
proses
Hitung
3
Push Button
hapus
Hapus
4
Axes
axes1
-
5
Edit Text
titik_x
-
6
Edit Text
titik_y
-
7
Edit Text
derajat
-
8
Static Text
text1
Derajat =
9
Static Text
titikX
X =
10
Edit Text
stepX
-
11
Static Text
Step_X
Step X =
12
Listbox
listbox1
Hasil
13
Static Text
rataan
Rataan Error =
14
Listbox
listbox2
Error
15
Push Button
exit
Keluar
16
Static Text
text5
Data X =
17
Static Text
text6
Data Y =


Tampilan :

a.       Source code pada tombol Data Excel
Tombol ini digunakan untuk meng-import data dari file excel.
% --- Executes on button press in data_excel.
function data_excel_Callback(hObject, eventdata, handles)
x=xlsread('data',-1)
[n m]=size(x);
if n~=2
    x=x';
end
set(handles.titik_x,'String',num2str(x(1,:)));
set(handles.titik_y,'String',num2str(x(2,:)));

b.      Source code pada tombol Hitung
Tombol ini digunakan untuk menghitung interpolasi polinomial.
% --- Executes on button press in proses.
function proses_Callback(hObject, eventdata, handles)
x=str2num(get(handles.titik_x,'String')); % ---> Data Titik X
y=str2num(get(handles.titik_y,'String')); % ---> Data Titik Y
n=str2double(get(handles.derajat,'String')); % ---> Derajat Interpolasi
X=str2double(get(handles.editX,'String')); % ---> Titik X yang dicari
step=str2double(get(handles.stepX,'String')); % ---> Langkah perpindahan nilai Titik X
xi=[min(x):step:max(x)];
%Komputasi untuk interpolasi polinomial
switch n
case 1      % ---> Metode linear
        yi=interp1(x,y,xi,'linear');
        Yi=interp1(x,y,X,'linear');
        eI=abs(y-interp1(x,y,x,'linear'));
case 2      % ---> Metode cubic
        yi=interp1(x,y,xi,'cubic');
        Yi=interp1(x,y,X,'cubic');
        eI=abs(y-interp1(x,y,x,'cubic'));
otherwise% ---> Selain dari 2 metode di atas
        xi=x;
        yi=y;
        Yi=0;
        eI=y-y;
end
set(handles.figure1,'CurrentAxes',handles.axes1)
hold off
plot(x,y,'.')
hold on
grid on
plot(xi,yi,'-r');
legend('Aktual','Pendekatan')
text(X,Yi,['--->',num2str(Yi)])
set(handles.listbox1,'String',num2str([xi;yi]'));
set(handles.listbox2,'String',num2str(eI'));
set(handles.rataan,'String',['Rataan Error = ',num2str(mean(eI))]);

c.       Source code pada tombol Hapus
Tombol ini digunakan untuk membersihkan data pada grafik dari tabel hasil.
% --- Executes on button press in hapus.
function hapus_Callback(hObject, eventdata, handles)
set(handles.figure1,'CurrentAxes',handles.axes1)
hold off
plot(0,0)
set(handles.listbox1,'String','Hasil');
set(handles.listbox2,'String','Error');
set(handles.rataan,'String','Rataan Error = ');

d.      Source code pada tombol Keluar
Tombol ini digunakan untuk keluar dari program tersebut.
% --- Executes on button press in exit.
function exit_Callback(hObject, eventdata, handles)
selection = questdlg(['Ingin keluar dari Program',get(handles.figure1,'Name')''],...
    ['Program ',get(handles.figure1,'Name')''],...
'YA','TIDAK','TIDAK');
if strcmp(selection,'TIDAK')
return;
end
delete(handles.figure1)




4.      Screenshot Running Program
a.       Klik tombol Data Excelyang sebelumnya telah mengisi data x,y pada file data.xls
b.      Kemudian blok data excel dan klik OK.
c.      
Maka data berhasil masuk ke dalam program.





d.      Setelah itu tentukan untuk derajat, titik X yang akan dicari dan step X untuk kelipatan nilai titik X. Kemudian klik tombol Hitung maka akan diperoleh seperti gambar berikut.


5.      Referensi
http://www.scribd.com/doc/46959191/17/Interpolasi-Polinomial diakses pada Rabu, 30 Mei 2012 jam 14:10 WIB.
http://lecturer.eepis-its.edu/~ira/metnum/bab8tm%20(1).pdf diakses pada Rabu, 30 Mei 2012 jam 15:03 WIB.



Tidak ada komentar:

Posting Komentar