Aritmética de punto flotante
Humberto Pérez González
December 3, 2020
Humberto Pérez González Aritmética de punto flotante
Aritmética con k-dı́gitos
Se asume que un número decimal de punto flotante está
normalizado si está en la forma
±0.d1 d2 d3 · · · dk × 10n , 1 ≤ d1 ≤ 9, y 0 ≤ di ≤ 9,
i = 2, ..., k.
Se llaman números de máquinas decimales de k-dı́gitos.
Todo número real representable puede escribirse en la
forma
y = 0.d1 d2 · · · dk dk+1 dk+2 · · · × 10n .
La forma de punto flotante de y , notada, fl(y ), se obtiene
terminando la mantisa y en el k-ésimo dı́gito decimal.
Humberto Pérez González Aritmética de punto flotante
Redondeo, manera de terminar la mantisa
Existen varias formas de terminar la mantisa
Truncamiento, consiste en desechar los dı́gitos
dk+1 dk+2 · · · , en este caso
fl(y ) = 0.d1 d2 · · · dk × 10n .
Redondeo, consiste en agregar 5 × 10n−(k+1) a y y luego
truncar el resultado
y + 5 × 10n−(k+1) =
0.d1 d2 · · · dk dk+1 dk+2 · · · × 10n + 5 × 10n · 10−(k+1) (1)
y + 5 × 10n−(k+1) =
(0.d1 d2 · · · dk dk+1 dk+2 · · · + 10−(k+1) ) × 10n (2)
lo cual equivale a sumar 5 al (k + 1)-ésimo dı́gito
Humberto Pérez González Aritmética de punto flotante
Redondeo, manera de terminar la mantisa
Si
fl(y ) = 0.δ1 δ2 · · · δk × 10n ,
entonces cuando
dk+1 < 5 solamente se hace el truncamiento y δi = di , o
redondeo por defecto
dk+1 ≥ 5 esto equivale a sumar 1 a dk para obtener fl(y ),
redondeo por exceso. Los dı́gitos, incluso el exponente,
pueden cambiar.
Humberto Pérez González Aritmética de punto flotante
Ejemplos
Halle la forma de 5 dı́gitos para y = 0.999999999999 × 104
(a) por truncamiento, por redondeo por exceso y redondeo por
defecto.
Solución. Por truncamiento fl(y ) = 0.99999 × 104 . Por
redondeo
y + 5 × 104−(5+1) = (0.999999999999 + 0.000005) × 104
= 1.000004999999 × 104
= 0.1000004999999 × 105
fl(y ) = 0.100000 × 105
Humberto Pérez González Aritmética de punto flotante
Recordar. Medición de aproximación de errores
Errores absolutos y relativos
Suponga que p ∗ es una aproximación de p. El valor absoluto
|p − p ∗ |
es |p − p ∗ |, y el valor relativo es , dado que p 6= 0.
|p|
Dı́gitos significativos
El número p ∗ aproxima a p con t dı́gitos significativos si t es
el entero no negativo más grande para el cual
|p − p ∗ |
≤ 5 × 10−t , p 6= 0.
|p|
Humberto Pérez González Aritmética de punto flotante
Implicaciones del error relativo I
Observe que si p ∗ aproxima a p con t dı́gitos significativos y
s > t entonces 10s > 10t y 10−s < 10−t . Ası́ s no podrı́a ser
el número de dı́gitos significativos, es decir, no puede ser
|p − p ∗ |
≤ 5 × 10−s
|p|
por lo que
|p − p ∗ |
5 × 10−s < ≤ 5 × 10−t , p 6= 0.
|p|
además
|p − p ∗ | ≤ 5|p| × 10−t , p 6= 0.
Humberto Pérez González Aritmética de punto flotante
Implicaciones del error relativo II
Por ejemplo si p ∗ aproxima a p = 0.1 con 4 cifras significativas
entonces
|0.1 − p ∗ | ≤ 5(0.1) × 10−4 = 0.5 × 10−4 = 5 × 10−5
Es decir, el mayor error absoluto que se puede cometer es
5 × 10−5 y por tanto el valor de p ∗ podrı́a estar entre 0.09995
y 0.10005.
La tabla ilustra la naturaleza continua de los dı́gitos
significativos al listar, para los diversos valores de p, el lı́mite
superior mı́nimo de |p − p ∗ |, denotado max |p − p ∗ |, cuando
p ∗ concuerda con p en cuatro dı́gitos significativos.
p 0.1 0.5 100 1000 5000 9990 10000
max |p − p ∗ | 0.00005 0.00025 0.05 0.5 2.5 4.995 5
Humberto Pérez González Aritmética de punto flotante
Error relativo en la representación de punto
flotante
Considere número real en la forma normalizada
y = 0.d1 d2 · · · dk dk+1 · · · × 10n . Al aproximarlo por su forma
de punto flotante fl(y ) se comete el error relativo
|y − fl(y )|
.
|y |
Si se usa truncamiento para de k dı́gitos para fl(y ),
y ≈ fl(y ) = 0.d1 · · · dk × 10n ,
|y − fl(y )| 0.d1 d2 · · · dk dk+1 · · · × 10n − 0.d1 · · · dk × 10n
=
|y | 0.d1 d2 · · · dk dk+1 · · · × 10n
Humberto Pérez González Aritmética de punto flotante
|y − fl(y )| 0.d1 d2 · · · dk dk+1 · · · × 10n − 0.d1 · · · dk × 10n
=
|y | 0.d1 d2 · · · dk dk+1 · · · × 10n
0.dk+1 dk+2 · · · × 10n−k
=
0.d1 d2 · · · dk dk+1 · · · × 10n
0.dk+1 dk+2 · · · × 10n 10−k
=
0.d1 d2 · · · dk dk+1 · · · × 10n
0.dk+1 dk+2 −k
0.dk+1 dk+2
= × 10 ≤ × 10−k
0.d1 d2 · · · 0.1
1
≤ × 10−k = 10 × 10−k = 101−k
0.1
Cota superior para el error relativo usando truncamiento
1 × 101−k
Tarea hallar la cota superior del error relativo cuando se usa
redondeo (ver ejercicio 24)
Humberto Pérez González Aritmética de punto flotante
Aritmética de punto flotante
x ⊕ y = fl(fl(x) + fl(y )), x ⊗ y = fl(fl(x)fl(y ))
x y = fl(fl(x) − fl(y )), x y = fl(fl(x) ÷ fl(y ))
Ejemplo. Use truncamiento de 5 cifras para hallar x ⊕ y ,
x y , x ⊗ y y x y con x = 5/7 y y = 1/3
Solución.
x = 5/7 = 0.714285714285714, fl(x) = 0.71428 × 100
y = 1/3 = 0.333333333, fl(y ) = 0.33333 × 100
fl(x) + fl(y ) = 0.71428 × 100 + 0.33333 × 100 = 1.04761 × 100
x ⊕ y = fl(fl(x) + fl(y )) = fl(1.04761 × 100 ) = 0.10476 × 101 .
Humberto Pérez González Aritmética de punto flotante
Resumen de operaciones,ejemplo
Operación Resultado Valor real Error absoluto Error relativo
x ⊕y 0.10476 × 101 22/21 0.190 × 10−4 0.182 × 10−4
x y 0.38095 × 100 8/21 0.238 × 10−5 0.625 × 10−5
x ⊗y 0.23809 × 100 5/21 0.524 × 10−5 0.220 × 10−4
x y 0.21428 × 101 15/7 0.571 × 10−4 0.267 × 10−4
Como la suma tiene un error relativo de
0.182 × 10−4 = 1.82 × 10−5 que es menor que 5 × 10−5
entonces la suma tiene 5 cifras significativas.
Como la diferencia tiene un error relativo de
0.625 × 10−5 = 6.25 × 10−6 que es menor que 5 × 10−5
entonces el producto tiene 5 cifras significativas.
Como el producto tiene un error relativo de
0.220 × 10−4 = 2.2 × 10−5 < 5 × 10−5 entonces entonces el
producto tiene 5 cifras significativas.
Humberto Pérez González Aritmética de punto flotante
Cálculos que producen error
Sustracción de números casi iguales que involucran la
cancelación de dı́gitos significativos
División por números de magnitud pequeña o
equivalentemente, multiplicación por números de
magnitud grande
Humberto Pérez González Aritmética de punto flotante
Sustracción de números casi iguales I
Suponga que dos números casi iguales, x, y , x > y y que
tienen representaciones de k-dı́gitos
fl(x) = 0.d1 d2 ...dp αp+1 αp+2 ...αk × 10n ,
fl(y ) = 0.d1 d2 ...dp βp+1 βp+2 ...βk × 10n
la forma de punto flotante de x − y es
fl(fl(x) − fl(y )) = 0.σp+1 σp+2 ...σk × 10n−p ,
donde
0.αp+1 αp+2 ...αk = 0.βp+1 βp+2 ...βk .
La forma de punto flotante de x − y tiene a lo sumo k − p
dı́gitos significativos. Sin embargo, en la mayorı́a de los casos
Humberto Pérez González Aritmética de punto flotante
Sustracción de números casi iguales II
se le asignarán k dı́gitos, siendo los p últimos cero o asignados
aleatoriamente.
Cada cálculo subsiguiente tendrá sólo k − p dı́gitos
significativos
Humberto Pérez González Aritmética de punto flotante
Expansión por productos o cocientes I
Sea z el valor exacto y z + δ la representación en aritmética
finita, es decir fl(z) = z + δ, donde δ es es el error cometido
en la aproximación(positivo o negativo) .
Tome n > 0 y divida por = 10−n , entonces
z fl(z) z +δ
≈ = −n = (z + δ) × 10n = z × 10n + δ × 10n
fl() 10
El valor absoluto del error cometido es |δ| × 10n .
Si se aproxima 1 con 1.001 se tiene que δ = 1.001 − 1 = 0.001
y se hace la división 1.001/10−6 entonces el error cometido es
δ × 106 = 1000. Es decir, se comete un error de 1000 en un
millón que es el resultado exacto.
Humberto Pérez González Aritmética de punto flotante