Aritmética finita y análisis de error

Anuncio
Aritmética finita y análisis de error
Escuela de Ingenierı́a Informática de Oviedo
(Dpto. de Matemáticas-UniOvi)
Computación Numérica
Aritmética finita y análisis de error
1 / 45
Contenidos
1
Sistemas decimal y binario
2
Representación de números: la norma IEEE 754
3
Valores especiales
4
Exactitud
5
Redondeo
6
Error
(Dpto. de Matemáticas-UniOvi)
Computación Numérica
Aritmética finita y análisis de error
2 / 45
Tratamiento matemático de un problema fı́sico
En este curso presentaremos los métodos numéricos básicos que
resuelven un conjunto de problemas matemáticos clásicos.
Los ordenadores son una herramienta necesaria en el uso eficiente de los
métodos numéricos.
Por lo tanto, veremos como los números, que pueden tener infinitos dı́gitos,
se almacenan en el ordenador, que es un dispositivo finito.
Esto nos lleva a tener en cuenta los errores, como definirlos y medirlos.
(Dpto. de Matemáticas-UniOvi)
Computación Numérica
Aritmética finita y análisis de error
3 / 45
Sistemas decimal y binario
Contenido
1
Sistemas decimal y binario
2
Representación de números: la norma IEEE 754
3
Valores especiales
4
Exactitud
5
Redondeo
6
Error
(Dpto. de Matemáticas-UniOvi)
Computación Numérica
Aritmética finita y análisis de error
4 / 45
Sistemas decimal y binario
Almacenamiento de números
Los números se almacenan en los ordenadores en los siguientes
formatos
Entero
Permite el almacenamiento exacto de
un conjunto de números enteros
En punto flotante
Permite el almacenamiento exacto de
un conjunto de números enteros
un conjunto de números no enteros
El formato usado más habitualmente es formato IEEE 754
(Dpto. de Matemáticas-UniOvi)
Computación Numérica
Aritmética finita y análisis de error
5 / 45
Sistemas decimal y binario
Representación en punto flotante: decimal
La representación en punto flotante en base 10 de un número real x 6= 0 es
x = σ × x̄ × 10e ,
donde
σ = ±1, el signo,
1 ≤ x̄ < 10, la mantisa,
e ∈ Z, el exponente
El número de dı́gitos en x̄ es la precisión de la representación.
Ejemplo: Para la representación exacta en punto flotante decimal podemos
escribir x = 314.15 = 3.1415 × 102 , y entonces
σ = +1,
x̄ = 3.1415,
e = 2.
que tiene una precisión de 5 dı́gitos.
(Dpto. de Matemáticas-UniOvi)
Computación Numérica
Aritmética finita y análisis de error
6 / 45
Sistemas decimal y binario
Representación en punto flotante: binaria
La representación en punto flotante en base 2 de un número real x 6= 0 es
x = σ × x̄ × 2e ,
donde
σ = ±1, el signo,
(1)2 ≤ x̄ < (10)2 , la mantisa,
e ∈ Z, el exponente
Ejemplo: Si x = (10101.11001)2 = (1.010111001)2 × 24 entonces
σ = +1,
(Dpto. de Matemáticas-UniOvi)
x̄ = (1.010111001)2 ,
Computación Numérica
e = (4)10 = (100)2 .
Aritmética finita y análisis de error
7 / 45
Sistemas decimal y binario
Ejemplo
Para x = (101.001101)2 = (5.203125)10 tenemos
representación decimal en punto flotante:
σ = +1,
x̄ = 5.203125,
e = 0,
representación binaria en punto flotante:
σ = (1)2 ,
(Dpto. de Matemáticas-UniOvi)
x̄ = (1.0100)2 ,
Computación Numérica
e = (2)10 = (10)2 .
Aritmética finita y análisis de error
8 / 45
Sistemas decimal y binario
Paso del sistema decimal a binario y viceversa
En el sistema decimal el número 107.625 significa:
107.625 = 1 · 102 + 7 · 100 + 6 · 10−1 + 2 · 10−2 + 5 · 10−3 .
Los ordenadores usan el sistema binario. Sólo se almacenan 0 y 1. En el
sistema binario, los números representan potencias de 2:
(107.625)10 = 26 + 25 + 23 + 21 + 20 + 2−1 + 2−3 = (1101011.101)2
Y el paso de binario a decimal es directo:
(1101011.101)2 = 26 + 25 + 23 + 21 + 20 + 2−1 + 2−3 = (107.625)10
(Dpto. de Matemáticas-UniOvi)
Computación Numérica
Aritmética finita y análisis de error
9 / 45
Sistemas decimal y binario
Paso del sistema decimal a binario y viceversa
Decimal a binario:
Parte entera: dividimos sucesivamente por 2 . Tomamos el último
conciente y los restos, empezando por el último:
Cocientes 107
Restos
1
53
1
26
0
13 6 3
1 0 1
1
Parte fraccionaria: multiplicamos por 2, restamos la parte entera y
repetimos hasta que la parte fraccionaria sea cero. Tomamos las partes
enteras:
Decimal 0.625 0.25 0.5
Entera
1
0
1
El resultado es:
(107.625)10 = (1101011.101)2 .
(Dpto. de Matemáticas-UniOvi)
Computación Numérica
Aritmética finita y análisis de error
10 / 45
Sistemas decimal y binario
Ejemplo: representación de enteros con 4 bits
Representación
binaria
(m = 4 bits)
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
Enteros
sin signo
(Dpto. de Matemáticas-UniOvi)
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Enteros
con signo
(signo en 1er bit)
+0
+1
+2
+3
+4
+5
+6
+7
−0
−1
−2
−3
−4
−5
−6
−7
Computación Numérica
Enteros
con signo
sesgo = 2m−1
−8
−7
−6
−5
−4
−3
−2
−1
0
1
2
3
4
5
6
7
Enteros
con signo (Expo.)
sesgo = 2m−1 − 1
Reservado
−6
−5
−4
−3
−2
−1
0
1
2
3
4
5
6
7
Reservado
Aritmética finita y análisis de error
11 / 45
Representación de números: la norma IEEE 754
Contenido
1
Sistemas decimal y binario
2
Representación de números: la norma IEEE 754
3
Valores especiales
4
Exactitud
5
Redondeo
6
Error
(Dpto. de Matemáticas-UniOvi)
Computación Numérica
Aritmética finita y análisis de error
12 / 45
Representación de números: la norma IEEE 754
La norma IEEE 754
IEEE significa Institute of Electrical and Electronics Engineers.
El estandar IEEE 754 es el de la representación en punto flotante de los
numeros en los ordenadores y es el usado por casi todos los procesadores.
Formatos básicos
parámetro
precisión (p)
emax
Formatos binarios (b = 2)
binary32 binary64 binary128
24
53
113
+127
+1023
+16383
Formatos decimales (b = 10)
decimal64
decimal128
16
34
+384
+6144
emin = 1 − emax
Además de los formatos básicos exiten los formatos de precisión extendida y
de precisión extensible.
(Dpto. de Matemáticas-UniOvi)
Computación Numérica
Aritmética finita y análisis de error
13 / 45
Representación de números: la norma IEEE 754
La norma IEEE 754:precision simple
PRECISIÓN SIMPLE (32 bits)
signo
exponente (8 bits)
mantisa (23 bits)
x = σ × (1.a1 a2 . . . a23 ) × 2e
Utiliza 32 bits (4 bytes) distribuı́dos:
1 bit para el signo.
8 bits para el exponente.
23 bits para la mantisa.
Tiene una precisión de 24 dı́gitos binarios.
El exponente toma valores en [−126, 127] con sesgo 127.
(Dpto. de Matemáticas-UniOvi)
Computación Numérica
Aritmética finita y análisis de error
14 / 45
Representación de números: la norma IEEE 754
La norma IEEE 754: precision doble
PRECISIÓN DOBLE (64 bits)
signo
exponente (11 bits)
mantisa (52 bits)
x = σ × (1.a1 a2 . . . a52 ) × 2e
Utiliza 64 bits (8 bytes) distribuı́dos:
1 bit para el signo.
11 bits para el exponente.
52 bits para la mantisa.
Tiene una precisión de 53 dı́gitos binarios. El exponente toma valores en
[−1022, 1023] con sesgo 1023.
(Dpto. de Matemáticas-UniOvi)
Computación Numérica
Aritmética finita y análisis de error
15 / 45
Representación de números: la norma IEEE 754
Ejemplo. De base 10 a binario IEEE 754
Vamos a convertir 10.25 en base 10 a binario IEEE 754 en precisión simple.
Los pasos son:
1
Convertimos la parte entera a base 2: (10)10 = (1010)2 .
2
Convertimos la parte fraccionaria a base 2: (.25)10 = (.01)2 .
3
Los sumamos: 1010 + 0.01 = 1010.01.
4
Lo escribimos en binario normalizado: 1.01001 × 23 .
5
Convertimos el 3 añadiéndole el sesgo correspondiente. En este caso
127. Por lo tanto tenemos 127 + 3 = 130, que convertimos a binario
1000 0010.
6
Escribimos el número en el orden (signo exponente mantisa)
0 1000 0010 0100 1000 0000 0000 0000 000
Fijarse que el bit escondido ”1” no está representado.
(Dpto. de Matemáticas-UniOvi)
Computación Numérica
Aritmética finita y análisis de error
16 / 45
Valores especiales
Contenido
1
Sistemas decimal y binario
2
Representación de números: la norma IEEE 754
3
Valores especiales
4
Exactitud
5
Redondeo
6
Error
(Dpto. de Matemáticas-UniOvi)
Computación Numérica
Aritmética finita y análisis de error
17 / 45
Valores especiales
Valores especiales
Infinito. Aparece cuando se produce un overflow.
Valor
−∞
+∞
signo
1
0
exponente
11111111
11111111
mantisa
00000000000000000000000
00000000000000000000000
NaN (Not a Number). Aparece cuando se realiza una operación no válida (por
ejemplo 0/0).
Valor
SNaN
QNaN
signo
0
1
(Dpto. de Matemáticas-UniOvi)
exponente
11111111
11111111
mantisa
10000000000000001000000
00000010000000010000000
Computación Numérica
Aritmética finita y análisis de error
18 / 45
Valores especiales
Valores especiales
Cero. Como se asume que el bit escondido tiene valor 1, no es posible
representar el cero con los valores normalizados.
Valor
−0
+0
signo
1
0
exponente
00000000
00000000
mantisa
00000000000000000000000
00000000000000000000000
Números desnormalizados. El exponente contiene todo ceros. Se asume
que el bit escondido es cero y que el valor del exponente es el mı́nimo
posible, es decir 00000001 (que equivale a −126 en precisión sencilla).
signo
0
1
(Dpto. de Matemáticas-UniOvi)
exponente
00000000
00000000
mantisa
00000000111000000000000
00100001100000000100000
Computación Numérica
Aritmética finita y análisis de error
19 / 45
Valores especiales
Ejemplo: número desnormalizado
signo
0
exponente
00000000
mantisa
00010110000000000000000
El exponente es el mı́nimo de precisión sencilla, −126, y su bit escondido es
0.
(0.0001011) · 2−126
Este número se corresponde con el número en base 10
(2−4 + 2−6 + 2−7 ) · 2−126 ≈ 1.0102 · 10−39
Su precisión es p = 20
Es menor que el Rmin = 2−126 ≈ 1.1755 · 10−38
(Dpto. de Matemáticas-UniOvi)
Computación Numérica
Aritmética finita y análisis de error
20 / 45
Exactitud
Contenido
1
Sistemas decimal y binario
2
Representación de números: la norma IEEE 754
3
Valores especiales
4
Exactitud
5
Redondeo
6
Error
(Dpto. de Matemáticas-UniOvi)
Computación Numérica
Aritmética finita y análisis de error
21 / 45
Exactitud
Exactitud en punto flotante
Queremos medir la exactitud del almacenamiento en punto flotante.
Las medidas habituales son:
El epsilon de la máquina: Es la diferencia entre 1 y el número siguiente
x > 1 que se puede almacenar de forma exacta.
El entero más grande: Es el entero más grande M tal que todos los
enteros x, donde 0 ≤ x ≤ M, se almacenan de forma exacta.
(Dpto. de Matemáticas-UniOvi)
Computación Numérica
Aritmética finita y análisis de error
22 / 45
Exactitud
El epsilon de la máquina: precisión simple
El número 1, en formato normalizado
σ × (1.a1 a2 . . . a22 a23 ) × 2e
en precisión simple, serı́a
+1 × (1.00 . . . 00) × 20
el siguiente número que se puede almacenar de forma exacta es
1 + = +1 × (1.00 . . . 01) × 20
y por lo tanto es
= +1 × (0.00 . . . 01) × 20
que lo si escribimos normalizado es
= +1 × (1.00 . . . 00) × 2−23
es decir,
= 2−23 ≈ 1.19 × 10−7
(Dpto. de Matemáticas-UniOvi)
Computación Numérica
Aritmética finita y análisis de error
23 / 45
Exactitud
El epsilon de la máquina: precisión doble
El número 1, en formato normalizado
σ × (1.a1 a2 . . . a51 a52 ) × 2e
en precisión doble, serı́a
+1 × (1.00 . . . 00) × 20
el siguiente número que se puede almacenar de forma exacta es
1 + = +1 × (1.00 . . . 01) × 20
y por lo tanto es
= +1 × (0.00 . . . 01) × 20
que si escribimos normalizado es
= +1 × (1.00 . . . 00) × 2−52
es decir,
= 2−52 ≈ 2.22 × 10−16
(Dpto. de Matemáticas-UniOvi)
Computación Numérica
Aritmética finita y análisis de error
24 / 45
Exactitud
Exactitud en punto flotante: el entero más grande
Si n es el número de dı́gitos binarios en la mantisa, entonce, el entero más
grande es
M = 2n
porque
Todos los enteros x con
0 ≤ x ≤ (11 |{z}
. . . 1)2 ×2n−1 = 2n−1 +2n−2 +. . .+21 +20 =
n−1
2n − 1
= 2n −1,
2−1
se pueden almacenar de forma exacta.
x = (10 |{z}
. . . 0)2 × 2n = 2n se puede almacenar de forma exacta.
n−1
x = (10 |{z}
. . . 0)2 × 2n + 1 no se puede almacenar de forma exacta.
n−1
(Dpto. de Matemáticas-UniOvi)
Computación Numérica
Aritmética finita y análisis de error
25 / 45
Exactitud
El entero más grande: precisión simple
M = 224 →
Decimal
Binario
Mantisa
almacenado
25 dı́gitos
1.+23 bits
1
2
3
4
.
.
.
000. . .001
000. . .010
000. . .011
000. . .100
.
.
.
1.00. . .000
1.00. . .000
1.10. . .000
1.00. . .000
.
.
.
1677215
1677216
1677216
1677218
1677220
1677220
..
.
011. . .111
100. . .000
100. . .001
100. . .010
100. . .011
100. . .100
.
.
.
1.11. . .111
1.00. . .0000
1.00. . .0001
1.00. . .0010
1.00. . .0011
1.00. . .0100
.
.
.
(Dpto. de Matemáticas-UniOvi)
Computación Numérica
Exp
Representación
0
1
1
2
.
.
.
Exacta
23
24
24
24
24
24
..
.
Exacta
Exacta
Exacta
Exacta
.
.
.
Exacta
Redondeada
Exacta
Redondeada
Exacta
..
.
Aritmética finita y análisis de error
26 / 45
Exactitud
El entero más grande: precisión doble
253 →
Decimal
Binario
Mantisa
almacenado
54 dı́gitos
1.+52 bits
1
2
3
4
.
.
.
9007199254740991
9007199254740992
9007199254740992
9007199254740994
9007199254740996
9007199254740996
..
.
000. . .001
000. . .010
000. . .011
000. . .100
.
.
.
011. . .111
100. . .000
100. . .001
100. . .010
100. . .011
100. . .100
.
.
.
1.00. . .000
1.00. . .000
1.10. . .000
1.00. . .000
.
.
.
1.11. . .111
1.00. . .0000
1.00. . .0001
1.00. . .0010
1.00. . .0011
1.00. . .0100
.
.
.
(Dpto. de Matemáticas-UniOvi)
Computación Numérica
Exp
Representación
0
1
1
2
.
.
.
52
53
53
53
53
53
..
.
Exacta
Exacta
Exacta
Exacta
.
.
.
Exacta
Exacta
Redondeada
Exacta
Redondeada
Exacta
..
.
Aritmética finita y análisis de error
27 / 45
Exactitud
Exactitud en punto flotante: el entero más grande
Precisión simple IEEE:
M = 224 = 1677216,
y podemos almacenar los enteros con 6 dı́gitos.
Precisión doble IEEE:
M = 253 ≈ 9.0 × 1015 ,
y podemos almacenar todos los enteros con 15 dı́gitos y casi todos los
enteros con 16 dı́gitos.
(Dpto. de Matemáticas-UniOvi)
Computación Numérica
Aritmética finita y análisis de error
28 / 45
Exactitud
Exactitud IEEE
El mayor número normalizado que puede representar en doble precisión (en
valor absoluto) será, en representación binaria
(±1) · (1.11 . . . 11) · 21023
En decimal este número será:
Rmax = ±(1 + 1 · 2−1 + 1 · 2−2 + 1 · 2−3 + · · · + 1 · 2−52 ) · 21023 ≈ ±1.7977 · 10308
El menor número normalizado en doble precisión que puede representar
será, en representación binaria
(±1) · (1.00 . . . 00) · 2−1022
Por lo tanto, en decimal este número será:
Rmin = ±2−1022 ≈ ±2.2251 · 10−308
(Dpto. de Matemáticas-UniOvi)
Computación Numérica
Aritmética finita y análisis de error
29 / 45
Exactitud
Exactitud IEEE
¿Qué sucede si intentamos almacenar un número mayor en valor absoluto
que Rmax ?
Error de overflow:
Un error de overflow se produce cuando intentamos usar un número
demasiado grande.
En la mayor parte de los ordenadores se aborta la ejecución.
El formato IEEE puede darle soporte asignándole los valores simbólicos
±∞.
A menudo, se debe a errores de programación, que deben ser
corregidos.
(Dpto. de Matemáticas-UniOvi)
Computación Numérica
Aritmética finita y análisis de error
30 / 45
Exactitud
Exactitud IEEE
¿Y qué sucede si intentamos almacenar un número menor en valor absoluto
que Rmin ?
Error de underflow:
Se produce un error de underflow cuando intentamos almacenar un número
menor que Rmin .
Desde la inclusión de los números desnormalizados, que se sitúan entre Rmin
y el cero, se utiliza el valor desnormalizado más cercano y se pierde
precisión. Es lo que se llama un underflow gradual.
Si el número es menor que el menor desnormalizado se sustituye por
cero y la ejecución continua.
(Dpto. de Matemáticas-UniOvi)
Computación Numérica
Aritmética finita y análisis de error
31 / 45
Redondeo
Contenido
1
Sistemas decimal y binario
2
Representación de números: la norma IEEE 754
3
Valores especiales
4
Exactitud
5
Redondeo
6
Error
(Dpto. de Matemáticas-UniOvi)
Computación Numérica
Aritmética finita y análisis de error
32 / 45
Redondeo
Redondeo decimal
Escribamos un número x con notación en punto flotante en base 10 como
!
∞
X
n
−k
x = ±d0 .d1 d2 . . . × 10 = ±
dk 10
× 10n ,
k =0
donde d0 6= 0 y 0 ≤ dk ≤ 9, para k = 1, 2, . . .
Si la mantisa tiene más de p dı́gitos decimales, es decir,
dk 6= 0
para algunos k > p − 1,
entonces x no tiene un representación en punto flotante exacta con precisión
p.
En esta situación, se produce el redondeo.
(Dpto. de Matemáticas-UniOvi)
Computación Numérica
Aritmética finita y análisis de error
33 / 45
Redondeo
Redondeo decimal
Dos formas habituales de redondeo
x = ±d0 .d1 d2 . . . × 10n = ±
∞
X
!
dk 10−k
× 10n :
k=0
Redondeo a cero o truncado con p + 1 dı́gitos:
x ∗ = ±d0 .d1 d2 . . . dp × 10p ,
Redondeo al (par) más cercano con p dı́gitos:

n
si 0 ≤ dp ≤ 4,
 ±d0 .d1 d2 . . . dp−1 × 10
∗
x =
±(d0 .d1 d2 . . . dp−1 + 10−p+1 ) × 10n
si 5 ≤ dp ≤ 9,

al número acabado en par más cercano si dp = 5 y dp+k = 0.
(Dpto. de Matemáticas-UniOvi)
Computación Numérica
Aritmética finita y análisis de error
34 / 45
Redondeo
Ejemplos redondeo decimal
Ejemplo: Para x = 0.999953 y p = 4
Truncando x ∗ = 0.9999.
Redondeando x ∗ = 1.000.
Ejemplo: Para x = 0.433309 y p = 3
Truncando x ∗ = 0.433.
Redondeando x ∗ = 0.433.
Ejemplo: Para x = 0.433500 y p = 3
Truncando x ∗ = 0.433.
Redondeando x ∗ = 0.434. (Hacia el no acabado en par más cercano)
Ejemplo: Para x = 0.434500 y p = 3
Truncando x ∗ = 0.434.
Redondeando x ∗ = 0.434. (Hacia el no acabado en par más cercano)
(Dpto. de Matemáticas-UniOvi)
Computación Numérica
Aritmética finita y análisis de error
35 / 45
Redondeo
Redondeo binario
Escribamos un número x en punto flotante en base dos como
!
∞
X
e
−k
x = ±(1.d1 d2 . . .)2 × 2 = ± 1 +
dk 2
× 2e ,
k=1
donde 0 ≤ dk ≤ (1)2 , para k = 1, 2, . . .
Si la mantisa tiene más de p dı́gitos binarios, es decir,
dk 6= 0
para algunos k > p − 1,
entonces x no tiene un representación en punto flotante exacta con precisión
p.
Otra vez, se produce redondeo.
(Dpto. de Matemáticas-UniOvi)
Computación Numérica
Aritmética finita y análisis de error
36 / 45
Redondeo
Redondeo binario
Dos formas de redondear
x = ±(1.d1 d2 . . .)2 × 2e = ± 1 +
∞
X
!
dk 2−k
× 2e :
k =1
Redondeo a cero o truncado con p dı́gitos:
x ∗ = ±(1.d1 d2 . . . dp−1 )2 × 2e ,
Redondeo al (par) más cercano con p dı́gitos:

e
 ±(1.d1 d2 . . . dp−1 )2 × 2
∗
x =
±((1.d1 d2 . . . dp−1 )2 + 2−p+1 ) × 2e

al número acabado en cero más cercano
(Dpto. de Matemáticas-UniOvi)
Computación Numérica
si dp = 0,
si dp = 1,
si dp = 1 y dp+k = 0.
Aritmética finita y análisis de error
37 / 45
Redondeo
Ejemplos redondeo binario
Ejemplo: Para x = 1.1111 y p = 3
Truncando x ∗ = 1.11.
Redondeando x ∗ = 10.0.
Ejemplo: Para x = 1.1101 y p = 3
Truncando x ∗ = 1.11.
Redondeando x ∗ = 1.11.
Ejemplo: Para x = 1.0010 y p = 3
Truncando x ∗ = 1.00.
Redondeando x ∗ = 1.00. (Hacia el no acabado en cero más cercano)
Ejemplo: Para x = 1.0110 y p = 3
Truncando x ∗ = 1.01.
Redondeando x ∗ = 1.10. (Hacia el no acabado en cero más cercano)
(Dpto. de Matemáticas-UniOvi)
Computación Numérica
Aritmética finita y análisis de error
38 / 45
Redondeo
Comparación entre truncado y redondeo en
binario
La representación en punto flotante con precisión p de x puede expresarse
como
−p+1 0
si truncamos,
−2−p ,−p
x ∗ = x(1 + γ), donde γ =
−2 , 2
si redondeamos.
Consecuencias:
El mayor error de truncamiento es el doble que el mayor error de
redondeo.
El error de truncamiento es siempre no positivo, mientras que el error de
redondeo puede cambiar de signo.
Por lo tanto, lo errores se amplifican menos si usamos redondeo.
(Dpto. de Matemáticas-UniOvi)
Computación Numérica
Aritmética finita y análisis de error
39 / 45
Redondeo
Ejemplos
Si x = (1.1001101)2 = (1.6015625)10 lo aproximamos con
truncamiento a 5 dı́gitos binarios,
x ∗ = (1.1001)2 = (1.5625)10
x − x∗
= −0.0243902 . . . ∈ −2−4 , 0 .
x
redondeo a 5 dı́gitos binarios,
y entonces γ = −
x ∗ = (1.1010)2 = (1.625)10
y entonces γ = −
(Dpto. de Matemáticas-UniOvi)
x − x∗
= 0.0146341 . . . ∈ −2−5 , 2−5 .
x
Computación Numérica
Aritmética finita y análisis de error
40 / 45
Error
Contenido
1
Sistemas decimal y binario
2
Representación de números: la norma IEEE 754
3
Valores especiales
4
Exactitud
5
Redondeo
6
Error
(Dpto. de Matemáticas-UniOvi)
Computación Numérica
Aritmética finita y análisis de error
41 / 45
Error
Inestabilidad numérica
Errores de redondeo que se deben a que la aritmética de la computación es
finita
son pequeños en cada operación, pero
pueden acumularse y propagarse si un algoritmo tiene muchas
operaciones o iteraciones, resultando en una diferencia grande entre la
solución exacta y la solución calculada numéricamente.
Este efecto se conoce como inestabilidad numérica del algoritmo.
(Dpto. de Matemáticas-UniOvi)
Computación Numérica
Aritmética finita y análisis de error
42 / 45
Error
Ejemplo
Para la sucesión sk = 1 + 2 + . . . + k , for k = 1, 2, . . ., calcular
xk =
1
2
k
+
+ ... + ,
sk
sk
sk
cuyo resultado es
xk = 1
para todos los k = 1, 2, . . .
Sin embargo, en precisión simple obtenemos
k
101
103
106
107
(Dpto. de Matemáticas-UniOvi)
xk∗
1.000000
0.999999
0.9998996
1.002663
|xk − xk∗ |
0.0
1.0 × 10−7
1.004 × 10−4
2.663 × 10−3
Computación Numérica
Aritmética finita y análisis de error
43 / 45
Error
Error absoluto y relativo
Hay dos medidas principales del error cometido cuando aproximamos un
número x con x ∗ :
Error absoluto:
ea = |x − x ∗ |.
Error relativo:
er =
|x − x ∗ |
.
|x|
El error relativo es independiente de la escala y por tanto es más significativo
que el error absoluto, como podemos ver en el siguiente Ejemplo:
x
0.3 × 101
0.3 × 10−3
0.3 × 104
(Dpto. de Matemáticas-UniOvi)
x∗
0.31 × 101
0.31 × 10−3
0.31 × 104
ea
0.1
0.1 × 10−4
0.1 × 103
Computación Numérica
er
0.333... × 10−1
0.333... × 10−1
0.333... × 10−1
Aritmética finita y análisis de error
44 / 45
Error
Dı́gitos significativos
Decimos que x ∗ aproxima a x con p dı́gitos significativos si p es el mayor
entero no negativo tal que el error relativo satisface
|x − x ∗ |
≤ 5 × 10−p .
|x|
Ejemplos:
x ∗ = 124.45 aproxima x = 123.45 con p = 2 dı́gitos significativos:
|x − x ∗ |
1
=
= 0.0081 ≤ 0.05 = 5 × 10−2 .
|x|
123.45
x ∗ = 0.0012445 aproxima x = 0.0012345 con p = 2 dı́gitos significativos:
|x − x ∗ |
0.00001
=
= 0.0081 ≤ 0.05 = 5 × 10−2 .
|x|
0.0012345
x ∗ = 999.8 aproxima x = 1000 con p = 4 dı́gitos significativos:
|x − x ∗ |
0.2
=
= 0.0002 ≤ 0.0005 = 5 × 10−4 .
|x|
1000
(Dpto. de Matemáticas-UniOvi)
Computación Numérica
Aritmética finita y análisis de error
45 / 45
Descargar