Professional Documents
Culture Documents
Introducci
on
Los calculos numericos que se realizan con una computadora (o calculadora) no son iguales a los que se hacen en los cursos de algebra o calculo.
En la aritmetica computacional (de punto flotante) no se cumple la igual
2.2.
d1 d2
d52
+ 2 + + 52 ) 2n ,
2
2
2
(2.1)
que puede ser almacenado en memoria como una cadena de 64 bits: el primer
bit es 0 o 1, seg
un x sea positivo o negativo, los 11 siguientes corresponden a la
expresion en binario de n+1023 ( n+1023 es un n
umero natural comprendido
entre 1 y 2047, que en binario se expresa con 11 dgitos) y los 52 restantes
son d1 , .., d52 que corresponden a la mantisa f .
En nuestra relaci
on con la m
aquina usamos la base 10, es decir,
entramos los datos en el sistema decimal y, a su vez, la m
aquina
6
nos muestra los resultados en el mismo sistema. Ahora bien, internamente opera en binario por lo que todos los datos suministrados
a la m
aquina son autom
aticamente pasados a la base 2 para expresarlos en la forma (2.1) que permite su almacenamiento como una
cadena de 64 bits.
Exponente
01111111111
Mantisa
1 1 1 0 0 0 00 (49 ceros)
2.3.
El error de redondeo
er =
253+n
x r(x) ea
=
= 253 .
n
x
x
2
x
r(x) |x r(x)|
k =
= 2k |x r(x)|.
k
2
2
2k
Luego el error en la division x/2k es igual al producto del error en el redondeo de x por el factor 2k y recuerdese que k es un n
umero natural grande.
Esto nos da una idea muy clara de como el error de redondeo de x se multiplica gravemente al realizar una division posterior x/y con y un n
umero muy
peque
no.
2) Dos n
umeros distintos pueden tener igual representaci
on punto flotante
y, por tanto, al hacer su diferencia con Matlab se obtiene 0.
Si calculamos con Matlab la expresion (100 100 + 1e 15) 1e + 17 se
obtiene 100 (resultado correcto). Sin embargo, si calculamos (100 + 1e 15
100)1e+17 se obtiene 0 (resultado incorrecto). La diferencia tan enorme entre
ambos se debe a que en el primer caso calcula el valor exacto de 100 100,
cero, y despues realiza el producto tambien exacto. Por el contrario, en el
segundo caso, hace primero la suma s = 100 + 1.0e 15 y a continuacion
procede a calcular la diferencia s 100 y obtiene como resultado 0 porque
ambos n
umeros tienen la misma forma punto
flotante.
5
5
ex e 2x
3) Consideremos la funcion f (x) =
. Se quiere calcular su lmite
x5
cuando x 0, evaluando f en puntos cada vez mas cercanos a 0. Con el
programa de Matlab
>>x=[0.1,0.01,0.001,0.0001,0.00001,0.000001,0.0000001];
y=(exp(x.5) - exp(sqrt(2)*x.5))./x.5
se obtiene:
y = 0.4142, 0.4142, 0.2220, 0, 0, 0, 0.
A la vista del resultado obtenido, podramos concluir que lmx0 f (x) = 0
10
Exponente
00000111111
Mantisa
0 0 1 0 0 0 00 (49 ceros)
b)
Signo
0
Exponente
00000000011
Mantisa
0 0 0 00 (50 ceros)1 1
7. Calcular con Matlab 10309 y comprobar que el resultado es infinito. Explicar la razon.
8. Las races de la ecuacion x2 (64+1015 )x+(641015 ) = 0 son x1 = 64 y
x2 = 1015 . Calcular sus races con Matlab y comprobar que el resultado
obtenido para la menor de ellas no coincide con el exacto en ninguna cifra
significativa.
11