01 Aritmética Computacional
01 Aritmética Computacional
01 Aritmética Computacional
Computacional
Vera Egorova
1 Motivación
Método Numérico
es un procedimiento mediante el cual se obtiene, casi siempre de
manera aproximada, la solución de ciertos problemas realizando
cálculos puramente aritméticos y lógicos.
s – signo,
a1 6= 0, ai – "digitos", constituyen la parte fraccional o mantisa del número
e – exponente
(−1)s 0.a1 a2 a3 . . . × β e
x = (−1)s × m × 2e , 1<m<2
eb = e + 2ne −1 − 1.
3 Mantisa: m = 2−e |x|, Puesto que 1 < m < 2, se guarda en la representación binaria la
parte fraccionaria del m.
Ejercicio
Codificar el número π en formato real de precisión simple
1 Signo: 0 (π es positivo)
2 Exponente: e = blog2 |π|c = 1, eb = e + 2ne −1 − 1 = 1 + 27 − 1 = 128
eb = (128)10 = (10000000)2
3 Mantisa: m = 2−e π = 1 |.5707963
{z . .}.
guardamos
0.5707963 . . . = (0.10010010000111111011010)2
La representación de π en forma de real de punto flotante de precisión simple:
0 10000000 10010010000111111011010
Vera Egorova (UC) Aritmética Computacional 13 / 37
¿Qué son el menor y mayor número de punto flotante positivo representable en
precisión simple?
Unidad de redondeo
u = εM /2
En el sistema IEEE-754:
Simple precisión: u = 2−24
Doble precisión: u = 2−53
Vera Egorova (UC) Aritmética Computacional 23 / 37
Tolerancia
|∆x| < εs
Raices: √
−b ± b2 − 4ac
x1,2 = (1)
2a
¿Qué
√
pasa si b2 ac?
b2 − 4ac ≈ |b|
Cancelación en una de las raices.
¿Cómo evitar la cancelación?
Multiplicar
√ numerador y denominador de la raíz "problemática" por
−b − b2 − 4ac:
2c
x1,2 = √ (2)
−b ∓ b2 − 4ac
Si b > 0, utilizar (2) para x1 y (1) – para x2
Si b < 0, utilizar (1) para x1 y (2) – para x2
Vera Egorova (UC) Aritmética Computacional 27 / 37
Análisis de la propagación del error
|x − fl(x)| |x − (x + x)|
= = ||
|x| |x|
x ⊕y = fl(fl(x) + fl(y ))
x y = fl(fl(x) − fl(y ))
x ⊗y = fl(fl(x) · fl(y ))
x y = fl(fl(x)/fl(y ))
Consideramos la suma:
x ⊕ y = fl(fl(x) + fl(y )
|(x + y ) − (x ⊕ y )| |x| + |y |
≤ · εM
|x + y | |x + y |
Error del producto
Error de la división
|x/y − fl(fl(x)/fl(y ))| 3 + 2
≤ ' 3 ≤ 2εM
|x/y | 1−
Valor verdadero:
f (2.5) = 15.625
∆f (x̂) = |f 0 (x̂)|∆x̂ = 3 · 2.52 · 0.01 = 0.1875
Ya que el valor verdadero se encuentra entre 15.4375 y 15.8125.
De hecho,
f (2.49) = 15.4382, f (2.51) = 15.8132
Error absoluto:
∆(a ± b) = ∆a + ∆b
∆(a · b) = ab(δa + δb ) = b∆a + a∆b
∆ ba = ba (δa + δb )
∆(an ) = nan−1 ∆a
Error relativo:
aδa +bδb
δ(a ± b) = a±b
δ(a · b) = δa + δb
δ(an ) = nδa
m2 n3
X = √ ,
k
m = 28.3(±0.02), n = 7.45(±0.01), k = 0.678(±0.003)
2 3
X = √ ·7.45 = 4.02
28.3
· 105
0.678
δm = 0.02
28.3 = 0.00071
0.01
δn = 7.45 = 0.00135
δk = 0.003
0.678 = 0.00443
δX = 2δm + 3δn + 0.5δk = 0.0769
∆X = X · δX = 3.1 · 103
Número de condición
x̂f 0 (x̂)
Número de condición = f (x̂)