Programación y Métodos Numéricos Errores de

Anuncio
Universidad Politécnica de Madrid
Ingeniería de Minas
Programación
Programación yy Métodos
Métodos Numéricos
Numéricos
Errores
Errores de
de redondeo
redondeo en
en la
la representación
representación
de
de números
números reales:
reales:
PROPAGACIÓN
PROPAGACIÓN DE
DE ERRORES
ERRORES
Alfredo López Benito
Carlos Conde Lázaro
Arturo Hidalgo López
Departamento de Matemática Aplicada y Métodos Informáticos
Febrero, 2007
84
Universidad Politécnica de Madrid
Ingeniería de Minas
Multiplicación
Multiplicación de
de números
números de
de F(s+1,
F(s+1, m,
m, M,
M, 10)
10)
Pasos:
1º. Multiplicar mantisas almacenando el resultado en
mantisas de 2.s dígitos decimales.
2º. Ajustar exponentes.
3º. Aproximar el número obtenido como resultado por un
número máquina con s dígitos decimales de mantisa.
Ejemplo: En el sistema F(5, -99, 99, 10) y redondeando, calcular:
0.2577i10−3 i 0.1983i101
(
)(
)
1º.( 0.2577 )i( 0.1983 ) = 0.51101910i10−1
2º. 10-3 . 101 . 10-1 = 10-3
−3
1
−3
0.
2577
i
10
i
0.
1
983
i
10
=
0.51
10191
0
i
10
3º.
(
)(
)
Departamento de Matemática Aplicada y Métodos Informáticos
0.5110i10−3
85
Universidad Politécnica de Madrid
Ingeniería de Minas
Propagación
Propagación de
de errores
errores en
en la
la multiplicación
multiplicación de
de
números
números de
de F(s+1,
F(s+1, m,
m, M,
M, 10)
10)
Notación:
Valor exacto del producto de los números máquina a y b: aib
Número máquina que aproxima al valor exacto del producto
de los números máquina a y b: a b
Se verifica que: a
(a
b)
b = aibi(1 + δa.b ) , con:
δa.b ≤ u
c = aibici(1 + δa.b )i(1 + δ(a.b).c )
= aibici(1 + δa.b + δ(a.b).c + δa.b iδ(a.b).c ) ≈ aibici(1 + δa.b + δ(a.b).c )
Conclusión: En la multiplicación (y en la división) de varios
números máquina se suman los errores relativos
de cada operación elemental.
Departamento de Matemática Aplicada y Métodos Informáticos
86
Universidad Politécnica de Madrid
Ingeniería de Minas
Ejemplo
Ejemplo
En el sistema F(5, -99, 99, 10) y redondeando, calcular el
número máquina: (a b) c con a = 0.1234i100 b = 0.4321i100
y c = 0.6311i100
aib − a b
a • b = 0.5332114i10−1
δa.b =
= 0.2138i10−4
aib
a b = 0.5332i10−1
(
(a
(
)
(
)
)
b )ic = 0.33650252i10−1
(a
b)
c = 0.3365i10−1
b)
c
= 0.7489i10−5
δa.b + δ(a.b).c = 0.2887i10
aibic − ( a b )
−1
a • bic = 0.33650971454i10 δa.b.c =
aibic
c
= 0.2887i10−4
δ(a.b).c
−4
a
(
=
b )ic − ( a
(a
b )ic
Departamento de Matemática Aplicada y Métodos Informáticos
87
Universidad Politécnica de Madrid
Ingeniería de Minas
Comentario
Comentario sobre
sobre la
la multiplicación
multiplicación de
de números
números máquina
máquina
La multiplicación en el sistema de números máquina pierde
la propiedad asociativa
(a b) c ≠ a (b c)
(a b) c = aibici(1 + δa.b )i(1 + δ(a.b).c )
a
(b
c) = aibici(1 + δb.c )i(1 + δa.(b.c) )
(a b) c (1 + δa.b )i(1 + δ(a.b).c )
=
= 1+ γ
a (b c) (1 + δb.c )i(1 + δa.(b.c) )
Ejemplo: En el sistema F(5, -99, 99, 10) y redondeando
(
)
(
)
(
−4
0
sean: a = 0.2334i10 b = 0.8764i100 c = 0.1230i10
(a b) c = 0.2517i10−5
a b = 0.2046i100
b
c = 0.1078i10−4
a
(b
)
c) = 0.2516i10−5
Departamento de Matemática Aplicada y Métodos Informáticos
88
Universidad Politécnica de Madrid
Ingeniería de Minas
Multiplicación
Multiplicación de
de números
números de
de F(s+1,
F(s+1, m,
m, M,
M, 10)
10)
En la división de números máquina los errores tienen un comportamiento análogo, si bien ahora el cociente de dos números máquina con mantisas de s bits no puede ser calculado exactamente
con números con mantisas de 2·s decimales
Ejemplo: En el sistema F(5, -99, 99, 10) y redondeando,
sean: a = 0.2500i100 b = 0.1234i10−4
1º. Cociente de mantisas
2º. Ajuste de exponentes:
(redondeando a 8 bits):
0
10
1
5
0.2500
i
=
10
10
1
−4
= 0.20259319i10
10
0.1234
3º Aproximación por un número máquina: (a ÷ b) = 0.2026i105
Ejercicio propuesto: Analizar detalladamente la propagación
de errores en divisiones consecutivas
Departamento de Matemática Aplicada y Métodos Informáticos
89
Universidad Politécnica de Madrid
Ingeniería de Minas
Sumas
Sumas yy restas
restas de
de de
de números
números de
de
F(s+1,
F(s+1, m,
m, M,
M, 10)
10)
Pasos:
1º. Ajustar exponentes añadiendo ceros en la mantisa del
número con menor exponente
2º. Sumar mantisas.
3º. Aproximar el número obtenido como resultado
por un número máquina con s bits de mantisa.
Departamento de Matemática Aplicada y Métodos Informáticos
90
Universidad Politécnica de Madrid
Ingeniería de Minas
Sumas
Sumas yy restas
restas de
de de
de números
números de
de
F(s+1,
F(s+1, m,
m, M,
M, 10):
10): Ejemplos
Ejemplos
Ejemplos: En el sistema F(5, -99, 99, 10) y redondeando,
calcular:
0.9874i101 ⊕ 0.4325i101
(
) (
)
1º. No es necesario al tener ambos números el mismo
exponente
(
) (
)
2º. a + b = 0.9874i101 + 0.4325i101 = 0.14199i102
3º. 0.14199i102
Ea + b
a ⊕ b = 0.1420i102
(a + b) − (a ⊕ b)
=
= 0.7043i10−4
(a + b)
Departamento de Matemática Aplicada y Métodos Informáticos
91
Universidad Politécnica de Madrid
Ingeniería de Minas
Sumas
Sumas yy restas
restas de
de de
de números
números de
de
F(s+1,
F(s+1, m,
m, M,
M, 10):
10): Ejemplos
Ejemplos
Ejemplos: En el sistema F(5, -99, 99, 10) y redondeando,
calcular:
0.9874i101 ⊕ 0.4325i10−2
(
) (
1º. b = 0.0004325i101
(
) (
)
)
1
1
1
2º. a + b = 0.9874i10 + 0.0004325i10 = 0.9878325i10
3º. 0.9878325i101
Ea + b
a ⊕ b = 0.9878i101
(a + b) − (a ⊕ b)
=
= 0.3290i10−4
(a + b)
Sólo han intervenido los dos primeros decimales de la
mantisa del segundo sumando (el menor en valor absoluto)
Departamento de Matemática Aplicada y Métodos Informáticos
92
Universidad Politécnica de Madrid
Ingeniería de Minas
Sumas
Sumas yy restas
restas de
de de
de números
números de
de
F(s+1,
F(s+1, m,
m, M,
M, 10):
10): Ejemplos
Ejemplos
Ejemplos: En el sistema F(5, -99, 99, 10) y redondeando,
calcular:
0.9874i101 ⊕ 0.4325i10−5
(
1º. b = 0.0000004325i101
(
) (
) (
)
)
1
1
1
2º. a + b = 0.9874i10 + 0.0000004325i10 = 0.9874004325i10
3º. 0.9874004325i10
1
Ea + b
a ⊕ b = 0.9874i101 (= a)
(a + b) − (a ⊕ b)
=
= 0.4380i10−6
(a + b)
No ha intervenido ningún decimal de la mantisa del
segundo sumando (el menor en valor absoluto)
Departamento de Matemática Aplicada y Métodos Informáticos
93
Universidad Politécnica de Madrid
Ingeniería de Minas
Error
Error de
de pérdida
pérdida de
de significado
significado
En la suma de dos números máquina de muy diferentes
órdenes de magnitud, “no intervienen” los últimos decimales del que tenga menor magnitud. Aunque el error relativo
no sea elevado,ello puede acarrear “consecuencias desagradables”.
Propiedad.
Siendo a y b dos números máquina positivos del sistema
F(s+1, m, M, 10) tales que a > b y siendo ea y eb los
exponentesde ambos números, se verifica que en el número
máquina a ⊕ b obtenido por redondeo no influyen los
(ea – eb –1) últimos dígitos de la mantisa del número b.
Ello origina el denominado error de pérdida de significado
de los últimos dígitos decimales de b.
Departamento de Matemática Aplicada y Métodos Informáticos
94
Universidad Politécnica de Madrid
Ingeniería de Minas
Error
Error de
de pérdida
pérdida de
de significado:
significado: Ejemplo
Ejemplo
Ejemplo: En el sistema F(5, -99, 99, 10) y truncando,
calcular:
s1 = a ⊕ b s 2 = (a ⊕ b) ⊕ b s 3 = ((a ⊕ b) ⊕ b) ⊕ b ....
sn = (...((a ⊕ b) ⊕ b) ⊕ b)...) ⊕ b
siendo: a = 0.4000i101
y b = 0.5000i10−3
s1 = a ⊕ b = (0.4000i101 ) + (0.00005000i101 ) = 0.4000i101
s 2 = (a ⊕ b) ⊕ b = (0.4000i101 ) + (0.00005000i101 ) = 0.4000i101
s 3 = ((a ⊕ b) ⊕ b) ⊕ b = (0.4000i101 ) + (0.00005000i101 ) = 0.4000i101
.....
sn = (...((a ⊕ b) ⊕ b) ⊕ b)...) ⊕ b = 0.4000i101
Valores exactos: S1 = 0.40005.101 , S2 = 0.4001.101 ,
S3 = 0.40015.101 , S4 = 0.4002.101 , ......
Departamento de Matemática Aplicada y Métodos Informáticos
95
Universidad Politécnica de Madrid
Ingeniería de Minas
Error
Error de
de pérdida
pérdida de
de significado.
significado.
Los errores de pérdida de significado en cada una de las
Sumas no son importantes pues se traducen en errores
relativos que están acotados por la unidad de redondeo.
El peligro de los errores de pérdida de significado está en
su acumulación al realizar sumas consecutivas.
Departamento de Matemática Aplicada y Métodos Informáticos
96
Universidad Politécnica de Madrid
Ingeniería de Minas
Error
Error de
de pérdida
pérdida de
de significado.
significado.
CONSECUENCIA PRÁCTICA: Los números máquina deben
sumarse de menor a mayor valor absoluto.
Siendo: a = 0.4000i101
y b = 0.5000i10−3
s1 = b ⊕ a = (0.4000i101 ) + (0.00005000i101 ) = 0.4000i101
s 2 = (b ⊕ b) ⊕ a = (0.0001000i101 ) + (0.4000i101 ) = 0.4001i101
s 3 = ((b ⊕ b) ⊕ b) ⊕ a = (0.00015i101 ) + (0.4000i101 ) = 0.4001i101
s 4 = (((b ⊕ b) ⊕ b) ⊕ b) ⊕ a = (0.0002i101 ) + (0.4000i101 ) = 0.4002i101
.....
⎧Sn−1 si n es impar
sn = (...((b ⊕ b) ⊕ b) ⊕ b)...) ⊕ a = ⎨
si n es par
⎩ Sn
Departamento de Matemática Aplicada y Métodos Informáticos
97
Universidad Politécnica de Madrid
Ingeniería de Minas
Error
Error de
de pérdida
pérdida de
de significado:
significado: Ejemplo.
Ejemplo.
Ejemplo:
Derivada exacta
Derivada numérica:
f ( x * + h ) − f ( x*)
f (x * +h ) − f (x*)
f '(x*) ≈ F* =
f '(x*) = lim
h →0
h
h
En general, cuanto menor sea el valor de h más parecidos
serán los valores de f’(x*) y F* …..
.... si no fuese porque los errores de pérdida de significado pueden hacer que el número máquina H que aproxima a
(x* + h – x*) sea distinto a h con lo que la fórmula numérica se convierte en:
f ( x * + H ) − f ( x*)
f '(x*) ≈ F* =
que deja de ser una buena aproximaciónhde la derivada.
Departamento de Matemática Aplicada y Métodos Informáticos
98
Universidad Politécnica de Madrid
Ingeniería de Minas
Error
Error de
de pérdida
pérdida de
de significado:
significado: Ejemplo.
Ejemplo.
Ilustrémoslo con la función f(x) = ex evaluando su derivada
en el punto x* = 1 y trabajando con números máquina del
sistema de números máquina F(5, -99, 99, 10).
Los resultados que se obtienen para distintos valores positivos del entero i se recogen en la tabla de la próxima diapositiva en la que se utiliza la siguiente NOTACIÓN,
h : 10-i (incremento usado en el denominador)
Z : Número máquina que aproxima 1+h
H: Valor de Z – 1
(incremento que realmente se usa en el numerador)
f ( Z ) − f (1)
Aprox: Número máquina obtenido por: Aprox =
h
Departamento de Matemática Aplicada y Métodos Informáticos
99
Universidad Politécnica de Madrid
Ingeniería de Minas
Error
Error de
de pérdida
pérdida de
de significado:
significado: Ejemplo.
Ejemplo.
Mejora la
aproximación
al reducir h
La reducción
del valor de h
empeora la
aproximación
obtenida
i
h=10-i
Z
H
f’(1)
Aprox.
0
1.0
2.000
1.0
2.718
4.671
1
0.1
1.100
0.1
2.718
2.859
2
0.01
1.010
0.01
2.718
2.732
3
0.001
1.001
0.001
2.718
2.719
4
0.0001
1.000
0.000
2.718
0.000
5
0.00001
1.000
0.000
2.718
0.000
Para valores de h suficientemente pequeños el error de
pérdida de significado hace que el número máquina Z que
aproxima a (x*+h) coincida con el número máquina x*
Departamento de Matemática Aplicada y Métodos Informáticos
100
Universidad Politécnica de Madrid
Ingeniería de Minas
Error
Error de
de pérdida
pérdida de
de significado:
significado: Ejemplo.
Ejemplo.
Forma práctica de cálculor aproximaciones numéricas de
derivadas primeras:
Dado un valor de h evaluar el número máquina Z = (x*+h)
y el número máquina H = Z – x*. Si H ≠ 0 se utiliza la
fórmula numérica:
f '( x*) ≈ F* =
f ( Z ) − f ( x*)
H
Departamento de Matemática Aplicada y Métodos Informáticos
101
Universidad Politécnica de Madrid
Ingeniería de Minas
Operaciones
Operaciones con
con números
números reales.
reales.
A los errores anteriores debe añadírseles, en general,
el error que previamente se comete al aproximar un
número real por un número máquina. Por ejemplo, en el
producto de números reales:
a* = ai(1 + δa )
b* = bi(1 + δb )
a * b* = a *ib *i(1 + δa*.b* )
a * b* = aibi(1 + δa )i(1 + δb )i(1 + δa*.b* )
a * b* ≈ aibi(1 + δa + δb + δa*.b* )
a * b * ≤ aib i(1 + 3iu )
Departamento de Matemática Aplicada y Métodos Informáticos
102
Universidad Politécnica de Madrid
Ingeniería de Minas
Error
Error de
de cancelación
cancelación en
en la
la resta
resta de
de
números
números reales.
reales.
Al restar dos números reales representados por sendos
números máquina“muy parecidos” pueden cancelarse
decimales de la mantisa obteniéndose como resultado un
número máquina con un error relativo respecto al resultado
exacto mucho mayor que los errores relativos cometidos
en la aproximación de los números con los que se opera.
Este efecto se conoce con el nombre de
ERROR DE CANCELACIÓN.
Departamento de Matemática Aplicada y Métodos Informáticos
103
Universidad Politécnica de Madrid
Ingeniería de Minas
Error
Error de
de cancelación
cancelación en
en la
la resta
resta de
de
números
números reales:
reales: ejemplo.
ejemplo.
En el sistema F(6, -99, 99, 10) se tiene:
a − a*
−5
0
0
.
5
10
δ
=
=
i
a* = 0.66667i10
a = 2/ 3
a
a
b = 141/ 212
b* = 0.66509i100
δb =
b − b*
= 0.6i10−5
b
1
= 0.1572327...i10−2
(a − b )* = 0.15723i10−2
636
(a − b)* −(a * −b*)
a * −b* = 0.15800i10−2
δ a −b =
= 0.488i10−2
(a − b ) *
Un error relativo MIL VECES MAYOR que los errores
en losvalores de partida.
a−b =
Departamento de Matemática Aplicada y Métodos Informáticos
104
Universidad Politécnica de Madrid
Ingeniería de Minas
Error
Error de
de cancelación
cancelación en
en la
la resta
resta de
de
números
números reales.
reales.
Propiedad
Si a y b son dos números reales positivos tales que en la
operación (a - b) se anulan m decimales de la mantisa,
trabajando en el sistema F(s, m, M, 10) se verifica que:
(a − b ) − (a * −b*)
≤ 10μ−s
(a − b )
CONSECUENCIA:
Cuanto mayor sea el número de decimales que se anula en
la mantisa del número obtenido al restar dos números
reales más elevada es la COTA del error relativo del
número máquina obtenido al realizar dicha operación.
Departamento de Matemática Aplicada y Métodos Informáticos
105
Universidad Politécnica de Madrid
Ingeniería de Minas
Departamento de Matemática Aplicada y Métodos Informáticos
106
Descargar