Jos e Luis Morales jmorales ...morales/PSfiles/CN_aritmetica.pdf · Ues el mayor exponente (entero...
Transcript of Jos e Luis Morales jmorales ...morales/PSfiles/CN_aritmetica.pdf · Ues el mayor exponente (entero...
Calculo numerico. Aritmetica en punto flotante.
Jose Luis Moraleshttp://allman.rhon.itam.mx/∼jmorales
Departamento de Matematicas. ITAM. 2012.
Jose Luis Morales http://allman.rhon.itam.mx/∼jmorales Calculo numerico. Aritmetica en punto flotante.
Sistemas de numeros en punto flotante F
F esta caracterizado por los enteros β, L, U , p en donde
β es la base del sistema
L es el menor exponente (entero negativo)
U es el mayor exponente (entero positivo)
p es la precision
x = ±(d0 +
d1β1
+d2β2
+ · · ·+ dp−1βp−1
)βE
0 ≤ di ≤ β − 1, L ≤ E ≤ U.
F es un sistema normalizado si d0 6= 0
Jose Luis Morales http://allman.rhon.itam.mx/∼jmorales Calculo numerico. Aritmetica en punto flotante.
Sistemas de numeros en punto flotante F
F esta caracterizado por los enteros β, L, U , p en donde
β es la base del sistema
L es el menor exponente (entero negativo)
U es el mayor exponente (entero positivo)
p es la precision
x = ±(d0 +
d1β1
+d2β2
+ · · ·+ dp−1βp−1
)βE
0 ≤ di ≤ β − 1, L ≤ E ≤ U.
F es un sistema normalizado si d0 6= 0
Jose Luis Morales http://allman.rhon.itam.mx/∼jmorales Calculo numerico. Aritmetica en punto flotante.
Sistemas de numeros en punto flotante F
F esta caracterizado por los enteros β, L, U , p en donde
β es la base del sistema
L es el menor exponente (entero negativo)
U es el mayor exponente (entero positivo)
p es la precision
x = ±(d0 +
d1β1
+d2β2
+ · · ·+ dp−1βp−1
)βE
0 ≤ di ≤ β − 1, L ≤ E ≤ U.
F es un sistema normalizado si d0 6= 0
Jose Luis Morales http://allman.rhon.itam.mx/∼jmorales Calculo numerico. Aritmetica en punto flotante.
Sistemas de numeros en punto flotante F
F esta caracterizado por los enteros β, L, U , p en donde
β es la base del sistema
L es el menor exponente (entero negativo)
U es el mayor exponente (entero positivo)
p es la precision
x = ±(d0 +
d1β1
+d2β2
+ · · ·+ dp−1βp−1
)βE
0 ≤ di ≤ β − 1, L ≤ E ≤ U.
F es un sistema normalizado si d0 6= 0
Jose Luis Morales http://allman.rhon.itam.mx/∼jmorales Calculo numerico. Aritmetica en punto flotante.
Sistemas de numeros en punto flotante F
F esta caracterizado por los enteros β, L, U , p en donde
β es la base del sistema
L es el menor exponente (entero negativo)
U es el mayor exponente (entero positivo)
p es la precision
x = ±(d0 +
d1β1
+d2β2
+ · · ·+ dp−1βp−1
)βE
0 ≤ di ≤ β − 1, L ≤ E ≤ U.
F es un sistema normalizado si d0 6= 0
Jose Luis Morales http://allman.rhon.itam.mx/∼jmorales Calculo numerico. Aritmetica en punto flotante.
Sistemas de numeros en punto flotante F
F esta caracterizado por los enteros β, L, U , p en donde
β es la base del sistema
L es el menor exponente (entero negativo)
U es el mayor exponente (entero positivo)
p es la precision
x = ±(d0 +
d1β1
+d2β2
+ · · ·+ dp−1βp−1
)βE
0 ≤ di ≤ β − 1, L ≤ E ≤ U.
F es un sistema normalizado si d0 6= 0
Jose Luis Morales http://allman.rhon.itam.mx/∼jmorales Calculo numerico. Aritmetica en punto flotante.
Almacenamiento: β = 2
Observar que d0 es siempre igual a 1. Entonces el espacio de d0 sedestina al signo del numero: 0: positivo; 1: negativo
signo exponente mantisa
Precision sencilla (32 bits)
signo 1 bitexponente 8 bitsmantisa 23 bits
Precision doble (64 bits)
signo 1 bitexponente 11 bitsmantisa 52 bits
Jose Luis Morales http://allman.rhon.itam.mx/∼jmorales Calculo numerico. Aritmetica en punto flotante.
Representacion de numeros reales en PF
Si x es un numero real en el rango [−M,M ], entonces la regla deasignacion de numeros en punto flotante es
x 7→ float (x)
en donde float (x) es el el numero en PF mas cercano a x enla metrica | · |.En caso de empate ...¿ float (x)?
Jose Luis Morales http://allman.rhon.itam.mx/∼jmorales Calculo numerico. Aritmetica en punto flotante.
Representacion de numeros reales en PF
Si x es un numero real en el rango [−M,M ], entonces la regla deasignacion de numeros en punto flotante es
x 7→ float (x)
en donde float (x) es el el numero en PF mas cercano a x enla metrica | · |.En caso de empate ...¿ float (x)?
Jose Luis Morales http://allman.rhon.itam.mx/∼jmorales Calculo numerico. Aritmetica en punto flotante.
Representacion de numeros reales en PF
Si x es un numero real en el rango [−M,M ], entonces la regla deasignacion de numeros en punto flotante es
x 7→ float (x)
en donde float (x) es el el numero en PF mas cercano a x enla metrica | · |.En caso de empate ...¿ float (x)?
Jose Luis Morales http://allman.rhon.itam.mx/∼jmorales Calculo numerico. Aritmetica en punto flotante.
Analisis de error
Error absolutoεa = |x− float (x)|.
El error relativo se define como
εr =|x− float (x)|
|x|, x 6= 0.
Una conclusion casi inmediata es la siguiente:
Jose Luis Morales http://allman.rhon.itam.mx/∼jmorales Calculo numerico. Aritmetica en punto flotante.
Analisis de error
Error absolutoεa = |x− float (x)|.
El error relativo se define como
εr =|x− float (x)|
|x|, x 6= 0.
Una conclusion casi inmediata es la siguiente:
Jose Luis Morales http://allman.rhon.itam.mx/∼jmorales Calculo numerico. Aritmetica en punto flotante.
Analisis de error
Error absolutoεa = |x− float (x)|.
El error relativo se define como
εr =|x− float (x)|
|x|, x 6= 0.
Una conclusion casi inmediata es la siguiente:
Jose Luis Morales http://allman.rhon.itam.mx/∼jmorales Calculo numerico. Aritmetica en punto flotante.
Analisis de error
Error absolutoεa = |x− float (x)|.
El error relativo se define como
εr =|x− float (x)|
|x|, x 6= 0.
Una conclusion casi inmediata es la siguiente:
Jose Luis Morales http://allman.rhon.itam.mx/∼jmorales Calculo numerico. Aritmetica en punto flotante.
Error unitario
Lema: Sea F un sistema en punto flotante y x un numero real enel rango [-M,M]. Entonces:
εr ≤ εM =1
2β1−p
El numero εM es llamado: a) epsilon de la maquina; b) errorunitario por redondeo; c) precision de la maquina.
Jose Luis Morales http://allman.rhon.itam.mx/∼jmorales Calculo numerico. Aritmetica en punto flotante.
Prueba
Supongamos que x ∈ R+ tal que x ∈ [y, y] (dos numerosconsecutivos de F).
y = .y1y2 . . . yp × βE , y1 6= 0
y = y + .00 . . . 1× βE ,d = βE−p
Si suponemos que y = float (x)
|y − x||x|
≤ d/2
|x|≤ d/2
|y|≤ d/2
|.10 . . . 0× βE |= εM . �
Corolario:
float (x) = (1 + δ)x, |δ| ≤ εM .
Jose Luis Morales http://allman.rhon.itam.mx/∼jmorales Calculo numerico. Aritmetica en punto flotante.
Aritmetica en PF
Si la suma en F tiene la propiedad x⊕ y = float (x+ y). Entonceses posible probar el siguiente resultado:
Teorema: Sea F un sistema en punto flotante; x, y ∈ F. Si elresultado float (x+ y) ∈ F entonces:
float (x+ y) = (x+ y)(1 + δ), |δ| ≤ εM .
Prueba. Utilizar el corolario anterior. �
Jose Luis Morales http://allman.rhon.itam.mx/∼jmorales Calculo numerico. Aritmetica en punto flotante.
Interpretaciones
Error relativo en el resultado. Forward error analysis.
|float (x+ y)− (x+ y)||x+ y|
≤ εM
Error proyectado en los datos. Backward error analysis.
float (x+ y) = x(1 + δ) + y(1 + δ) = x′ + y′, |δ| ≤ εM .
Jose Luis Morales http://allman.rhon.itam.mx/∼jmorales Calculo numerico. Aritmetica en punto flotante.
A =
[ε −11 1
]=
[1 0
`21 1
] [u11 u12
0 u22
], 0 < ε << 1
Claramente, u11 = ε, u12 = −1, `21 = ε−1, u22 = 1 + ε−1. Enaritmetica de PF, para ε suficientemente pequeno, u22 = ε−1. Si`21 se calcula exactamente, tenemos que
A− LU =
[0 00 1
].
Eleccion del pivote ε.
Jose Luis Morales http://allman.rhon.itam.mx/∼jmorales Calculo numerico. Aritmetica en punto flotante.
A′ = LU =
[1 1ε −1
]=
[1 0ε 1
] [1 10 −(1 + ε)
], 0 < ε << 1.
En aritmetica de punto flotante
U =
[1 10 −1
].
Por lo tanto
A′ − LU =
[0 00 0
].
Eleccion del pivote 1.Observacion:
A′ = PA, P =
[0 11 0
].
P es una matriz de permutacion.Jose Luis Morales http://allman.rhon.itam.mx/∼jmorales Calculo numerico. Aritmetica en punto flotante.
Ejemplo de analisis de error. La suma.
Analizar (cuantificar) el error cometido en la suma, en puntoflotante, de n numeros en F:
sn = float (x1 + x2 + · · ·+ xn)
s2 = float (x1 + x2)(1 + ε1)
= x1(1 + ε1) +
x2(1 + ε1), |ε1| ≤ εM .
s3 = float (s2 + x3)(1 + ε2)
= x1(1 + ε1)(1 + ε2) +
x2(1 + ε1)(1 + ε2) +
x3(1 + ε2), |ε2| ≤ εM .
Jose Luis Morales http://allman.rhon.itam.mx/∼jmorales Calculo numerico. Aritmetica en punto flotante.
continuacion ...
sn = float (sn−1 + xn) = (sn−1 + xn)(1 + εn−1)
= x1(1 + ε1)(1 + ε2) · · · (1 + εn−1) +
x2(1 + ε1)(1 + ε2) · · · (1 + εn−1) +
x3(1 + ε2) · · · (1 + εn−1) + · · ·+
xn−1(1 + εn−2)(1 + εn−1) +
xn(1 + εn−1),
en donde
|εi| ≤ εM , i = 1, 2, . . . , (n− 1).
Jose Luis Morales http://allman.rhon.itam.mx/∼jmorales Calculo numerico. Aritmetica en punto flotante.
Error proyectado en los datos
Observacion: la perturbacion mas grande se concentra en los dosprimeros sumandos.
sn = float (x1 + x2 + · · ·+ xn)
= x′1 + x′2 + · · ·+ x′n
= x1 (1 + ε1)(1 + ε2) · · · (1 + εn−1)︸ ︷︷ ︸+
x2 (1 + ε1)(1 + ε2) · · · (1 + εn−1)︸ ︷︷ ︸+ · · ·+
xn (1 + εn−1)︸ ︷︷ ︸.P: ¿Cual es la magnitud (absoluta/relativa) de dicho error?R: Acotar la cantidad η1 definida como
(1 + η1) = (1 + ε1)(1 + ε2) · · · (1 + εn−1)︸ ︷︷ ︸ .Jose Luis Morales http://allman.rhon.itam.mx/∼jmorales Calculo numerico. Aritmetica en punto flotante.
Resultado tecnico
Lema: Si (n− 1)εM ≤ 1/10 y |εi| ≤ εM , entonces:
(1 + η1) = (1 + ε1)(1 + ε2) · · · (1 + εn−1)︸ ︷︷ ︸ε′M = 1.06εM , η1 ≤ (n− 1)ε′M
Jose Luis Morales http://allman.rhon.itam.mx/∼jmorales Calculo numerico. Aritmetica en punto flotante.
Error relativo en el resultado
εr =|sn − (x1 + x2 + · · ·+ xn)||x1 + x2 + · · ·+ xn|
≤ |x1η1 + x2η2 + · · ·+ xnηn|||x1 + x2 + · · ·+ xn|
≤ |η1|(|x1|+ |x2|+ · · ·+ |xn|)|x1 + x2 + · · ·+ xn|
≤ nε′Mcond (sn)
en donde
cond (sn) =|x1|+ |x2|+ · · ·+ |xn||x1 + x2 + · · ·+ xn|
cond (·) es llamado el numero de condicion del problema.
Jose Luis Morales http://allman.rhon.itam.mx/∼jmorales Calculo numerico. Aritmetica en punto flotante.