METODOS NUMERICOS UN PRIMER CURSO IvAN FRANCISCO ASMAR CHARRIS PROFESOR ASOCIADO J,!!a;vamAD 1~~" II .:: J.UJ.l t t E! COLOMBIA. ,I DEPTO. D E B lBUOTECAS 'IBLlOTECA "EFE" GOME? UNIVERSIDAD NACIONAL DE COLOMBIA SEDE MEDELLIN FACULTAD DEPARTAMENTO DE DE 1999 CIENCIAS MATEMATICAS I I~I I I I I 6 4000 00128374 9 / rIq·J-j 1S METODOS NUMERICOS UN PRIMER CURSO Segunda Edici6n 1999 ISBN 958-9352-12-X Caratula: "Fractal ". 1999 Horacio Arango Marin Profesor Asociado Universidad Nacional Medellin Diseno de caratula: Hector H. Aristizabal G. Profesor Asociado Universidad Nacional Medellin Ayudas computacionales: Julio C. Morales C. Profesor Asociado Universidad Nacional Medellin Asistencia tecnica: Libardo Lotero Valencia Asistente Administrativo Facultad de Ciencias Universidad Nacional Medellin Impreso en Medellin Esta obra se termin6 de imprimir en Julio de 1999 en la Litografia Graficas Montoya Se imprimieron 500 ejemp/ares I qqq ~.Jt Mis agradecimientos a la permanencia en esta instilllcioll par y fZlego como docen/e, me ha cos Mis agradecimientos a /a Universf'dad Naciona/ de Colombia, pues mi permanencia en esta institl/cion por mas de veinte anos, primero como estudiante y fuego como docente, me ha posibilitado e/ feliz termino de esta obra /win F Asmar Ch. l1NtvP:R~m 0 NACI( l~lALDI:! CoLOMBtA - ----- ! I ... ~ . • t If DEfT I). Vl..!. L I pI IOT~C AS R1Rl I { ,"'ITA "r-I· r " G"Ml ' INTRODUCCION EI presente material esta dirigido a servir de ayuda tanto a estudiantes como profesores en un primer curso de Metodos Numericos, y ha sido escrito teniendo en cuenta el programa del curso que se dicta actualmente para las carreras de Ingenierfa en la Universidad Nacional de Colombia, sede Medellin. En el primer capitulo se hace una introducci6n a la aritmetica de punto fiotante, errores de redondeo, estabilidad de un algoritmo y problemas mal condicionados. En el capitulo dos se estudian los metodos numericos basicos para encontrar ralces aproximadas de una ecuaci6n algebraica no-lineal en una variable. Se hace enfasis en los metod os de Punto Fijo y Newton-Raphson y la aplicaci6n de este ultimo en la busqueda de ralces reales de ecuaciones polin6micas. EI capitulo tres se dedica al estudio de metodos numericos para encontrar soluciones aproximadas de sistemas de ecuaciones lineales y no-lineales. En el caso de los sistemas lineales se estudian metodos directos basad os en la eliminaci6n de Gauss y los metodos iterativos de Jacobi, Gauss-Seidel y SOR; tambien se estudia con algun detalle el problema del condicionamiento de una matriz y su relaci6n con la soluci6n numerica de un sistema de ecuaciones. Para sistemas no-lineales se estudian los metod os de Punto Fijo y Newton­ Raphson , y como una aplicaci6n del metodo de Newton-Raphson, se estudia el metodo de Bairstow para hallar ralces reales y/o complejas de ecuaciones polin6micas. En el capitulo cuatro se tratan los temas de interpolaci6n polinomial y ajuste, segun mlnimos cuadrados, mediante polinomios. En 10 referente a la interpolaci6n se estudian las formas interpolantes de Lagrange y Newton y la interpolaci6n segmentaria cubica. Se hace aproximaci6n discreta polinomial por mlnimos cuadrados para un conjunto fin ito de puntos en el plano y se consideran los casos de ajuste exponencial, logarltmico y de potencia p~r minimos cuadrados. En el capitulo cinco se trata el calculo numerico de integrales definidas mediante los metodos de los Trapecios, Simpson (iJ y (%), Romberg , coeficientes indeterminados y cuadratura Gaussiana. .' Finalmente, el capitulo seis esta dedicado al estudio de algunos metod os numericos para la aproximaci6n discreta de la soluci6n de un problema de valor inicial para ecuaciones diferenciales ordinarias. En este capitulo he recogido los metodos unipasos de Euler, Euler mejorado, Heun, metodo de los tres primeros terminos de la serie de Taylor y metodo de Runge-Kutta de cuarto orden . AI final de cada capitulo se incluye una colecci6n de problemas, a manera de taller, para que el leCtor complemente los aspectos te6ricos y se ejercite en las aplicaciones. vi INTRODUCCION Hace algunos anos, los cursos de metodos numericos eran practicamente te6ricos , ya que el acceso a los computadores era diflcil. A los estudiantes se les ensenaba c6mo trabajar los algoritmos numericos y se les mostraban los resultados de algunos programas hechos previamente en el computador, pero el estudiante tenia poca oportunidad de experimentar por si mismo con los algoritmos . Una vez que el computador fue mas accesible, el estudiante pudo experimentar algo mas con los metodos numericos, luego de capacitarse en algun lenguaje de programaci6n como BASIC , FORTRAN , PASCAL , etc., pero al gastar horas en la programaci6n de tales metodos, ya no disponia de tiempo suficiente para explorar un gran numero de algoritmos numericos diferentes Afortunadamente, en la actualidad disponemos de herramientas computacionales que no requieren del conocimiento de algun lenguaje de programaci6n , las cuales ademas de permitir explorar diversos algoritmos numericos, ofrecen entre otras las siguientes ventajas: se puede realizar un numero importante de iteraciones, 10 cual sin tales herramientas no seria posible 0 requeriria demasiado tiempo ; facilita el manejo de las funciones desde el punto de vista del calculo ; familiariza en el uso del computador; refuerza el trabajo en pequerios grupos y permite abordar algunos problemas que por la enorme cantidad de operaciones aritmetico-algebraicas involucradas no era posible tratar. Para lIevar a cabo los calculos numericos correspondientes a la mayorfa de los metodos .. numericos desarrollados en este texto, se ha escogido el paquete computacional DERIVE ( el cual es potente, amigable , de poco requerimiento de maquina y relativamente econ6mico) complementado con procedimientos en DERIVE elaborados por el profesor Julio Cesar Morales C , de nuestro Departamento de Matematicas. Por esta raz6n he agregado en esta segunda edici6n algunas instrucciones correspondientes a tales procedimientos, y que el lector encontrara enseguida de algunos ejemplos ; tambien he adicionado a este material un disquete que contiene los procedimientos mencionados. Para complementar la informaci6n en DERIVE , aqui utilizada, puede consultarse el manual "Ayudese en Matematicas y Graficas con DERIVE", escrito por el profesor Morales (ver bibliografia) . Para utilizar las ayudas que vienen en el disquete, una vez que se ha cargado el DERIVE, ejecute el comando TRANSFER+ LOAD+UTILITY y digite X:\zETAM .MTH , donde X denota el nombre del drive donde insert6 el disquete (deje cargar completamente, sin tocar el teclado!). Tambien estan , dentro de las ayudas ofrecidas, unos archivos demostrativos correspondientes a cadauno de los capitulos desarrollados en este libro ; tales archivos contienen resultados de algunos ejemplos y problemas planteados en el texto. Para cargar estos archivos demostrativos , una vez que se ha cargado el archivo ZETAM .MTH, cargue el archivo que usted requiera , de acuerdo con el capitulo deseado, ejecutando el comando TRANSFER+DEMO y editando X:\CAP?DMO , donde ? denota el numero del capitulo (si desea salir de este archiv~ , use la tecla Esc). En el mismo disquete esta el archivo HMETODOS.MTH , que especifica las ayudas para la sintaxis de las funciones que se utilizan en los calculos numericos que aparecen en este texto y da una breve descripci6n de algunas de elias. Para hacer uso de estas ayudas, puede cargarlas ejecutando el comando TRANSFER+MERGE (agrega las expresiones que estan en el archivo que se carga a las que se encuentran en la ventana de Algebra) y editando X:\HMETODOS .MTH . Quiero agradecer al profesor Julio C computacional correspondiente a este desarrollo del curso de Metodos l'tUll ta'I'lIiIIlIII En la portada aparece el graflCo de un lenguaje PASCAL por el profesor de la Universidad Nacional, sede la funci6n f(Z) ::: Z2 +c, con zee · 0 Zo e[-2,2] x [-2,2] (condici6n InlCill). condici6n inicial dada zo, el NUllil lrtlft1 Finalmente, quiero agradecer al sobre este material, las cua" profesores Mario Arias Zabala Manuel, actual Director del para IIevar a cabo este trabajo. Des.­ INTRODUCCI6N )s numericos eran practicamente te6ricos, ya que el los estudiantes se les ensenaba c6mo trabajar los ,an los resultados de algunos programas hechos ~studiante tenfa poca oportunidad de experimentar vii Quiero agradecer al profesor Julio C. Morales C por su valiosa ayuda en la parte computacional correspondiente a este material, ya que con su aporte se ha facilitado e/ desarrollo del curso de Metodos Numericos. En la portada aparece el grafico de un conjunto de Julia para c = 0.36 + 0.1Oi , realizado en cesible, el estudiante pudo experimentar algo mas pacitarse en algun lenguaje de programaci6n como I gastar horas en la programaci6n de tales metodos, explorar un gran numero de algoritmos numericos lenguaje PASCAL por el profesor Horacio Arango Marin , del Departamento de Matematicas de la Universidad Nacional, sede Medellin. Este conjunto se obtuvo mediante la iteracion de fa funci6n f(Z)=Z2+C, con ZEC; Zo e[-2,2]x'[-2,2] 0 sea mediante la iteraclon Zn+1=Z~+C , n = 0,1, ... y (condici6n inicial) . Si la sucesi6n {Iznlt diverge a infinito para una condici6n inicial dada zo, el conjunto de todos estos puntos zo, se llama el conjunto de nales -que no ademas de 'tes ventajas: amientas no I es desde el I trabajo en cantidad de los metodos .. DERIVE (el economico) Julio Cesar ado en esta 'os, y que el material un orales (ver el DERIVE, X denota el el teclado l ). mostrativos les archivos I Para cargar 'H, cargue el :el comando capitulo (si el archivo e se utilizan de algunas el comando carga a las escape y su frontera se llama conjunto de Julia asociado a c. profesor Arango Marin por haberme facilitado tal grafico. Mis agradecimientos al Finalmente, quiero agradecer al profesor Abraham Asmar Ch . por sus valiosas sugerencias sobre este material, las cuales me permitieron mejorarlo significativamente , y a los profesores Mario Arias Zabala, actual Decano de la Facultad de Ciencias, y Arturo Jessie Manuel , actual Director del Departamento de Matematicas, por el apoyo que me brindaron para lIevar a cabo este trabajo . Ivan F. Asmar Ch. CONTENIDO CAPiTULO 1. ERRORES DE REDONDEO Y ESTABILIDAD 1.1 ARITMETICA FINITA 1.2 ERRORES DE REDONDEO 1.3 PERDIDA DE CIFRAS SIGNIFICATIVAS 1.4 ESTABILIDAD DE UN ALGORITMO 1.5 CONDICIONAMIENTO DE UN PROBLEMA TALLER 1. CAPiTULO 2. SOlUCI6N NUMERICA DE UNA ECUACI6N NO-LINEAL EN UNA VARIABLE 2.1 METODOS CERRADOS <-2.1.1 Metodo de Bisecci6n 2.1.2 Metodo de Posicion Falsa 2.2 METODOS ABIERTOS ......2.2.1 Metodo de Punto Fijo '-2.2.2 Metodo de Newton-Raphson 2.2.3 EI metodo de Newton-Raphson-Horner L2.2.4 Metodo de Newton-Raphson modificado 2.2.5 Metodo de la Secante 3 10 16 20 27 28 33 38 38 * 41 43 43 ~ 56 65 76 78 2.3 RAPIDEZ DE CONVERGENCIA 2.3.1 Orden "e convergencia del metodo de iteracion de Punto fijo 2.3.2 Orden de convergencia del metodo de Newton-Raphson TALLER 2. 84 86' 88 CAPiTULO 3. SOlUCION NUMERICA DE SISTEMAS DE ECUACIONES 93 3.1 SOLUCION NUMERICA DE SISTEMAS DE ECUACIONES LINEALES 3.2 METODOS DIRECTOS 3.3 SISTEMAS MAL CONDICIONADOS Y NUMERO DE CONDICION DE UNA MATRIZ 3.4 ESTRATEGIAS DE PIVOTEO 3.4.1 Pivoteo maximo por columna 3.4.2 Pivoteo escalado de fila 3.5 FACTORIZACION TRIANGULAR 3.5.1 Algunas aplicaciones de la factorizaci6n PA=LV 3.6 SISTEMAS TRIDIAGONALES 3.7 FACTORIZACION DE CHOLESKI 3.8 METODOS ITERATIVOS 3.8.1 Metodo iterativo de Jacobi 3.8.2 Metodo iterativo de Gauss-Seidel 3.8.3 Metodo SOR 80 93 94 99 114 114 116 117 119 120 124 127 129 141 149 X CONTENIDO 3.9 SOl,UCI6N NUMERICA DE SISTEMAS NO-LINEALES _ 3.10 CEROS COMPLEJOS DE POLINOMIOS : METODO DE BAIRSTOW ' TALLER 3. 155 156 162 167 174 CAPiTULO 4. INTERPOLACI6N POLINOMIAL Y AJUSTE POLINOMIAL 183 4.1 INTERPOLACI6N POLINOMIAL TALLER 4. 184 185 197 206 216 217 224 226 CAPiTULO 5. INTEGRACI6N NUMERICA 231 5.1 ALGUNAS F6RMULAS CERRADAS DE NEWTON-COTES 231 233 3.9.1 Iteraci6n de Punto Fijo para sistemas no-lineales 13.9 .2 Metodo de Newton-Raphson para sistemas no-lineales 4.1.1 Forma de Lagrange del polinomio interpolante 4.1 .2 Forma de Newton del polinomio interpolante 4.2 INTERPOLACI6N SEGMENTARIA CUBICA 4.3 AJUSTE DE UN POLINOMIO POR MINIMOS CUADRADOS 4.3.1 Regresi6n polinomial 4.3.2 Regresi6n exponencial. logaritmica y de potencia 5.1.1 Regia de los trapecios 5.1.2 Regia de Simpson (~) 237 5.1.3 Regia de simpson (% ) 241 5.4 METODO DE CUADRATURA GAUSSIANA TALLER 5. 253 259 263 269 CAPiTULO 6. SOLUCI6N NUMERICA DE PROBLEMAS DE VALOR INICIAL PARA ECUACIONES DIFERENCIALES ORDINARIAS 273 5.2 INTEGRACI6N DE ROMBERG 5.3 METODO DE LOS COEFICIENTES INDETERMINADOS 6.4 METODO DE RUNGE-KUTTA TALLER 6. 284 295 299 303 318 BIBLIOGRAFiA 323 iNDICE 325 iNDICE DE ALGORITMOS 329 SiMBOLOS, NOTACIONES Y ABREVIATURAS 331 6.1 METODO DE EULER 0 DE LA RECTA TANGENTE 6.2 UN METODO DE EULER MEJORADO 6.3 METODO DE LOS TRES PRIMEROS TERMINOS DE LA SERlE DE TAYLOR CAPfTULO 1 INTRODucclON AI momento de menudo con DroIlIIIfIlil cuya soluciOn continuaciOn con.... para los cualls . :.-." , I IS NO-LINEALES 155 156 162 167 CAPiTULO 1. ERRORES DE REDONDEO Y ESTABILIDAD 174 INTRODUCCICN AI momenta de aplicar las Matematicas a situacjones del mundo real nos encontramos a menudo con problemas que no pueden ser resueltos analiticamente 0 de manera exacta y A cuya soluci6n debe ser abordada con ayuda de algun procedimiento numerico. continuaci6n consideramos algunos problemas tipicos, ya formulados matematicamente, para los cuales estudiaremos tecnicas numericas de soluCi6n. 183 184 185 197 206 216 217 224 226 Problema 1.1 Encontrar el area de la regi6n comprendida entre las graficas de y = 2 sen x , y=e- x con XE[O,1t] .• Problema 1.2 Encontrar las rafces de la ecuaci6n polin6mica 231 Problema 1.3 Resolver los siguientes sistemas de ecuaciones: 231 233 a) EI sistema lineal AX = b con 237 241 A= 253 259 263 269 ~ 3 2 -I 0 0 0 -1 2 -1 0 0 0 -1 2 -1 0 0 -1 2 -1 -2 0 0 0 -1 2 1 -2 b= 0 2 b) EI sistema no-lineal { x' +XY' = 9 273 R 3x 2 y _ y3 =4 284 295 299 303 318 • Problema 1.4 Dada la siguiente tabla de datos correspondiente a una cierta funci6n y = f( x) , ~ f~:) Ilr_=_~__r-~-1__+-_0~~_-~~~__=~__r-=~~ 323 TABLA 1.1 325 encontrar el polinomio de menor grado que pase a traves de los puntos dados. 329 Cual sera una estimaci6n para los valores f( x) correspondientes a x = -1.5 Y x = 1.5? 331 .-.. -Problema 1.5 Hallar el valor de cada una de las siguientes integrales: • 2 METODOS NUMERICOS 1 b) Je x2 Los problemas anteriores sirven un primer curso de m'todOi nllnall una variable, soluci6n nu interpolaci6n polinomial, integrad6n inicial para ecuaciones dihtrlllCil.... dx 0 n c) 2J ~ ~1-~-4 -'dX 3 (ellptica) d) o J~ Inx x 2 • Problema 1.6 Resolver el problema de valor inicial d28 d8 + - +16sen8 = 0 dt dt -2 { 8(0) =~, 8'(0) = 0 • Un metoda numenco es un manera aproximada, la aritmeticos y 16glcos (Ooet'l~nM una tabla de va/ores, calculO finlta de nstrucciones preas. 16gicas (algoritmo), que fV'M~_ ( olucion num6rica) a bien lit depende, en parte, de la fICIldId) especiales y limltaclon emplear estos instrumen En re/aci6n can los problemas anteriores, tenemos que: En el problema 1.1, es necesario determinar los puntas de intersecci6n de las graficas de . y = 2 sen x y y = e -x , para 10 cual debemos resolver la ecuaci6n 2 sen x = e -x y no disponemos de un metoda algebraico para hacerlo. En el problema 1.2, se trata de hallar los ceros de un polinomio de grado 5 y, como sabemos, s610 se conocen metodos algebraicos para encontrar rarces de ecuaciones polin6micas de grado menor a igual que 4 . En el problema 1.3, tenemos dos sistemas de ecuaciones: EI de la parte a) es lineal y conocemos metodos de soluci6n (par ejemplo, el metoda de eliminaci6n Gaussiana) , sin embargo, para sistemas de tamano mayor, no s610 es conveniente sino necesario implementar tales metodos. a traves del computador (metodo numerico) . En la parte b) tenemos un sistema no-lineal y no conocemos metod as algebraicos generales para resolverlo . EI problema 1.4 se puede resolver anaifticamente (por interpolacion), sin embargo para determinar los coeficientes de dichos polinomios existen tecnicas que permiten encontrarlos rapidamente y que pueden implementarse en el computador. 5iendo los computadores indicar c6mo son los nUnilllftlul La mayoria de los conrtpUl._ los nLi meros reales contiene numeros raciloniIlI numeros de punto simplemente conJunto ell Cada nLimero del con• • finita), segun se indlCI Un numero del matematicamente en EI problema 1.5, corresponde a integrales definidas cuyo integrando tiene antiderivada que no es elemental. Finalmente, en el problema 1.6, la ecuaci6n diferencial ordinaria 2 d 8 d8 + - + 16sene = 0 (ecuaci6n de movimiento de un pendulo) dt dt -2 es no-lineal (por la presencia de sen 8) Y no disponemos de un metoda analitico para resolverla . J3 es un entero (Sistema Blnlrlc!l).41 Capitulo 1. ERRORES DE REDONDEO Y ESTABILIDAD 3 Los problemas anteriores sirven como motivaci6n para el estudio de cinco grandes temas en un pri mer cu rso de metodos numeric os: soluci6n numerica de una ecuaci6n no-lineal en una variable, soluci6n numerica de sistemas de ecuaciones lineales y no-lineales, interpolaci6n polinomial , integraci6n numerica y soluci6n numerica de problemas de valor inicial para ecuaciones diferenciales ordinarias Que es un metodo numerico? Un metodo numerico es un procedimiento media nte el cual se obtiene, casl slempre de manera aproximada, la soluci6n de ciertos problemas realizando calculos puramente aritmeticos y 16gicos (operaciones aritmeticas elementales, calculo de funcio nes, consulta de una tabla de valores, calculo propos iciona l, etc.). Un tal procedimiento consiste de una lista fin ita de instrucciones precisas que especifican una secuencia de operaciones algebraicas y 16gicas (algoritmo), que producen 0 bien una aproximaci6n de la soluci6n del problema (soluci6n numerica) 0 bien un mensaje. La eficiencia en el calcu lo de dicha aproximaci6n depende, en parte, de la faci lidad de implementaci6n del algoritmo y de las caracteristicas especiales y limitaciones de los instrumentos de calculo (los computadores ). En general, al emplear estos instrumentos de calculo se introducen errores Ilamados de redondeo. 1.1 ARITMETICA FINITA Siendo los computadores la herra mienta basica en los metodos numericos es conveniente indicar c6mo son los numeros del computador y c6mo se simula su aritmetica . La mayoria de los computadores usan s610 un subconjunto finito , relativamente pequeno, de los nu meros reales para representar a "todos" los numeros reales ; este conjunto, que s610 contiene numeros racionales y que describiremos mas adelante, es lIamado conjunto de numeros de pu nto flotante 0 conjunto de numeros de maqu ina en punto flotante 0 simplernente conjunto de punto flotante. Cada numero del computador se representa mediante un numero finito de digitos (aritmetica fin ita), segun se indica a contin uaci6n : Un numero del comp utador 0 de punto matematicamente en la forma flotante , distinto de cero, t {. f se describe I forma en la cuallos simbolos que all[ aparecen, tienen el siguiente significado: (J ~ = +1 0 (J = - 1 es el sig no del numero. es un entero que denota la base del sistema numerico usado. Por 10 general (Sistema Binario), ~ = 8 (Sistema Octal) 0 ~ = 16 ~ '" 2 (Sistema Hexadecimal ). ai, i = 1,2, ... , t , es un entero con 0 ~ ai ~ ~ - 1. Los enteros 0,1, .. ,0 - 1 son lIamados digitos en la base ~ Nosotros asumiremos en todo 10 que sigu e que numero se dice que esta en forma normalizada. a, :tc 0 , en cuyo caso el 4 METODOS NUMERIC OS a1 a2 at I' . a 1a 2) · . . a t ~ denota la suma 1" + 2+"'+ \ yes IIamada a mantlsa ( p p p 0 f racci'6 n deI numero . de punto flotante. EI entero t indica el numero de dfgitos en la base p que se usan para representar el numero de punta flotante , y es \\amado precisi6n . Por 10 general t = 6 0 t = 7 con ~ = 10 (precisi6n sencilla), t = 14 0 t = 15 can ~ = 10 (doble precisi6n). En algunos computadores se pueden hacer representaciones en precisi6n sencilla, doble precisi6n e incluso en precisi6n mayor. e es un entero lIamado el exponente, y es tal que L ~ e ~ U para ciertos enteros L y U; es comun encontrar L = - U a L = -U ± 1. Un caso frecuente es L = -63 Y U = 64 , para un total de 128 posibles exponentes. EI numero cero requiere una representaci6n especial. De acuerdo con 10 anterior un conjunto de punto flotante F queda caracterizado por cuatro parametros: a) La base p, b) La precisi6n t , c) Los enteros L y U tales que L ~ e ~ U , donde e es el exponente. Cualesquiera sean los parametros elegidos, los conjuntos de punta flotante correspondientes comparten las mismas caracterlsticas cualitativas, entre elias la carencia de algunas de las propiedades algebraicas de que gozan los numeros reales. . Una de las caracterfsticas de todo conjunto de punto flotante F es que es finito y tiene numeros diferentes (incluyendo el cera), y donde los distintos de cero estan en forma normalizada. En efecto: a 1 puede tomar p - 1 valores y ai, i = 2,3, ... , t puede tomar p valores, asf que hay (p - 1)p ... P =(p _1)pt-1 fracciones positivas distintas. '--v--' t-1 Ahora, considerando que el numero de posibles exponentes es U - L + 1, que el numero de punta flotante puede ser positiv~ 0 negativ~, y teniendo en cuenta que el numero cero esta tambi{m en el conjunto de punto flotante, concluimos que el conjunto F tiene numeros diferentes. Capitulo 1. ERRORES DE REDONDEO Y ESTABILIDAD 5 Lo anterior nos dice que se usan 2 ( ~ -1)~t- '(U - L + 1) + 1 numeros de punto fiotante para "representar" el conjunto continuo de los numeros reales (que es infinito) , 10 que impl ica que muchos numeros reales tendrfan que ser representados par un mismo numero de punto flotante . Como ejemplo, consideremos el conjunto de punto flotante F con para metros p == 2 (Binario) , t == 3 , L == -1 , U == 2. Tal conjunto F tiene numeros diferentes (inciuyendo el cero). Los numeros de F , distintos de cero, son de la forma con a, = 1, a 2, a 3 = 0, 1 Y e = - 1, 0, 1, 2 ; asf que las fracciones positivas disti ntas son: Combinando estas mantisas con los exponentes, obtenemos todos los numeros positivos de F que aparecen en la TABLA 1.2 siguiente. I MANTISA I EXP. -1 8 (.100) 2 = ­ 16 (.100) (.101) =!Q 2 16 (.101)2 x T' = ~ 16 (.110) xT' 2 =~ 16 (.111) = .!i 2 16 (.111) x T' 2 = (.110) 2 = 2 x T'=~ 16 ~ 16 ~ 16 (.100) x 2° .. 2 = ~ 16 (.101) x 2° = !Q 2 16 (.110) x 2° 2 I EXP. I EXP. 1 I EXP. 0 ==~ 16 (.111) x 2° = .!i 2 16 TABLA 1.2 2 I =~ 16 (.100) x 22 == 32 2 16 (.101) x 2' = 20 2 16 (.101)2 22 == 40 16 (.110) 2 x 2 ,= 24 16 (.1 10 ) x 2 2 =48 ­ 2 16 (.111) x 2' = 28 2 16 (.1 11) x 22 2 (.100) x 2' 2 = 56 16 6 METOOOS NUMERICOS Como estamos mas familiarizados con los numeros decimales (en base p = 10), los 33 elementos de F en forma (racional) decimal son 16 -16' 20 16' 24 16 ' 28 32 40 48 56 +- + - + - + ­ 16 ' -16' -16' -16' -16 +- ± - ± - ± Una representaci6n de los numeros la FIGURA 1.1 siguiente. o ~T positiv~s , Iii 32 16 16 20 TS" 16 y el cero de F en la recta real se muestra en )( flex) b 40 16 , 48 16 regIon de under1low (subfJujo) 56: - 16 ~R I region de overflow (sobreflujo) FIGURA 1.1 Algunos hechos que se pueden observar en un conjunto de punta flotante F son: 1. Todo numero real x que entra en el computador 0 que es el resultado de un calculo, es reemplazado (si es posible) por un numero de punto flotante que notaremos fl(x). Existen reg las para escoger tal numero (reglas de redondeo), por 10 general es el numero de punto flotante mas cercano a x. La diferencia I x - f1( x) I se llama error (absoluto) de redondeo. 2. Si observamos la distribuci6n de los elementos de F , en la recta real, vemos que no estan igualmente espaciados (eslan mas densamente distribuldos ella cercanla del cero), 10 que implica que el error de redondeo puede depender del tamar'\o del numero (entre mas grande sea el numero en valor absoluto, mayor puede ser el error de redondeo). En el ejemplo, el numero de punto f10tante punto flotante positiv~ mas grande es positiv~ mas pequer'\o es ~ = .!. , y el numero de 16 4 56 = ~. 16 2 En general, en un conjunto de punto flotante F con param~tros p, t, L Y U, se tiene que es el numero de punta f10tante positiv~ mas pequer'\o (para el ejemplo, con y = FL = 2-1-1 = P-1 ±), y Capitulo 1. ERRORES DE REDONDEO Y ESTABILIDAD es el numero de punto flotantepositivo mas grande (para el ejemplo, Fu . A la regi6n RL = { X II E R / 0 < x < FL 7 = (1- 2- 3 )22 = !... ) se Ie llama region de underflow 2 0 subflujo, y en algunos computadores si un numero real cae en esta region, el numero es redondeado a cero . Por otra parte, a la regi6n Ru = { X E R / I xl > Fu ' se Ie llama region de overflow 0 sobreflujo, y en algunos computadores si un numero real cae en esta regi6n , el numero es redondeado al numero de punto flotante mas cercano (Fu , - Fu) 0 se infomia del fen6meno overflow. Se define como range del conjunto F, al conjunto De acuerdo con esto, todo numero de punto flotante , distinto de cero, fl(x) , debe satisfacer 3. La combinaci6n aritmetica usual +, -, x, siempre produce un numero de punto flotante . 7- de dos numeros de punto flotante no Supongamos que fl(x), fl(Y)EF. Veamos, como ejemplo, que la suma usual fl(x)+fl(y) no necesariamente sera un numero en F . Para ello consideremos el conjunto de punto f10tante F dado fl( x) + fl(Y) en = -28 16 el ejemplo: 5 33 =- ~ F . 16 16 +- fl(x) = ~: EF, fl(Y) = 1~ EF , sin embargo Luego la adici6n usual no es cerrada en el sentido matematico ordinario. Una manera de simular la adici6n Y las demas operaciones aritmeticas entre numeros rea les, pero realizadas por el computador es la siguiente: Si x e Y son numeros reales en el range de F , definimos las operaciones 83, 8, ® Y 8, a las que nos referiremos como operaciones de punta flotante , asi x EB Y = fl( fl( x) + fl( Y)) x 8 Y = fl( fl( x) - fl( Y)) x ® Y = fl( fl( x) x fl( Y)) x donde +, - x Y 7 8 Y = fl( fI( x) .;.fI(Y)) son las operaciones aritmeticas usuales. 8 METOOOS NUMERICOS Ilustraremos estas operaciones en 81 conjunto F del ejemplo, al tiempo que pondremos de manifiesto la carencia de ciertas propiedades para tales operaciones. Supondremos que f1(x) se escoge como el numero de punto f10tante mas cercano a x y que cuando el numero x equidista de dos numeros de punto f1otante, se escoge flex) como el mas cercano a la derecha si es positiv~ 0 el mas cercano hacia la izquierda si es negativo: luego · -28 y - 5 y supongamos que X, y E R son t aI es que Tomemos en F ,os I numeros 16 16 28 5 f1(x) = Y f1(Y) = - . Entonces 16 16 xG) Y = f1(28 16 + ~) = fl( 33) 16 16 = 32 16 x e y = f( 28 _~) = fl( 23) = 24 \1616 16 16 X!&> y=fl( 28 16 xEEJ y = fl( 28 16 x~) = fl( 35) = 32 = ~ 16 64 -;- ~) = fl( 28) = 56 16 5 t 16 64 16 (fen6meno overflow) 28 56 Overflow, ya que - > - = Fu 5 16 Air que 6 6 Tomemos - EF Y supongamos que z ER es tal que fl(z) = - , entonces 16 16 z e y = fl(~ - ~) =f1( _1 ) = 0 16 16 16 Fi_ . . . (fen6meno underflow) 1 4 t Underflow, ya que 0 < - < 16 Como 16 1 = 16 14 5 10 ' "87 = 16 ' s = 16 E F, 7 5 f~V)=S Y f1(W) = s ' Entonces entonces existen u, v, WE R = FL 16 tales que fl(U) = 1,