Академический Документы
Профессиональный Документы
Культура Документы
ERRORES DE REDONDEO Y
1. Introduccin
2. Nomenclatura
3. Representacin de un nmero en un ordenador
4. Truncamiento y redondeo
5. Error de truncamiento y de redondeo
6. Clculo de derivadas por diferencias finitas
7. Derivadas complejas
8. RESUMEN
9. Programacin en Matlab
1. Introduccin
Las prestaciones de los algoritmos para resolver muchos problemas dependen
en gran medida de la exactitud con la que se pueden representar los nmeros
reales en la mquina o soporte donde se han de implementar. Para disearlos
y codificarlos en un lenguaje que entienda la mquina, es necesario conocer
como opera la aritmtica de esa mquina.
Los ordenadores no guardan la informacin relativa a un nmero con precisin
infinita, sino mediante una informacin empaquetada en grupos de bits,
denominados bytes. Casi todos permiten al usuario escoger entre diversas
formas de representar un determinado nmero. Estas representaciones varan
casi siempre en funcin del nmero de bits utilizados o de si se hace en
formato entero, coma flotante (real) etc.
2. Nomenclatura
F
fl(x)
L
t
U
precisin de la mquina
lmite de overflow
d
d
d
f = 1 + 22 +...+ tt . e
donde los nmeros enteros d1...dt satisfacen 0 d i 1, i=1,...,t.
(ER1)
(ER2)
4. Truncamiento y redondeo
Cul sera, sin embargo, la representacin del nmero 3.246 en la mquina
anterior?. Lo primero que debemos darnos cuenta es que dicho nmero no es
representable por la mquina. Para que fuese representable necesitaramos
una mquina que tuviese una precisin de al menos t=4.
En este caso el ordenador lo que hace es representar un nmero cercano que
s sea representable, en este caso tenemos dos posibilidades, o bien usar
truncamiento o bien usar redondeo.
Un nmero en un ordenador ser representado por el nmero ms cercano del
conjunto F de tal manera que fl(x) es el elemento cF ms cercano de x si se
x fl( x) 1 1 t
x
2
(ER3)
y si se usa truncamiento ::
x fl( x)
1 t
x
(ER4)
10
11
(ER5)
x0
12
f ( xk + x ) f ( xk )
x
7. RESUMEN
La representacin de un nmero entero en un ordenador es exacta, siempre y
cuando su valor est comprendido dentro de los lmites admisibles por este.
Esa representacin est dada por una mantisa y un exponente, que tiene en
cuenta la base de la mquina y su precisin.
Un nmero con ms dgitos de la precisin de una mquina sera representado
bien por truncamiento o por redondeo.
La precisin de la mquina o epsilon, , lo define la cantidad ms pequea que
aadida a 1 tiene representacin en la mquina.
El error de cancelacin surge al operar con nmeros de muy diferentes rdenes
de magnitud (numeros muy grandes y muy pequeos).
El error de redondeo es el que resulta de reemplazar un nmero por su forma
de punto flotante.
El error de truncamiento ocurre cuando un proceso que requiere un nmero
infinito de pasos se detiene en un nmero finito de pasos.
Para el cclulo numrico de una derivada es necesario encoger un incremento
de x adecuado; una regla sencilla es escoger x de tal manera que cumpla la
regla emprica:
x = max{tip x, xk }
8. Derivadas complejas
14
+ ...
2!
3!
k
f '( x )
Im f ( x k + ih
en el punto x = 1.5;
18.59960712803634
18.60080067817763
18.60081261369893
18.60081273305415
18.60081273424770
18.60081273425964
18.60081273425976
18.60081273425976
18.60081273425976
18.60081273425976
18.60081273425976
18.60081273425977
18.60081273425976
18.60081273425976
18.60081273425976
18.60081273425976
18.60081273425976
18.60081273425976
15
9. Programacin en MATLAB
Clculo de la derivada por incrementos finitos:
function d=derivada(f,x0)
% f representa la funcin de Matlab que contiene la funcin a derivar
% x0 representa el punto donde se calcula la derivada.
f1=feval(f,x0); % Calculamos la funcin en el punto X0
h=sqrt(eps)*x0;% Valor de incremento de x
f2=feval(f,x0+h); % Calculamos la funcin en el punto incrementado
d=(f2-f1)/h; % Incrementos finitos
x
programamos la funcin de Matlab que contiene la funcin a derivar:
function f=cinetica(t,x)
f=-15*exp(-123/x);
16