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