Page 98 - Chapra y Canale. Metodos Numericos para Ingenieros 5edición_Neat
P. 98
74 APROXIMACIONES Y ERRORES DE REDONDEO
PROGRAM fig0311 PRINT *, ‘resultados con precisión
IMPLICIT none doble:’
REAL::a,b,c,d,x1,x2,x1r PRINT ‘(1x,a10,f20.14)’, ‘x1 = ’, x11
DOUBLE PRECISION::aa,bb,cc,dd,x11,x22 PRINT ‘(1x,a10,f10.4)’, ‘x2 = ’, x22
a = 1. PRINT *
b = 3000.001 PRINT *, ‘fórmula modificada para la
c = 3. primer raíz:’
d = SQRT(b * b - 4. * a * c) x1r = -2. * c / (b + d)
x1 = (-b + d) / (2. * a) PRINT ‘(1x,a10,f20.14)’, ‘x1 = ’, x1r
x2 = (-b - d) / (2. * a) END
PRINT *, ‘resultados con precisión
simple:’ SALIDA
PRINT ‘(1x, a10, f20.14)’, ‘x1 = ’, x1 resultados con precisión simple:
PRINT ‘(1x, a10, f10.4)’, ‘x2 = ’, x2 x1 = -.00097656250000
PRINT * x2 = -3000.0000
aa = 1. resultados con precisión doble:
bb = 3000.001 x1 = -.00100000000771
cc = 3. x2 = -3000.0000
dd = SQRT(bb * bb – 4. * aa * cc) fórmula modificada para la primera raíz:
x11 = (-bb + dd) / (2. * aa) x1 = -.00100000000000
x22 = (-bb – dd) / (2. * aa)
FIGURA 3.11
Programa en Fortran 90 para determinar las raíces de una ecuación cuadrática. Con precisiones simple y doble.
Considere que, como en el ejemplo anterior, hay veces en las que la cancelación por
resta se evita empleando una transformación. No obstante, el único remedio general es
usar la precisión extendida.
Dispersión. La dispersión ocurre generalmente cuando los términos individuales en
la sumatoria son más grandes que la sumatoria misma. Como en el siguiente ejemplo,
casos como éstos ocurren en las series con signos alternados.
x
EJEMPLO 3.8 Evaluación de e usando series infi nitas
x
Planteamiento del problema. La función exponencial y = e está dada por la serie
infinita
x 2 x 3
y =+ +1 x + +
2! 3!
Evalúe esta función para x = 10 y x = –10; esté atento al problema del error de redondeo.
Solución. En la figura 3.12a se muestra un programa en Fortran 90 que utiliza una
x
serie infinita para evaluar e . La variable i es el número de términos en la serie, term es
el valor de término actual que se le agrega a la serie, y sum es el valor acumulado de la
serie. La variable test es el valor acumulado precedente de la serie antes de la suma de
term. La serie se termina cuando la computadora no puede detectar la diferencia entre
test y sum.
6/12/06 13:44:17
Chapra-03.indd 74
Chapra-03.indd 74 6/12/06 13:44:17

