Documente Academic
Documente Profesional
Documente Cultură
Aritmética finita
Dado un número real que cumpla realmin <= x <= realmax , se le asigna una
2 4 2
Por tanto la mantisa verifica 1 <= m < 2 y el exponente −1022 <= e <= 1023 (en exceso a
1023).
En el entorno MATLAB realmin es el número más pequeño representable, mientras que
realmax es el mayor. Véase la siguiente figura:
Si se llega a dar que 0 < x < realmin se produce un error de underflow, mientras que si
=
la máquina. En MATLAB e eps (1) ≈ 10−16 , que se traduce en una precisión de 15 cifras
decimales para la aritmética IEEE745 en punto flotante de 64 bits.
Para un exponente dado el número de diferentes mantisas es 252 , por lo que la cantidad de
números reales que se pueden representar entre dos potencias consecutivas de 2 es
constante. Por tanto, el error absoluto
Eabs ( x )= x − fl ( x)
crece con x . Sin embargo, y aquí radica la excelencia de la aritmética en punto flotante, el
x − fl ( x)
Erel ( x )
= ≈e
x
1.3 Aritmética simbólica exacta
sym(‘1/2+1/3’)
ans
5/6
vpa(‘1/2+1/3’,20)
ans
0.83333333333333333333
Punto flotante:
format long
(1/2+1/3)-5/6
ans =
-1.110223024625157e-016
Racional exacta
sym(‘1/2+1/3’)-5/6
ans
Precisión variable
vpa(1/2,25)+vpa(1/3,25)-vpa(5/6,25)
ans
3.7896e-14
2. Problemas y algoritmos
Definiciones:
Dado un problema P pueden existir varios algoritmos que lo resuelva. Es por tanto de suma
importancia distinguir entre problemas y algoritmos. La naturaleza de un problema, llamada
condicionamiento, no se puede cambiar. Sin embargo, se puede cambiar de algoritmo para
resolver un problema en busca de robustez, estabilidad, cantidad de cálculos requeridos,
memoria, tiempo de ejecución, etc.
A → P ( A)
A + ∂A → P ( A ) + ∂P ( A )
∂P ( A )
"grande"
∂A
4.1x1 + 2.8 x2 =
4.1
9.7 x1 + 6.6 x2 =
9.7
Solución=
x1 1,=
x2 0
4.1x1 + 2.8 x2 =
4.11
9.7 x1 + 6.6 x2 =
9.7
=
Solución =
x1 0.34, x2 0.97
Perturbaciones relativas:
Estabilidad
∂P ( A ) , "pequeño"
∂A , "pequeño"
format hex
format hex
realmin
eps
realmax
3 Propagación de errores
En =
1 − nEn −1 , n = e −1
2,3, 4,...; E1 =
A partir de estas fórmulas se pueden derivar dos algoritmos:
a. Algoritmo 1
En =
1 − nEn −1 , n =
2,3, 4,..., 20; E1 =
0.3679
b. Algoritmo 2
1 − En
=
En −1 = =
, n 19,18,...,1; E20 0
n
e=
n En + n !δ e1 (algoritmo1)
n →∞
Dado que En →0,
en ≅ n !δ e1 (algoritmo1)
para valores de n grandes, siendo δ e1 el error que se comete al aproximar el valor inicial de
e1 (propagación de errores).
3 Cancelación catastrófica.
Otra causa frecuente de inestabilidad de algoritmos aparece cuando el resultado final de los
cálculos es más pequeño que las cantidades intermedias, de tal forma que los posibles errores
de redondeo/truncación contribuyen de forma significativa al resultado final. Un ejemplo
clásico de la llamada cancelación catastrófica es el siguiente.
∞
1 n
ex = ∑ x
0 n!
A partir de esta expresión podemos obtener los dos siguientes algoritmos para calcular e −5.5 :
a. Algoritmo 1
25
1
e −5.5
= ∑ n ! ( −5.5)
n
0
b. Algoritmo 2
25
1
s=∑ 5.5n
0 n!
1
e −5.5 =
s
Programe ambos algoritmos utilizando una aritmética decimal con 5 dígitos significativos y
analice los errores.
Nota: para convertir los sumandos de las expresiones anteriores a la aritmética pedida emplee
la función y=Ndigitos(x,5), donde x es un número en doble precisión MATLAB (15 cifras
decimales) e y es un número con 5 cifras decimales. Antes de operar las cantidades que
aparecen en los algoritmos debe convertirlas a una precisión de 5 dígitos.
Ejercicio adicionales
El polinomio de Wilkinson
p ( x) =( x − 1)( x − 2 ) . . . ( x − 19 )( x − 20 )
4.1 x1 + 2.8 x2 =
4.1
9.7 x1 + 6.6 x2 =
9.7
0.01
∂b =
0