You are on page 1of 11

011

Mtodos numricos aplicados a la ingeniera


titular; uno de los criterios de seleccin es la estabilidad del algoritmo; esto es, que a pequeos errores de los valores manejados se obtengan pequeos errores en los resultados finales. Supngase que un error E se introduce en algn paso en los clculos, y que el error de propagacin de n operaciones subsiguientes se denota por E n . En la prctica, por lo general se presentan dos casos. I E n I e nc E, donde c es una constante independiente de re se dice entonces que la propagacin del error es lineal. I E n I = /e' E, para k> 1; se dice entonces que la propagacin del error es exponencial. La propagacin lineal de los errores suele ser inevitable; cuando c y E son pequeos, los resultados finales normalmente son aceptables. Por otro lado, la propagacin exponencial debe evitarse, ya que el trmino crece con rapidez para valores relativamente pequeos de n. Esto conduce a resultados finales muy poco exactos, sea cual sea el tamao de E. Como consecuencia, se dice que un algoritmo con crecimiento lineal del error es estable, mientras que un algoritmo con una propagacin exponencial es inestable (vase Fig. 1.4).

Propagacin exponencial -

e,=Me

Figura 1.7

9 Propagacin lineal_

Propagacin lineal y
propagacin exponencial de errores.
E

e
9 E 1:1

.
El 0

e=nce

a .
9 n 10

9 2 4

1 7

1 8

Ejercicios

1.1 Error de redondeo al restar dos nmeros casi iguales. Vamos a considerar las ecuaciones 31.69x + 14.31 y 45.00 13.05x + 5.89 y = 18.53 (1) (2)

La nica solucin de este sistema de ecuaciones es (redondeando a cinco cifras d males) x = 1.25055, y = 0.37527. Un mtodo para resolver este tipo de problemas es n) tiplicar la ecuacin (1) por el coeficiente de x de la ecuacin (2), multiplicar la ecuaci

Mtodos numricos aplicados a la ingeniera

tieular; uno de los criterios de seleccin es la estabilidad del algoritmo; esto es, que os errores de los valores manejados se obtengan pequeos errores en los resultado Supngase que un error E se introduce en algn paso en los clculos, y qut de propagacin de n operaciones subsiguientes se denota por E n. En la prctica, p neral se presentan dos casos. I
E 1

n c E, donde c es una constante independiente de n; se dice

que la propagacin del error es lineal. I E, I = le E, para k > 1; se dice entonces que la propagacin del en ponencial. La propagacin lineal de los errores suele ser inevitable; cuando c y E so os, los resultados finales normalmente son aceptables. Por otro lado, la propagaci nencial debe evitarse, ya que el trmino kn crece con rapidez para valores relat pequeos de n. Esto conduce a resultados finales muy poco exactos sea cual sea e de E. Como consecuencia se dice que un algoritmo con crecimiento lineal del erre ble, mientras que un algoritmo con una propagacin exponencial es inestable (vase

Propagacin exponencial e= k"e

Figura 1.7 Propagacin


lineal y

e a
2 3 4 5 6

Propagacin lineal

e= /ICE

propagacin exponencial de errores.

10

Ejercicios

1.1 Error de redondeo al restar dos nmeros casi iguales. Vamos a considerar las ecuaciones 3I.69x + 14.31 y = 45.00 13.05x + 5.89 y = 18.53 La nica solucin de este sistema de ecuaciones es (redondeando a cinco ci males)x = 1.25055, y = 0.37527. Un mtodo para resolver este tipo de problema tiplicar la ecuacin (1) por el coeficiente de x de la ecuacin (2), multiplicar la

Errores

21

1, que a pequeMados finales. y que el error tica, por lo gedice entonces

(2) por el coeficiente de x de la ecuacin (1) y despus restar las ecuaciones resultantes. Para este sistema se obtendra (como los coeficientes tienen dos cifras decimales, todas las operaciones intermedias se efectan redondeando a dos cifras decimales): [13.05 (14.31) - 31.69 (5.89) I = 13.05 (45.00) - 31.69 (18.53) (186.75 - 186.65) y = 587.25 - 587.22 0.10 y = 0.03 e donde y= 0.3, luego

el error es exx -

(18.53) - 5.89 (0.3)


13.05

18.53 - 1.77
13.05

16.76 _ 128
13.05

E son pequeagacin exporelativamente sea el tamao 1 error es esta&se Fig I 4)

Para la variable x
EA = 1 1.28 - 1.25 1 = 0.03; ER = 0.03/1.25 = 0.024; ERP = 2.4%

Para la variable y
EA =1 0.3 - 0.38 1= 0.08; ER = 0.08/0.38 = 0.21; ERP = 21%

1.2 Error de redondeo al sumar un nmero grande y uno pequeo. Considere la sumatoria infinita
5= - = n i n 2 1

1 1 1 I - - - - - . . . 4 9 16 25

1 - . . . 100

resulta (usando precisin sencilla y 5000 como valor final de n) 1.644725 si se suma de izquierda a derecha, permesulta 1.644834 si se suma de derecha a izquierda, a partir de
n = 5000.

Debe notarse que el resultado de sumar de derecha a izquierda es ms exacto, ya que en todos los trminos se suman valores de igual magnitud. 1111 Por el contrario, al sumar de izquierda a derecha, una vez que se avanza en la sumatoria, se sumarn nmeros cada vez ms grandes con nmeros ms pequeos. Lo anterior se corrobora si se realiza la suma en ambos sentidos, pero ahora con doble precisin. El resultado obtenido es 1.64473408684689 (estos resultados pueden variar de mquina a mquina). 13 Reduccin de errores. Para resolver la ecuacin cuadrtica 100 x2 - 10011 x + 10.011 = 0, el mtodo comn sera usar la frmula
-b ,162 -

4ac

2a despus de dividir la ecuacin entre 100. x2 - 100.11x+ 0.1001i = O cifras decimas es mulla ecuacin

100.11 V(-100.11)2 - 4(0.10011)


2

Mtodos numricos aplicados a la ingeniera Trabajando con aritmtica de cinco dgitos x= 100.11 i/10022 0.40044 2 100.11 100.11 2 100.11 111022 2

200.22 100.11 0 2

las soluciones verdaderas, redondeadas a cinco dgitos decimales son 100.11 y 0.00100. El mtodo empleado fue adecuado para la solucin mayor, pero no del todo para la solucin menor. Si las soluciones fueran divisores de otras expresiones, la solucin x = O hubiese causado problemas serios. Se restaron dos nmeros "casi iguales" (nmeros iguales en aritmtica de cinco dgitos) y sufrieron prdida de exactitud. Cmo evitar esto" Una forma sera reescribir la expresin para la solucin de una ecuacin cuadrtica a fin de evitar la resta de nmeros "casi iguales". El problema, en este caso, se da en el signo negativo asignado a la raz cuadrada; esto es

-42 - +162 - 4 a c 2a Multiplicando numerador y denominador por -b + -? (-6 -


- 4 a c

4a c, queda

(-6 + -162 - 4 a c) _ (-6)2 - (62 - 4 a c ) 2a (-6 + 162 - 4 a c) 2a (-a + 162 - 4 a c) 2c 4a c 2a (-6 + 362 - 4 a c) (-6 + -116 2 - 4ac) a = 1, b = 100.11, y c =0.10011, se obtiene
0.20022 0.001 (en aritmtica de cinco dgitos) 200.22

Usando esta expresin con 2 ( 0.10011) 100.11 + 1 0022

que es el valor verdadero, redondeado a cinco dgitos decimales. Esta forma alternativa para calcular una raz pequea de una ecuacin cuadrtica, ca. si siempre produce una respuesta ms exacta que la de la frmula usual (vase Prob. 2.31) 1.4 Ms sobre reduccin de errores. Se desea evaluar la expresin A / ( 1 sen x ), en x = 89 41'. En tablas con cinco cifra; decimales, sen 89 41' = 0.99998. Con aritmtica de cinco dgitos y redondeando se tiem sen x = 0.99998 y 1 sen x= 0.00002 El valor de sen x slo tiene cuatro dgitos exactos (confiables). Por otro lado, el ni co dgito que no es cero en 1 sen x se ha calculado con el dgito no confiable de sen por lo que se pudo perder la exactitud en la resta. Esta situacin de arriba puede mejorarse observando que cos i x 1 sen2 x ( I sen x )( 1 + sen x ) I sen x = 1 + sen x 1 + sen x 1 + sen x

Errores

23

Por esto, es posible escribir 1 sen x de una forma que no incluye la resta de dos nmeros casi iguales. 1.5 Comparaciones seguras. En los mtodos numricos, a menudo la comparacin de igualdad de dos nmeros en notacin de punto flotante permitir terminar la repeticin de un conjunto de clculos (proceso cclico o iterativa), En vista de los errores observados, es recomendable comparar la diferencia de los dos nmeros en valor absoluto contra una tolerancia e apropiada, usando por ejemplo el operador de relacin menor o igual ( ). Esto se ilustra enseguida. En lugar de
SI X = Y ALTO;

En caso contrario REPETIR las instrucciones 5 a 9

Deber usarse:
SI ABS (XY)  e ALTO;

en caso contrario REPETIR las instrucciones 5 a 9.

En lugar de REPETIR { Pasos de un ciclo )


HASTA

QUE X= Y

Deber usarse REPETIR ( Pasos de un ciclo}


HASTA

QUE ABS

(XY) 5 e

donde e es un nmero pequeo (generalmente menor que uno, pero puede ser mayor, /dependiendo el contexto en que se trabaje) e indicar la cercana de X con Y que se aceptail como "igualdad" de X y K 1.6 Anlisis de resultados.
Al

ejecutar las siguientes instrucciones en Visual Basic con doble precisin y en Matlab, se tiene, respectivamente:

Se obtiene: 0.200000000000045

Se obtiene: 0.20000000000005

Ejecute las mismas instrucciones pero usando Y= 1000.25. Los resultados ahora son correctos. Explquelo.

24

Mtodos numricos aplicados a la Ingeniarla En doble precisin pueden manejarse alrededor de quince dgitos decimales de exactitud, de modo que la resta de arriba se representa 1000.200 - 1000.000 La computadora convierte Y a binario dando un nmero infinito de ceros y unos, y almacena un nmero distinto a 1000.2 (vase Prob. 1.6 b). Por otro lado, 1000 s se puede almacenar o representar exactamente en la computadora en binario en punto flotante (los nmeros con esta caracterstica se llaman nmeros mquina). Al efectuarse la resta se obtiene un nmero diferente de 0.2. Esto muestra por qu deber analizarse siempre un resultado de un dispositivo digital antes de aceptarlo. 1.7 Ms sobre anlisis de resultados. El mtodo de posicin falsa (vase seccin 2.4) obtiene su algoritmo al encontrar el punto de corte de la lnea recta que pasa por los puntos ( xp, yo ), ( xp yi ) y el eje x. Pueden obtenerse dos expresiones para encontrar el punto de corte xm

i)

xm =

x, yo - xoy! (xDxl)yD fi) xm Y o - Y I YD- Y1

Si (xD , yD)= ( 2.13, 4.19) y ( , y,) . (1.96, 6.87) y usando aritmtica de tres dgitos y redondeando, cul es la mejor expresin y por qu? Solucin Sustituyendo en i) y en ii) i) fi)
xm=

1.96 ( 4.19 )- 2.13 ( 6.87 ) - 2.38 4.19 - 6.87 2.13 - ( 2.13 - 1 .96 )4. 19 - 2.40 4.19 - 6.87

xm =

Al calcular los errores absoluto y relativo, y tomando como valor verdadero a 2.395783582, el cual se calcul con aritmtica de 13 dgitos, se tiene: EA = ER = EA = El? =

2.395783582 - 2.38 = 0.015783582 0.015783582 2.395783582


-

0.006588066

2.395783582 - 2.40 = 0.004216418 0.004216418 2.395783582 0.001759932

de donde es evidente que la forma fi) es mejor. Se sugiere al lector reflexionar sobre el por qu.

Problemas
1.1 Proporcione los smbolos o numerales romanos correspondientes a los siguientes smbolos arbigos 10, 100, 1000, 10000, 100000, 1000000

Errores

25

1.2

Convierta' los siguientes nmeros decimales a los sistemas con base 2 y base 8, y viceversa.
a) 536
b)

923 573

c) 1536

d) 8 d) 2

e) 2 e) 10

f) 10 g)

1.3 1.4

Convierta los siguientes nmeros enteros del sistema octal a binario y viceversa.
a) 777
b)

c) 7

D0

Resuelva las siguientes preguntas. El nmero 101121 pertenece al sistema binario? El nmero 3852 pertenece al sistema octal? Si su respuesta es NO en alguno de los incisos, explique por qu; si es S, convirtalo(s) a decimal.

1.5

Convierta los siguientes nmeros dados en binario a decimal y viceversa, usando la conversin a octal como paso intermedio a) 1000
b) 10101 c) 111111

1.6 1.7

Convierta los siguientes nmeros fraccionarios dados en decimal, a binario y octal a) 0.8 -
b)

0.2

c) 0.973

d) 0.356

e) 0.713

1) 0.10

Convierta los siguientes nmeros fraccionarios, dados en binario, a decimal


a) 0.1 fi 0.0110111
b)

0.010101 c) 0.0001

d) 0.11111 e) 0.00110011

1.8 1.9

Repita los incisos a)al) del problema 1.7, pero pasando a octal como paso intermedio. Convierta los siguientes nmeros, dados en decimal, a octal y binario.
a) 985.34' g) 0.9389
b)

10.1

c) 888.222_d) 3.57

e) 977.93

fi 0.357

h) -0.9389

1.10 1.11 1.12 1.13

En la seccin 1.2 se dijo que cada palabra de 16 bits puede contener un nmero ero cualquiera del intervalo -32768 a +32767. Investigue por qu se incluye al -32768, o \ien por qu el intervalo no inicia en -32767. Considere una computadora con una palabra de 8 bits. Qu rango de nmeros enteros puede contener dicha palabra? Represente el nmero -26 en una palabra de 8 bits. Dados los siguientes nmeros mquina en una palabra de 16 bits 1 1
O

1 1

1 1
O

1
1
1

c)

Qu decimales representan? 1.14 Normalice los siguientes nmeros a) 723.5578


b)

-15.324

c) 0.003485 d) 8 X 103

' Puede usar el Programa 1.1 del disco para comprobar sus resultados.

Mtodos numricos aplicados a la Ingeniarla SUGERENCIA: Pasar los nmeros a binario y despees normalizarlos. 1.15 1.16 Represente en doble precisin el nmero decimal del ejemplo 1.10 Elabore un programa para la calculadora o el dispositivo de clculo con el que se cuente, de modo que el nmero 0.0001 se sume diez mil veces consigo mismo 0.0001 + 0.0001 + + 0.0001 10000 2 1 El resultado deber imprimirse. Interprete este resultado de acuerdo con los siguientes lineamientos Si es 1, cmo es posible si se sumaron diez mil valores que no son realmente 0.0001? En caso de obtener 1, explore con el valor 0.00001, 0.000001, etc., hasta obtener un resultado diferente de 1. c) Es posible obtener un resultado menor de 1? Por qu? Con el programa del problema 1.16 efecte los clculos de los incisos a) a d) del ejemplo 1.12 y obtenga los resultados de la siguiente manera Inicialice la variable SUMA con 0, 1, 1000 y 10000 en los incisos a), b), c) y d), respectivamente, y luego en un ciclo smese a ese valor diez mil veces el 0.0001. Anote sus resultados. Inicialice la variable SUMA con 0 para los cuatro incisos y al final del ciclo donde se habr sumado 0.0001 consigo mismo 10000 veces, sume a ese resultado los nmeros 0, 1, 1000 y 10000 e imprima los resultados. Interprete las diferencias de los resultados. 1.18 La mayora de las calculadoras cientficas almacenan dos o tres dgitos de seguridad ms de los que despliegan. Por ejemplo, una calculadora que despliega ocho dgitos puede almacenar realmente diez (dos dgitos de seguridad); por tanto, ser un dispositivo de diez dgitos. Para encontrar la exactitud real de su calculadora, realice las siguientes operaciones. Divida 10 entre 3, al resultado rstele 3. Divida 100 entre 3, al resultado rstele 33. Divida 1000 entre 3, al resultado rstele 333. Divida 10000 entre 3, al resultado rstele 3333. Notar que la cantidad de los nmeros 3 desplegados se va reduciendo. La cantidad de 3 desplegada en cualquiera de las operaciones anteriores, sumada al nmero de ceros utilizados con el 1, indica el nmero de cifras significativas que maneja su calculadora. Por ejemplo, si con la segunda operacin despliega 0.3333333 la calculadora maneja nueve cifras significativas de exactitud (7 + 2 ceros que tiene 100). N OTA: Si su calculadora es del tipo intrprete BASIC, ni: p.-realice las operaciones como 1000/3-333 porque obtendr otros resultados. 1.19 Evale la expresin A I ( 1-cos x ), en un valor de x cercano a O. Cmo podra evitar la resta de dos nmeros casi iguales en el denominador? 1.20 Determine en su calculadora o microcomputadora si muestra un mensaje de ovedlow o no. 1.21 Deduzca las expresiones para xm dadas en el ejercicio 1.7. 1.22 Un nmero mquina para una calculadora o computadora es un nmero real que se almacena exactamente (en forma binaria de punto flotante). El nmero 125.32 del ejemplo 1.10,

26

1.17

Errores

27

evidentemente no es un nmero de mquina (si el dispositivo de clculo tiene una palabra de 16 bits). Por otro lado, el nmero 26 del ejemplo 1.8 s lo es, empleando una palabra de 16 bits. Determine 10 nmeros de mquina en el intervalo [10- 19, 1018 1 cuando se emplea una palabra de 16 bits. 1.23 Investigue cuntos nmeros mquina positivos es posible representar en una palabra de 16 bits. 1.24 Haga el anlisis de la propagacin de errores para la resta (vase anlisis de la suma, en la seccin 1.3). 1.25 Se desea evaluar la funcin e ir en el punto x = 1.0; sin embargo, si el valor de x se calcul en un paso previo con un pequeo error y se tiene x* = 1.01; determine Ef con las expresiones dadas en la evaluacin de funciones de la seccin 1.3. Luego determine Ef como f (1) f (1.01) y compare los resultados. 1.26 Resuelva el siguiente sistema de ecuaciones, usando dos cifras decimales para guardar los resultados intermedios y finales. 21.76x + 24.34y = 1.24 14.16x + I5.84y = 1.15

y determine el error cometido. La solucin exacta (redondeada a 5 cifras decimales es) x = 347.89167, y = 311.06667. 1.27 Codifique el siguiente algoritmo en su microcomputadora (use precisin sencilla) PASO 1. Leer A. PASO 2. Mientras A>0, repetir los pasos 3 y 4. PASO 3. IMPRIMIR Ln(Exp(A))A, Exp(Ln(A))A PASO 4. Leer A PASO 5. TERMINAR. Ejectelo con diferentes valores de A, por ejemplo 0.2, 0.25, 1, 1.5, 1.8, 2.5, 3.14159, 0.008205, etc., y observe los resultados. 1.28 Modifique el programa del problema del ejemplo 1.27 usando doble precisin para A y compare los resultados. 1.29 Modifique el paso 3 del programa del problema 1.27 para que quede as IMPRIMIR SQR(A A 2) A, SQR(A) A 2 A y vuelva a ejecutarlo con los mismos valores. 1.30 Realice la modificacin indicada en el problema 1.29 al programa del problema 1.28. Compare los resultados. 1.31 Repita los problemas 1.27 a 1.30 con lenguaje Pascal (puede usar Delphi, por ejemplo), con lenguaje Visual C++ y compare los resultados con los obtenidos en Basic.

RESPUESTAS A PROBLEMAS SELECCIONADOS


CAPITULO 1 1.2 a) 536 10 = 1030 8 = 10000110002 923 10 = 1633 8 = 1110011011z 1536 8 = 3000 8 = 110000000002 10002 8 10 = 10 8 = 102 28 = 10 = 2 10102 10 = 12s = 10 88 -12 10 = 7778 = 1111111112 5738 = 1011110112 1112 78 = 28 = 102 10002 108 = 08 = 02 1.4 a) 10002 101012 1111112 810 2110 6310

g)

1.9

1111011001.0101011102 a) 985.34 10 = 1731.256g 1010.000110011 2 12.063s 10.110 == / 1101111000.0011000110102 888.222 10 = 1570.16158 9 11.1001000111102 3.44368 3.5710 = 1111010001.1110111000012 977.93 10 = 1721.7341 s 0.0101101101102 0.26662 0.357 10 =. 0.1111000001011011112 0.9389 10 = 0.740557g -0.1111000001011011112 h) -0.9389 10 = -0.7405578 1,
a) 0.19921875 -160 9306112 a) 0.1011010011100011101100101 X 21010 -0.111101010010 1111 x 2100 0.1110010001100 1001 X 2-10 d) 0.1111101 X 21101 La mantisa normalizada ms pequea en binario es 0.10000000 (=112 en decimal), no 0.00000001 (2- 8 )y la mayor es0.11111111 (= 1). te, 11, Por esto, los nmeros de mquina positivos deben quedar en el intervalo cerrado donde

1.13

1.14

1.23

586

Mtodos numricos aplicados a la ingeniera


s = nmero de mquina positivo ms pequeo = (0.10000(100)X2-84

= 2-88 = 0.2710505 X 10-18 y


L

nmero de mquina positivo mayor = + (0.11111111) X263 = 0.91873437 X 1012

El intervalo [s, L] puede dividirse en 128 subintervalos


[s, 2s),

[2s, 22s), E=-63

[22s, 23s), E=-62

[2126s 2127s) , [2127

s,

L]

E= -64

E= +62

E=+63

donde E es la caracterstica. Ntese que cada subintervalo es dos veces ms grande que su predecesor. Para cada E hay 28 posibles mantisas normalizadas. Por tanto, una computadora con una palabra de 16 bits puede almacenar un total de 128 x 28 = 32768 nmeros positivos de mquina en el intervalo [5,1] 1126 x qt
CAPITULO

-278; y = 248.67 2
2
;

2.1

a) g' (x) - (x + g' (x)-

x> 0.26 X < -2 26 1.125

2 (x - it2/3 3 (x ion ; x >

g' (x) cos x; g , (4.x+ lnx


CO

x=nn;n= O, 1, 2,...
1

2 tanx
g' (x) = I +

(1 / x) tan x - In x sec2x ; - 3.8; x = 4.2 2 tan 2x



1 + 3x2

e) g' (x)-

4./ 6 - x -x3

x - 013 . x - 1 2 x 0; x - 0.5

sec x sec x tan x I) g' (x) = ; g' (x) = 2 2 2.3 (del problema 2.1) a) 0.46557 z = 4.09546

b) 5 = 4.87035 e) x= 1

e) = 0.
J) z --

0.61003

2.6 2.8

a) n multiplicaciones y n sumas 6) 2n multiplicaciones y n sumas


a) 1

= 3.14619

6) s -= 0.85261

R = 1.02987

d) 8

0.20164