Anda di halaman 1dari 17

Perkiraan dan Kesalahan bulat-Off

Karena begitu banyak metode dalam buku ini bersifat langsung dalam deskripsi dan aplikasi , itu
akan sangat menggoda pada saat ini bagi kita untuk melanjutkan langsung ke bagian utama dari
teks dan mengajarkan Anda bagaimana menggunakan teknik ini . Namun, memahami konsep
kesalahan sangat penting untuk penggunaan efektif dari metode numerik yang kita telah
memilih untuk mengabdikan dua bab berikutnya dengan topik ini .
Pentingnya kesalahan diperkenalkan dalam diskusi kita tentang penerjun jatuh Chap . 1 .
Ingatlah bahwa kita menentukan kecepatan dari penerjun jatuh dengan kedua metode analitik
dan numerik . Meskipun teknik numerik menghasilkan perkiraan yang dekat dengan solusi
analitis yang tepat , ada perbedaan , atau kesalahan , karena metode numerik yang terlibat
perkiraan . Sebenarnya , kami sangat beruntung dalam hal ini karena ketersediaan solusi
analitis memungkinkan kita untuk menghitung kesalahan persis . Bagi banyak masalah teknik
terapan , kita tidak bisa mendapatkan solusi analitis . Oleh karena itu, kita tidak dapat
menghitung persis kesalahan yang terkait dengan metode numerik kami . Dalam kasus ini , kita
harus puas dengan perkiraan atau estimasi dari kesalahan . Kesalahan tersebut merupakan
karakteristik dari sebagian besar teknik yang dijelaskan dalam buku ini . Pernyataan ini mungkin
pada awalnya tampak bertentangan dengan apa yang biasanya conceives rekayasa sebagai
suara. Mahasiswa dan insinyur berlatih terus-menerus berusaha untuk membatasi kesalahan
dalam pekerjaan mereka . Saat mengambil ujian atau melakukan masalah pekerjaan rumah ,
Anda dihukum , tidak dihargai , untuk kesalahan Anda . Dalam praktek profesional , kesalahan
dapat mahal dan kadang-kadang bencana . Jika struktur atau perangkat gagal , nyawa bisa
hilang .
Meskipun kesempurnaan adalah tujuan terpuji , jarang , jika pernah , dicapai . Sebagai contoh,
meskipun fakta bahwa model yang dikembangkan dari hukum kedua Newton adalah
pendekatan yang sangat baik , itu tidak akan pernah dalam praktek tepat memprediksi jatuhnya
penerjun itu . Berbagai faktor seperti angin dan variasi kecil dalam hambatan udara akan
mengakibatkan penyimpangan dari prediksi . Jika penyimpangan ini sistematis tinggi atau
rendah , maka kita mungkin perlu untuk mengembangkan model baru . Namun, jika mereka
secara acak didistribusikan dan erat dikelompokkan di sekitar prediksi , maka penyimpangan
bisa dianggap diabaikan dan model yang dianggap memadai . Perkiraan numerik juga
memperkenalkan perbedaan yang sama ke dalam analisis . Sekali lagi , pertanyaannya adalah :
Berapa banyak kesalahan berikutnya hadir dalam perhitungan dan ditoleransi ?
Bab ini dan Chap . 4 Penutup topik dasar yang berhubungan dengan identifikasi , kuantifikasi ,
dan minimalisasi kesalahan ini . Dalam bab ini , informasi umum berkaitan dengan kuantifikasi
kesalahan terakhir dalam bagian pertama . Ini diikuti dengan bagian atas salah satu dari dua
bentuk utama kesalahan numerik : round- off error . Round- off error ini disebabkan oleh fakta
bahwa komputer dapat mewakili hanya jumlah dengan jumlah terbatas digit . Kemudian Chap .
4 penawaran dengan bentuk utama lainnya : kesalahan pemotongan . Kesalahan pemotongan
adalah perbedaan diperkenalkan oleh fakta bahwa metode numerik dapat menggunakan
perkiraan untuk mewakili operasi matematika yang tepat dan kuantitas . Akhirnya , kita
membahas secara singkat kesalahan tidak langsung berhubungan dengan metode numerik
sendiri . Ini termasuk kesalahan , formulasi atau model kesalahan , dan ketidakpastian data.

3.1 ANGKA PENTING


Buku ini berkaitan secara menyeluruh dengan perkiraan terhubung dengan manipulasi angka.
Akibatnya , sebelum membahas kesalahan yang terkait dengan metode numerik , hal ini
berguna untuk meninjau konsep-konsep dasar yang berhubungan dengan representasi
perkiraan angka itu sendiri .
Setiap kali kita menggunakan angka dalam perhitungan , kita harus memiliki jaminan bahwa hal
itu dapat digunakan dengan keyakinan . Sebagai contoh, Gambar . 3.1 menggambarkan
speedometer dan odometer dari sebuah mobil . Inspeksi visual dari speedometer menunjukkan
bahwa mobil tersebut berpergian antara 48 dan 49 km / jam . Karena indikator lebih tinggi dari
titik tengah antara spidol pada alat ukur , kita dapat mengatakan dengan jaminan bahwa mobil
tersebut berpergian di sekitar 49 km / jam . Kami memiliki keyakinan dalam hasil ini karena dua
atau lebih individu yang wajar membaca alat ukur ini akan tiba pada kesimpulan yang sama .
Namun, mari kita katakan bahwa kita bersikeras bahwa kecepatan diperkirakan ke satu tempat
desimal . Untuk kasus ini , satu orang mungkin mengatakan 48,8 , sedangkan yang lain mungkin
mengatakan 48,9 km / jam . Oleh karena itu , karena batas instrumen ini ,
GAMBAR 3.1
Sebuah speedometer mobil dan odometer menggambarkan konsep angka yang signifikan .

hanya yang pertama dua digit dapat digunakan dengan keyakinan . Perkiraan digit ketiga ( atau
lebih tinggi ) harus dilihat sebagai perkiraan . Akan menggelikan untuk mengklaim , atas dasar
speedometer ini , bahwa mobil tersebut berpergian di 48.8642138 km / jam . Sebaliknya ,
odometer menyediakan hingga enam digit tertentu . Dari Gambar . 3.1 , kita dapat
menyimpulkan bahwa mobil telah melakukan perjalanan sedikit kurang dari 87,324.5 km
selama masa pakai baterai . Dalam hal ini , angka tujuh ( dan lebih tinggi ) tidak pasti .

Konsep angka signifikan , atau digit , telah dikembangkan untuk secara resmi menunjuk
keandalan nilai numerik . Angka yang signifikan dari angka adalah mereka yang dapat
digunakan dengan percaya diri . Mereka sesuai dengan jumlah tertentu digit ditambah satu
diperkirakan digit . Sebagai contoh, speedometer dan odometer pada Gambar . 3.1 pembacaan
hasil tiga dan tujuh angka penting , masing-masing. Untuk speedometer , dua angka tertentu
adalah 48 . Hal ini konvensional untuk mengatur digit diperkirakan mencapai setengah dari
divisi skala terkecil pada alat ukur . Dengan demikian membaca speedometer akan terdiri dari
tiga angka penting : 48,5 . Dalam cara yang sama , odometer akan menghasilkan pembacaan
tujuh signifikan - angka 87,324.45 .
Meskipun biasanya sebuah prosedur sederhana untuk memastikan angka signifikan dari angka ,
beberapa kasus dapat menyebabkan kebingungan . Sebagai contoh, angka nol tidak selalu
angka penting karena mereka mungkin diperlukan hanya untuk menemukan titik desimal .
Angka-angka 0.00001845 , 0.0001845 , dan 0.001845 semua memiliki empat angka penting .
Demikian pula, ketika tertinggal angka nol yang digunakan dalam jumlah besar , tidak jelas
berapa banyak , jika ada , dari nol adalah signifikan . Sebagai contoh, pada nilai nominal jumlah
45.300 mungkin memiliki tiga , empat , atau lima angka signifikan , tergantung pada apakah
angka nol yang dikenal dengan percaya diri . Ketidakpastian tersebut dapat diatasi dengan
menggunakan notasi ilmiah , di mana 4,53 104 , 4.530 104 , 4,5300 104 menunjuk bahwa
jumlah diketahui tiga , empat , dan lima angka signifikan , masing-masing.
Konsep angka signifikan memiliki dua implikasi penting bagi penelitian kami metode numerik :
1 . Seperti yang diperkenalkan dalam masalah jatuh penerjun , metode numerik menghasilkan
hasil perkiraan . Kita harus , karena itu , mengembangkan kriteria untuk menentukan seberapa
yakin kita berada dalam hasil perkiraan kami . Salah satu cara untuk melakukan ini adalah
dalam hal angka signifikan . Sebagai contoh, kita mungkin memutuskan bahwa pendekatan
kami dapat diterima jika sudah benar empat angka penting.
2 . Meskipun jumlah seperti , e , atau 7 mewakili jumlah tertentu, mereka tidak dapat
dinyatakan tepat oleh sejumlah digit .
Misalnya, = 3,141592653589793238462643 . . .
infinitum iklan . Karena komputer hanya mempertahankan jumlah terbatas angka signifikan ,
nomor tersebut tidak pernah dapat diwakili tepat . Kelalaian dari angka signifikan yang tersisa
disebut round- off error .
Kedua kesalahan round- off dan penggunaan angka signifikan untuk mengekspresikan
keyakinan kita dalam hasil numerik akan dibahas secara rinci dalam bagian berikutnya . Selain
itu, konsep angka signifikan akan memiliki relevansi dengan definisi kita tentang akurasi dan
presisi pada bagian berikutnya .
3.2 AKURASI DAN KETEPATAN
Kesalahan yang terkait dengan kedua perhitungan dan pengukuran dapat dicirikan dalam hal
akurasi dan presisi mereka . Akurasi mengacu pada seberapa dekat nilai dihitung atau diukur
setuju dengan nilai sebenarnya . Presisi mengacu pada seberapa dekat nilai-nilai dihitung atau
diukur individu setuju satu sama lain .

Konsep-konsep ini dapat digambarkan secara grafis dengan menggunakan analogi dari praktek
sasaran. Lubang-lubang peluru pada setiap target pada Gambar . 3.2 dapat dianggap sebagai
prediksi dari teknik numerik , sedangkan pada sasaran merupakan kebenaran . Ketidaktepatan (
juga disebut bias) didefinisikan sebagai penyimpangan sistematis dari kebenaran . Jadi,
meskipun tembakan pada Gambar . 3.2c lebih erat dikelompokkan dibandingkan pada Gambar .
3.2a , dua kasus sama-sama bias karena keduanya berpusat pada kuadran kiri atas target .
Ketidaktepatan ( juga disebut ketidakpastian ) , di sisi lain , mengacu pada besarnya pencar
tersebut . Oleh karena itu , meskipun Gambar . 3.2b dan d sama-sama akurat ( yaitu, berpusat
pada pada sasaran ) , yang terakhir ini lebih tepat karena tembakan dikelompokkan erat .
Metode numerik harus cukup akurat atau tidak bias untuk memenuhi persyaratan dari masalah
teknik tertentu . Mereka juga harus cukup tepat untuk desain rekayasa yang memadai . Dalam
buku ini , kita akan menggunakan kesalahan istilah kolektif untuk mewakili kedua ketidaktelitian
dan ketidaktepatan dari kami predictions.With konsep-konsep ini sebagai latar belakang , kita
sekarang dapat membahas faktor-faktor yang berkontribusi terhadap kesalahan perhitungan
numerik .
GAMBAR 3.2
Sebuah contoh dari keahlian menembak menggambarkan konsep akurasi dan presisi . ( a) tidak
akurat dan tidak tepat , ( b ) akurat dan tepat , ( c ) tidak akurat dan tepat , ( d ) akurat dan

tepat .
3.3 DEFINISI ERROR

Kesalahan numerik timbul dari penggunaan perkiraan untuk mewakili operasi matematika yang
tepat dan kuantitas . Ini termasuk kesalahan pemotongan , yang terjadi ketika perkiraan
digunakan untuk mewakili prosedur matematika yang tepat , dan round- off error , yang terjadi
ketika nomor yang memiliki angka penting terbatas digunakan untuk mewakili angka pastinya .
Untuk kedua jenis , hubungan antara yang tepat , atau benar , hasil dan pendekatan tersebut
dapat dirumuskan sebagai
True value = pendekatan + error ( 3.1 )
Dengan menata ulang persamaan . ( 3.1 ) , kita menemukan bahwa kesalahan numerik adalah
sama dengan perbedaan antara kebenaran dan pendekatan , seperti dalam
Et = true value - pendekatan ( 3.2 )
di mana Et digunakan untuk menunjuk nilai yang tepat dari kesalahan . Subskrip t termasuk
untuk menunjuk bahwa ini adalah " benar " kesalahan . Hal ini berbeda dengan kasus lain ,
seperti yang dijelaskan lama , di mana " perkiraan " perkiraan kesalahan harus digunakan .
Kelemahan dari definisi ini adalah bahwa hal itu tidak memperhitungkan urutan besarnya nilai
di bawah pemeriksaan . Misalnya, kesalahan sentimeter jauh lebih signifikan jika kita mengukur
keling daripada jembatan . Salah satu cara untuk memperhitungkan besaran jumlah sedang
dievaluasi adalah untuk menormalkan kesalahan untuk nilai sebenarnya , seperti dalam
Benar kesalahan relatif pecahan = error sejati
nilai sebenarnya
di mana , sebagaimana ditentukan oleh Persamaan . ( 3.2 ) , error = nilai sebenarnya pendekatan . The kesalahan relatif juga dapat dikalikan dengan 100 persen untuk
mengekspresikan sebagai
t = error sejati
nilai sebenarnya
100 % ( 3.3 )
dimana t menunjuk persen benar kesalahan relatif .
Perhatikan bahwa untuk Pers. ( 3.2 ) dan ( 3.3 ) , E dan yang subscript dengan di untuk
menandakan bahwa kesalahan adalah normal dengan nilai sebenarnya . Pada Contoh 3.1 , kita
diberikan dengan nilai ini . Namun, dalam situasi yang sebenarnya informasi tersebut jarang
tersedia . Untuk metode numerik , nilai sebenarnya akan diketahui hanya ketika kita berurusan
dengan fungsi yang dapat diselesaikan secara analitis . Tersebut biasanya akan terjadi ketika
kita menyelidiki perilaku teoritis teknik tertentu untuk sistem yang sederhana . Namun, dalam
aplikasi dunia nyata , kita akan jelas tidak tahu jawaban yang benar apriori . Untuk situasi ini ,
alternatif adalah untuk menormalkan kesalahan menggunakan estimasi terbaik yang tersedia
dari nilai sebenarnya , yaitu, untuk pendekatan itu sendiri , seperti dalam
a = perkiraan kesalahan
perkiraan

100 % ( 3.4 )
dimana subscript menandakan bahwa kesalahan adalah normal untuk nilai perkiraan .
Perhatikan juga bahwa untuk aplikasi dunia nyata , Eq . ( 3.2 ) tidak dapat digunakan untuk
menghitung error term untuk Eq . ( 3.4 ) . Salah satu tantangan dari metode numerik adalah
untuk menentukan perkiraan kesalahan dengan tidak adanya pengetahuan tentang nilai
sebenarnya . Sebagai contoh, metode numerik tertentu menggunakan pendekatan iteratif
untuk menghitung jawaban . Dalam pendekatan semacam itu, pendekatan ini dilakukan atas
dasar pendekatan sebelumnya . Proses ini dilakukan berulang-ulang , atau iteratif , untuk
berturut-turut menghitung ( kami berharap ) perkiraan yang lebih baik dan lebih baik . Untuk
kasus seperti ini, kesalahan ini sering diperkirakan sebagai perbedaan antara perkiraan
sebelumnya dan saat ini . Dengan demikian , kesalahan relatif persen ditentukan menurut
a = pendekatan saat ini - pendekatan sebelumnya
pendekatan saat ini
100 % ( 3.5)
Ini dan pendekatan lain untuk mengekspresikan kesalahan akan menguraikan dalam berikutnya
bab .
Tanda-tanda Pers. ( 3.2 ) sampai ( 3.5 ) dapat berupa positif atau negatif . Jika pendekatan
tersebut lebih besar dari nilai sebenarnya ( atau pendekatan sebelumnya lebih besar dari
perkiraan saat ini ) , kesalahan adalah negatif , jika pendekatan tersebut kurang dari nilai
sebenarnya , kesalahan adalah positif . Juga, untuk Pers. ( 3,3 ) ke ( 3,5 ) , penyebut mungkin
kurang dari nol , yang juga dapat menyebabkan kesalahan negatif . Sering kali , ketika
melakukan perhitungan , kita mungkin tidak peduli dengan tanda kesalahan , tapi kami tertarik
apakah nilai absolut persen lebih rendah dari prespecified s toleransi persen . Oleh karena itu,
sering berguna untuk menggunakan nilai absolut dari Pers. ( 3.2 ) sampai dengan ( 3,5 ) . Untuk
kasus seperti ini, perhitungan diulang sampai
| a | < s ( 3.6 )
Jika hubungan ini berlaku , hasilnya kita diasumsikan dalam s tingkat yang dapat diterima
ditentukan. Perhatikan bahwa untuk sisa teks ini , kita akan hampir secara eksklusif
menggunakan nilai absolut ketika kita menggunakan kesalahan relatif. Hal ini juga mudah untuk
menghubungkan kesalahan ini dengan sejumlah tokoh penting dalam pendekatan tersebut . Hal
ini dapat ditunjukkan ( Scarborough , 1966) bahwa jika kriteria berikut ini terpenuhi , kita dapat
yakin bahwa hasilnya benar angka setidaknya n signifikan .
s = ( 0,5 102 - n ) % ( 3.7 )
Algoritma Komputer 3.3.1 untuk Perhitungan Iteratif
Banyak metode numerik yang dijelaskan dalam sisa teks ini melibatkan perhitungan berulang
dari jenis diilustrasikan pada Contoh 3.2 . Ini semua memerlukan pemecahan masalah
matematika dengan menghitung aproksimasi untuk solusi mulai dari dugaan awal .

Pelaksanaan komputer solusi iteratif tersebut melibatkan loop . Seperti yang kita lihat di Sec .
2.1.1 , ini datang dalam dua rasa dasar: menghitung - dikontrol dan loop keputusan .
Kebanyakan solusi iteratif menggunakan loop keputusan . Jadi, daripada mempekerjakan
sejumlah prespecified iterasi , proses biasanya diulang sampai perkiraan kesalahan perkiraan
jatuh di bawah kriteria berhenti seperti pada Contoh 3.2 .
Sebuah pseudocode untuk perhitungan iterasi generik disajikan pada Gambar . 3.3 . Fungsi ini
melewati nilai ( val ) bersama dengan kriteria kesalahan berhenti (es ) dan sejumlah maksimum
iterasi ( Maxit ) . Nilai ini biasanya baik ( 1 ) nilai awal atau ( 2 ) nilai yang perhitungan iterasi
yang akan dibuat .
Fungsi pertama menginisialisasi tiga variabel . Ini termasuk ( 1) iter variabel yang melacak
jumlah iterasi , ( 2 ) sebuah sol variabel yang memegang perkiraan saat ini solusi, dan ( 3 ) a ea
variabel yang memegang perkiraan persen kesalahan relatif . Perhatikan bahwa ea awalnya
diatur ke nilai 100 untuk memastikan bahwa loop mengeksekusi setidaknya sekali .
Inisialisasi ini diikuti oleh loop keputusan yang benar-benar menerapkan perhitungan berulang .
Sebelum menghasilkan solusi baru , sol pertama ditugaskan untuk solold . Kemudian nilai baru
dari sol dihitung dan iterasi counter bertambah . Jika nilai baru dari sol adalah nol , persen ea
kesalahan relatif ditentukan . Kriteria berhenti kemudian diuji . Jika keduanya palsu, loop
mengulangi . Jika salah satu benar , loop berakhir dan solusi akhir dikirim kembali ke fungsi
panggil . Contoh berikut menggambarkan bagaimana algoritma generik dapat diterapkan untuk
perhitungan berulang tertentu . Dengan definisi sebelumnya sebagai latar belakang , kita
sekarang dapat melanjutkan untuk dua jenis kesalahan yang berhubungan langsung dengan
metode numerik : round- off error dan kesalahan pemotongan .

GAMBAR 3.4
( a) VBA / Excel dan ( b ) MATLAB fungsi berdasarkan pseudocode dari Gambar . 3.3 .
KESALAHAN 3,4 ROUND - OFF

Seperti disebutkan sebelumnya , round- off error berasal dari kenyataan bahwa komputer
mempertahankan hanya tetap jumlah angka signifikan selama perhitungan . Nomor seperti ,
e , atau 7 tidak dapat dinyatakan dengan sejumlah tetap angka penting. Oleh karena itu,
mereka tidak dapat diwakili tepat oleh komputer . Selain itu, karena komputer menggunakan
representasi basis- 2 , mereka bisa tidak tepat mewakili tepat basis- 10 nomor-nomor tertentu .
Perbedaan diperkenalkan oleh kelalaian ini angka signifikan disebut round- off error .
3.4.1 Representasi Komputer Bilangan
Round- off error numerik secara langsung berkaitan dengan cara di mana nomor tersebut
disimpan dalam komputer . Unit dasar dimana informasi ditampilkan disebut kata . Ini adalah
sebuah entitas yang terdiri dari serangkaian angka biner , atau bit . Bilangan biasanya disimpan
dalam satu atau lebih kata-kata . Untuk memahami bagaimana hal ini tercapai , kita harus
terlebih dahulu meninjau beberapa materi yang berhubungan dengan sistem nomor.
Sistem Nomor . Sebuah sistem nomor hanyalah konvensi untuk mewakili kuantitas. Karena kita
memiliki 10 jari tangan dan 10 jari kaki , sistem bilangan yang kita paling akrab dengan adalah
desimal , atau basa - 10 , sistem nomor . Basa adalah nomor yang digunakan sebagai acuan
untuk membangun sistem. Basis - 10 sistem menggunakan 10 digit - 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 ,
9 - untuk mewakili angka . Dengan sendiri , angka ini memuaskan untuk menghitung dari 0
sampai 9 .
Untuk jumlah yang lebih besar , kombinasi ini dasar angka yang digunakan , dengan posisi atau
tempat nilai menentukan besarnya . Digit paling kanan di seluruh nomor mewakili nomor dari 0
sampai 9. Angka kedua dari kanan merupakan kelipatan 10 . Angka ketiga dari kanan
merupakan kelipatan dari 100 dan seterusnya . Sebagai contoh, jika kita memiliki jumlah 86.409
maka kita memiliki delapan kelompok 10.000 , enam kelompok dari 1000, empat kelompok 100
, nol kelompok 10 , dan sembilan unit lebih, atau
( 8 104 ) + ( 6 103 ) + ( 4 102 ) + ( 0 101 ) + ( 9 100 ) = 86.409
Gambar 3.5a memberikan representasi visual tentang bagaimana nomor diformulasikan dalam
basis-10 sistem . Jenis representasi disebut notasi posisional .
Karena sistem desimal begitu akrab , tidak sering menyadari bahwa ada alternatif . Misalnya,
jika manusia terjadi telah memiliki delapan jari tangan dan jari kaki delapan , kami akan pasti
telah mengembangkan oktal , atau basa - 8 , representasi . Dalam arti yang sama , teman kita
komputer seperti hewan dua jari yang terbatas pada dua negara - 0 atau 1 . Hal ini berkaitan
dengan fakta bahwa unit logika utama komputer digital on / off komponen elektronik . Oleh
karena itu , angka pada komputer diwakili dengan biner , atau basis- 2 , sistem . Sama seperti
dengan sistem desimal , jumlah dapat direpresentasikan menggunakan notasi posisional .
Sebagai contoh, bilangan biner 11 adalah setara dengan ( 1 21 ) + ( 1 20 ) = 2 + 1 = 3 dalam
sistem desimal . Gambar 3.5b menggambarkan contoh yang lebih rumit .
Representasi Integer . Sekarang kita telah meninjau bagaimana basis- 10 nomor dapat
direpresentasikan dalam bentuk biner , itu adalah sederhana untuk memahami bagaimana
bilangan bulat diwakili pada komputer . Pendekatan yang paling sederhana , yang disebut
metode besarnya ditandatangani , menggunakan bit pertama dari sebuah kata untuk

menunjukkan tanda , dengan 0 untuk positif dan 1 untuk negatif. Bit yang tersisa digunakan
untuk menyimpan nomor . Sebagai contoh, nilai integer dari -173 akan disimpan pada
komputer 16 - bit , seperti pada Gambar . 3.6

GAMBAR 3.5
Bagaimana (a) desimal (basis 10) dan (b) biner (basis 2) sistem kerja. Di (b), bilangan biner
10101101 adalah setara dengan angka desimal 173.

Gambar 3.6
Representasi integer desimal -173 pada komputer 16 - bit dengan menggunakan metode
besarnya ditandatangani .
Perhatikan bahwa metode besarnya ditandatangani dijelaskan di atas tidak digunakan untuk
mewakili bilangan bulat pada komputer konvensional . Pendekatan Apreferred disebut teknik
pelengkap 2 langsung menggabungkan tanda ke besarnya jumlah daripada memberikan sedikit
terpisah untuk mewakili plus atau minus (lihat Chapra dan Canale 1994) . Namun, Contoh 3.4

masih berfungsi untuk menggambarkan bagaimana semua komputer digital terbatas dalam
kemampuan mereka untuk mewakili bilangan bulat . Artinya, angka di atas atau di bawah
kisaran tidak bisa diwakilkan . Keterbatasan yang lebih serius yang dihadapi dalam
penyimpanan dan manipulasi jumlah pecahan seperti yang dijelaskan selanjutnya .
Representasi Floating- Point. Jumlah pecahan biasanya diwakili dalam komputer menggunakan
formulir floating-point . Dalam pendekatan ini , jumlah ini dinyatakan sebagai bagian pecahan ,
disebut mantissa atau significand , dan bagian integer, disebut eksponen atau karakteristik ,
seperti dalam
m menjadi
di mana m = mantissa , b = basis sistem bilangan yang digunakan , dan e = eksponen . Misalnya ,
jumlah 156,78 dapat direpresentasikan sebagai 0,15678 103 dalam floatingpoint basis- 10
sistem .
Gambar 3.7 menunjukkan salah satu cara yang angka floating -point dapat disimpan dalam satu
kata . Bit pertama disediakan untuk tanda , seri berikutnya bit untuk eksponen ditandatangani ,
dan bit terakhir untuk mantissa .
GAMBAR 3.7
Cara di mana angka floating -point disimpan dalam sebuah kata .

Perhatikan bahwa mantissa biasanya dinormalisasi jika telah nol digit terkemuka. Misalnya,
kuantitas 1/34 = 0,029411765 . . . disimpan dalam floating-point basis-10 sistem yang
memungkinkan hanya empat tempat desimal untuk disimpan . Dengan demikian , 1/34 akan
disimpan sebagai
0,0294 100
Namun, dalam proses melakukan hal ini , dimasukkannya berguna nol ke kanan pasukan
desimal kita untuk menjatuhkan angka 1 di tempat desimal kelima . Jumlah tersebut dapat
dinormalisasi untuk menghapus angka nol dengan mengalikan mantissa dengan 10 dan
menurunkan eksponen dengan 1 untuk memberikan
0,2941 10-1
Dengan demikian , kita mempertahankan sosok yang signifikan tambahan bila nomor tersebut
disimpan . Konsekuensi dari normalisasi adalah bahwa nilai absolut dari m terbatas . Artinya,
1
b

m < 1 ( 3.8 )
di mana b = dasar . Sebagai contoh, untuk sistem basis- 10 , m akan berkisar antara 0,1 dan 1 ,
dan untuk sistem basis- 2 , antara 0,5 dan 1 .
Representasi floating -point memungkinkan kedua fraksi dan jumlah yang sangat besar untuk
diekspresikan pada komputer . Namun, ia memiliki beberapa kelemahan . Sebagai contoh,
angka floating -point mengambil ruang lebih banyak dan memakan waktu lebih lama untuk
diproses daripada angka integer . Lebih signifikan , namun penggunaannya memperkenalkan
sumber kesalahan karena mantissa memegang hanya jumlah terbatas angka signifikan . Dengan
demikian , kesalahan round- off diperkenalkan .
Gambar 3.9 memanifestasikan beberapa aspek representasi floating-point yang memiliki
signifikansi mengenai komputer kesalahan round- off :
1 . Ada Apakah Range Terbatas Kuantitas Yang Mungkin diwakili . Sama seperti untuk kasus
bilangan bulat , ada bilangan positif dan negatif yang besar yang tidak dapat diwakili . Upaya
untuk menggunakan nomor di luar rentang yang dapat diterima akan menghasilkan apa yang
disebut kesalahan overflow. Namun, di samping jumlah besar , representasi floating-point
memiliki keterbatasan menambahkan bahwa jumlah yang sangat kecil tidak bisa diwakilkan .
Hal ini diilustrasikan oleh underflow " lubang " antara nol dan angka positif pertama pada
Gambar . 3.9 . Perlu dicatat bahwa lubang ini diperbesar karena kendala normalisasi Persamaan
. ( 3.8 ) .
2 . Ada Apakah Hanya Nomor Finite Kuantitas Yang Bisa Diwakili dalam Range. Dengan demikian
, tingkat presisi terbatas . Jelas, bilangan irasional tidak dapat diwakili tepat . Selain itu ,
bilangan rasional yang tidak sama persis dengan salah satu nilai di set juga tidak dapat diwakili
tepat . Kesalahan diperkenalkan oleh mendekati kedua kasus ini disebut sebagai kesalahan
kuantisasi . Pendekatan yang sebenarnya dicapai dalam salah satu dari dua cara : memotong
atau pembulatan . Misalnya, bahwa nilai = 3,14159265358 . . . akan disimpan pada sistem
bilangan basis- 10 membawa tujuh angka penting . Salah satu metode pendekatan akan hanya
menghilangkan , atau " memenggal , " istilah kedelapan dan lebih tinggi , seperti dalam =
3.141592 , dengan pengenalan kesalahan terkait [ Eq . ( 3.2 ) ]
Et = 0,00000065 . . .
Teknik ini hanya mempertahankan istilah yang signifikan pada awalnya dijuluki " pemotongan "
dalam jargon komputer . Kami lebih suka menyebutnya memotong untuk membedakannya dari
kesalahan pemotongan dibahas dalam Bab . 4 . Perhatikan bahwa untuk basis - 2 sistem
bilangan pada Gambar . 3.9 , memotong berarti bahwa setiap kuantitas yang berada dalam
selang waktu panjang _x willbe disimpan sebagai kuantitas di ujung bawah dari interval .
Dengan demikian , kesalahan atas menuju memotong adalah _x . Selain itu , bias diperkenalkan
karena semua kesalahan yang positif .
Kekurangan dari memotong dapat diatribusikan pada fakta bahwa istilah yang lebih tinggi
dalam representasi desimal lengkap tidak berdampak pada versi singkat . Misalnya , dalam
contoh kami , digit pertama adalah dibuang 6 . Dengan demikian , angka saldo terakhir harus
dibulatkan untuk menghasilkan 3,141593 . Pembulatan seperti mengurangi kesalahan untuk

Et = -,00000035 . . .
Akibatnya , pembulatan menghasilkan kesalahan absolut lebih rendah daripada memotong .
Perhatikan bahwa untuk basis - 2 sistem bilangan pada Gambar . 3,9 , pembulatan berarti
bahwa setiap kuantitas yang berada dalam selang waktu panjang _x akan direpresentasikan
sebagai jumlah diijinkan terdekat . Dengan demikian , kesalahan atas menuju pembulatan
adalah _x / 2 . Selain itu , tidak ada bias diperkenalkan karena beberapa kesalahan yang positif
dan ada pula yang negatif . Beberapa komputer menggunakan pembulatan . Namun, ini
menambah overhead komputasi , dan , akibatnya , banyak mesin menggunakan memotong
sederhana . Pendekatan ini dibenarkan dalam anggapan bahwa jumlah angka signifikan yang
cukup besar yang mengakibatkan round- off error biasanya diabaikan .
3 . The Interval antara Numbers , _x , Meningkatkan sebagai Bilangan Tumbuh di Magnitude .
Ini adalah karakteristik ini , tentu saja , yang memungkinkan representasi floating-point untuk
melestarikan signifikan digit. Namun, itu juga berarti bahwa kesalahan kuantisasi akan
sebanding dengan besarnya jumlah yang diwakili . Untuk angka floating -point normal ,
proporsionalitas ini dapat dinyatakan , untuk kasus-kasus di mana memotong digunakan ,
sebagai
( 3.9 )
dan , untuk kasus-kasus di mana pembulatan digunakan , sebagai
( 3.10 )
dimana _ disebut sebagai epsilon mesin , yang dapat dihitung sebagai
( 3.11 )
di mana b adalah basis jumlah dan t adalah jumlah angka yang signifikan dalam mantissa .
Perhatikan bahwa ketidaksetaraan dalam Pers. ( 3.9 ) dan ( 3.10 ) menandakan bahwa ini
adalah batas kesalahan .
Artinya, mereka menentukan kasus-kasus terburuk .

GAMBAR 3.9
The hipotetis sistem nomor dikembangkan dalam Contoh 3.5 . Setiap nilai ditunjukkan dengan
tanda centang . Hanya bilangan positif yang akan ditampilkan. Sebuah set identik juga akan
memperpanjang ke arah negatif .
Ketergantungan besarnya kesalahan quantizing memiliki sejumlah aplikasi praktis dalam
metode numerik . Sebagian besar ini berhubungan dengan operasi biasa digunakan untuk
menguji apakah dua nomor yang sama . Hal ini terjadi ketika menguji konvergensi kuantitas
serta dalam mekanisme berhenti untuk proses berulang ( ingat Contoh 3.2 ) . Untuk kasus ini ,
itu harus jelas bahwa , dibandingkan dengan tes apakah dua kuantitas adalah sama , disarankan
untuk menguji apakah perbedaan mereka adalah kurang dari toleransi diterima kecil .
Selanjutnya, juga harus jelas bahwa normalisasi daripada perbedaan mutlak harus
dibandingkan , terutama ketika berhadapan dengan jumlah besar besar . Selain itu, mesin
epsilon dapat digunakan dalam merumuskan kriteria berhenti atau konvergensi . Hal ini
memastikan bahwa program yang portabel - yaitu , mereka tidak tergantung pada komputer di
mana mereka diimplementasikan . Gambar 3.11 daftar pseudocode untuk secara otomatis
menentukan epsilon mesin komputer binary .
Diperpanjang Precision. Perlu dicatat di sini bahwa , meskipun round - off error dapat menjadi
penting dalam konteks seperti pengujian konvergensi , jumlah digit yang signifikan dilakukan
pada kebanyakan komputer memungkinkan sebagian besar perhitungan teknik yang akan
dilakukan dengan lebih dari presisi dapat diterima . Sebagai contoh, sistem bilangan hipotetis
pada Gambar . 3.9 adalah berlebihan kotor yang digunakan untuk tujuan ilustrasi . Komputer
komersial menggunakan kata-kata yang jauh lebih besar dan , akibatnya , memungkinkan

nomor yang akan diekspresikan dengan lebih dari cukup presisi . Sebagai contoh, komputer
yang menggunakan IEEE format yang memungkinkan 24 bit yang akan digunakan untuk
mantissa , yang diterjemahkan ke dalam sekitar tujuh signifikan basis- 10 digit precision1
dengan kisaran sekitar 10-38 sampai 1039 .
Dengan mengakui , masih ada kasus di mana round- off error menjadi kritis . Untuk alasan ini
kebanyakan komputer memungkinkan spesifikasi presisi diperpanjang . Yang paling umum ini
adalah presisi ganda , di mana jumlah kata yang digunakan untuk menyimpan nomor
floatingpoint dua kali lipat. Ini menyediakan sekitar 15 sampai 16 digit desimal presisi dan
jangkauan sekitar 10-308 sampai 10308 .
Dalam banyak kasus , penggunaan jumlah presisi ganda dapat sangat mengurangi dampak dari
round - off error . Namun, harga yang dibayar untuk obat tersebut dalam bahwa mereka juga
memerlukan lebih banyak memori dan waktu eksekusi . Perbedaan waktu eksekusi untuk
perhitungan kecil mungkin tampak tidak signifikan . Namun, karena program-program anda
menjadi lebih besar dan lebih rumit , waktu eksekusi ditambahkan bisa menjadi cukup besar
dan memiliki dampak negatif pada efektivitas Anda sebagai pemecah masalah . Oleh karena itu
, presisi diperpanjang tidak boleh digunakan sembrono . Sebaliknya , harus selektif bekerja di
mana itu akan menghasilkan manfaat yang maksimal dengan biaya minimal dalam hal waktu
eksekusi . Pada bagian berikut , kita akan melihat lebih dekat bagaimana round- off error
mempengaruhi perhitungan , dan dengan demikian memberikan dasar pemahaman untuk
membimbing penggunaan kemampuan presisi ganda .
Sebelum melanjutkan , perlu dicatat bahwa beberapa paket perangkat lunak yang umum
digunakan ( misalnya , Excel , Mathcad ) secara rutin menggunakan presisi ganda untuk
mewakili kuantitas numerik . Dengan demikian , para pengembang dari paket ini memutuskan
bahwa mengurangi round- off error akan didahulukan atas kehilangan kecepatan yang
dikeluarkan dengan menggunakan presisi diperpanjang . Lainnya , seperti perangkat lunak
MATLAB , memungkinkan Anda untuk menggunakan presisi diperpanjang , jika Anda inginkan .
3.4.2 Aritmatika Manipulasi Bilangan Komputer
Selain keterbatasan sistem bilangan komputer , manipulasi aritmatika aktual yang melibatkan
angka-angka ini juga dapat mengakibatkan round- off error . Pada bagian berikut , pertamatama kita akan menggambarkan bagaimana operasi aritmatika umum mempengaruhi roundoff error . Kemudian kita akan menyelidiki sejumlah manipulasi tertentu yang sangat rentan
terhadap round- off error .
Operasi Aritmatika umum . Karena keakraban mereka , normalisasi basis- 10 nomor akan
digunakan untuk menggambarkan efek round - off error pada penambahan sederhana ,
pengurangan, perkalian , dan pembagian . Basis nomor lain akan berperilaku dengan cara yang
sama . Untuk menyederhanakan diskusi , kita akan menggunakan komputer desimal hipotetis
dengan mantissa 4 - digit dan eksponen 1 digit . Selain itu, memotong digunakan . Pembulatan
akan mengakibatkan kesalahan yang sama meskipun kurang dramatis .
Ketika dua angka floating -point ditambahkan , mantissa nomor dengan eksponen kecil
dimodifikasi sehingga eksponen adalah sama . Ini memiliki efek menyelaraskan poin desimal .
Misalnya, kita ingin menambahkan 0,1557 101 + 0,4381 10-1 . The desimal mantissa dari

angka kedua digeser ke kiri sejumlah tempat sama dengan perbedaan dari eksponen [ 1 - ( -1 ) =
2 ] , seperti pada 0,4381 10-1 0,004381 101
Sekarang angka dapat ditambahkan ,
0,1557 101
0.004381 101
0.160081 101
dan hasilnya cincang ke 0,1600 101 . Perhatikan bagaimana dua digit terakhir dari nomor
kedua yang digeser ke kanan memiliki dasarnya telah hilang dari perhitungan. terbalik . Sebagai
contoh, anggaplah bahwa kita mengurangkan 26,86 dari 36,41 . Artinya,
0,3641 102
- 0,2686 102
0,0955 102
Untuk kasus ini hasilnya tidak normal , dan jadi kami harus menggeser desimal satu tempat ke
kanan untuk memberikan 0.9550 101 = 9.550 . Perhatikan bahwa nol ditambahkan ke akhir
dari mantissa tidak signifikan tetapi hanya ditambahkan untuk mengisi ruang kosong yang
diciptakan oleh pergeseran . Bahkan lebih dramatis hasilnya akan diperoleh bila jumlahnya
sangat dekat , seperti dalam
0,7642 103
- 0,7641 103
0.0001 103
yang akan dikonversi ke 0,1000 100 = 0,1000 . Dengan demikian , untuk kasus ini , tiga angka
nol yang ditambahkan tidak bermakna . Ini memperkenalkan kesalahan komputasi yang cukup
besar karena manipulasi selanjutnya akan bertindak seolah-olah nol ini adalah signifikan .
Seperti yang akan kita lihat pada bagian selanjutnya , hilangnya signifikansi selama
pengurangan angka yang hampir sama adalah salah satu sumber terbesar dari round- off error
dalam metode numerik .
Perkalian dan pembagian agak lebih mudah daripada penambahan atau pengurangan .
Eksponen ditambahkan dan Mantisa dikalikan . Karena perkalian dua Mantisa n - digit akan
menghasilkan hasil 2n - digit , kebanyakan komputer memegang hasil antara dalam doublelength mendaftar. Sebagai contoh,
0,1363 103 0,6423 10-1 = 0,08754549 102
Jika , seperti dalam kasus ini , nol terkemuka diperkenalkan , hasilnya adalah normal ,
0.08754549 102 0,8754549 101
dan cincang untuk memberikan
0,8754 101

Divisi dilakukan dengan cara yang sama , tetapi Mantisa dibagi dan eksponen dikurangi .
Kemudian hasilnya dinormalisasi dan cincang .
Perhitungan besar . Metode tertentu memerlukan jumlah yang sangat besar manipulasi
aritmatika untuk sampai pada hasil akhir mereka . Selain itu, perhitungan ini sering saling
terkait . Artinya, perhitungan kemudian tergantung pada hasil yang sebelumnya . Akibatnya,
meskipun putaran - off error individu dapat menjadi kecil , efek kumulatif selama perhitungan
besar dapat menjadi signifikan .
Perhatikan bahwa jenis kesalahan diilustrasikan oleh contoh sebelumnya agak atipikal bahwa
semua kesalahan dalam operasi berulang adalah dari tanda yang sama . Dalam kebanyakan
kasus kesalahan dari tanda panjang perhitungan alternatif secara acak dan , dengan demikian ,
sering membatalkan . Namun, ada juga kasus di mana kesalahan tersebut tidak membatalkan
tetapi , pada kenyataannya , menyebabkan hasil akhir palsu . Bagian berikut dimaksudkan untuk
memberikan wawasan tentang cara-cara di mana hal ini dapat terjadi .
Menambahkan Besar dan Kecil Nomor . Misalkan kita menambahkan sejumlah kecil , 0,0010 ,
sejumlah besar , 4000 , menggunakan komputer hipotetis dengan mantissa 4 - digit dan
eksponen 1 digit . Kami mengubah nomor lebih kecil sehingga eksponen sesuai dengan yang
lebih besar ,
0,4000 104
0.0000001 104
0.4000001 104
yang cincang ke 0,4000 104 . Dengan demikian , kita mungkin juga belum melakukan
penambahan !
Jenis kesalahan ini dapat terjadi dalam perhitungan seri terbatas . Istilah awal dalam seri seperti
sering relatif besar dibandingkan dengan istilah nanti.
Dengan demikian , setelah beberapa istilah telah ditambahkan , kita berada dalam situasi
menambahkan jumlah kecil untuk jumlah besar .
Salah satu cara untuk mengurangi jenis kesalahan adalah untuk jumlah seri dalam urutan
terbalik -yaitu , dalam ascending daripada urutan . Dengan cara ini , setiap istilah baru akan
besarnya sebanding dengan jumlah akumulasi (lihat Prob . 3,5 ) .
Pembatalan subtraktif . Istilah ini mengacu pada round- off diinduksi ketika mengurangkan dua
bilangan floating-point hampir sama .
Salah satu contoh umum di mana hal ini dapat terjadi melibatkan menemukan akar persamaan
kuadrat atau parabola dengan rumus kuadrat ,
( 3.12 )
Untuk kasus di mana b2 _ 4ac , perbedaan dalam pembilang bisa sangat kecil . Dalam kasus
tersebut , presisi ganda dapat mengurangi masalah . Selain itu, formulasi alternatif dapat
digunakan untuk meminimalkan pembatalan subtraktif ,
( 3.13 )

Sebuah ilustrasi dari masalah dan penggunaan formula ini alternatif disediakan dalam contoh
berikut .

GAMBAR 3.13
Program Excel / VBA untuk menentukan akar kuadrat .
Perhatikan bahwa , seperti dalam contoh di atas , ada saat-saat di mana pembatalan subtraktif
dapat dielakkan dengan menggunakan transformasi . Namun, satu-satunya obat umum adalah
dengan menggunakan presisi diperpanjang .
Mengolesi . Mengolesi terjadi jika persyaratan individu dalam penjumlahan yang lebih besar
dari penjumlahan itu sendiri . Seperti dalam contoh berikut , satu kasus di mana ini terjadi
adalah dalam serangkaian tanda-tanda campuran .
Produk batin . Seperti harus jelas dari bagian terakhir , beberapa seri terbatas sangat rentan
terhadap round- off error . Untungnya , perhitungan seri bukanlah salah satu operasi yang lebih
umum dalam metode numerik . Sebuah manipulasi jauh lebih di mana-mana adalah
perhitungan produk batin , seperti dalam
xi yi = x1 y1 x2 y2 + + + xn yn
Operasi ini sangat umum , terutama dalam larutan simultan linear persamaan aljabar .
Penjumlahan tersebut rentan terhadap round- off error . Akibatnya, sering diinginkan untuk
menghitung penjumlahan tersebut dalam presisi diperpanjang .
Meskipun bagian tersebut di atas harus memberikan aturan praktis untuk mengurangi roundoff error , mereka tidak menyediakan cara langsung di luar trial and error untuk benar-benar
mengetahui pengaruh kesalahan tersebut pada suatu perhitungan . Di Chap . 4 , kami akan
memperkenalkan seri Taylor , yang akan memberikan pendekatan matematika untuk
memperkirakan efek ini .

Anda mungkin juga menyukai