Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Err Ores
Err Ores
i
_
0, 1, . . . , (p 1)
_
,
i = 0, 1, . . . , n
Ejemplo
El n umero 18 (base 10) admite la descomposici on en base 2:
18 = 1 2
4
+ 0 2
3
+ 0 2
2
+ 1 2
1
+ 0 2
0
= 10010
(2)
Un n umero arbitrario se puede representar, en particular, en base 2,
como:
x = (
n
2
n
+
n1
2
n1
+ +
o
2
0
+
1
2
1
+
2
2
2
+ )
donde
i
{0, 1}. Para cualquier otra base se puede realizar esto
de manera an aloga.
En las computadoras digitales se ha de representar los n umeros con
un n umero nito de lugares, la longitud de palabra. La
representaci on de punto jo especica un n umero jo n
1
de lugares
antes de y un n umero jo n
2
de lugares despues del punto decimal
(binario), tales que n = n
1
+ n
2
= longitud de palabra
(usualmente n
1
= 0 o n
1
= n). De este modo, un n umero x se
representa en la m aquina como (en base 2)
x = (
n
1
1
2
n
1
1
+
n
1
2
2
n
1
2
+ +
0
2
0
+
1
2
1
+
2
2
2
+ +
n
2
2
n
2
)
Ejemplo
Para n = 10, n
1
= 4, n
2
= 6
145,6132 0145 613200
En esta representaci on, la posici on del punto decimal (binario) es
ja.
Representaci on de n umeros con punto otante
M as importante es la representaci on de punto otante. Aqu el
punto decimal (binario) no se encuentra jo. Esto es hecho con un
exponente. Cada n umero puede ser representado en la forma
x = a 10
b
(x = a 2
b
) con |a| < 1, b entero
Ejemplo
30,421 = 0,30241 10
2
.
El exponente b indica la posici on del punto decimal con respecto a
la mantisa a. Rutishauser propuso la notaci on : 0,30241
10
2
En cada computadora existen, por supuesto, n umeros nitos t y e,
n = t + e, de lugares disponibles para la representaci on de mantisa
y exponente, respectivamente.
Ejemplo
Para t = 4, e = 2, el n umero 5420 en el sistema decimal se expresa:
0 5420
10
04
o bien
5420 04
Representaci on de n umeros normalizada
Una representaci on de punto otante es normalizada si el primer
dgito de la mantisa es distinto de 0. Entonces |a| 10
1
(
|a| 2
1
). Los dgitos signicativos (bits) de un n umero son los
dgitos de la mantisa sin contar ceros al principio.
En lo que sigue, consideraremos solamente representaciones de
punto otante y su aritmetica de punto otante correspondiente.
Los n umeros t y e, junto con la base B, determinan el conjunto
A R de los n umeros reales que pueden ser representados
exactamente con una computadora dada. Los elementos de A son
llamados n umeros de m aquina.
Errores de redondeo y aritmetica de punto otante
El conjunto A de n umeros de m aquina es nito. Luego surgen las
preguntas: C omo representar un n umero x / A ? Adem as, dados
dos n umeros de m aquina, es posible que su suma o su producto no
sean n umeros de m aquina.
Es natural postular que la aproximaci on de cualquier n umero
x / A por un n umero de m aquina rd(x) deba cumplir la condici on
x rd(x)
2
. . .
i
i+1
. . . , 0
i
9,
1
= 0.
Entonces se forma
a
:=
_
0.
1
2
. . .
t
si 0
t+1
4,
0.
1
2
. . .
t
+ 10
t
si
t+1
5
Finalmente se coloca
rd
(x) := sign(x) a
10
b
.
Nota
Cuando se aproxima un n umero real x mediante otro n umero x
el
error que resulta es (x x
). El error absoluto es |x x
| y el error
relativo es
x x
x x
si x = 0.
El error relativo de aproximar x por rd
rd
(x) x
x
5 10
(t+1)
|a|
5 10
t
.
Con la abreviaci on eps = 5 10
t
podemos escribir
rd
(0,31974
10
110) = 0,3197
10
110 / A
rd
(0,99997
10
99) = 0,1000
10
100 / A
rd
(0,012345
10
99) = 0,1235
10
100 / A
rd
(0,54321
10
110) = 0,5432
10
110 / A
En el primer y segundo caso el exponente es muy grande para el
espacio: entonces tenemos un overow de exponente (sobreujo).
El tercer y cuarto casos son instancias de un underow, esto es, el
exponente del n umero representado es muy negativo. En estos
casos podemos prevenir el underow deniendo
rd(0,012345
10
99) = 0,0123
10
99 A.
rd(0,54321
10
110) = 0 A.
Como el overow y el underow son poco frecuentes y requieren
un tratamiento especial, para simplicar la teora asumiremos en
adelante que e = . De este modo tendremos rd := rd
, y
aseguraremos que
rd : R A
rd(x) = x(1 + ) con || eps, x R.
Como los resultados de las operaciones aritmeticas no son
necesariamente n umeros de m aquina, requeriremos denir
operaciones de punto otante, +
, /
y := rd(x + y),
x
y := rd(x y),
x
y := rd(x y),
x/
y := rd(x/y),
para x, y A,
lo cual implica
x +
y := (x + y)(1 +
1
)
x
y := (x y)(1 +
2
)
x
y := (x y)(1 +
3
)
x/
y := (x/y)(1 +
4
)
_
_
|
i
| eps .
De lo anterior se observar a que las operaciones de punto otante
no satisfacen las leyes conocidas para las operaciones aritmeticas
usuales. Por ejemplo,
x +
y = x, si |y| <
eps
B
|x|, x, y A
La precisi on de m aquina eps puede tambien denirse entonces
como
eps = mn{g A/1 +
(b +
c) = 0,23371258
10
4 +
0,61800000
10
3,
= 0,64137126
10
3,
(a +
b) +
c = 0,33678452
10
2
0,33677811
10
2,
= 0,64100000
10
3.
El resultado exacto es
a + b + c = 0,641371258
10
3.
Propagaci on de errores
Para expresar el resultado de operaciones de punto otante, una
notaci on ha sido ampliamente aceptada, y la usaremos
frecuentemente: dada una expresi on E a calcular, (E) denota el
valor de la expresi on obtenida por aritmetica de punto otante.
Ejemplo
(x y) := x
_
a + (b + c)
_
:= a +
(b +
c)
_
(a + b) + c
_
:= (a +
b) +
_
cos(x)
_
:= cos
(x)
x
_
:=
x
_
x
1
.
.
.
x
n
_
_
, y =
_
_
y
1
.
.
.
y
m
_
_
,
entonces resolver el problema signica determinar el valor
y = (x) donde
: D R
m
, D R
n
,
y
i
=
i
(x
1
, . . . , x
n
), i = 1, . . . , m.
En cada paso del c alculo hay un conjunto de operandos de
n umeros. Una sola operaci on calcula un nuevo n umero a partir de
uno o m as operandos del conjunto de operandos. El nuevo n umero
es un resultado intermedio o el nal.
Una operaci on corresponde a una transformaci on del conjunto de
operandos. Escribiendo estos consecutivamente como vectores,
x
(i)
=
_
_
x
(i)
1
.
.
.
x
(i)
n
i
_
_
R
n
i
,
podemos asociar a cada operaci on elemental un mapeo elemental
(i)
: D
i
R
n
i+1
, D
i
R
n
i
,
tal que
(i)
_
x
(i)
_
= x
(i+1)
.
Dado un algoritmo, entonces su secuencia de operaciones
elementales da lugar a la descomposici on de en una secuencia de
mapeos elementales
(i)
: D
i
D
i+1
, i = 0, 1, . . . , r, D
j
R
n
j
,
=
(r)
(r1)
(0)
, D
0
= D, D
r+1
R
n
r+1
= R
m
,
que caracteriza al algoritmo.
Ejemplo
Para (a, b, c) = a + b + c, consideremos los dos algoritmos
:= a + b, y := c + y := b + c, y := a + . Las
descomposiciones son:
(0)
(a, b, c) :=
_
a + b
c
_
R
2
,
(1)
(u, v) := u + v R
y
(0)
(a, b, c) :=
_
a
b + c
_
R
2
,
(1)
(u, v) := u + v R.
Ejemplo
Para (a, b) := a
2
b
2
se tienen los algoritmos Algoritmo 1:
1
:= a a,
2
:= b b,
y :=
1
2
,
Ejemplo
Algoritmo 2:
1
:= a + b,
2
:= a b,
y :=
1
2
.
Sus descomposiciones correspondientes son
Algoritmo 1:
(0)
(a, b) :=
_
a
2
b
_
,
(1)
(u, v) :=
_
u
v
2
_
,
(2)
(u, v) := u v.
Algoritmo 2:
(0)
(a, b) :=
_
_
a
b
a + b
_
_
,
(1)
(a, b, u) :=
_
u
a b
_
,
(1)
(a, b, u) := uv.
N otese que las descomposiciones de los algoritmos pueden ser
simplicadas:
Algoritmo 1:
(0)
(a, b) :=
_
a
2
b
2
_
,
(1)
(u, v) := u v.
Algoritmo 2:
(0)
(a, b) :=
_
a + b
a b
_
,
(1)
(u, v) := u v.
Estrictamente hablando, los mapeos
(0)
no son elementales. Sin
embargo lo m as importante al hacer las descomposiciones es que
las componentes de los mapeos intermedios sean elementales, para
poder hacer as el an alisis de error que se estudiar a a continuaci on.
bf Ejemplo:
y := a + b + c,
y := rd((a + b) + c)
= rd(a + b) +
c
= (a + b)(1 +
1
) +
c
= [(a + b)(1 +
1
) + c](1 +
2
)
= (a + b + c)
_
1 +
a + b
a + b + c
1
(1 +
2
) +
2
_
.
Despreciamos el termino
1
2
por ser de grado superior; luego el
error relativo (al haber calculado primero (a + b)) es
y
:=
y y
y
=
y
y
1
a + b
a + b + c
1
+
2
,
el cual es peque no si (a + b) es peque no.
Si se hubiese calculado primero (b + c) tendriamos
y
b + c
a + b + c
1
+
2
,
que es peque no si (b + c) es peque no.
Vamos a hacer ahora un an alisis diferencial de error de un
algoritmo para calcular y := (x) si esta funci on est a dada por la
descomposici on:
=
(r)
o
(r1)
o . . . o
(0)
.
Para este n necesitamos investigar como los errores de entrada,
as como los errores por redondeo acumulados durante el curso del
algoritmo afectan el resultado nal. Iniciamos esta investigaci on
considerando solamente los errores de entrada x.
Supongamos que la funci on
: D R
m
, =
_
1
(x
1
, . . . , x
n
)
.
.
.
m
(x
1
, . . . , x
n
)
_
_
,
est a denida en un conjunto abierto D de R
n
, y que sus funciones
componentes
i
, i = 1, 2, . . . , n, poseen derivadas continuas en D.
Sea x un valor aproximado de x.
Entonces denotamos por
x
i
:= x
i
x
i
, x := x x,
al error absoluto x
i
y x, respectivamente. El error relativo de x
i
es
denido como la cantidad
x
i
:=
x
i
x
i
x
i
si x
i
= 0.
Reemplazando x por x obtenemos el resultado y := (x) en vez de
y = (x). Expandiendo en series de Taylor y despreciando los
terminos de mayor orden, tenemos
y
i
:= y
i
y
i
=
i
(x)
i
(x)
n
j=1
(x
j
x
j
)
i
(x)
x
j
=
n
j=1
i
(x)
x
j
x
j
, i = 1, . . . , m,
de donde
y =
_
_
y
1
.
.
.
y
m
_
_
_
1
(x)
x
1
. . .
1
(x)
x
n
.
.
.
.
.
.
m
(x)
x
1
. . .
m
(x)
x
n
_
_
_
_
x
1
.
.
.
x
n
_
_
= D(x)x,
con la matriz jacobiana D(x).
La cantidad
i
(x)
x
j
representa la sensitividad con que y
i
reacciona
a las perturbaciones x
j
de x
j
.
Si y
i
= 0 para i = 1, . . . , m y x
j
= 0 para j = 1, . . . , n entonces se
tiene:
y
i
=
y
i
y
i
y
i
j=1
i
(x)
x
j
x
j
x
j
y
i
=
n
j=1
_
x
j
y
i
i
(x)
x
j
_
x
j
x
j
x
j
=
n
j=1
_
x
j
y
i
i
(x)
x
j
_
x
j
.
N umero de condici on
Los factores de amplicaci on (x
j
/
i
)
i
/x
j
para el error relativo
son llamados n umeros de condicionamiento. Si alguno de estos
n umeros es en valor absoluto muy grande, se dice que el problema
es mal condicionado. En otro caso, se dice que est a bien
condicionado. Como se puede observar, la condici on del problema
est a descrita por mn n umeros. Por estas razones, hay una manera
m as pr actica de denir la condici on del problema. En algebra
lineal, usando una norma conveniente , el n umero de condici on
c deber a satisfacer
(x) (x)
(x)
c
x x
x
.
Ejemplo
Para (a, b, c) := a + b + c se tiene
y
a
y
(a, b, c)
a
a
+
b
y
(a, b, c)
b
b
+
c
y
(a, b, c)
c
c
=
a
a + b + c
a
+
b
a + b + c
b
+
c
a + b + c
c
.
El problema estar a bien condicionado cuando los sumandos a, b, c
sean peque nos comparados con a + b + c (por ejemplo, cuando
todos tengan el mismo signo).
Ejemplo
Para y = (a, b) := a +
a
2
+ b,
y
a
y
_
1 +
a
a
2
+ b
_
a
+
b
y
1
2
a
2
+ b
b
a
a
2
+ b
a
+
a +
a
2
+ b
2
a
2
+ b
b
.
Desde que
a
2
+ b
1,
a +
a
2
+ b
2
a
2
+ b
1 para b > 0;
tendremos que es bien condicionado si b > 0, y mal
condicionado si b a
2
.
Cuando se substraen dos n umeros x, y A del mismo signo, uno
debe tener cuidado con la cancelaci on (esto es, cuando los n umeros
tienen valores absolutos casi iguales). Por ejemplo, para calcular
y =
_
x
2
+ 1 1
cuando el valor de x es cercano a cero, se sugiere calcular
equivalentemente
y = (
_
x
2
+ 1 1)
x
2
+ 1 + 1
x
2
+ 1 + 1
=
x
2
x
2
+ 1 + 1
.
Para evitar desbordamientos (overow, underow)
z :=
x
2
+ y
2
_
x
4
+ y
4
en caso |x| < |y|, hacemos t :=
x
y
(|t| < 1). Entonces calculamos
z =
t
2
+ 1
t
4
+ 1
.h
Para las operaciones aritmeticas (x = 0, y = 0)
(x, y) := x y
xy
x
+
y
(x, y) := x/y
x/y
x
y
(x, y) := x y
xy
x
x y
x
+
y
x y
y
si x y = 0
(x) :=
x
x
1
2
x
Se sigue que la multiplicaci on, divisi on, y raz cuadrada no son
peligrosas. Si los operandos son del mismo signo, la adici on no es
peligrosa.
En efecto, tendremos que
|
x+y
| m ax{|
x
|, |
y
|}
Si los operandos tienen signos distintos, entonces almenos uno de
los factores
x
x + y
y
x + y
(i)
=
(r)
(r1)
(i)
: D
i
R
m
, i = 0, 1, 2, . . . , r.
Entonces
(0)
.
De la regla de la cadena, tenemos
D(x) = D
(r)
(x
(r)
) D
(r1)
(x
(r1)
) D
(0)
(x),
D(x
(i)
) = D
(r)
(x
(r)
)D
(r1)
(x
(r1)
) D
(i)
(x
(i)
), i = 0, 1, . . . , r.
En el c alculo con punto otante bajo la inuencia de los errores de
entrada y los errores por redondeo en lugar de los resultados
intermedios x
(i)
se obtienen valores aproximados x
(i)
con
x
(i+1)
= (
(i)
(x
(i)
)).
De esto se obtiene, para los errores absolutos x
(i)
= x
(i)
x
(i)
,
x
(i+1)
= [(
(i)
(x
(i)
))
(i)
(x
(i)
)] + [
(i)
(x
(i)
)
(i)
(x
(i)
)].
Usando series de Taylor, y despreciando terminos de orden superior:
(i)
(x
(i)
)
(i)
(x
(i)
) D
(i)
(x
(i)
)x
(i)
.
Como
(i)
es elemental, o bien involucra s olo operaciones
elementales independientes, tenemos que
(
(i)
(u)) = rd(
(i)
(u)).
N otese ahora que
(i)
: D
i
D
i+1
R
n
i+1
es un vector de
funciones componentes
(i)
j
: D
i
R,
(i)
(u) =
_
(i)
1
(u)
.
.
.
(i)
n
i+1
(u)
_
_
.
As, podemos trabajar con las componentes. De este modo:
(
(i)
j
(u)) = rd(
(i)
j
(u)) = (1 +
j
)
(i)
j
(u),
|
j
| eps, j = 1, 2, . . . , n
i+1
Entonces podemos simplemente escribir
(
(i)
(u)) = (I + E
i+1
)
(i)
(u).
Con la matriz identidad I y la matriz diagonal de error
E
i+1
=
_
1
0 0
0
2
0
.
.
.
.
.
.
.
.
.
0 0
n
i+1
_
_
, |
j
| eps .
Esto nos da
(
(i)
(x
(i)
))
(i)
(x
(i)
) = E
i+1
(i)
(x
(i)
),
pero E
i+1
(i)
(x
(i)
) E
i+1
(i)
(x
(i)
) (despreciando terminos de
orden superior). Por consiguiente
(
(i)
(x
(i)
))
(i)
(x
(i)
) E
i+1
(i)
(x
(i)
) = E
i+1
x
(i+1)
=:
i+1
.
Por lo anterior, x
(i+1)
puede ser expresado con una aproximaci on
de primer orden como
x
(i+1)
i+1
+ D
(i)
(x
(i)
) x
(i)
= E
i+1
x
(i+1)
+ D
(i)
(x
(i)
) x
(i)
, para i 0, x
(0)
:= x.
Luego
x
(1)
D
(0)
(x) x +
1
x
(2)
D
(1)
(x
(1)
) [D
(0)
(x)x +
1
] +
2
.
.
.
y = x
(r+1)
D
(r)
D
(0)
x + D
(r)
D
(1)
1
+ +
r+1
.
Finalmente, llegamos a la f ormula que describe el efecto de los
errores de entrada x y los errores de redondeo
i
en el resultado
y = x
(r+1)
= (x):
y D(x) x + D
(1)
(x
(1)
)
1
+ + D
(r)
(x
(r)
)
r
+
r+1
= D(x) x + D
(1)
(x
(1)
) E
1
x
(1)
+ + D
(r)
(x
(r)
) E
r
x
(r)
+ E
r+1
y.
Ejemplo
Para los dos algoritmos que calculan y = (a, b) = a
2
b
2
dados
tenemos:
Algoritmo 1:
x = x
(0)
=
_
a
b
_
, x
(1)
=
_
a
2
b
_
, x
(2)
=
_
a
2
b
2
_
, x
(3)
= y = a
2
b
2
,
(1)
(u, v) = u v
2
,
(2)
(u, v) = u v,
D(x) = (2a, 2b)
D
(1)
(x
(1)
) = (1, 2b), D
(2)
(x
(2)
) = (1, 1),
1
=
_
1
a
2
0
_
, E
1
=
_
1
0
0 0
_
,
pues
(
(0)
(x
(0)
))
(0)
(x
(0)
) =
_
a
a
b
_
_
a
2
b
_
.
Tambien
2
=
_
0
2
b
2
_
, E
2
=
_
0 0
1
0
_
.
3
=
3
(a
2
b
2
), |
i
| eps para i = 1, 2, 3.
Con x =
_
a
b
_
,
y 2aa 2bb + a
2
1
b
2
2
+ (a
2
b
2
)
3
.
An alogamente para el algoritmo 2:
x = x
(0)
=
_
a
b
_
, x
(1)
=
_
a + b
a b
_
, x
(2)
= y = a
2
b
2
,
(1)
(u, v) = u v,
D(x) = (2a, 2b), D
(1)
(x
(1)
) = (a b, a + b),
1
=
_
1
(a + b)
2
(a b)
_
,
2
=
3
(a
2
b
2
), E
1
=
_
1
0
0
2
_
, |
i
| eps .
Por tanto
y 2aa 2bb + (a
2
b
2
)(
1
+
2
+
3
).
Estabilidad de un algoritmo
Un algoritmo es llamado numericamente m as estable que otro para
calcular (x) si, para un conjunto dado de datos x, el efecto total
de redondeo del primero es menor que el del otro.
Ejemplo
En el ejemplo anterior, el efecto total por redondeo usando el
Algoritmo 1 es
a
2
1
b
2
2
+ (a
2
b
2
)
3
_
a
2
+ b
2
+|a
2
b
2
|
_
eps,
y usando el Algoritmo 2
|(a
2
b
2
)(
1
+
2
+
3
)| 3|a
2
b
2
| eps .
Esto muestra que el algoritmo 2 es numericamente m as estable
que el algoritmo 1 siempre que
1
3
< |a/b|
2
< 3; en otro caso el
algoritmo 1 es m as estable.