Está en la página 1de 23

Nociones Básicas de Errores

• Almacenamiento de números reales en el computador.


• Error Absoluto, error relativo y dı́gitos significativos.
• Operatoria con Errores.
• Fuentes de Errores.
• Rapidez de Convergencia.
• Orden de Convergencia.
• Propagación de errores.

Cálculo Numérico IN1012C/IN1052C/MAT221N -1- DMFA – Universidad Católica de la Santı́sima Concepción


Representación de números reales en un sistema de
punto flotante

• Lo describiremos, por sencillez, en el sistema decimal, aunque los


computadores representan los números en sistema binario:

783.375 −→ +.783375 × 103


0.00843215 −→ +.843215 × 10−2
−1.23456 −→ −.123456 × 101
−0.999999 −→ −.999999 × 100

Cálculo Numérico IN1012C/IN1052C/MAT221N -2- DMFA – Universidad Católica de la Santı́sima Concepción


Almacenamiento de números reales en computador

• En el computador se almacenan el signo, la mantisa y el exponente (con su


signo) del número real.

_.
+ x 10 l dígitos
k dígitos exponente
signo mantisa (con signo)

signo exponente mantisa

• La cantidad de dı́gitos k que se utilizan para almacenar la mantisa es fija. Por


lo tanto sólo pueden almacenarse a lo sumo k dı́gitos de mantisa de un
número real.

• La cantidad de dı́gitos l que se utilizan para almacenar el exponente también


es fija. Por lo tanto hay un exponente positivo máximo y otro exponente
negativo mı́nimo que pueden llegar a representarse.

Cálculo Numérico IN1012C/IN1052C/MAT221N -3- DMFA – Universidad Católica de la Santı́sima Concepción


Overflow

• Si se intenta almacenar un número cuyo exponente positivo es mayor que el


máximo representable en el sistema, se produce un error fatal: overflow. Por
lo tanto existe un máximo número positivo que puede representarse.

• En MATLAB el máximo número representable es aproximadamente 10308 .


Si se intenta representar un número mayor, el computador devuelve Inf
(infinito) como una indicación de que se produjo un overflow:

>> a=2ˆ1023
a =
8.988465674311580e+307

>> b=2ˆ1024
b =
Inf

Cálculo Numérico IN1012C/IN1052C/MAT221N -4- DMFA – Universidad Católica de la Santı́sima Concepción


Underflow

• Si se intenta almacenar un número cuyo exponente negativo es menor que el


mı́nimo representable se produce un error leve: underflow. Por lo tanto existe
un mı́nimo número positivo que puede representarse. Si se representa un
número positivo menor que ese mı́nimo, el computador almacena 0:

• En MATLAB el mı́nimo número positivo representable es aproximadamente


10−323 :

>> c=2ˆ-1074
c =
4.940656458412465e-324

>> d=2ˆ-1075
d =
0

Cálculo Numérico IN1012C/IN1052C/MAT221N -5- DMFA – Universidad Católica de la Santı́sima Concepción


Error Absoluto, error relativo y dı́gitos significativos

Considere x∗ , una aproximación de un número x. Nos interesa averiguar cuán


buena es nuestra aproximación, para ello definimos:

• Error absoluto, denotado por εx , a la cantidad:

εx = |x − x∗ |.

• Error relativo (siempre y cuando x 6= 0), denotado por δx , a la cantidad:


|x − x∗ |
δx = .
|x|

• Error porcentual (siempre y cuando x 6= 0), denotado por ε% , a la cantidad:

ε% = 100 δx .

Notación: x = x∗ ± εx .

Cálculo Numérico IN1012C/IN1052C/MAT221N -6- DMFA – Universidad Católica de la Santı́sima Concepción


Una cota del error absoluto ∆x de un número aproximado x es cualquier número
positivo mayor o igual que |x − x∗ |, es decir

|x − x∗ | ≤ ∆x.

Notación: x = x∗ ± ∆x.
Del mismo modo, una cota del error relativo Λx de un número aproximado x es
|x−x∗ |
cualquier número positivo mayor o igual que |x| , es decir

|x − x∗ |
≤ Λx .
|x|

Obs: Si ∆x ≪ |x∗ |, se dice que x∗ es una buena aproximación de x.


Proposición: Si x∗ es una buena aproximación de x, entonces una buena
aproximación para la cota del error relativo es

|x − x∗ | ∆x
/ ∗ .
|x| |x |

Cálculo Numérico IN1012C/IN1052C/MAT221N -7- DMFA – Universidad Católica de la Santı́sima Concepción


Test del error absoluto: Para cualquier entero positivo d, la desigualdad

1 −d
|εx | < 10 ,
2
asegura que x∗ aproxima a x con d decimales significativos.

Test del error relativo: Para cualquier entero positivo s, la desigualdad

1 −s
|δx | < 10 ,
2
o, equivalentemente,
1 −s
|x − x∗ | <
10 |x|,
2
si x 6= 0, asegura que x∗ aproxima a x con s dı́gitos significativos.

Cálculo Numérico IN1012C/IN1052C/MAT221N -8- DMFA – Universidad Católica de la Santı́sima Concepción


Operatoria con Errores

Muchas veces nuestro interés será realizar alguna operación con dos o más
variables que tienen un error asociado. Por ejemplo: sumarlas, multiplicarlas o
dividirlas, o bien alguna otra operación más compleja. La pregunta es ¿cómo
calculamos el error resultante del efectuar dichas operaciones con nuestras
variables sometidas a error?
Proposición: Sea f : Rn −→ R una función diferenciable. Sean, además,
xi = x∗i ± εxi , ∀ i ∈ {1, 2, . . . , n} un conjunto de n datos y sus respectivos
errores absolutos. Luego, el error absoluto εf y error relativo δf , están dados por
las expresiones
n
X ∂f ∗ ∗ ∗

∂xi (x1 , x2 , . . . , xn ) εxi

n
X ∂f ∗ ∗ ∗
i=1
εf ≈ ∂xi (x1 , x2 , . . . , xn ) εxi y δf ≈
.
i=1
|f (x∗1 , x∗2 , . . . , x∗n )|

Cálculo Numérico IN1012C/IN1052C/MAT221N -9- DMFA – Universidad Católica de la Santı́sima Concepción


Proposición: Sea f : Rn −→ R una función diferenciable. Sean, además,
xi = x∗i ± ∆xi , ∀ i ∈ {1, 2, . . . , n} un conjunto de n datos y sus respectivas
cotas de errores absolutos. Luego, una cota del error absoluto ∆f y una cota del
error relativo Λf , están dados por las expresiones
n
X ∂f ∗ ∗ ∗

n
(x1 , x2 , . . . , xn ) ∆xi

X ∂f

i=1
∂xi
∗ ∗ ∗

∆f ≈ ∂xi (x1 , x2 , . . . , xn ) ∆xi y Λf ≈

∗ , x∗ , . . . , x∗ )| .
i=1
|f (x 1 2 n

Cálculo Numérico IN1012C/IN1052C/MAT221N - 10 - DMFA – Universidad Católica de la Santı́sima Concepción


Fuentes de Errores

Existen diferentes formas de introducir errores a los problemas

1. Errores de planteamiento: El hecho que los fenmenos a estudiar se modelen


matemáticamente, generalmente introducen simplificaciones que nos llevan a
cometer errores.

2. Errores implicados en procesos infinitos : Ejemplo



X xj
ex =
j=0
j!

no se pueden realizar sumatorias infinitas.

3. Errores de redondeo: Estos son debido a que los computadores sólo tienen
una aritmética finita, producto de su limitante de almacenamiento.

4. Errores de propagación: El hecho de operar con términos que involucran


errores producen una propagación de los mismos.

Cálculo Numérico IN1012C/IN1052C/MAT221N - 11 - DMFA – Universidad Católica de la Santı́sima Concepción


Error de redondeo

• Si se intenta almacenar un número con más dı́gitos de mantisa que la cantidad


máxima k que permite el sistema, sólo se almacenan los primeros k dı́gitos.
Por ello, al representar un número real en un sistema de punto flotante, en
general se comete un pequeño error de redondeo.

• En MATLAB se almacenan entre 15 y 16 dı́gitos decimales de mantisa:

>> e=123456789.0123456789
e =
1.234567890123457e+08

>> f=pi

f =
3.14159265358979

Cálculo Numérico IN1012C/IN1052C/MAT221N - 12 - DMFA – Universidad Católica de la Santı́sima Concepción


Operaciones en punto flotante

• El computador calcula cada una de las cuatro operaciones matemáticas


fundamentales, suma (+), resta (−), producto (∗) y cociente (/), de manera tal
que el resultado que se obtiene tiene correctos el máximo número k de dı́gitos
representables.

• Por ello, en cada operación matemática también se comete un pequeño error


de redondeo:

>> g=1.0000000001*1.0000000001
g =
1.00000000020000

>> h=1+10ˆ-17
h =
1

Cálculo Numérico IN1012C/IN1052C/MAT221N - 13 - DMFA – Universidad Católica de la Santı́sima Concepción


Constante de precisión

• Como se ve en el ejemplo anterior, si se calcula en punto flotante 1 + ε, con ε


suficientemente pequeño, debido al error de redondeo el resultado que se
obtiene es 1.

• La constante de precisión (o unidad de redondeo) del computador se define


como el mı́nimo número ε > 0 tal que, en punto flotante,

1 + ε 6= 1.

• Se demuestra que el error relativo que comete el computador al representar


un número real o al hacer una operación elemental en punto flotante es menor
o igual que la contante de precisión.

Cálculo Numérico IN1012C/IN1052C/MAT221N - 14 - DMFA – Universidad Católica de la Santı́sima Concepción


Constante de precisión (cont.)

• En MATLAB la constante de precisión se llama eps y es aproximadamente


10−16 :

>> eps
ans =
2.220446049250313e-16

>> p=(1+eps)-1
p =
2.220446049250313e-16

>> q=(1+eps/2)-1
q =
0

Cálculo Numérico IN1012C/IN1052C/MAT221N - 15 - DMFA – Universidad Católica de la Santı́sima Concepción


Cancelación excesiva

• Las operaciones de producto y cociente en punto flotante dan siempre


resultados confiables, en el sentido que todos los dı́gitos del resultado que se
obtienen son correctos (siempre que no se produzca overflow o underflow).

• Las operaciones de suma y resta usualmente dan resultados con todos sus
dı́gitos correctos. Sin embargo, esto no es ası́ cuando se restan números muy
parecidos.
Este fenómeno se denomina cancelación excesiva.

Cálculo Numérico IN1012C/IN1052C/MAT221N - 16 - DMFA – Universidad Católica de la Santı́sima Concepción


Cancelación excesiva (cont.)

>> r=.123456789012345;
>> s=.12345678901234;
>> t=r-s % El valor exacto es t=5.e-15
t =
4.996003610813204e-15

>> u=12345678901234567;
>> v=12345678901234566;
>> w=u-v % El valor exacto es w=1
w =
2

Cálculo Numérico IN1012C/IN1052C/MAT221N - 17 - DMFA – Universidad Católica de la Santı́sima Concepción


Rapidez de Convergencia de Sucesiones

Definición: Supongamos que {βn }∞


n=1 es una sucesión cuyo valor de
convergencia es 0 y que {αn }∞
n=1 converge a un número α. Si existe una
constante positiva K tal que, para n suficientemente grande, se tenga

|αn − α| ≤ K|βn |,

entonces se dice que {αn }∞


n=1 converge a α con rapidez de convergencia
O(βn ) (y se lee orden βn ). Escribimos αn = α + O(βn ).

Observación: Aunque βn es una sucesión arbitraria, generalmente buscaremos


1
aquellas de la forma βn =p
para algún p en particular (nos interesa el mayor
n
que satisfaga la condición) . Mientras más grande es p, decimos que nuestra
sucesión converge con mayor rapidez. Ası́, escribimos αn = α + O( n1p ).

Cálculo Numérico IN1012C/IN1052C/MAT221N - 18 - DMFA – Universidad Católica de la Santı́sima Concepción


Rapidez de Convergencia de Funciones

Definición: Supongamos que lim G(h) = 0 y que lim F (h) = L. Si existe una
h→0 h→0
constante positiva K tal que, para h suficientemente pequeño, se tenga

|F (h) − L| ≤ K|G(h)|

entonces se dice que F (h) converge a L con rapidez de convergencia O(G(h))


(y se lee orden G(h)). Escribimos F (h) = L + O(G(h)).

Observación: Aunque G(h) es una sucesión arbitraria, generalmente buscaremos


aquellas de la forma G(h) = hp para algún p > 0 en particular (nos interesa el
mayor que satisfaga la condición). Mientras más grande es p, decimos que nuestra
sucesión converge con mayor rapidez. Ası́, escribimos F (h) = L + O(hp ).

Cálculo Numérico IN1012C/IN1052C/MAT221N - 19 - DMFA – Universidad Católica de la Santı́sima Concepción


Orden de Convergencia de Sucesiones

Definición: Supongamos que {pn }∞


n=0 es una sucesión que converge a p, con
pn 6= p para todo n. Si existen constantes positivas λ y α con
|pn+1 − p|
lim =λ
n→∞ |pn − p|α

entonces se dice que {pn }∞


n=0 converge a p con orden α y constante de error
asintótica λ .
Ejemplos: Los ejemplos más comunes:

1. Si α = 1, la sucesión será linealmente convergente.


2. Si α = 2, la sucesión será cuadráticamente convergente.

Cálculo Numérico IN1012C/IN1052C/MAT221N - 20 - DMFA – Universidad Católica de la Santı́sima Concepción


Propagación de errores

• Las integrales
Z 1
In := xn ex−1 dx, n = 1, 2, . . .
0
se relacionan mediante la expresión

In = 1 − nIn−1 , n = 2, 3, . . .
que se obtiene fácilmente por integración por partes.

• Esta expresión permite calcular esas integrales recursivamente a partir del


valor de I1 , que se calcula exactamente también por partes:
Z 1 1 Z 1
x−1 x−1 x−1 −1

I1 = xe dx = xe − e dx = e = 0.36787944...
0 0 0

• Si se parte del valor aproximado Iˆ1 ≈ 0.367879 (correctamente redondeado


a 6 dı́gitos) se obtiene:

Iˆ2 = 0.264242, ··· Iˆ9 = −0.06848 < 0 !!!


Cálculo Numérico IN1012C/IN1052C/MAT221N - 21 - DMFA – Universidad Católica de la Santı́sima Concepción
Propagación de errores (cont.)

• Dado que la expresión In = 1 − nIn−1 es exacta para números reales, el


error en Iˆ9 se debe necesariamente a la propagación del error en Iˆ1 .

• Para estudiar esta propagación sea:


ǫ = I1 − Iˆ1 = e−1 − 0.367879 ≈ 0.44 × 10−6 .
Entonces:

Iˆ1 = I1 − ǫ,
Iˆ2 = 1 − 2Iˆ1 = 1 − 2(I1 − ǫ) = I2 + (−2)(−ǫ),
Iˆ3 = 1 − 3Iˆ2 = 1 − 3[I2 + (−2)(−ǫ)] = I3 + (−3)(−2)(−ǫ),
..
.

Iˆ9 = 1 − 9Iˆ8 = I9 + (−9) · · · (−3)(−2)(−ǫ) = I9 − 9!ǫ.


Por lo tanto,

I9 −Iˆ9 = 9!ǫ ≈ 362 880×0.44×10−6 ≈ 0.16 e Iˆ9 = −0.06848 !


Cálculo Numérico IN1012C/IN1052C/MAT221N - 22 - DMFA – Universidad Católica de la Santı́sima Concepción
Propagación de errores (cont.)

• Un algoritmo como el anterior, donde el error crece en cada paso, se dice que
es inestable.
Este tipo de algoritmos debe evitarse pues propaga de manera catastrófica los
errores en los datos, como se ve en el ejemplo.

• La relación anterior puede reformularse para obtener el siguiente algoritmo:



IN : dato,

1 − In

In−1 := , n = N, N − 1, . . . , 3, 2.

n
• Un análisis semejante al anterior permite demostrar que, en el paso n-ésimo
de este algoritmo, el error del paso anterior se divide por n. En consecuencia
este algoritmo no sólo no amplifica los errores, sino que los reduce.

• Un algoritmo como éste, que no amplifica los errores, se dice que es estable.
• Por ejemplo, si se toma N = 20 e Iˆ20 = 0, verifique que mediante este
algoritmo se obtiene Iˆ9 = 0.091 612 292 990, con error menor que 10−12 .

Cálculo Numérico IN1012C/IN1052C/MAT221N - 23 - DMFA – Universidad Católica de la Santı́sima Concepción

También podría gustarte