BAB 1 ERROR PERHITUNGAN NUMERIK A. Tujuan a. Memahami galat dan hampiran b. Mampu menghitung galat dan hampiran c. Mampu membuat program untuk menyelesaikan perhitungan galat dan hampiran dengan Matlab B. Perangkat dan Materi a. Software Matlab b. Materi Galat dan Hampiran C. Dasar Teori
(Hampiran)
Contoh : Hitunglah
2 sampai empat angka desimal.
Penyelesaian : Mennggunakan algoritma untuk menghitung
2 dengan menggunakan operasi
perkalian, pembagian, dan penjumlahan sebagai berikut :
x1 1,
1 2 , untuk n = 2,3,4,... xn x n 1 2 xn 1
Dengan menggunakan algoritma di atas, diperoleh, untuk n = 2,3,4,...
x2
3 , 2
x3
17 , 12
x4
1 17 24 577 , 2 12 17 408
x5
1 577 816 665857 , 2 408 577 470832
Atau dalam bentuk pecahan desimal :
x2 1.5000000 , x3 1.4166667 , x4 1.4142157 , Jadi, hampiran sampai empat angka desimal untuk
x5 1.4142136 2 adalah x5 1.4142
Implementasi dengan Matlab Berikut ini langkah-langkah percobaan untuk menyelesaikan persoalan di atas: a. Buka program Matlab b. Buat programnya di Command Windows
>> x=1; >> e=1; >> while e > 0.00001, y=x; x=(y+2/y)/2 e=abs(x-y); end x= 1.5000 x= 1.4167 x= 1.4142 x= 1.4142 >> fprintf('%5.7f',x); 1.4142136 c. Anda dapat mengubah batas nilai e untuk mendapatkan tingkat keakuratan yang diinginkan.
Definisi Kesalahan (Galat) Yaitu kesalahan yang ditimbulkan karena proses pengukuran atau penggunaan hampiran (aproksimasi). Berikut ini merupakan sumber galat (error) pada suatu hampiran penyelesaian yang diperoleh dengan menggunakan suatu metode komputasi numerik (Volkof,1990:8, dalam buku Komputasi Numerik dengan Matlab, 2005 oleh Sahid :3) adalah : 1. Model matematika untuk suatu fenomena alam 2. Galat bawaan dari masukan (parameter masukan) 3. Metode Penyelesaian 4. Adanya pembulatan dalam melakukan operasi-operasi aritmetika. Contoh : Galat Penjumlahan dan Pengurangan Teori : Dari hubungan nilai eksak diperoleh :
x y x ex y e y ( x y) (ex e y )
Jadi galat penjumlahan sama dengan jumlah galat suku-suku yang dijumlahkan, atau dapat ditulis :
ex y ex e y Galat relatif penjumlahan adalah :
rx y
ex y xy
ex e y
xy
Untuk pengurangan
x y x ex y e y ( x y) (ex e y ) Jadi, analog dengan penjumlahan, galat pengurangan sama dengan selisih galat, atau dapat dituliskan :
ex y ex e y Galat relatif pengurangan adalah :
rx y
ex y xy
ex e y xy
Dari persamaan terakhir dapat dipahami bahwa, apabila
x y maka galat relatif
pengurangan kedua hampiran akan semakin besar.
Misalkan x1 , x2 ,...., xn digunakan sebagai hampiran untuk X 1 , X 2 ,...., X n dengan maksimum galat yang mungkin untuk masing-masing hampiran adalah E. Dengan kata lain : untuk i 1,2,...., n
xi E X i xi E ,
Dengan menjumlahkan nilai-nilai tersebut diperoleh : n
n
n
i 1
i 1
i 1
xi nE X i xi nE n
Atau
n
X x i 1
i
i 1
i
nE
Jadi, galat jumlah n nilai hampiran tersebut adalah jumlah maksimum galat masing-masing hampiran. Contoh Kasus : Hitunglah jumlah
1 2 ... 100 dengan menggunakan pembulatan sampai dua angka
desimal (di belakang koma). Berapakah maksimum galat penjumlahan tersebut? Berapakah galat yang sesungguhnya?
Penyelesaian : Kita
dapat
menggunakan
Matlab
untuk
menghitung
jumlahan
tersebut.
Dalam
menggunakan Matlab perhitungan (menggunakan 16 angka signifikan). Untuk menghitung sampai dua angka desimal, masing-masing akar dikalikan 100 dan dibulatkan. Hasilnya sama dengan 100 kali jumlah tersebut. Implementasi dengan Matlab: a. Bukalah program Matlab b. Buatlah program berikut pada command windows > s=0; for k=1:100, s=s+round(100*sqrt(k)); end;s=s/100 s= 671.4800 > s=fprintf('%5.2f',s); 671.48 c. Jadi, perhitungan menggunakan dua angka desimal menghasilkan jumlah 671.48. Oleh karena setiap akar dihitung sampai dua angka desimal, maka galat maksium masing2
masig suku adalah 0.5 10 . Oleh karena itu, maksimum galat hampiran jumlah tersebut adalah 100 0.5 10
2
0.5 .
d. Nilai yang sebenarnya dapat dihitung dengan menggunakan Matlab berikut, tulis program pada command windows : >> s=0; for k=1:100, s=s+sqrt(k); end;s=s s= 671.4629 >> s=fprintf('%5.16f',s); 671.4629471031477100 Jadi, galat yang sesungguhnya adalah sekitar 0.071, lebih kecil daripada maksimum galatnya. Apabila dikerjakan dengan Matlab tanpa adalanya looping adalah sebagai berikut : >> format long g barisan=1:100;
>> s1=sum(round(100*sqrt(barisan))/100); >> s2=sum(sqrt(barisan)); >> s1=s1 s1 = 671.48 >> s2=s2 s2 = 671.462947103148