Liukulukujen aritmetiikka IEEE 754 -standardissa
Susi, Miika (2026)
Kandidaatintyö
Susi, Miika
2026
School of Engineering Science, Laskennallinen tekniikka
Kaikki oikeudet pidätetään.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi-fe2026052553226
https://urn.fi/URN:NBN:fi-fe2026052553226
Tiivistelmä
Työssä tarkastellaan liukulukujen toimintaperiaatteita ja numeerista tarkkuutta IEEE 754 -standardin näkökulmasta. Työssä esitellään liukulukujen esitystapa, pyöristysmenetelmät sekä analysoidaan, miksi liukulukuaritmetiikassa tapahtuu pyöristysvirheitä.
Numeerista tarkkuutta tutkittiin kokeellisesti toteuttamalla Python-ohjelma, jolla vertailtiin viiden eri bittitarkkuuden vaikutusta tuloksiin. Kokeissa tarkasteltiin konevakiota, peräkkäisten laskutoimitusten vaikutusta tarkkuuteen sekä numeerista kumoutumista.
Tuloksista havaittiin, että käytetty bittitarkkuus vaikuttaa huomattavasti laskennalliseen tarkkuuteen. Lisäksi havaittiin, että laskentajärjestyksellä sekä lausekkeen muodolla on vaikutusta laskennan numeeriseen tarkkuuteen. Pelkkä bittitarkkuuden kasvattaminen ei välttämättä riitä numeeristen virheiden poistamiseen, vaan numeerisesti vakaan algoritmin suunnittelu on yhtä tärkeää. This thesis examines the operating principles and numerical accuracy of floating-point numbers from the perspective of the IEEE 754 standard. The thesis presents the representation of floating-point numbers and rounding methods and analyzes why rounding errors occur in floating-point arithmetic.
Numerical accuracy was was analyzed experimentally by implementing a Python program which compared the effects of five different bit precisions on computed results. The experiments examined machine epsilon, sequential operations and numerical cancellation.
The results showed that the bit precision used has a significant effect on computational accuracy. Also the order of operations and the form of the expression affected numerical accuracy. Simply increasing the bit precision is not necessarily enough to get rid of numerical errors and designing numerically stable algorithms is equally important.
Numeerista tarkkuutta tutkittiin kokeellisesti toteuttamalla Python-ohjelma, jolla vertailtiin viiden eri bittitarkkuuden vaikutusta tuloksiin. Kokeissa tarkasteltiin konevakiota, peräkkäisten laskutoimitusten vaikutusta tarkkuuteen sekä numeerista kumoutumista.
Tuloksista havaittiin, että käytetty bittitarkkuus vaikuttaa huomattavasti laskennalliseen tarkkuuteen. Lisäksi havaittiin, että laskentajärjestyksellä sekä lausekkeen muodolla on vaikutusta laskennan numeeriseen tarkkuuteen. Pelkkä bittitarkkuuden kasvattaminen ei välttämättä riitä numeeristen virheiden poistamiseen, vaan numeerisesti vakaan algoritmin suunnittelu on yhtä tärkeää.
Numerical accuracy was was analyzed experimentally by implementing a Python program which compared the effects of five different bit precisions on computed results. The experiments examined machine epsilon, sequential operations and numerical cancellation.
The results showed that the bit precision used has a significant effect on computational accuracy. Also the order of operations and the form of the expression affected numerical accuracy. Simply increasing the bit precision is not necessarily enough to get rid of numerical errors and designing numerically stable algorithms is equally important.
