2 Errores Numericos

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 18

Departamento de Ciencias de la Computación

Facultad de Ciencias Exactas, Ingenierı́a y Agrimensura


(FCEIA-UNR)

Métodos Numéricos
Prof. Alejandro G. Marchetti

Unidad II

Errores Numéricos

Mayo de 2020
Errores Numéricos 1

1. Introducción
El análisis numérico provee métodos computacionales para el estudio y la solución de pro-
blemas matemáticos. Debido a que los cálculos se realizan en computadoras digitales, debemos
conocer las implicancias que esto tiene en la implementación de métodos numéricos. El estu-
dio del error es de primordial importancia en el análisis numérico. La mayorı́a de los métodos
numéricos obtienen soluciones que son sólo una aproximación de la solución verdadera, y es im-
portante, de ser posible, poder estimar o acotar el error resultante. En esta Segunda Unidad, nos
enfocamos en el estudio de los errores que se generan en los cálculos, debido a la representación
computacional de números en punto flotante.

2. Sistemas de Numeración Posicionales


Los sistemas de numeración son posicionales cuando el valor de cada dı́gito del número de-
pende de la posición en la que se encuentra. Ejemplos de sistemas posicionales: binario, decimal,
octal y hexadecimal. Un ejemplo de sistema de numeración no posicional es el sistema romano.
El número de sı́mbolos permitidos en un sistema de numeración posicional se conoce como base
del sistema de numeración. Si un sistema de numeración posicional tiene base β significa que
disponemos de β sı́mbolos diferentes para escribir los números. La tabla 1 presenta un listado
de los distintos sistemas de numeración posicional.

Tabla 1: Sistemas de numeración posicionales


Sistema Base Cifras que utiliza
Binario 2 0, 1
Ternario 3 0, 1, 2
Cuaternario 4 0, 1, 2, 3
Quinario 5 0, 1, 2, 3, 4
Senario 6 0, 1, 2, 3, 4, 5
Septario o Hectal 7 0, 1, 2, 3, 4, 5, 6
Octal 8 0, 1, 2, 3, 4, 5, 6, 7
Nonario 9 0, 1, 2, 3, 4, 5, 6, 7, 8
Decimal 10 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
Undecimal 11 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A
... ... ...
Hexadecimal 16 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F

En general, un número con parte entera finita se representa en la base β como

(−1)σ (an an−1 . . . a1 a0 , a−1 a−2 . . . )β

donde los coeficientes ai son los valores (posición) de los dı́gitos en el sistema con base β, es
decir, enteros positivos tales que 0 ≤ ai ≤ β − 1, y σ es una variable binaria que representa el
signo del número (σ = 0 si el número es positivo y σ = 1 si es negativo).
La fórmula general para construir un número real x en un sistema de numeración posicional
de base β es la siguiente:

x = (−1)σ an β n + an−1 β n−1 + · · · + a1 β 1 + a0 β 0 + a−1 β −1 + a−2 β −2 + . . . (1)

Por ejemplo, usando el sistema decimal, el número 213,58 se puede construir como:

213, 58 = (−1)0 × 2 × 102 + 1 × 101 + 3 × 100 + 5 × 10−1 + 8 × 10−2 .
Errores Numéricos 2

2.1. Sistema Binario


En el sistema binario, de base β = 2, los números se representan utilizando solamente dos
cifras: cero (0) y uno (1). Un dı́gito binario, o bit, puede representar uno de estos dos valores.
El sistema binario es ampliamente utilizado en las computadoras ya que los procesadores se
fabrican con transistores en su interior que no son sino pequeños interruptores que dejan pasar
o no dejan pasar la electricidad, representando con ello los unos y los ceros respectivamente.
Un número binario se representa utilizando el subı́ndice β = 2, como por ejemplo el siguiente
número con parte entera y fraccionaria:

(1 0 1 0 1, 1 1 0 1)2

2.2. Conversión entre Decimal y Binario


Conversión de binario a decimal
Para la conversión de binario a decimal empleamos la fórmula (1) con β = 2. Por ejemplo,
(10101,1101)2 es la representación binaria del número 21,8125, puesto que,

(10101,1101)2 = 24 + 22 + 20 + 2−1 + 2−2 + 2−4 = 21, 8125

Otros ejemplos:

Entero binario con m unos:


m−1
X
m−1
x = (1
| 1 1{z. . . 1})2 = 2 + 2m−2 + · · · + 21 + 1 = 2k ,
m unos k=0

lo cual representa una suma parcial de una serie geométrica de razón 2. Luego,
1 − 2m
x= = 2m − 1
1−2

El binario periódico (0,01010101 . . . )2 .

x = (0,01010101 . . . )2 = 2−2 + 2−4 + 2−6 + . . .


∞  n
−2 −2 −4
 1X 1
=2 1 + 2 + 2 + ... = ,
4 4
n=0

lo cual representa una serie geométrica de razón 0, 25 < 1. Sabemos que dicha serie es
convergente, y conocemos la expresión de su suma,
 n

1X 1 1 1 1 1
x= = 1 = = = 0, 333 . . .
4 4 41− 4
4−1 3
n=0

El binario periódico (0,110011001100. . . )2 .

x = (0,110011001100 . . . )2 = 2−1 + 2−2 + 2−5 + 2−6 + . . .


∞  4n−2 ∞  4n−3 ∞   ∞  
X 1 X 1 X 1 n X 1 n
= + =4 +8
2 2 16 16
n=1 n=1 n=1 n=1
1
16 12
= 12 1 = = 0, 8
1− 16
15
Errores Numéricos 3

Conversión de decimal a binario


Un número entero x se convierte a binario dividiendo sucesivamente por dos hasta que el
cociente sea 0, y registrando el valor de los restos, de acuerdo al siguiente procedimiento:

dividir x por 2, llamar al cociente x1 , el resto es a0


dividir x1 por 2, llamar al cociente x2 , el resto es a1
dividir x2 por 2, llamar al cociente x3 , el resto es a2
..
.

Por ejemplo, para convertir el número (11)10 a binario, tenemos,

11 = 2 × 5 + 1 −→ a0 = 1
5 = 2 × 2 + 1 −→ a1 = 1
2 = 2 × 1 + 0 −→ a2 = 0
1 = 2 × 0 + 1 −→ a3 = 1

Luego, (11)10 = (1011)2 .


Un número fraccionario x se convierte a binario multiplicando sucesivamente por dos, y re-
gistrando la parte entera del número resultante, de acuerdo al siguiente procedimiento:

multiplicar x por 2. La parte entera es a−1 y la parte fraccionaria es x1 .


multiplicar x1 por 2. La parte entera es a−2 y la parte fraccionaria es x2 .
multiplicar x2 por 2. La parte entera es a−3 y la parte fraccionaria es x3 .
..
.

Por ejemplo, para convertir el número x = (0, 2)10 a binario, tenemos,

2 × x = 0, 4 −→ a−1 = 0, x1 = 0, 4
2 × x1 = 0, 8 −→ a−2 = 0, x2 = 0, 8
2 × x2 = 1, 6 −→ a−3 = 1, x3 = 0, 6
2 × x3 = 1, 2 −→ a−2 = 1, x4 = 0, 2
..
.

Luego, (0, 2)10 = (0, 00110011001100 . . . )2 . Notar que se obtiene una fracción binaria periódica.

3. Representación Computacional de Números en Punto Flo-


tante
Las computadoras son el principal medio de cálculo en análisis numérico y por ello es im-
portante conocer como operan. La aritmética que realiza una computadora es distinta de la
aritmética de nuestros cursos de álgebra o cálculo. La computadora opera con números binarios
y cada número se almacena con un número finito de dı́gitos binarios. Debido a esto, los núme-
ros irracionales, los binarios periódicos, y muchos otros números, no se pueden representar con
exactitud. La representación de números en punto flotante permite representar un número muy
elevado (pero finito) de números reales sobre un amplio rango de valores, a pesar de emplear
un número finito de dı́gitos. La notación en punto flotante está relacionada con la notación
cientı́fica.
Errores Numéricos 4

3.1. Representación General


Sea β la base del sistema de numeración empleado en la computadora. La mayorı́a de las
computadoras emplean β = 2, o también β = 8 o 16. Un número x se representa en la compu-
tadora como un número en punto flotante, f l(x), de la forma:

f l(x) = (−1)σ (, a1 a2 . . . an )β × β E−s (2)

La mantisa m es la parte fraccional del número, definida por los n dı́gitos ai , i = 1, . . . , n, como:
a1 a2 an
m = (, a1 a2 . . . an )β = 1 + 2 + · · · + n
β β β
donde ai , i = 1, . . . , n, son números naturales tales que 0 ≤ ai ≤ β − 1, con a1 6= 0 para números
en punto flotante normalizados.
El exponente E es un número entero positivo, definido por los t dı́gitos cj , j = 1, . . . , t, como:

E = (c1 c2 . . . ct )β = c1 β 1 + c2 β 2 + · · · + ct β t

El signo del número está definido por la variable binaria σ, introducida previamente, de
forma que σ = 0 si el número es positivo y σ = 1 si es negativo.
El uso exclusivo de enteros positivos para el exponente no permitirı́a una representación
adecuada de números con magnitud pequeña. Para garantizar que estos números también sean
representables, se resta el sesgo s del exponente, el cual es una constante para una representación
dada.

Ejemplos de números decimales en notación de punto flotante con una mantisa de 10 dı́gitos:
f l(3,333 . . . ) = (,3333333333)10 × 101
f l(0,000777 . . . ) = (,7777777778)10 × 10−3
f l(100,02) = (,1000200000)10 × 103
El cero no puede ser representado como punto flotante normalizado y se representa como
caso particular. Para una representación dada, existen lı́mites en los exponentes que se pueden
representar:

L≤E−s≤U

con L < 0 y U > 0. Si el exponente de un número x viola la cota inferior, es decir, si E − s < L,
ocurre un desbordamiento a cero o underflow. En este caso, f l(x) = 0 y los cálculos continuan.
Si el exponente de x viola la cota superior, es decir, si E −s > U , luego x no se puede representar
como f l(x) y ocurre un desbordamiento u overflow. Esto representa un error fatal y el cálculo
(programa) se interrumpe.

3.2. Norma IEEE para Números en Punto Flotante


La norma IEEE 754 define distintos formatos estándar para números binarios en punto flo-
tante.1 Consideraremos solamente la precisión simple y la precisión doble.

Precisión simple: En precisión simple, los números se representan con 32 bits y un sesgo de
127. Se emplea 1 bit para el signo, 8 para el exponente, y 23 para la mantisa.

Bits 1 8 23 Total: 32 bits = 4 bytes


σ exponente mantisa
1
IEEE son las siglas en inglés del Institute of Electrical and Electronics Engineers.
Errores Numéricos 5

El flotante de un número x en precisión simple está dado por:

f l(x) = (−1)σ (1, a1 a2 . . . a23 )2 × 2E−127 (3)

Precisión doble: En precisión doble, los números se representan con 64 bits y un sesgo de
1023. Se emplea 1 bit para el signo, 11 para el exponente, y 52 para la mantisa.

Bits 1 11 52 Total: 64 bits = 8 bytes


σ exponente mantisa

El flotante de un número x en precisión doble está dado por:

f l(x) = (−1)σ (1, a1 a2 . . . a52 )2 × 2E−1023 (4)

Notar que en el estándar IEEE 754, el 1 anterior a la coma en (3) y (4) es implı́cito, y no se
almacena ya que se asume se presencia. Por otra parte, el dı́gito a1 puede ser igual a cero.

Llamaremos significante al número ξ = (1, a1 a2 . . . an )2 , para distinguirlo de la mantisa.


Se desprende inmediatamente que el significante satisface 1 ≤ ξ < 2. Analizaremos cuales son
los lı́mites del exponente E − s en precisión simple.
El máximo valor del exponente E con precisión simple está dado por,

(11111111)2 = 28 − 1 = 255

Para números normalizados se representan números enteros del 1 al 254. El mı́nimo (0) y el
máximo (255) se reservan para otros fines. Utilizando un sesgo de 127, se pueden representar
exponentes en el rango,

− 126 ≤ E − s ≤ 127

Es decir, los lı́mites del exponente son:

L = −126 = 1 − 127
U = 127 = 254 − 127

Ejemplo. Representación del número (40)10 en precisión simple.

0 10000100 01000000000000000000000

Exponente: E = 27 + 22 = 132
Significante: ξ = 20 + 2−2 = 1,25

Verificación: 1,25 × 2132−127 = 1,25 × 25 = 40

3.3. Truncamiento y Redondeo


La mayorı́a de los números reales no se pueden representar en forma exacta en la repre-
sentación en punto flotante introducida previamente. Por lo tanto deben aproximarse por un
número cercano que sea representable. Dado un número real arbitrario x, existen dos maneras
principales de generar f l(x) a partir de x: el truncamiento y el redondeo.
Cualquier número real x se puede escribir como:

x = (−1)σ (, a1 a2 . . . an an+1 . . . )β × β E−s


Errores Numéricos 6

con a1 6= 0.

Truncamiento: Consiste en cortar los números an+1 , an+2 , . . . .


f l(x) = (−1)σ (, a1 a2 . . . an )β × β E−s (5)
Redondeo: En el caso de un número redondeado, tenemos:

 σ E−s β
 (−1) (, a1 a2 . . . an−1 an )β × β 0 ≤ an+1 <


2
f l(x) = (6)

 β
 (−1)σ [(, a1 a2 . . . an−1 an )β + (, 0 0 . . . 0 1)β ] × β E−s
 ≤ an+1 < β
2
En ocasiones, se emplea una variante de la definición dada por (6) a fin de obtener un redondeo
no sesgado. En el caso particular en que:
β
(1) an+1 = y (2) aj = 0 para j ≥ n + 2,
2
se redondea hacia arriba si an es impar y hacia abajo si an es par.

Redondeo en decimal: Notar que la definición (6) concuerda con la definición clásica de redondeo
que conocemos para el sistema decimal:

 (−1)σ (, a1 a2 . . . an−1 an )10 × 10E−s 0 ≤ an+1 < 5
f l(x) =

(−1)σ [(, a1 a2 . . . an−1 an )10 + (, 0 0 . . . 0 1)10 ] × 10E−s 5 ≤ an+1 < 10
Redondeo en binario: Incluyendo el significante empleado en la norma IEEE, el redondeo en
binario está dado por:

 (−1)σ (1, a1 a2 . . . an−1 an )2 × 2E−s an+1 = 0
f l(x) =

(−1)σ [(1, a1 a2 . . . an−1 an )2 + (, 0 0 . . . 0 1)2 ] × 2E−s an+1 = 1
Algunos programas como Matlab y Scilab utilizan la variante mencionada anteriormente, es
decir, en el caso particular en que:
(1) an+1 = 1 y (2) aj = 0 para j ≥ n + 2,
se redondea hacia arriba si an = 1 y hacia abajo si an = 0.

3.4. Medidas de Precisión de la Representación en Punto Flotante


Introduciremos ahora algunas medidas que nos darán una idea de la precisón posible de la
representación con punto flotante.

Epsilon de la máquina
Sea y el menor número representable “en la máquina”que es mayor a 1. El epsilon de la
máquina es una medida de precisión dada por: ε = y − 1.
Empleando la norma IEEE se tiene:
1 = (1, 0 0 . . . 0 0)2 × 20
y = (1, 0 0 . . . 0 1)2 × 20 = 1 + 2−n > 1
Luego, ε = 2−n . En precisión simple, ε = 2−23 ≈ 1,19 × 10−7 .

Unidad de redondeo
La unidad de redondeo de un computador es un número δ que satisface:
Errores Numéricos 7

1) es un número positivo en punto flotante.


2) es el menor número tal que f l(1 + δ) > 1.
Luego, para cualquier otro número positivo en punto flotante δ̂ < δ, se tiene que f l(1+ δ̂) = 1,
y ası́, 1 + δ̂ es identico a 1 en la aritmética del computador. Notar que δ mide el “ancho del cero”
en la representación de punto flotante.
No es difı́cil derivar el valor de δ. Empleando la norma IEEE tenemos,

(1, 0 0 . . . 0 1 0 0 . . . )2 × 20 = 1 + 2−n−1

posición n + 1

Utilizando redondeo en binario (sin la variante que utiliza Scilab):

f l(1 + 2−n−1 ) = (1, 0 0 . . . 0 1)2 × 20 = 1 + 2−n > 1



posición n

Ahora, si δ̂ < 2−n−1 entonces 1 + δ̂ tiene un cero en la posición n + 1 de la mantisa, y por defi-
nición se tiene entonces que f l(1+ δ̂) = 1. Luego, δ = 2−n−1 . En precisión simple, δ ≈ 5,96×10−8 .

Mayor entero positivo representable en forma exacta.


Otra medida de precisión relacionada con el número de bits del significante consiste en hallar
el mayor entero M tal que todo entero x que satisface 0 ≤ x ≤ M , se puede representar en forma
exacta en punto flotante. Es decir, se trata de hallar M ∈ Z+ tal que:
1) 0 < x ≤ M , x ∈ Z+ , implica f l(x) = x
2) f l(M + 1) 6= M + 1
En precisión simple, tenemos:
23 23 22 1 0 24
| 1 1{z. . . 1})2 × 2 = 2 + 2 + · · · + 2 + 2 = 2 − 1
(1, 1
23 unos

Además, 224 se almacena en forma exacta,

224 = (1, 0| 0 0{z. . . 0})2 × 224


23 ceros

Sin embargo, 224 + 1 no se almacena en forma exacta ya que esto requerirı́a una mantisa de 24
bits:

(1, 0| 0 0{z. . . 0} 1)2 × 224


23 ceros

Luego, M = 224 = 16777216.

4. Errores Numéricos
4.1. Error Absoluto y Relativo
Al resover un problema, buscamos obtener la solución exacta o verdadera, que denotamos xv .
Sin embargo, aplicando métodos numéricos se obtiene por lo general una solución approximada
xa . Definimos el error en xa como:

Error = xv − xa
Errores Numéricos 8

Definimos el error absoluto y el error relativo en xa como:

Error absoluto = |Error| = |xv − xa |

error absoluto |xv − xa |


Error relativo = =
|valor verdadero| |xv |

4.2. Error de Truncamiento y Redondeo


Si x 6= f l(x) y se utiliza truncamiento, luego f l(x) < x y el error x−f l(x) es siempre positivo.
Esto trae consecuencias en el cálculo numérico, ya que no hay posibilidad de cancelación de
errores y la propagación de errores es mayor. Con el redondeo, el error x − f l(x) es negativo
para la mitad de los valores de x y positivo para la otra mitad de los valores posibles de x.
Además, el peor error posible por redondeo es la mitad que en el caso de truncamiento.
A menudo se representa el error relativo como
x − f l(x)
= −ε, si x 6= 0
x
de donde

f l(x) = (1 + ε)x

Luego, f l(x) puede verse como un valor perturbado de x. La siguiente proposición provee cotas
sobre el error relativo ε.

Proposición 1 Sea x ∈ R, con x 6= 0. Las siguientes cotas sobre el error relativo ε son válidas
empleando las fórmulas de truncamiento y redondeo dadas por (5) y (6), respectivamente.
i) −β −n+1 ≤ ε ≤ 0 f l(x) truncado
1 1
ii) − β −n+1 ≤ ε ≤ β −n+1 f l(x) redondeado
2 2
Demostración. Veremos la demostración del item (i) solamente. Supondremos σ = 0 (el caso
σ = 1 no cambia el signo de ε). En el caso de truncamiento, tenemos:

x − f l(x) = (, 0 0 . . . 0 an+1 an+2 . . . )β × β e , con e = E − s

Sea γ = β − 1,

0 ≤ x − f l(x) ≤ (, 0 0 . . . 0 γ γ . . . )β × β e =
"∞ # "∞  # 1
X 1 e γ X 1 i e γ β γ 1 e βe
=γ β = n β = n βe = β = = β −n+e
β n+i β β β 1 βn γ βn
i=1 i=1 1−
β
Dividiendo por x la desigualdad anterior, tenemos
x − f l(x) β −n+e
0≤ ≤ (7)
x (, a1 a2 . . . )β × β e
Luego,
β −n
0 ≤ −ε ≤ = β −n+1
(, 1 0 0 0 . . . )β
con lo cual queda demostrado el item (i). 
Errores Numéricos 9

4.3. Cifras Significativas


En un trabajo cientı́fico, se considera que las cifras significativas (o dı́gitos significativos) de
un número son aquellas que tienen un significado real o aportan alguna información. Las cifras
significativas de un número vienen determinadas por su incertidumbre. Por ejemplo, conside-
remos una medida de longitud que arroja un valor de 4325,3528 metros con un error de 0,8
metros. Puesto que el error es del orden de décimas de metro, es evidente que todas las cifras
del número que ocupan una posición menor que las décimas no aportan ninguna información.
No tiene sentido dar el número con una exactitud de diez milésimas, si afirmamos que el error
es de casi un metro. Cuando se expresa un número debe evitarse siempre la utilización de cifras
no significativas.

Cifras significativas de un número


Para conocer el número de cifras significativas de un número decimal, se siguen las siguientes
reglas:
Cualquier dı́gito distinto de cero es significativo. Por ejemplo, 438 tiene tres cifras signifi-
cativas.
Los ceros situados en medio de números diferentes de cero son significativos. Por ejemplo,
402 tiene tres cifras significativas, y 30002 tiene cinco cifras significativas.
Los ceros a la izquierda del primer número distinto de cero no son significativos. Por
ejemplo, 0,0023 tiene dos cifras significativas.
Los ceros que se encuentran después de la coma y después de un dı́gito distinto de cero,
son significativos. Por ejemplo 10,00 tiene 4 cifras significativas, y 0,0030 tiene dos cifras
significativas.
En los números enteros, los ceros situados después de un dı́gito distinto de cero pueden
ser o no significativos. Por ejemplo, 600 puede tener una cifra significativa (6), dos (60),
o tres (600). Para conocer el número correcto de cifras significativas necesitamos conocer
más información acerca de cómo fué generado el número (por ejemplo, si el número es
una medición, necesitamos conocer la precisión del instrumento de medición empleado).
También podemos conocer el número correcto de cifras significativas si expresamos el
número en notación cientı́fica. Por ejemplo, 6 × 102 tiene una cifra significativa, 6,0 × 102
tiene dos cifras significativas, y 6,00 × 102 tiene tres cifras significativas.

Cifras significativas de un valor aproximado con respecto a un valor verdadero


Sea xv el valor verdadero de un número y xa un valor aproximado.

Definición. Decimos que xa tiene m cifras significativas con respecto a xv si el error |xv − xa |
tiene una magnitud menor o igual a cinco unidades en el dı́gito (m + 1) de xv contando de
izquierda a derecha desde el primer dı́gito distinto de cero en xv .

Ejemplos
.
(a) xv = 1/3 xa = 0, 333 |xv − xa | = 0,000333
Decimos que xa tiene tres cifras significativas con respecto a xv .
(b) xv = 23, 496 xa = 23, 494 |xv − xa | = 0,002
Decimos que xa tiene cuatro cifras significativas con respecto a xv .
Errores Numéricos 10

(c) xv = 0,02144 xa = 0,02138 |xv − xa | = 0,00006


Decimos que xa tiene dos cifras significativas (y no tres) con respecto a xv .

Para medir el número de cifras significativas de un valor aproximado se suele emplear la siguiente
desigualdad. Si
xv − xa
≤ 5 × 10−m−1 , (8)
xv
luego xa tiene m cifras significativas con respecto a xv . Para demostrar esto, consideremos
primero el caso en que 0,1 ≤ xv < 1. Luego (8) implica

|xv − xa | ≤ 5 × 10−m−1 |xv | < 5 × 10−m−1 .

Como 0,1 ≤ xv < 1, esto implica que xv tiene m cifras significativas. Para un xv general la
demostración es la misma, haciendo xv = x̂v × 10E , con 0,1 ≤ x̂v < 1, y E un número entero.

Nota: Notar que (8) es una condición suficiente, pero no necesaria, para que xa tenga m cifras
significativas con respecto a xv . Los ejemplos (a) y (b) dados anteriormente tienen un mayor
número de cifras significativas que las indicadas por la condición (8).

Redondeo a m cifras significativas


Redondear un número decimal x a m cifras significativas (o a m dı́gitos) es equivalente a redon-
dear el número utilizando en notación de punto flotante una mantisa de m dı́gitos. Para ello,
primero se escribe el número en la forma x = x̂ × 10E , con 0,1 ≤ x̂ < 1, y E un número entero.
Luego se procede a redondear x̂ con m dı́gitos después de la coma. El número redondeado es
rn(x) = x̄ × 10E , con x̄ = 0, a1 a2 · · · am . Puesto que a1 6= 0 y todos los dı́gitos se encuentran
después de la coma, rn(x) tiene m cifras significativas. Además, el valor aproximado que se
obtiene xa = rn(x) tiene m cifras significativas con respecto al valor original xv = x, puesto que
al redondear un número se cumple la definición vista anteriormente.

Ejemplos
(a) Redondeo con 5 cifras significativas
xv = 1, 123456 xa = 1, 1235 |xv − xa | = 0, 000044
Luego xa tiene cinco cifras significativas con respecto a xv .

(b) Redondeo con 2 cifras significativas


xv = 0, 20004 xa = 0, 20 |xv − xa | = 0,00004
Luego xa tiene dos cifras significativas (y no cuatro) con respecto a xv .

(c) Redondeo con 4 cifras significativas


xv = 0, 20005 xa = 0, 2001 |xv − xa | = 0,00005
Luego xa tiene cuatro cifras significativas con respecto a xv .
Errores Numéricos 11

4.4. Propagación de Errores


Consideraremos el efecto de realizar cálculos con números sujetos a error.

Error propagado
Sea ω una de las operaciones aritméticas +, −, ×, /; y sea ω̂ la versión computacional de la
misma operación, la cual incluye redondeo o truncamiento. Sean xa e ya números usados en los
cálculos, y suponga que ya presentan error, siendo sus valores verdaderos

xv = xa + ǫ, yv = ya + η.

Luego, xa ω̂ya es el número calculado, y su error está dado por:

xv ωyv − xa ω̂ya = [xv ωyv − xa ωya ] + [xa ωya − xa ω̂ya ] (9)

La primera cantidad entre corchetes es llamada error propagado, mientras que la segunda can-
tidad es el error de redondeo o de truncamiento. Supondremos en los sucesivo que se emplea
redondeo. Para esta segunda cantidad, usualmente tenemos que

xa ω̂ya = f l(xa ωya ) (10)

lo cual significa que xa ωya se calcula con exactitud y luego se redondea. Aplicando la cota (ii)
de la Proposición 1,

β −n+1
|xa ωya − xa ω̂ya | ≤ |xa ωya |
2
Para el error propagado examinaremos los casos particulares.

Caso (a). Multiplicación. Para el error en xa ya tenemos,

xv yv − xa ya = xv yv − (xv − ǫ)(yv − η)
= xv η + yv ǫ − ǫη

Definiendo el error relativo, Rel(xa ) ≡ ǫ/xv , tenemos


xv y v − xa y a η ǫ ǫ η
Rel(xa ya ) = = + −
xv y v yv xv xv y v
= Rel(xa ) + Rel(ya ) − Rel(xa )Rel(ya )

Para |Rel(xa )|, |Rel(ya )| ≪ 1,

Rel(xa ya ) ≈ Rel(xa ) + Rel(ya )

El sı́mbolo “≪” significa “mucho menor que.”

Caso (b). División. Usando argumentos similares,


 
xa Rel(xa ) − Rel(ya )
Rel =
ya 1 − Rel(ya )

Para |Rel(ya )| ≪ 1,
 
xa
Rel ≈ Rel(xa ) − Rel(ya )
ya
Errores Numéricos 12

Tanto para la multiplicación como para la división los errores relativos no se propagan rápida-
mente.

Caso (c). Suma y resta.

(xv ± yv ) − (xa ± ya ) = (xv − xa ) ± (yv − ya ) = ǫ ± η,

por lo tanto,

Error(xa ± ya ) = Error(xa ) ± Error(ya )

Esto puede parecer bueno y razonable, pero es engañoso. El error relativo Rel(xa ± ya ) puede
ser bastante pobre comparado con Rel(xa ) y Rel(ya ).

22
Ejemplo. Sea xv = π, xa = 3,1416, yv = 7 , ya = 3,1429. Luego

xv − xa ≈ −7,35 × 10−6 Rel(xa ) ≈ −2,34 × 10−6


yv − ya ≈ −4,29 × 10−5 Rel(ya ) ≈ −1,36 × 10−5
(xv − yv ) − (xa − ya ) ≈ −0,0012645 − (−0,0013) ≈ 3,55 × 10−5
Rel(xa − ya ) ≈ −0,028

Aunque el error en xa − ya es bastante pequeño, el error relativo Rel(xa − ya ) es mucho mayor


que Rel(xa ) y Rel(ya ). Esta pérdida de precisión al sustraer cantidades similares se examinará
con mayor detalle a continuación.

Error por supresión de cifras significativas


Cuando restamos dos números muy cercanos, ocurre por lo general un error de supresión
de dı́gitos significativos. Son problemas difı́ciles de detectar, e incluso cuando se detectan pue-
den ser difı́ciles de resolver. Analizaremos como se producen estos errores mediante el siguiente
ejemplo.

Evaluar la función
√ √ 
f (x) = x x+1− x

en una calculadora decimal de 6 dı́gitos, es decir, empleando una representación de números


decimales en punto flotante con una mantisa de 6 dı́gitos. En la siguiente tabla se muestra el
valor de f (x) que se obtienen con la calculadora para valores crecientes de x, y el valor real de
f (x), redondeado correctamenta a 6 dı́gitos.

x f (x) calculadora f (x) real


1 ,414210 ,414214
10 1,54340 1,54347
100 4,99000 4,98756
1000 15,8000 15,8074
10000 50,0000 49,9988
100000 100,000 158,113

Vemos como para valores elevados de x el error en la evaluación de f (x) aumenta conside-
rablemente. Para ver lo que está sucediendo analizaremos el caso de x = 100. Tenemos:
√ √
101 = 10,0499 100 = 10,0000
Errores Numéricos 13

Luego, en la aritmética de la calculadora tenemos


√ √
101 − 100 = 0,0499000
√ √
Mientras que el valor real es 101 − 100 = 0,0498756. Comparando ambos números vemos
que hubo una supresión de tres cifras significativas.
En este ejemplo en particular, es posible evitar la supresión de cifras significativas reformu-
lando f (x):
√ √ √ √
( x + 1 − x) ( x + 1 + x) x
f (x) = x √ √ =√ √
1 ( x + 1 + x) x+1+ x

En este caso, si evaluamos f (100) con una calculadora decimal de 6 dı́gitos, obtenemos f (100) =
4,98756, lo cual es igual al valor real de f (100) correctamente redondeado.

Error propagado en la evaluación de funciones


Supongamos que queremos evaluar la función f (x) en la computadora. El resultado por lo
general no será el valor de f (x) sino una aproximación de dicho valor que denotamos fˆ(x). Por
otra parte, por lo general queremos evaluar la función para un valor exacto xv , pero en lugar
de ello, la evaluamos para un valor aproximado xa . El error resultante en la evaluación de la
función estará dado por:

f (xv ) − fˆ(xa ) = [f (xv ) − f (xa )] + [f (xa ) − fˆ(xa )] (11)

La primera cantidad entre corchetes es el error propagado, y es el error que resulta de aplicar
aritmética exacta en la evaluación de la función. La segunda cantidad entre corchetes es el
error que resulta de evaluar f (xa ) en la computadora. Este segundo error puede verse como una
variable aleatoria de pequeña magnitud que resulta de la acumulación de los errores de redondeo
asociados a las operaciones aritméticas que definen a la función f (x).

Error en sumatorias
Veremos cómo se propaga el error al realizar una sumatoria de números empleando aritmética
de punto flotante. Sea la suma
m
X
S= xj
j=1

donde x1 , . . . , xm son números en punto flotante. Definimos

S2 ≡ f l(x1 + x2 ) = (x1 + x2 )(1 + ε2 )

Recursivamente, definimos

Sr+1 ≡ f l(Sr + xr+1 ) = (Sr + xr+1 )(1 + εr+1 ), r = 2, . . . , m − 1

Expandiendo las primeras tres sumas obtenemos:

S2 − (x1 + x2 ) = (x1 + x2 )ε2


S3 − (x1 + x2 + x3 ) = (x1 + x2 )ε2 + (x1 + x2 + x3 )ε3 + (x1 + x2 )ε2 ε3
S4 − (x1 + x2 + x3 + x4 ) = (x1 + x2 )ε2 + (x1 + x2 + x3 )ε3 + (x1 + x2 + x3 + x4 )ε4 +
+ (x1 + x2 )(ε2 ε3 + ε2 ε4 + ε2 ε3 ε4 ) + (x1 + x2 + x3 )ε3 ε4
Errores Numéricos 14

Despreciando los productos de errores relativos εi εj , debido a su pequeña magnitud, obtenemos


por inducción
m
X
Sm − ≈ (x1 + x2 )ε2 + (x1 + x2 + x3 )ε3 + · · · + (x1 + x2 + x3 + · · · + xm )εm
j=1

= (x1 + x2 )(ε2 + ε3 + · · · + εm ) + x3 (ε3 + ε4 + · · · + εm )+


+ x4 (ε4 + · · · + εm ) + · · · + xm εm

Observando esta fórmula, vemos que el mayor número de errores εj multiplica a x1 y x2 , mientras
que solo εm multiplica a xm . Si queremos minimizar el error |S − Sm | deducimos que la mejor
estrategia es sumar los números del menor al mayor, es decir, ordenando los términos antes de
sumarlos de tal modo que 0 ≤ |x1 | ≤ |x2 | ≤ · · · ≤ |xm |. Por supuesto, existen contraejemplos,
pero para sumatorias grandes esta estrategia por lo general minimiza la propagación de errores.

4.5. Fuentes de Error en Problemas Matemáticos


La resolución de un problema matemático de ingenierı́a o de ciencia computacional está su-
jeto a las siguientes fuentes de error.

1) Error de modelado matemático. En fı́sica y en ciencias aplicadas (lo cual incluye todas las
ingenierı́as), un modelo matemático es una representación simplificada, a través de ecuaciones,
funciones o fórmulas matemáticas, de un fenómeno o de la relación entre dos o más variables.
Se podrı́a decir que un modelo matemático es una traducción de la realidad fı́sica de un sistema
fı́sico en términos matemáticos, es decir, una forma de representar matemáticamente cada uno
de los tipos de entidades que intervienen en un cierto proceso.
Las relaciones matemáticas formales entre los objetos del modelo, deben representar de al-
guna manera las relaciones reales existentes entre las diferentes entidades o aspectos del sistema
fı́sico. Ası́, una vez “traducido” o “representado” cierto problema en forma de modelo matemáti-
co, se pueden aplicar el cálculo, el álgebra y otras herramientas matemáticas para deducir el
comportamiento del sistema bajo estudio.

Como ejemplo, consideremos la Ley de Gases Ideales, dada por

P V = nRT

donde P es la presión del gas, V es el volumen que ocupa, n es el número de moles del gas,
lo cual está relacionado con su masa, R es la constante universal de los gases ideales, y T es
la temperatura absoluta del gas. Esta ley describe el estado de un gas hipotético formado por
moléculas puntuales que no se atraen o repelen entre sı́. No existen gases que sean exactamente
ideales, pero muchos de ellos se aproximan al comportamiento ideal para temperaturas cercanas
a la temperatura ambiente y presiones cercanas a la presión atmosférica, de tal modo que
aproximarlos por un gas ideal es muy útil en numerosas situaciones. Por supuesto, existen
ecuaciones de estado mas precisas. van der Waals introdujo correcciones que tenı́an en cuenta el
volumen de las moléculas y las fuerzas atractivas que una molécula ejerce sobre otra a distancias
muy cercanas entre ellas, lo cual le valió el premio Nobel en 1910. La ecuación de van der Waals
está dada por
 
an2
P + 2 (V − nb) = nRT
V

donde las constantes a y b son caracterı́sticas de cada gas.


Errores Numéricos 15

Debido a la complejidad de la realidad fı́sica, un modelo matemático es siempre una apro-


ximación de la realidad. La complejidad del modelo puede variar dependiendo de las simplifica-
ciones que se realicen para que el modelo sea más manejable. Como resultado, la precisión del
modelo es limitada, y estas limitaciones pueden o no representar un problema dependiendo del
uso que quiera hacerse del modelo.
Si un modelo es adecuado para un determinado propósito, luego desearı́amos emplear un
método numérico que preserve dicha precisión. Si por el contrario el modelo no es suficientemen-
te preciso, luego el análisis numérico no puede mejorar dicha precisión (salvo por casualidad).
Por otra parte, no es una buena idea crear un modelo que sea más complicado de lo necesa-
rio. Un modelo más complicado puede introducir mayores dificultades en el análisis numérico sin
que ello redunde en un mayor beneficio en relación al propósito para el cual el modelo fue creado.

2) Incertidumbre en datos fı́sicos. La mayorı́a de los datos obtenidos a partir de un experi-


mento fı́sico están sujetos a errores de medición o incertidumbre. Esto afecta la precisión de los
cálculos realizados en base a dichos datos. El efecto de dichos errores en los cálculos es similar
al efecto de los errores de redondeo, si bien, el error en los datos fı́sicos es por lo general mucho
mayor que el error de redondeo.

3) Equivocaciones. Existen diversos errores que podemos cometer al programar un método


numérico para resolver un problema matemático. Por ejemplo, podemos escribir incorrectamen-
te una ecuación o ingresar incorrectamente el valor de un parámetro del modelo, o en forma
más general, podemos cometer errores de programación. En general, para programas largos y
complejos los errores de programación pueden ser difı́ciles de detectar. Un pequeño error sutil
puede producir una gran diferencia en los resultados numéricos. Por ello es importante emplear
técnicas para la revisión sistemática del código fuente y contar con medios computacionales para
la detección de errores (depuradores). Es importante verificar que el programa esté devolviendo
la respuesta que esperamos de él, para lo cual se aconseja correr el programa utilizando ejemplos
para los que se conoce la respuesta exacta. Para evitar errores es importante emplear buenas
prácticas en programación.

4) Errores de truncamiento o redondeo. Los errores de truncamiento o redondeo son inevi-


tables cuando se utiliza representación en punto flotante. En esta Unidad hemos estudiado los
efectos que producen dichos errores.

5) Error de aproximación matemática. Es la principal fuente de error de la que se ocupa


el análisis numérico, y analizaremos este error para muchos de los métodos numéricos que se
estudian en este curso. El error de aproximación matemática es el error que ocurre cuando reem-
plazamos un problema computacionalmente difı́cil de resolver (o irresoluble) por un problema
semejante que es más fácil de resolver. Los siguientes ejemplos permiten precisar la idea:
Aproximación polinomial de Taylor.
1
ex ≈ 1 + x + x2
2
Integración numérica.
Z 1 n  
1X j
f (x)dx ≈ f
0 n n
j=1

Diferenciación numérica.
f (x + h) − f (x − h)
f ′ (x) ≈
2h
Bibliografı́a

1. Kendall E. Atkinson, An Introduction to Numerical Analysis, Second Edition, John Wiley &
Sons, 1989.

2. M. Felici y G. Zamanillo, Mediciones Eléctricas. Código 425, Universidad Nacional de Rı́o


Cuarto, 2007.

3. D. Feroldi, Representación Computacional de Datos, Departamento de Ciencias de la Compu-


tación, FCEIA - Universidad Nacional de Rosario, 2019.

4. D. Feroldi, Representación Computacional de Números Reales, Departamento de Ciencias de


la Computación, FCEIA - Universidad Nacional de Rosario, 2018.

También podría gustarte