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.
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.
http://ripaimat.files.wordpress.com/2012/01/modul-praktikum-matlab-lanjut.pdf
diakses pada Sabtu, 1 Juni 2012 jam 7:12 WIB.
http://staff.uny.ac.id/sites/default/files/pengabdian/sri-andayani-ssi-mkom/pembuatan-gui-dengan-matlab.pdf
diakses pada Sabtu, 1 Juni 2012 jam 07:15 WIB.
Tidak ada komentar:
Posting Komentar