Jos e Luis Morales jmorales ...morales/PSfiles/CN_aritmetica.pdf · Ues el mayor exponente (entero...

26
alculo num´ erico. Aritm´ etica en punto flotante. Jos´ e Luis Morales http://allman.rhon.itam.mx/jmorales Departamento de Matem´ aticas. ITAM. 2012. Jos´ e Luis Morales http://allman.rhon.itam.mx/jmorales alculo num´ erico. Aritm´ etica en punto flotante.

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.