Está en la página 1de 14

Captulo 1

Aritm
etica de computadora
y convergencia
1.1

Aritm
etica de computadora

El primer problema con que debemos lidiar cuando iniciamos el


Analisis Numerico es la representacion de los n
umeros reales. >Podemos representar todos los n
umeros reales en una computadora?
La respuesta es no. En efecto, como sabemos, hay cantidad innita de n
umeros reales y una cantidad nita de espacio de memoria
en una computadora, por lo tanto no podemos \vertir" todos los
n
umeros reales sobre una computadora (indistintamente de la capacidad que tenga). Esto nos lleva a concluir que solo podremos
representar un subconjunto de los n
umeros reales.
La pregunta ahora es >como efectuar una representacion \adecuada" de los n
umeros reales en una computadora? Observemos
primero que si x 2 IR es cualquier n
umero, entonces este puede
expresarse de la forma
x = 0:d1 d2 dk dk+1 10n ;
= 0, y 0 di 9, para i > 1. Llamaremos a esta expresion
con d1 6
la forma normalizada de x.
5

Captulo 1. Aritmetica de computadora y convergencia

Ejemplo 1.1 Veamos algunos casos:


1. Si x = 3:416, entonces x = 0:3416 101 . En este caso observamos que d1 = 3, d2 = 4, d3 = 1, d4 = 6 y di = 0 para
i > 4.
2. Si x = 0:015, entonces x = 0:15 101 , de donde concluimos
que d1 = 1, d2 = 5, y di = 0 para i > 2.

El problema de la representacion de los n


umeros reales tiene que
ver con la cantidad de dgitos dk que pueden ser almacenados en la
memoria de la computadora. Supongamos que tenemos un n
umero
real x, expresado de la forma:
x = 0:d1 d2 dk dk+1 10n ;
= 0, y 0 di 9, para i > 1. Notamos que (en general) no
con d1 6
podemos \incluir" todos los di en la memoria de la computadora.
Dicho de otra forma, debemos desestimar los dgitos que se hallen
despues de cierta posicion. Existe dos maneras (clasicas) de conseguir esto: por truncamiento (o corte) o por redondeo. Expliquemos
que es esto:
AT (k): Usando aritmetica de truncamiento a k dgitos. En este caso
simplemente se desestiman los dgitos a partir de la posicion
k + 1 (inclusive).
x = |0:d1 d2 d{z3 dk} dk+1 dk+2 dk+3 10n
|

{z

Se conservan Se desestiman

De esta forma obtenemos la aproximacion


x = 0:d1 d2 dk 10n
Llamaremos a x el punto otante de x y escribiremos, ocasionalmente x = f l(x).

1.1. Aritmetica de computadora

AR(k): Usando aritmetica de redondeo a k dgitos. En este caso se


debe analizar el dgito dk+1 . Veamos. Si dk+1 < 5, se procede
analogamente a lo que se hace cuando se usa AT (k), es decir se
desestiman los dgitos a partir de la posicion k + 1 (inclusive).
Si dk+1 5 sumamos 5 10n(k+1) al x (<original!) y luego
aplicamos AT (k). Esta operacion se reduce en la practica
simplemente a agregar un uno al dgito dk .
Debemos observar entonces que ya sea que se este usando AT (k)
o AR(k), exite 2 IR tal que
x = x + ;
en donde mide la diferencia entre el valor real y el valor representado en la computadora. Llamaremos a el error de representacion.
Ejemplo 1.2 Veamos algunos casos usando AT (5).
1. Sea x = 0:123456789, en este caso x = 0:12345 y el error de
representacion esta dado por = 6:789 106 .
2. Sea x = 0:023456789. Normalizando x obtenemos
x = 0:23456789 101
De esta forma tenemos que x = 0:23456 101 = 0:023456.
Notemos que emplear AT (k) no es tan simple como \conservar k dgitos despues del punto decimal".
Utilicemos ahora AR(5).
1. Sea x = 0:123456789. Notamos que d6 = 6 5, por lo tanto
debemos agregar 1 a d5 = 5, de donde obtenemos entonces
que x = 0:12346.

Captulo 1. Aritmetica de computadora y convergencia

2. Sea x = 0:023456789 = 0:23456789 101 . En este caso


d6 = 7 5, por lo tanto debemos agregar 1 a d5 = 6. De esta
forma tenemos que x = 0:23457 101 = 0:023457.
3. Sea x = 0:99999 . Notamos que d6 = 9, por lo que debemos
agregar un 1 a d5 = 9. Esto deja d5 = 0 y agregamos un 1 a
d4 = 9, etc. Finalmente concluimos que x = 1. Otra forma
de abordar este problema es sumando primero
5 10n(k+1) = 5 100(5+1) = 5 106
a x. Esto produce 1:00000499 y al aplicar AT (5) sobre
esta cantidad obtenemos x = 1.

Ya sea que usemos AT (k) o AR(k) notamos que x es una aproximacion de x. Debemos entonces buscar un mecanismos que
nos permitar determinar si se trata de una \buena" o \mala" aproximacion.
Denici
on: 1.1 Sea x una aproximacion de x, denimos el error
absoluto de aproximar x usando x como
EA(x; x ) = jx x j
Ademas denimos el error relativo de aproximar x usando x como
jx x j
ER(x; x ) =
jxj

toda vez que x 6


= 0.

Debemos advertir que esta denicion es independiente del mecanismo que se halla usado para obtener x . De hecho convendremos
(en este texto) en usar toda la precision de nuestras calculadoras
para estimar EA(x; x ) o ER(x; x ), sin importar que se este empleando AT (k) o AR(k).

1.1. Aritmetica de computadora

Ejemplo 1.3 Veamos algunos casos.


1. Sea x = 0:3 y x = 0:32, entonces EA(x; x ) = 0:02 y
ER(x; x ) = 0:66 .
2. Al usar AR(5), para = 3:1415926535897932385 obtenemos = 3:1416. Por lo tanto EA(; ) = 7:34641 106 y
ER(; ) = 2:33843 106 .
Aunque hoy da las calculadoras y computadoras nos permiten
trabajar con muchos dgitos de precision, los calculos que realizamos en analisis numerico generan errores signicativos y muchas
veces nada desde~
nables. No obstante, es interesante notar que conforme se mejora las capacidades computacionales, la teora de errores numericos pierden su protagonismo. Normalmente para calculos
\cotidianos", las aproximaciones que arrojan las computadoras resultan ser sucientes.
Denici
on: 1.2 Sea x 2 IR, decimos que x aproxima a x con t
dgitos de precision si ER(x; x ) < 5 10t , o bien

x x

< 5 10t :

Ejemplo 1.4 Sea x = 3:5, hallemos un intervalo para los x que


aproximan a x con 5 dgitos de aproximacion. Para lograr esto
planteamos la desigualdad ER(x; x ) < 5 105 , o bien

3:5 x

3:5

o equivalentemente

< 5 105 ;

17:5 105 < x 3:5 < 17:5 105

por lo tanto x 2 (3:49983; 3:50018).

10

Captulo 1. Aritmetica de computadora y convergencia

Hablemos ahora de las operaciones aritmeticas de computadora.


Como es de esperarse estas operaciones estan supeditadas a la precision del computador. Es por esta razon que utilizaremos 4 nuevos
smbolos para las operaciones aritmeticas de computadora, a saber,
, , y , correspondienes (respectivametne) a las operaciones
aritmeticas usuales +, , y =. Deniremos esta operaciones de
computadora de la siguiente forma:
x y = [x + y ] x y = [x y ]
x y = [x y ]

x y = [x =y ]

Dicho en terminos mas sencillos, si deseamos efectuar una de estas


operaciones aritmetica de computadora con x y y, tomamos el punto otante de x y de y, efectuamos la operacion aritmetica correspondiente y nalmente tomamos el punto otante de ese resultado.
Mas adelante extenderemos esta idea para incluir operaciones tales
como potenciacion, raz cuadrada, trigonometricas, etc.
Ejemplo 1.5 Sea x = 0:8888888 y y = 0:987654321. Suponga
que estamos usando AT (3). Tenemos entonces que x = 0:888 y
y = 0:987. Hagamos los siguientes calculos:
1. x y = [0:888 + 0:987] = [1:875] = 1:87. Por otro lado
x + y = 1:87654. De esta forma, el error absoluto en esta
operacion esta dado por
EA(x + y; x y) = 0:00654303
y el error relativo esta dado por
ER(x + y; x y) = 0:00348675:
2. x y = [0:888 0:987] = [0:099] = 0:099 con un error
absoluto de 0:000234568 y un error relativo de 0:002375.

1.1. Aritmetica de computadora

11

3. x y = [0:888 0:987] = [0:876456] = 0:876 con un error


absoluto de 0:00191479 y un error relativo de 0:00218106.
4. x y = [0:888=0:987] = [0:899696] = 0:899 con un error
absoluto de 0:000999991 y un error relativo de 0:0011111.

El uso reiterado de las operaciones, induce un nuevo error conocido como error de propagacion. Dado que cada vez que efectuamos
una operacion aritmetica debemos hacer redondeo o truncamiento,
es de esperar que conforme se incremente la cantidad de operaciones
aritmeticas en un calculo, se aumente el error de propagacion, produciendo una diferencia signicativa (que podemos medir mediante
el error absoluto o relativo) entre el valor real (exacto) y el arrojado
por la computadora.
Una situacion en la cual el error de propagacion adquiere atencion especial es la resta de cantidades muy similares. Veamos un
calculo en que se da este caso.
Ejemplo 1.6 Sea x = 0:123456 y y = 0:123457. Si usamos AR(3)
tenemos que
x y = [0:123 0:123] = 0:

Observe que xy = 1106 , por lo tanto error absoluto esta dado


por EA = 1 106 y el error relativo por ER = 1. Por supuesto,
este error relativo indica (en muchas situaciones) que el calculo no
es del todo satisfactorio, y por lo tanto se debera replantear el
problema o bien aumentar la precision.
Un caso clasico que evidencia los problemas de efectuar restas de
cantidades similares usando una aritmetica \pobre" es la resolucion
de ecuaciones cuadraticas ax2 + bx + c = 0, mediante la formula
general cuadratica
p
b b2 4ac
x=
2a

12

Captulo 1. Aritmetica de computadora y convergencia

Como el lector lo podra advertir, el problema se


ppodra dar cuando
al calcular una de las races se tiene que b b2 4ac.
Ejemplo 1.7 Resuelva x2 + 100x + 1 = 0, empleando AT (4).
Notemos primero que los valores exactos de las races son
p
p
x1 = 50 7 51 99:99; y x2 = 50 + 7 51 0:010001
Hagamos ahora el calculo usando AT (4). Es conveniente advertir que aqu emplearemos el signo de igualdad para expresar que las
cantidades a ambos lados del = son equivalentes
en AT (4).
p
En este caso = 9996, y por lo tanto = 99:97. Calculemos
la primera raz:
p
b
100 99:97
199:7

x1 =
=
=
= 99:85
2a
2
2
Observe que EA(x1 ; x1 ) = 0:139999 y por otro lado tenemos que
ER(x1 ; x1 ) = 0:0014001 .
La segunda raz involucra la resta de cantidades muy semejantes:
p
b +
100 + 99:97
0:03

=
=
= 0:015
x2 =
2a
2
2
Observe que EA(x2 ; x2 ) = 0:004999 y ER(x2 ; x2 ) = 0:49985.
Para mejorar la aproximacion de x2 sin aumentar la precision,
podemos echar a mano a una equivalencia algebraica de la formula
cuadratica general:
p
p
p
b + b2 4ac
b + b2 4ac b b2 4ac

p
=

x2 =
2a
2a
b b2 4ac
Utilizando la tercera formula notable obtenemos:
x2 =

b2 (b2 4ac)
2c
=
p
p
b + b2 4ac
2a b b2 4ac

1.1. Aritmetica de computadora

13

Volviendo a nuestro caso particular, obtenemos que:


x2 =

2 1
2
=
= 0:01:
100 + 99:97
199:9

Notemos que este nuevo x2 satisface EA(x2 ; x2 ) = 1 106 y


ER(x2 ; x2 ) = 0:00009999, que exhibe una mejora considerable con
respecto al calculo anterior.
Otro caso tpico que (usando una aritmetica de computadora
\pobre") genera errores importantes, tiene que ver con la evaluaci
on
de polinomios.
Ejemplo 1.8 Sea f (x) = x3 + 3x2 + 3x + 1, determinemos el valor
numerico de z = f(1:99) usando AT (3).
Veamos algunas partes del calculo:
1:993 = 7:88
1:992 = 3:96
7:88 + 11:8 = 19:6
19:6 + 5:97 = 25:5
25:5 + 1 = 26:5
Por lo tanto, usando AT (3), obtenemos z = 26:5. Dado que
z = 26:7309, tenemos que EA(z; z ) = 0:230899 y por otro lado
ER(z; z ) = 0:00863791.
Modiquemos ahora el polinomio f (x) utilizando una forma
anidada como sigue:
f (x) = x3 + 3x2 + 3x + 1 = x[x(x + 3) + 3] + 1
Veamos algunos detalles del calculo:

14

Captulo 1. Aritmetica de computadora y convergencia

1:99 + 3 = 4:99
9:93 + 3 = 12:9
25:6 + 1 = 26:6

Por lo tanto, usando AT (3), obtenemos z = 26:6. Dado que


z = 26:7309, tenemos que EA(z; z ) = 0:130899 y por otro lado
ER(z; z ) = 0:00489692. Notamos entonces que el error relativo se
reduce casi a la mitad del obtenido en el calculo anterior.
1.2

Convergencia de algoritmos

Los metodos de analisis numericos son generalmente un conjunto de algoritmos que en forma iterativa proporcionan una solucion
aproximada a un problema especco. De hecho en muchos casos
el metodo numerico se reduce a evaluar en forma sucesiva una recurrencia, del tipo, por ejemplo wn+1 = F (wn ). Cada una de estas
evaluaciones genera un error que normalmente crece conforme aumenta el valor de n.
Denici
on: 1.3 Sea En el error que se comete tras n iteraciones.
Decimos que error En es de tipo lineal si En = c E0 n, en donde
E0 se reere al error inicial. Dicho de otra forma, En es lineal si
tiene la forma En = kn, en donde k = cE0 .
Por otro lado decimos que En es tipo exponencial si En = cn E0 ,
o bien En = kcn , con k = E0 .

Ejemplo 1.9 Observe las gracas de f(x) = 10x y g(x) = 2x , que


se muestran en la Fig. 1.1.
Notamos que con pocos valores que se usen, las funciones empiezan a distanciarse considerablemente. De esta forma notamos
que si el error es de la forma En = g(n), en poco tiempo (entiendase
despues de \pocas" iteraciones), su magnitud se vuelve virtualmente inaceptable. Por otro lado si, En es de la forma En = f (n),
su crecimiento es \lento" y normalmente aceptable.

1.3. Rapidez de convergencia

15

Figura 1.1: Gracas de f(x) = 10x y g(x) = 2x .


Ejemplo 1.10 Supongamos que en un problema numerico la so3 n
.
lucion real esta dada por el lmite L de la sucesion wn =
4
Supongamos ademas que el algoritmo que
empleando para
estamos
3 n
aproximar L genera la sucesion wn =
0:0001 2n . En este
4
caso el error en cada iteracion esta dado por
En = wn wn = 0:0001 2n
Notamos por ejemplo que E5 = 0:0032 y que E10 = 0:1024, es decir
magnitudes poco \deseadas"
aproximar un valor.
al
3 n
0:0001 n, tenemos que
Por otro lado si wn =
4
En = wn wn = 0:0001 n
En este caso, por ejemplo E5 = 0:0005 y E10 = 0:001, que son
errores \normalmente" aceptables en muchos calculos.
1.3

Rapidez de convergencia

Muchos de los algoritmos que estudiaremos en este libro proporcionan una sucesion (algunas veces recurrente, otras no), que al

16

Captulo 1. Aritmetica de computadora y convergencia

evaluarse repetidas veces, nos conducen a la solucion del problema


que se intenta resolver con uno de estos algoritmo. Como se ha visto en los cursos de calculo, dos o mas sucesiones pueden converger
al mismo valor real, pero con distinta velocidad. Formalicemos este
concepto:
Denici
on: 1.4 Sea fn g una sucesion (real) con converge a . Sea
fn g una sucesion (real) con converge a 0. Decimos que fn g tiende
con rapidez de convergencia O (n ) si exite una constante C 2 IR
tal que a partir de cierto n, se satisface la siguiente desigualdad:
jn j C jn j

Escribimos entonces n = + O (n ).

Normalmente fn g es una sucesion de la que podamos apreciar con facilidad su convergencia a 0, es decir es una sucesi
on que
nos permite \diagnosticar" con que rapidez fn g se acerca a .
1
Tpicamente escogeremos fn g de la forma n = p con p > 0.
n
Esta escogencia se justica en el hecho de que no es difcil analizar
el comportamiento de sucesiones de la forma:
n =

1
;
n

n =

1
;
n2

n =

1
;
n3

Debemos notar tambien que la sucesion fn g no es u


nica. No obstante siempre procuraremos hallar aquella sucesi
on que \mejor mida" la rapidez de convergencia de fn g.
Ejemplo 1.11 Veamos algunos casos:
sen n
1. Sea n =
. Es facil ver que lim n = 0. Midamos
n!+1
n2
ahora con que rapidez se acerca fn g a 0. Empecemos planteando la desigualdad:

sen n
sen n
jn j =
0 = 2
2
n
n

1.3. Rapidez de convergencia

17

Dado que j sen xj 1, para todo x, podemos mayorizar la


desigualdad que nos interesa como sigue:

1
jn j 2 :
n
1
De esta forma tenemos que podemos tomar C = 1 y n = 2 .
n
1
As concluimos que n = 0 + O (n ), o bien n = O 2 .
n
n2 + 1
2. Sea n =
. Es facil ver que lim n = 1. En este caso
n!+1
n2
debemos mayorizar
jn j
por lo tanto n = 1 + O

n2 + 1
=
n2

1
.
n2

1
;
n2

El concepto de rapidez de convergencia puede aplicarse tambien


a funciones.
Denici
on: 1.5 Sea f(x) una funcion real tal que x!a
lim f (x) = L.
Sea g(x) una funcion real tal que lim g(x) = 0. Decimos que f tiene
x!0
a L con rapidez de convergencia O(g(x)) si existe C 2 IR tal que
jf(x) Lj C jg(x)j :

Escribimos entonces f(x) = L + O(g(x)).

Al igual que en las sucesiones, trataremos de buscar funciones


g(x) sobre las cuales sea facil analizar su convergencia. Normalmente emplearemos funciones de la forma g(x) = xp , con p > 0,
dado que, por ejemplo:
g(x) = x;

g(x) = x2 ;

resultan ser de facil analisis.

g(x) = x3 ;

18

Captulo 1. Aritmetica de computadora y convergencia

Ejemplo 1.12 Veamos los siguientes casos:


sen x
1. Sea f (x) =
. Sabemos que lim f (x) = 1. Para determix!0
x
nar la rapidez con que f se acerca a 1, planteamos la siguiente
desigualdad:

sen x

jf (x) Lj =
1 :
x
Si usamos un desarrollo de Taylor alrededor de 0 para sen x,
obtenemos
1
sen x = x sen x2 ; con entre 0 y x
2


sen x

x
1

De esta forma
1 = jx sen j . Si tomamos
x
2
2
1
entonces g(x) = x y C = , concluimos que f (x) = 1 + O (x).
2
x2
+ cos x. Notemos primero que
2
lim f(x) = 1. Para hallar la rapidez de convergencia de f
x!0
debemos mayorizar la expresion

2. Considere ahora f (x) =

x2

+ cos x 1

x2
1
Si usamos Taylor, tenemos que
+ cos x = 1 + x4 cos
2
24
con entre 0 y x. Por lo tanto:

x2

+ cos x 1

x4
:
24

Por lo tanto tomando g(x) = x4 y C =



x2
+ cos x = 1 + O x4 .
2

1
, concluimos que
24

También podría gustarte