HAMPIRAN DAN GALAT
Pertemuan : 1&2
TUJUAN INSTRUKSIONAL KHUSUS :
1. Menjelaskan perbedaan solusi analitis dengan solusi numerik 2. Menentukan pembulatan desimal berdasarkan aturan pembulatan 3. Menjelaskan penyebab terjadinya galat
4. Menggunakan deret taylor untuk menghampiri nilai suatu fungsi 5. Menghitung galat dari hasil perhitungan numerik
6. Menjelaskan karakteristik dari perhitungan numerik
7. Menyebutkan kegunaan fungsional-fungsional dasar pada Scilab/Matlab
8. Menggunakan fungsional-fungsional pada Scilab/Matlab untuk kebutuhan komputasi numerik.
9. Membangun algoritma sederhana untuk menghitung nilai fungsi menggunakan hampiran deret Taylor.
Materi :
1.1 Pengertian Metode Numerik
Untuk memahami suatu proses pada dunia real maka proses yang terjadi dapat direpresentasikan terlebih dahulu ke dalam bentuk persamaan matematika. Adapun bentuk persamaan matematika dapat berupa sistem persamaan linear maupun persamaan taklinear, persamaan integral dengan nilai batas yang diketahui, persamaan diferensial, dan lain-lain. Representasi dari proses ini disebut dengan model matematika. Jadi model matematika menggambarkan sistem dunia nyata ke dalam bentuk persamaan matematika.
Hal yang tidak kalah penting untuk diketahui adalah bagaimana menyelesaikan solusi dari model matematika tersebut agar dapat diketahui bagaimana perilaku dari sistem yang diamati. Solusi ini disebut dengan solusi eksak. Salah satu metode yang digunakan untuk menyelesaikan model matematika adalah menggunakan metode analitis. Beberapa contoh metode analitis yang dapat digunakan untuk menyelesaikan model adalah Teknik Integral Parsial untuk menghitung integral dari suatu fungsi, metode Eliminasi untuk menyelesaikan sistem persamaan linear, faktorisasi untuk mencari akar dari persamaan nonlinear. Adanya kesulitan dalam menggunakan metode analitis untuk menyelesaikan model matematika yang rumit mengakibatkan munculnya metode lain yang dapat mengaproksimasi solusi eksak dari model tersebut, metode inilah yang disebut dengan metode numerik.
Definisi 1 Metode numerik adalah teknik-teknik yang digunakan untuk memformulasikan masalah matematis agar dapat diselesaikan dengan menggunakan operasi perhitungan.
Karena metode numerik melibatkan operasi perhitungan yang berulang-ulang maka dalam pengembangannya metode numerik diimplemetasikan dengan memanfaatkan teknologi komputer.
Bidang yang mengkaji pengembangan metode yang efisien dan akurat untuk mengaproksimasi suatu nilai eksak yang sulit diperoleh secara analitis disebut komputasi saintifik. Komputasi saintifik melibatkan perangkat keras komputer, latar belakang teori berupa teori matematika, metode dan algoritma serta perangkat lunak untuk menghampiri/mengaproksimasi solusi eksak dari model yang diteliti.
Berikut ini adalah contoh sederhana yang dapat diselesaikan dengan menggunakan metode numerik.
1. Misalkan sebuah tabung diisi penuh air dengan tinggi tabung 7 cm dan kedalamnya dimasukkan sebuah bola sehingga air dari tabung tumpah sebanyak 10 cm3. Ingin diketahui berapa ukuran
diameter bola yang harus dimasukkan. Permasalahan ini diformulasikan kedalam persamaan matematika menjadi
Vtabung VbolaVairtumpah
2 4 3
7 10
r 3 r
3 2 30
4r 21r 0
Untuk menyelesaikan persamaan ini dapat dilakukan dengan metode yang diberikan di sekolah namun solusi dari masalah ini dapat diaproksimasi secara numerik dengan menggunakan metode numerik.
2. Misalkan berikut ini adalah data dari jarak tempuh dan kecepatan sebuah mobil Tabel 1 Data Hasil Pengamatan dari Jarak Tempuh dan Kecepatan Sebuah Mobil
Waktu (detik) 0 3 6 8 12
Jarak (meter) 0 40 85 130 210
Kecepatan(m/det) 0 30 45 35 20
Dari data yang dimiliki dapat ditentukan posisi mobil pada detik ke-10 dengan menggunakan aproksimasi
1.2 Sumber Kesalahan Aproksimasi
Didalam melakukan aproksimasi munculnya kesalahan atau galat tidak dapat dihindari. Berikut ini adalah beberapa penyebab terjadinya galat:
1. Galat yang terjadi sebelum komputasi
Contoh galat yang terjadi sebelum komputasi adalah: kesalahan dalam memodelkan masalah real kedalam bentuk persamaan matematika, keterbatasan alat ukur yang digunakan, mengambil data hasil komputasi sebelumnya yang juga merupakan hasil aproksimasi.
2. Galat yang terjadi selama komputasi
Galat yang terjadi selama komputasi dapat dibagi menjadi dua yaitu:
a. Galat yang terjadi akibat pembulatan (rounded error) representasi bilangan hasil perhitungan pada komputer telah melalui proses pembulatan akibatnya hasil komputasinya akan disertai kesalahan.
b. Galat yang terjadi akibat pemotongan (truncation error)
Galat ini muncul akibat penggunaan hampiran sebagai pengganti persamaan eksak. Contohnya adalah pada fungsi yang kontinu maka penggambaran fungsi dilakukan dengan mendiskritisasi dengan sejumlah yang berhingga titik.
1.3 Aturan Pembulatan Bilangan Desimal
Galat yang terjadi akibat pembulatan muncul dari dua metode yang sering dilakukan yaitu:
1. Pemotongan (chopping)
2. Pembulatan terdekat (rounding)
Untuk lebih jelasnya perhatikan contoh pembulatan bilangan desimal menjadi dua digit Tabel 2 Contoh Pemotongan dan Pembulatan
Bilangan Pemotongan Pembulatan Bilangan Pemotongan Pembulatan
2,749 2,7 2,7 2,849 2,8 2,8
2,750 2,7 2,8 2,850 2,8 2,8
2,751 2,7 2,8 2,851 2,8 2,9
2,799 2,7 2,8 2,899 2,8 2,9
Amati tabel diatas kemudian simpulkan aturan pembulatan khususnya untuk pembulatan terdekat.
Berdasarkan contoh yang diberikan maka aturan yang berlaku dalam pemotongan adalah sebagai berikut:
1. Untuk pemotongan bilangan desimal, digit yang digunakan sesuai dengan jumlah desimal yang diinginkan. Jika nilai 74,289 akan dipotong menjadi satu desimal maka angka setelah desimal kesatu yaitu 8 dan 9 akan dibuang. Contoh lainnya 2134,286471 jika dipotong menjadi tiga desimal akan menjadi 2134,286.
2. Pada kasus pembulatan, angka yang akan diamati adalah angka setelah desimal yang diinginkan.
Contoh jika 74,289 akan dibulatkan dua desimal maka angka yang diamati adalah angka pada desimal ketiga yaitu 9. Jika 2134,286471 akan dibulatkan menjadi 4 desimal maka angka yang diamati adalah angka pada desimal ke 5 yaitu 7. Berikut adalah aturan yang digunakan dalam pembulatan:
a. Jika desimal yang diamati < 5 maka nilai desimal sebelumnya tetap. Contoh pembulatan dua desimal dari 31,7234 adalah 31,72 karena angka 3 dari desimal ketiga kurang dari 5.
b. Jika desimal yang diamati >5 maka nilai desimal sebelumnya bertambah satu. Contoh pembulatan dua desimal dari 438,538 adalah 438,54 karena angka 8 pada desimal ketiga > 5.
c. Jika desimal yang diamati =5 maka lihat desimal berikutnya, jika nilainya tidak nol maka nilai desimal sebelumnya bertambah satu. Contoh pembulatan 3 desimal dari 43,53351 akan menjadi 43,534 karena desimal keempat nilainya 5 dan desimal selanjutnya nilainya tidak nol.
Akantetapi, jika nilai yang diamati =5 dan nilai selanjutnya bernilai nol maka akan dilihat desimal sebelum angka 5 tersebut. Jika nilai angka sebelumnya bernilai ganjil maka nilai desimal tersebut bertambah satu dan jika nilai angka sebelumnya bernilai genap maka nilai desimal tersebut tetap. Contoh pembulatan 2 desimal dari 34,315 dan 147,365 akan menjadi 34,32 dan 147,36.
Karena banyaknya iterasi dalam algortima dapat mencapai ribuan kali maka dapat terjadi akumulasi galat yang tidak dapat dikendalikan (blow up) walaupun pada iterasi pertama hanya terjadi galat dengan nilai yang kecil. Oleh karena itu perlunya untuk mengecek akurasi dan stabilitas dalam menggunakan algoritma menjadi hal yang penting untuk dianalisis sebelum melakukan aproksimasi secara numerik. Jika akurasi menunjukkan pada seberapa dekat hasil aproksimasi dengan hasil sebenarnya maka stabilitas menunjukkan pada seberapa rentannya perubahan hasil aproksimasi akibat perubahan sedikit dari nilai variabel masukkannya.
Jika akurasi digunakan untuk menunjukkan seberapa dekat suatu nilai aproksimasi dengan nilai eksak, maka presisi digunakan untuk menunjukkan seberapa dekat nilai aproksimasi dengan nilai aproksimasi lainnya. Nilai yang tidak akurat disebut dengan istilah bias sedangkan nilai yang tidak presisi disebut dengan ketidakpastian (uncertainty).
Latihan 1
Lakukan pembulatan dengan menggunakan dua desimal dan tiga desimal dari soal berikut ini
Dua Desimal Tiga Desimal
Bilangan Pemotongan Pembulatan Bilangan Pemotongan Pembulatan
5,3456 5,3456
28,6785 28,6785
52,5354 52,5354
235,7935 235,7935
7,245 7,245
1.4 Galat
Dari cara perhitungannya galat dapat dibagi menjadi dua yaitu : a. Galat Eksak
Galat eksak dihitung dari selisih antara solusi eksak dengan solusi numerik, dituliskan dalam persamaan berikut:
t ˆ E a a
Dengan aˆadalah nilai aproksimasi dan aadalah nilai eksaknya b. Galat Relatif
Galat relatif terbagi menjadi dua, yaitu:
1. Galat relatif sejati adalah galat yang diperoleh dengan membandingkan Etterhadap a ˆ
t
a a
a
atau
ˆ 100%
t
a a
a
2. Galat relatif semu adalah galat yang diperoleh dari nilai aproksimasi saat ini dikurang nilai aproksimasi sebelumnya dan dibandingkan dengan nilai aproksimasi saat ini atau dituliskan menjadi persamaan berikut ini
1 1
r r
a r
a a
a
atau
1 1
100%
r r
a r
a a
a
Dengan ar1nilai aproksimasi saat ini dan arnilai aproksimasi sebelumnya.
Galat relatif semu sering digunakan apabila solusi eksaknya tidak diketahui.
Contoh 1
Manakah yang lebih signifikat 10 orang gagal ujian dari 100 peserta ujian atau 1 orang gagal dari 20 orang peserta ujian?
Untuk kasus 10 orang gagal maka
10 100% 1%
t 100
sedangkan Untuk kasus 1 orang gagal maka
1 100% 5%
t 20
Maka terjadinya kegagalan ujian lebih signifikat pada kasus 1 orang yang gagal dibandingkan dengan 10 orang yang gagal.
Didalam komputasi penggunaan galat bertujuan agar pada saat proses penghitungan akan diketahui kapan komputasi harus berhenti. Kondisi yang biasa digunakan adalah berhenti jika galat yang diperoleh <
Latihan 2nilai toleransi galat. Toleransi galat ( εs ) adalah besarnya ketelitian yang diinginkan pada saat komputasi berakhir.
1.5 Deret Taylor
Telah dijelaskan bahwa galat pemotongan adalah galat yang muncul akibat penggunaan hampiran sebagai pengganti persamaan eksak. Salah satu fungsi yang digunakan untuk menghampiri nilai eksak adalah menggunakan deret Taylor. Setiap fungsi yang kontinu dapat diaproksimasi dengan sebuah fungsi polinomial dengan menggunakan deret Taylor
Definisi 2
Andaikan f dan f ΄, f ΄΄,… kontinu pada selang [a,b]. Misalkan x0 ∈ [a,b] maka untuk x disekitarx0, x∈ [a,b] maka f(x) dapat diekspansi ke dalam deret Taylor menjadi
2
( )
0 0 0
0 0 0 0
( ) ( ) ( )
( ) ( ) ( ) ( ) ( )
1! 2! !
m
x x x x m x x
f x f x f x f x f x
m
Jika x x 0 h maka deret Taylor dituliskan kembali menjadi
2
( )
0 0 0 0
( ) ( ) ( ) ( ) ( )
1! 2! !
m
h h m h
f x f x f x f x f x
m
Jika nilai x00maka deret Taylor ini disebut dengan deret Mc Laurin
2 ( )
( ) (0) (0) (0) (0)
2! !
m m
x x
f x f f x f f
m
Latihan 3
Hampiri fungsi ex ke dalam deret Taylor disekitar x0 0.
( ) x, ( ) x, ( ) x, 4( ) x f x e f x e f x e f x e Maka dengan deret Taylor diperoleh
2 3
0 0 0 0
2 3
( 0) ( 0) ( 0)
1! 2! 3! ...
1 ...
1! 2! 3!
x x x x
e e e e e
x x x
Dengan h x 0.
Jika ingin diaproksimasi nilai e1maka diperoleh hasilnya pada tabel berikut:
Suku ke- Nilai hampiran Galat Eksak Galat Hampiran
1 1
2 1+1=2
3 1+1+0.5=2.5
4 5
Lengkapi tabel berikut ini hingga nilai εs =0.001 1.6 Order Konvergensi
Melakukan aproksimasi secara numerik dari solusi eksak prinsipnya sama dengan membangun sebuah barisan x x1, ,....,2 xn yang konvergen ke suatu nilai x. Nilai x x1, ,....,2 xn dapat dipandang sebagai hasil perhitungan numerik disetiap iterasi sedangkanxsuatu nilai yang diharapkan adalah nilai solusi eksak sehingga dengan semakin bertambahnya n maka barisan
xnakan mendekati nilai x. Sesuai dengan teori barisan dalam kalkulus maka berlaku
lim n
n x x
Terdapat banyak kemungkinan barisan
xnyang bisa konvergen menuju x. Perbedaannya terletak dari kecepatan konvergensi. Untuk mengukur kecepatan konvergensi digunakan orde kekonvergenan yang dinotasikan dengan O (big – O).
Definisi 3
Misalkan
n n1konvergen ke bilangan untuk n membesar. Jika terdapat konstanta positif pdan K sehingga. 1
n K p
n
untuk semua
. 1
n K p
n
besar
Maka dikatakan
n n1konvergen ke dengan orde kekonvergenan 1 O p
n
Relasi antara dan n adalah
1
n O p
n
Persamaan ini menyatakan bahwa n dengan kecepatan konvergensi 1 np
Jika nilai psemakin besar maka makin cepat barisan tersebut mencapai konvergensi.
Contoh 2
Diberikan dua barisan berikut
1 xn
n
dan 3
2 yn
n
Keduanya akan konvergen ke 0, tetapi barisan ynakan lebih cepat konvergen dari pada barisan xn, sehingga dengan definisi dapat dituliskan
( 1)
xnO n dan ynO n
31.7 Pengantar Scilab
Scilab adalah perangkat lunak yang menyerupai Matlab yang berguna untuk melakukan komputasi numerik dan visualisasi data. Aplikasi dapat diunduh pada www.scilab.org dan digunakan pada OS Linux ataupun Windows.
Seperti halnya pada Matlab setelah masuk ke jendela kerja scilab maka perintah dapat dituliskan setelah tanda -->. Untuk lebih jelasnya diberikan pada Contoh 3
Contoh 4
Dalam jendela kerja scilab dapat didefinisikan fungsi dengan menggunakan perintah deff. Penggunaan perintah ini diberikan pada Contoh 5
Contoh 6
Selama aplikasi keluar atau perintah clear belum dijalankan maka modul dengan nama luas masih dapat dipanggil untuk digunakan untuk nilai inputan yang berbeda-beda.
Scilab juga menyediakan media untuk menuliskan sekumpulan perintah yang dapat disimpan dan dipanggilan kapanpun yaitu SciNotes. Jendela editor (SciNotes) dibuka dengan memilih dari jendela Editor pada menubar atau dengan menuliskan scinote() pada jendela kerja scilab.
Dengan menggunakan editor scilab maka perhitungan luas persegipanjang dapat dituliskan dalam bentuk fungsi yang disimpan dengan nama file .sci.
Contoh 7
Pada Contoh 8 nama fungsi adalah luaspp dan file akan otomatis disimpan sesuai dengan nama fungsinya yaitu luaspp.sci.
Untuk mengeksekusi fungsi digunakan 3 cara yaitu:
-->p=2 p = 2.
-->l=3 l = 3.
-->luas=p*l luas = 6.
--
>deff('L=luas(p,l)','L=p*l') /
/deff(‘(output1,output2,...)=namamodul(input1,input2,...),’persamaan’) -->luaspersegipanjang=luas(2,3)
luaspersegipanjang = 6.
function L=luaspp(p,l);
L = p*l;
endfunction
1. Pada menu bar jendela editor pilih execute lalu Load into scilab
2. Pada menu bar jendela kerja pilih execute lalu pilih file yang akan dieksekusi
3. Dengan mengetikkan secara langsung di jendela kerja exec(‘d:\metnum scilab\luaspp.sci’)artinya memanggil fungsi luaspp.sci yang berada di direktori d yang ada dalam folder bernama metnum scilab.
Selanjutnya fungsi yang sudah dipanggil dapat digunakan dengan cara berikut:
Seperti halnya pada bahasa pemrograman yang lain modul atau fungsi dapat digunakan/dipanggil dalam fungsi yang lain. Dalam scilab digunakan fungsi exec(‘lokasi dan nama file’)
Beberapa variabel yang telah didefinisikan pada Scilab : Konstanta Spesial pada Scilab Nilai/Keterangan
%pi 3,1415927
%i 1
%e e2,7182818
%t dan %f True dan false dalam konstanta boolean
%eps Epsilon mesin 2,22 x 10-16
Untuk mengetahui variabel yang tersedia di Scilab gunakan perintah who.
Beberapa fungsional yang langsung bisa digunakan pada Scilab
Fungsional Kegunaan
factorial(7) 7!
sin(7) sin 7
log(5) ln 5
disp(x) Menampilkan nilai variable x printf(‘Hello World’) Menampilkan tulisan ‘Hello World’
input(‘Masukkan nilai= ‘,n) Menampilkan tulisan ‘Masukkan Nilai =’ dan hasil inputan disimpan pada variable n
pmodulo(5,2) Menghitung sisa hasil bagi 5 dengan 2
abs(x) Nilai mutlak dari x
Berikut ini adalah operator aritmatika dan operator pembanding yang di gunakan di Scilab
Simbol Keterangan Simbol Keterangan
+ Penjumlahan == Sama dengan
- Pengurangan < Kurang dari
* Perkalian > Lebih dari
/ Pembagian >= Lebih dari atau sama dengan
-->exec('d:\Metnum Scilab\luaspp.sci') -->function L=luaspp(p,l);
--> L=p.*l;
-->endfunction
function V=volkotak(panjang,lebar,tinggi);
exec('d:/metnum scilab/luaspp.sci');
V=luaspp(panjang,lebar)*tinggi;
endfunction
-->Luas=luaspp(2,3) Luas =
6.
\ Pembagian kiri <= Kurang dari atau sama dengan
^ Pangkat <> , ~= Tidak sama dengan
‘ Transpose
Untuk operator logika dalam Scilab digunakan berikut ini
Simbol Operator Keterangan
& And Konjungsi
| Or Disjungsi
~ Nor Ingkaran
Penggunaan kondisi dan perulangan dalam Scilab
Perintah Implementasi
Penggunaan if if komparasi (P1) then
perintah untuk (P1) benar elseif komparasi (P2) then perintah untuk (P2) benar else
perintah end
Penggunaan case of select nama()
case nama1 then Perintah_1 case nama2 then Perintah_2 ....
else
Perintah_n end
Penggunaan for inisiasi
for variabel_penghitung = 1:langkah:n
perintah yang dikerjakan end
Penggunaan While inisialisasi
while kondisi perintah end
Latihan 4
1. Buatlah program sederhana untuk menghitung penjumlahan dan perkalian rekursif berikut ini
a.
10
1 x
x
b.
10
2,4,...
x
x
2. Modifikasi program pada no 1 dengan mengubah masukan x menjadi dinamis, sehingga dapat dihitung penjumlahan dan perkalian rekursifnya untuk sembarang nilai x yang dimasukkan.
1.8 Vektor dan Matriks pada Scilab
Seperti halnya pada Matlab, Scilab dapat menerima masukan nilai berupa vektor ataupun matriks.
Berikut ini adalah contoh input dari vektor dan matriks.
A=[2 3 5;5 3 2]
[baris,kolom]=size(A) A’
A(1,3) B=eye(5,5) C=one(4,1) D=2:3:18 A.^2
Latihan 5
Tuliskan kembali perintah yang diberikan pada window console. Perhatikan respon dari perintah yang diberikan lalu jelaskan kegunaan dari setiap perintah yang digunakan.
1.9 Visualisasi Grafik pada Scilab
Seperti pada Matlab perintah untuk memvisualisasikan data dengan menggunakan perintah
Perintah Keterangan
plot(a,b) Menampilkan grafik dengan nilai a pada sumbu x dan nilai b pada sumbu y
xtitle Menampilkan nama dari setiap sumbu
subplot (m,n,p) Menampilkan beberapa grafik dalam satu tampilan dengan m = baris, n = kolom dan p = urutan gambar clf Membersihkan grafik dari hasil plotting data Variasi tampilan grafik ditampilkan pada tabel berikut ini
Perintah Tampilan Perintah Tampilan Perintah Tampilan
0 - -5 Oval 1 Hitam
-1 + -6 ⨂ 2 Biru
-2 X -7 ∇ 3 Hijau
-3 * -8 5 Merah
-4 Wajik -9 O 6 pink
Contoh 1.7
//Program visualisasi dengan subplot x=[0:0.1:2*%pi]';
y1=sin(x);
y2=cos(x);
subplot(1,2,1) plot2d(x,y1)
xtitle('Grafik Fungsi Sinus','x','y1') subplot(1,2,2)
plot2d(x,y2)
xtitle('Grafik Fungsi Cosinus','x','y2')
Contoh 9 clf;
x=-4:0.1:4;
f=x.^2+3*x-5;
g=3*x-2;
plot(x,f,x,g);
gambar=gca();
gambar.x_location = "origin";
gambar.y_location = "origin";
gambar.grid=[1,1];
Latihan 6
1. Gambarkan pada satu bidang koordinat fungsi grafik f(x) = sin(x) dan g(x) = e-x pada interval [0,3].
Tentukan perkiraan titik potong dari kedua grafik tersebut. (gunakan fungsi plot)
2. Buatlah program untuk menghitung nilai aproksimasi e dengan menggunakan deret taylor untuk nilai x = 1 disekitar x0 = 0, jika diberikan nilai e = 0.3678794414 (gunakan %e). Buatlah tabel
aproksimasinya sampai kesalahan relatifnya kurang dari 0.00000001, tampilkan pula perhitungan galat eksak, galat relatif.