Numerikus analízisHiba, pontosság, stabilitásA számítógépek a számokat véges pontossággal, általában lebegőpontos alakban tárolják. A véges pontosság azt jelenti, hogy az aritmetikai műveletek eredményeként kapott érték nem egyezik meg a művelet egzakt értelemben vett eredményével, hanem csak megközelíti azt. Ha egy számítógép a tízes számrendszert használja, és a számokat 8 tizedesjegy pontossággal tárolja, akkor az 1/3 művelet eredménye 0.33333333 lesz, ami több mint 3*10-9-nel tér el a valódi értéktől. Mivel a számítógépek többnyire nem a tízes számrendszert használják, hanem a kettest, ezért nem a tárolt tizedes jegyek számát szokták az ábrázolás pontosságának jellemzésére használni. Általában az ábrázolás pontosságának szokták nevezni azt az e legkisebb abszolút értékű valós számot, amelynek ha a lebegőpontos alakját hozzáadjuk az 1.0 valós szám lebegőpontos alakjához, akkor az eredmény eltér 1.0-től. Ez a szám 32 bites mantissza esetén Ha egy számításhoz N aritmetikai műveletre van szükségünk, akkor szerencsés esetben Van egy másik hibafajta is, amelyet a program határoz meg. A legtöbb numerikus módszer diszkrét módon közelít valamilyen folytonos mennyiséget. Egy integrált például úgy számítunk ki numerikusan, hogy kiszámítjuk a függvény értékét véges sok pontban, de korántsem minden pontban. Egy másik példa, amikor egy függvény értékét számítjuk ki valamely a függvényt közelítő sor első néhány tagjának összegeként, de természetesen sohasem veszünk végtelen sok tagot. Ezekben az esetekben van egy paraméterünk, az első esetben a pontok száma, a másodikban a tagoké, amelyeket megfelelően nagyra választva, az eredmény megfelelő potossággal kapjuk meg. Ennek a paraméternek a megválasztása persze egy kompromisszum eredménye, mert igaz ugyan, hogy minnél nagyobb ez a paraméter, annál pontosabb az eredmény de annál tovább is fut a program. Azt a hibát, amely így adódik, csonkítási hibának hívják. Ez a csonkítási hiba még akkor is meglenne, ha a számítógépünk abszolút pontossággal tárolná a számokat, és végezné a műveleteket. Addíg, amíg a kerekítési hibával a programozó semmit sem tud kezdeni, a csonkítási hiba teljesen a hatalma alatt van. Egy kis túlzással azt állíthatjuk, hogy a numerikus analízis nem más, mint ennek a hibának a minimalizálása. A kerekítési és csonkítási hiba az esetek döntő többségéban független egymástól. Egy számítás hibája kezelhető úgy, mint a csonkítási hiba, amely egy végtelenül pontosan számoló számítógépen keletkezne, plusz a kerekítési hiba, amely a műveletek számától függ. Ugyanakkor, néha mégi előfordul, hogy egy máskülönben vonzó eljárás nem stabilis. Ez azt jelenti, hogy a kerekítési hiba, amely a számítás egy korai stádiumában keletkezik, a számítás során megnő, és a számítás végére az eredményként kapott számokban dominássá válik. (Gyakran mondjuk, hogy a program házszámokat ad eredményül.) Egy ilyen nem stabilis eljárás nagyon jól használható lenne egy abszolút pontos számítógépen. Nézzünk meg egy egyszerű, bár kissé mesterkélt példát! Tegyük fel, hogy ki szeretnénk számolni az aranymetszési arány egész hatványait. Ez az arány:
Egyszerűen belátható, hogy |