2. Konsep Error
Error Jika â adalah nilai hampiran terhadap nilai sejati a maka selisih â dengan a disebut dengan error. ε = a – â error lebih berarti jika diketahui perbandingan dengan nilai aslinya yang disebut error relatif : εR = ε / a atau εR = ε / a x 100% Untuk kasus dimana nilai asli sulit didapatkan, sehingga digunakan nilai hampiran hasil iterasi : εRA = (ar+1 – ar) / ar+1
Sumber Utama Error Round-off Error Truncation Error diakibatkan keterbatasan komputer menyimpan detail bilangan riil. Panjang bilangan yang melebihi kemampuan media penyimpanan akan dibulatkan (ke atas) Truncation Error Diakibatkan oleh adanya penghentian komputasi tak hingga menjadi berbatas. Digunakan hampiran sebagai pengganti formula yang eksak.
Angka Penting Angka yang dapat digunakan secara pasti. Angka penting akan terlihat dengan pasti jika ditulis dalam notasi ilmiah. Jumlah angka penting terletak pada jumlah digit mantis.
Bilangan Floating Point Formula bilangan floating point : a = + m x b + p Dimana : m = mantis(riil) b = basis p = pangkat (bilangan bulat positif) Format standar floating point : Single (32 bit) Double (64 bit) Setiap format terdiri 3 field (sign bit,eksponen bit dan fraction bit)
Bilangan Floating Point (Cont.) Bilangan Floating Point Ternormalisasi Untuk menyeragamkan penyajian Agar semua digit mantis merupakan angka penting Format : a = + m x b + p = +0.d1d2d3d4..dn x b + p dengan syarat 1<d1<b-1 dan 0<dk<b-1 untuk k>1.
Epsilon Mesin Setiap komputer memiliki kemampuan menyimpan detail bilangan positif terkecil. Epsilon mesin (μ) didefinisikan sebagai bilangan positif terkecil sedemikian sehingga 1 + μ > 1 Gap (Δx) adalah jarak antara sebuah bilangan floating point dengan bilangan floating point berikutnya, formulanya : Δx = μ x R R adalah bilangan floating point sekarang.
Gambar Rentang Bilangan Floating Point Epsilon Mesin (Cont.) Gambar Rentang Bilangan Floating Point
Pembulatan pada Floating Point Pemenggalan (chopping) Digit bilangan yang lebih banyak daripada digit mantis komputer akan mengalami pemenggalan a = +0.d1d2d3…dndn+1… x 10+p Dengan n digit mantis pada komputer akan menjadi : flchop(a) = +0.d1d2d3…dn x 10+p Contoh : Bilangan π = 0.31415926535897…. x 100 Pada komputer dengan mantis 7 bit menjadi flchop(π) = 0.3141592 x 100 error = 0.000000065… Bilangan biner untuk hasil 1/10 (basis 10) = (0.00011001100110011…)2 Dinormalkan dan dipenggal dengan mantis 32 bit : flchop(1/10) ≈ (0.11001100110011001100110011001100 )2 x 2-3 maksimum error pemenggalan adalah ∆x.
Pembulatan pada Floating Point (Cont.) Pembulatan ke digit terdekat (in-rounding) Bilangan basis 10 a = +0.d1d2d3…dndn+1… x 10+p Pembulatan dengan n digit mantis menjadi : flround(a) = +0.d1d2d3…z x 10+p Z dalam hal ini : z = dn jika dn+1 < 5 dn + 1 jika dn+1 > 5 dn jika dn+1 = 5 dan n genap dn + 1 jika dn+1 = 5 dan n ganjil Contoh : π = 0.31415926535897…. x 100 flround(π) = 0.3141593 x 100 Bilangan basis 2 Batas maksimum galat : ∆x /2
Pembulatan pada Floating Point (Cont.) Error mutlak ke digit terdekat : | a – fl(a) | = | +0.d1d2d3…dndn+1… x 10+p - +0.d1d2d3…dn x 10+p | < ( ½ x 10–n ) x 10+p = ( ½ x 10–n ) x a/m (karena 10+p = a/m) < 5a x 10-n
Aritmatika Bilangan Floating Point Teorema pada Aritmatika Bilangan Floating point. Jika a dan b adalah bilangan floating point maka : i) fl(a + b) = (a + b)(1 + ε1) fl(a – b) = (a – b)(1 + ε2) fl(ab) = (ab)(1 + ε3) fl(a/b) = (a/b)(1 + ε4) Yang dalam hal ini | εi | < 5 x 10-n = e, i = 1,2,3,4
Aritmatika Bilangan Floating Point (Cont.) Operasi Penjumlahan & Pengurangan Harus ada penyamaan pangkat : kiri atau kanan ? Geser kiri kehilangan bit penting Geser kanan kehilangan lebih sedikit bit penting (error lebih kecil ?) Penjumlahan bilangan kecil ke besar menyebabkan error pembulatan hilang angka penting akibat pergeseran Pengurangan 2 bilangan yang hampir sama menghasilkan bilangan nol pada digit mantis yang paling penting
Aritmatika Bilangan Floating Point (Cont.) Perkalian dan pembagian tidak memerlukan penyamaan pangkat
Perambatan Error Pada suatu proses komputasi yang memiliki error akan menyebabkan penumpukkan error apabila proses tersebut dilakukan secara beruntun. Menyebabkan hasil yang menyimpang dari sebenarnya kondisi tidak stabil (ketidakstabilan numerik) Kondisi Stabil : error pada hasil antara memiliki pengaruh yang sedikit pada hasil akhir. Ketidakstabilan matematik : kondisi yang timbul karena hasil perhitungan sangat peka terhadap perubahan kecil data.
Ketidakstabilan Dikatakan tidak stabil jika hasil tidak teliti sebagai akibat metode komputasi yang dipilih. Contoh : F(x) =x (√(x+1)- √ x), hitung f(500) sampai 6 angka penting, solusi asli =11.174755300747198… F(x) = √(x+1)- √ x, hitung f(12345) sampai 6 angka penting , solusi asli = 0.00450003262627751 Cari akar-akar polinom x2 – 40x + 2 = 0 sampai 4 angka penting F(x) = (ex -1- x) / x2 hitung f(0.01) sampai angka 6 penting
Kondisi Buruk Persoalan dikatakan berkondisi buruk bila jawabannya sangat peka terhadap perubahan kecil data atau error pembulatan. Contoh : x2 -4x + 3.999 = 0 akar-akar x1 = 2.032 dan x2 = 1.968 x2 -4x + 4.000 = 0 akar-akar x1 = x2 = 2.000 x2 -4x + 4.001 = 0 akar-akarnya imajiner
Bilangan Kondisi Bilangan kondisi didefinisikan sebagai : Bilangan Kondisi = |εRA [f(â)]/ εRA (â)| = |â f’(a)/f(â)| Arti bilangan kondisi : Bilangan kondisi = 1, galat relatif hampiran fungsi sama dengan galat relatif x Bilangan kondisi >1, galat relatif hampiran diperkuat Bilangan kondisi <1, galat relatif hampiran diperlemah Kondisi buruk bilangan kondisi besar Kondisi baik bilangan kondisi kecil