Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

Metodos numericos para ingenieros, 5ta ed - Chapra, Canale, Notas de estudo de Matemática

Metodos numericos

Tipologia: Notas de estudo

2018

Compartilhado em 20/02/2018

pee-7
pee-7 🇧🇷

4.7

(77)

28 documentos

1 / 1003

Documentos relacionados


Pré-visualização parcial do texto

Baixe Metodos numericos para ingenieros, 5ta ed - Chapra, Canale e outras Notas de estudo em PDF para Matemática, somente na Docsity! Métodos numéricos gd ss E TS a [o] o) Capra Bsjesen cc Chapra-Preliminares.indd ii 6/12/06 13:37:29 www.FreeLibros.me Métodos numéricos para ingenieros Quinta edición Steven C. Chapra Raymond P. Canale Decano de Computación e Ingeniería Profesor emérito de Ingeniería Civil Tufts University University of Michigan REVISIÓN TÉCNICA: M.C. Juan Carlos del Valle Sotelo Catedrático del Departamento de Física y Matemáticas ITESM, campus Estado de México MÉXICO • BOGOTÁ • BUENOS AIRES • CARACAS • GUATEMALA • LISBOA • MADRID NUEVA YORK • SAN JUAN • SANTIAGO • AUCKLAND • LONDRES • MILÁN MONTREAL • NUEVA DELHI • SAN FRANCISCO • SINGAPUR • SAN LUIS • SIDNEY • TORONTO Chapra-Preliminares.indd iii 6/12/06 13:37:29 www.FreeLibros.me Director Higher Education: Miguel Ángel Toledo Castellanos Director editorial: Ricardo A. del Bosque Alayón Editor sponsor: Pablo E. Roig Vázquez Editora de desarrollo: Lorena Campa Rojas Supervisor de producción: Zeferino García García Traducción: Javier Enríquez Brito Ma. del Carmen Roa Hano MÉTODOS NUMÉRICOS PARA INGENIEROS Quinta edición Prohibida la reproducción total o parcial de esta obra, por cualquier medio, sin la autorización escrita del editor. DERECHOS RESERVADOS © 2007 respecto a la quinta edición en español por McGRAW-HILL/INTERAMERICANA EDITORES, S.A. DE C.V. A Subsidiary of The McGraw-Hill Companies, Inc. Edifi cio Punta Santa Fe Prolongación Paseo de la Reforma 1015, Torre A Piso 17, Colonia Desarrollo Santa Fe, Delegación Álvaro Obregón C.P. 01376, México, D. F. Miembro de la Cámara Nacional de la Industria Editorial Mexicana, Reg. Núm. 736 Créditos de las fotografías de portada: © Jack Novack / SuperStock. MATLABTM es una marca registrada de The MathWorks, Inc. ISBN-13: 978-970-10-6114-5 ISBN-10: 970-10-6114-4 (ISBN: 970-10-3965-3 edición anterior) Traducido de la quinta edición en inglés de la obra NUMERICAL METHODS FOR ENGINEERS, FIFTH EDITION. Copyright © 2006 by The McGraw-Hill Companies, Inc. All rights reserved. ISBN: 0-07-291873-X 1234567890 09865432107 Impreso en México Printed in Mexico Chapra-Preliminares.indd iv 6/12/06 13:37:30 www.FreeLibros.me A Margaret y Gabriel Chapra Helen y Chester Canale Chapra-Preliminares.indd v 6/12/06 13:37:30 www.FreeLibros.me viii CONTENIDO CAPÍTULO 4 Errores de truncamiento y la serie de Taylor 78 4.1 La serie de Taylor 78 4.2 Propagación del error 95 4.3 Error numérico total 99 4.4 Equivocaciones, errores de formulación e incertidumbre en los datos 101 Problemas 103 EPÍLOGO: PARTE UNO 105 PT1.4 Alternativas 105 PT1.5 Relaciones y fórmulas importantes 108 PT1.6 Métodos avanzados y referencias adicionales 108 PARTE DOS PT2.1 Motivación 113 PT2.2 Antecedentes matemáticos 115 PT2.3 Orientación 116 CAPÍTULO 5 Métodos cerrados 120 5.1 Métodos gráfi cos 120 5.2 El método de bisección 124 5.3 Método de la falsa posición 131 5.4 Búsquedas por incrementos y determinación de valores iniciales 138 Problemas 139 CAPÍTULO 6 Métodos abiertos 142 6.1 Iteración simple de punto fi jo 143 6.2 Método de Newton-Raphson 148 6.3 El método de la secante 154 6.4 Raíces múltiples 159 6.5 Sistemas de ecuaciones no lineales 162 Problemas 167 CAPÍTULO 7 Raíces de polinomios 170 7.1 Polinomios en la ciencia y en la ingeniería 170 7.2 Cálculos con polinomios 173 7.3 Métodos convencionales 177 7.4 Método de Müller 177 7.5 Método de Bairstow 181 7.6 Otros métodos 187 RAÍCES DE ECUACIONES 113 Chapra-Preliminares.indd viii 6/12/06 13:37:32 www.FreeLibros.me CONTENIDO ix 7.7 Localización de raíces con bibliotecas y paquetes de software 187 Problemas 197 CAPÍTULO 8 Estudio de casos: raíces de ecuaciones 199 8.1 Leyes de los gases ideales y no ideales (ingeniería química y bioquímica) 199 8.2 Flujo en un canal abierto (ingeniería civil e ingeniería ambiental) 202 8.3 Diseño de un circuito eléctrico (ingeniería eléctrica) 206 8.4 Análisis de vibraciones (ingeniería mecánica e ingeniería aeronáutica) 209 Problemas 216 EPÍLOGO: PARTE DOS 227 PT2.4 Alternativas 227 PT2.5 Relaciones y fórmulas importantes 228 PT2.6 Métodos avanzados y referencias adicionales 228 PARTE TRES PT3.1 Motivación 233 PT3.2 Antecedentes matemáticos 236 PT3.3 Orientación 244 CAPÍTULO 9 Eliminación de Gauss 247 9.1 Solución de sistemas pequeños de ecuaciones 247 9.2 Eliminación de Gauss simple 254 9.3 Difi cultades en los métodos de eliminación 261 9.4 Técnicas para mejorar las soluciones 267 9.5 Sistemas complejos 275 9.6 Sistemas de ecuaciones no lineales 275 9.7 Gauss-Jordan 277 9.8 Resumen 279 Problemas 279 CAPÍTULO 10 Descomposición LU e inversión de matrices 282 10.1 Descomposición LU 282 10.2 La matriz inversa 292 10.3 Análisis del error y condición del sistema 297 Problemas 303 CAPÍTULO 11 Matrices especiales y el método de Gauss-Seidel 305 11.1 Matrices especiales 305 11.2 Gauss-Seidel 310 ECUACIONES ALGEBRAICAS LINEALES 233 Chapra-Preliminares.indd ix 6/12/06 13:37:32 www.FreeLibros.me x CONTENIDO 11.3 Ecuaciones algebraicas lineales con bibliotecas y paquetes de software 317 Problemas 324 CAPÍTULO 12 Estudio de casos: ecuaciones algebraicas lineales 327 12.1 Análisis en estado estacionario de un sistema de reactores (ingeniería química/bioingeniería) 327 12.2 Análisis de una armadura estáticamente determinada (ingeniería civil/ambiental) 330 12.3 Corrientes y voltajes en circuitos con resistores (ingeniería eléctrica) 334 12.4 Sistemas masa-resorte (ingeniería mecánica/aeronáutica) 336 Problemas 339 EPÍLOGO: PARTE TRES 349 PT3.4 Alternativas 349 PT3.5 Relaciones y fórmulas importantes 350 PT3.6 Métodos avanzados y referencias adicionales 350 PARTE CUATRO PT4.1 Motivación 353 PT4.2 Antecedentes matemáticos 358 PT4.3 Orientación 360 CAPÍTULO 13 Optimización unidimensional no restringida 363 13.1 Búsqueda de la sección dorada 364 13.2 Interpolación cuadrática 371 13.3 Método de Newton 373 Problemas 375 CAPÍTULO 14 Optimización multidimensional no restringida 377 14.1 Métodos directos 378 14.2 Métodos con gradiente 382 Problemas 396 CAPÍTULO 15 Optimización restringida 398 15.1 Programación lineal 398 15.2 Optimización restringida no lineal 409 15.3 Optimización con bibliotecas y paquetes de software 410 Problemas 422 OPTIMIZACIÓN 353 Chapra-Preliminares.indd x 6/12/06 13:37:32 www.FreeLibros.me CONTENIDO xiii CAPÍTULO 23 Diferenciación numérica 668 23.1 Fórmulas de diferenciación con alta exactitud 668 23.2 Extrapolación de Richardson 672 23.3 Derivadas de datos irregularmente espaciados 673 23.4 Derivadas e integrales para datos con errores 674 23.5 Integración/diferenciación numéricas con bibliotecas y paquetes de software 676 Problemas 679 CAPÍTULO 24 Estudio de casos: integración y diferenciación numéricas 682 24.1 Integración para determinar la cantidad total de calor (ingeniería química/bioingeniería) 682 24.2 Fuerza efectiva sobre el mástil de un bote de vela de carreras (ingeniería civil/ambiental) 684 24.3 Raíz media cuadrática de la corriente mediante integración numérica (ingeniería eléctrica) 687 24.4 Integración numérica para calcular el trabajo (ingeniería mecánica/aeronáutica) 689 Problemas 693 EPÍLOGO: PARTE SEIS 704 PT6.4 Alternativas 704 PT6.5 Relaciones y fórmulas importantes 705 PT6.6 Métodos avanzados y referencias adicionales 705 PARTE SIETE PT7.1 Motivación 709 PT7.2 Antecedentes matemáticos 713 PT7.3 Orientación 715 CAPÍTULO 25 Métodos de Runge-Kutta 719 25.1 Método de Euler 720 25.2 Mejoras del método de Euler 732 25.3 Métodos de Runge-Kutta 740 25.4 Sistemas de ecuaciones 751 25.5 Métodos adaptativos de Runge-Kutta 756 Problemas 764 CAPÍTULO 26 Métodos rígidos y de pasos múltiples 767 26.1 Rigidez 767 26.2 Métodos de pasos múltiples 771 Problemas 792 ECUACIONES DIFERENCIALES ORDINARIAS 709 Chapra-Preliminares.indd xiii 6/12/06 13:37:32 www.FreeLibros.me xiv CONTENIDO CAPÍTULO 27 Problemas de valores en la frontera y de valores propios 794 27.1 Métodos generales para problemas de valores en la frontera 795 27.2 Problemas de valores propios 801 27.3 EDO y valores propios con bibliotecas y paquetes de software 814 Problemas 822 CAPÍTULO 28 Estudio de casos: ecuaciones diferenciales ordinarias 825 28.1 Uso de las EDO para analizar la respuesta transitoria de un reactor (ingeniería química/bioingeniería) 825 28.2 Modelos depredador-presa y caos (ingeniería civil/ambiental) 831 28.3 Simulación de la corriente transitoria en un circuito eléctrico (ingeniería eléctrica) 837 28.4 El péndulo oscilante (ingeniería mecánica/aeronáutica) 842 Problemas 846 EPÍLOGO: PARTE SIETE 854 PT7.4 Alternativas 854 PT7.5 Relaciones y fórmulas importantes 855 PT7.6 Métodos avanzados y referencias adicionales 855 PARTE OCHO PT8.1 Motivación 859 PT8.2 Orientación 862 CAPÍTULO 29 Diferencias fi nitas: ecuaciones elípticas 866 29.1 La ecuación de Laplace 866 29.2 Técnica de solución 868 29.3 Condiciones en la frontera 875 29.4 El método del volumen de control 881 29.5 Software para resolver ecuaciones elípticas 884 Problemas 885 CAPÍTULO 30 Diferencias fi nitas: ecuaciones parabólicas 887 30.1 La ecuación de conducción de calor 887 30.2 Métodos explícitos 888 30.3 Un método implícito simple 893 30.4 El método de Crank-Nicolson 896 30.5 Ecuaciones parabólicas en dos dimensiones espaciales 899 Problemas 903 ECUACIONES DIFERENCIALES PARCIALES 859 Chapra-Preliminares.indd xiv 6/12/06 13:37:33 www.FreeLibros.me CONTENIDO xv CAPÍTULO 31 Método del elemento fi nito 905 31.1 El enfoque general 906 31.2 Aplicación del elemento fi nito en una dimensión 910 31.3 Problemas bidimensionales 919 31.4 Resolución de EDP con bibliotecas y paquetes de software 923 Problemas 930 CAPÍTULO 32 Estudio de casos: ecuaciones diferenciales parciales 933 32.1 Balance de masa unidimensional de un reactor (ingeniería química/ bioingeniería) 933 32.2 Defl exiones de una placa (ingeniería civil/ambiental) 938 32.3 Problemas de campo electrostático bidimensional (ingeniería eléctrica) 940 32.4 Solución por elemento fi nito de una serie de resortes (ingeniería mecánica/ aeronáutica) 943 Problemas 947 EPÍLOGO: PARTE OCHO 949 PT8.3 Alternativas 949 PT8.4 Relaciones y fórmulas importantes 949 PT8.5 Métodos avanzados y referencias adicionales 950 APÉNDICE A: LA SERIE DE FOURIER 951 APÉNDICE B: EMPECEMOS CON MATLAB 953 BIBLIOGRAFÍA 961 ÍNDICE 965 Chapra-Preliminares.indd xv 6/12/06 13:37:33 www.FreeLibros.me xviii PREFACIO Jason Clark, University of California, Berkeley John Collings, University of North Dakota Ayodeji Demuren, Old Dominion University Cassiano R. E. de Oliveira, Georgia Institute of Technology Subhadeep Gan, University of Cincinnati Aaron S. Goldstein, Virginia Polytechnic Institute and State University Gregory L. Griffin, Louisiana State University Walter Haisler, Texas A&M University Don Hardcastle, Baylor University Scott L. Hendricks, Virginia Polytechnic Institute and State University David J. Horntrop, New Jersey Institute of Technology Tribikram Kundu, University of Arizona Hysuk Lee, Clemson University Jichun Li, University of Nevada, Las Vegas Jeffrey S. Marshall, University of Iowa George Novacky, University of Pittsburgh Dmitry Pelinovsky, McMaster University Siva Parameswaran, Texas Technical University Greg P. Semeraro, Rochester Institute of Technology Jerry Sergent, Faifield University Dipendra K. Sinha, San Francisco State University Scott A. Socolofsky, Texas A&M University Robert E. Spall, Utah State University John C. Strikwerda, University of Wisconsin-Madison Karsten E. Thompson, Louisiana State University Kumar Vemaganti, University of Cincinnati Peter Wolfe, University of Maryland Yale Yurttas, Texas A&M University Nader Zamani, University of Windsor Viktoria Zoltay, Tufts University Debemos hacer énfasis en que si bien recibimos consejos útiles de las personas mencionadas, somos responsables de cualesquiera inexactitudes o errores que se encuen- tren en esta edición. Por favor, haga contacto con Steven Chapra por correo electrónico en caso de que detecte algún error en esta edición. Por último, queremos agradecer a nuestras familias, amigos y estudiantes por su paciencia y apoyo constantes. En particular, a Cynthia Chapra y Claire Canale, quienes siempre están presentes brindando comprensión, puntos de vista y amor. STEVEN C. CHAPRA Medford, Massachusetts steven.chapra@tufts.edu RAYMOND P. CANALE Lake Leelanau, Michigan Chapra-Preliminares.indd xviii 6/12/06 13:37:33 www.FreeLibros.me PREFACIO xix Agradecemos en especial la valiosa contribución de los siguientes asesores técnicos para la presente edición en español: Abel Valdez Ramírez, ESIQIE, Instituto Politécnico Nacional, Zacatenco Alejandra González, ITESM, campus Monterrey Fernando Vera Badillo, Universidad La Salle, campus Ciudad de México Jaime Salazar Tamez, ITESM, campus Toluca Jesús Estrada Madueño, Instituto Tecnológico de Culiacán Jesús Ramón Villarreal Madrid, Instituto Tecnológico de Culiacán José Juan Suárez López, ESIME, Instituto Politécnico Nacional, Culhuacán Leonel Magaña Mendoza, Instituto Tecnológico de Morelia María de los Ángeles Contreras Flores, Universidad Autónoma del Estado de México, campus Toluca Mario Medina Valdez, Universidad Autónoma Metropolitana - Iztapalapa Olga López, ITESM, campus Estado de México Reynaldo Gómez, Universidad de Guadalajara Chapra-Preliminares.indd xix 6/12/06 13:37:34 www.FreeLibros.me xx CONTENIDO VISITA GUIADA Para ofrecer un panorama de los métodos numéricos, hemos organizado el texto en partes, y presentamos información unificadora a través de elementos de Motivación, Antecedentes Matemáticos, Orienta- ción y Epílogo. Cada capítulo contiene problemas de tarea nuevos y revisados. El ochenta por ciento de los problemas son nuevos o se han modifi- cado. El texto incluye problemas de desafío de todas las disciplinas de la ingeniería. Hay secciones del texto, así como problemas de tarea, dedicadas a implantar métodos numéricos con el software de Microsoft Excel y con el de The MathWorks, Inc. MATLAB. xx PT3.1 Motivación PT3.2 Antecedentes matemáticos PT3.3 Orientación 9.1 Sistemas pequeños 9.2 Eliminación de Gauss simplePARTE 3 Ecuaciones algebraicas lineales PT3.6 Métodos avanzados EPÍLOGO CAPÍTULO 9 Eliminación de Gauss PT3.5 Fórmulas importantes PT3.4 Alternativas 12.4 Ingeniería mecánica 12.3 Ingeniería eléctrica 12.2 Ingeniería civil 12.1 Ingeniería química 11.3 Bibliotecas y paquetes 11.2 Gauss-Seidel 11.1 Matrices especiales CAPÍTULO 10 Descomposición LU e inversión de matrices CAPÍTULO 11 Matrices especiales y el método de Gauss-Seidel CAPÍTULO 12 Estudio de casos 10.3 Análisis del error y condición del sistema 10.2 La matriz inversa 10.1 Descomposición LU 9.7 Gauss-Jordan 9.6 Sistemas no lineales 9.5 Sistemas complejos 9.4 Soluciones 9.3 Dificultades PROBLEMAS 339 Ingeniería Química/Bioingeniería 12.1 Lleve a cabo el mismo cálculo que en la sección 12.1, pero cambie c01 a 40 y c03 a 10. También cambie los flujos siguientes: Q01 = 6, Q12 = 4, Q24 = 2 y Q44 = 12. 12.2 Si la entrada al reactor 3 de la sección 12.1, disminuye 25 por ciento, utilice la matriz inversa para calcular el cambio por- centual en la concentración de los reactores 1 y 4. 12.3 Debido a que el sistema que se muestra en la figura 12.3 está en estado estacionario (estable), ¿qué se puede afirmar respecto de los cuatro flujos: Q01, Q03, Q44 y Q55? 12.4 Vuelva a calcular las concentraciones para los cinco reac- tores que se muestran en la figura 12.3, si los flujos cambian como sigue: Q01 = 5 Q31 = 3 Q25 = 2 Q23 = 2 Q15 = 4 Q55 = 3 Q54 = 3 Q34 = 7 Q12 = 4 Q03 = 8 Q24 = 0 Q44 = 10 12.5 Resuelva el mismo sistema que se especifica en el proble- ma 12.4, pero haga Q12 = Q54 = 0 y Q15 = Q34 = 3. Suponga que las entradas (Q01, Q03) y las salidas (Q44, Q55) son las mismas. Use la conservación del flujo para volver a calcular los valores de los demás flujos. 12.6 En la figura P12.6 se muestran tres reactores conectados por tubos. Como se indica, la tasa de transferencia de produc- tos químicos a través de cada tubo es igual a la tasa de flujo (Q, en unidades de metros cúbicos por segundo) multiplicada por la concentración del reactor desde el que se origina el flujo (c, en unidades de miligramos por metro cúbico). Si el sistema se PROBLEMAS 12.7 Con el empleo del mismo enfoque que en la sección 12.1, determine la concentración de cloruro en cada uno de los Gran- des Lagos con el uso de la información que se muestra en la fi- gura P12.7. 12.8 La parte baja del río Colorado consiste en una serie de cuatro almacenamientos como se ilustra en la figura P12.8. Puede escribirse los balances de masa para cada uno de ellos, lo que da por resultado el conjunto siguiente de ecuaciones alge- braicas lineales simultáneas: 13 42 0 0 0 13 422 12 252 0 0 0 12 252 12 377 0 0 0 12 . . . . . − − − . .377 11 797 1 2 3 4 ⎡ ⎣ ⎢ ⎢ ⎢ ⎢ ⎤ ⎦ ⎥ ⎥ ⎥ ⎥ ⎧ ⎨ ⎪⎪ ⎩ ⎪ ⎪ ⎫ ⎬ ⎪⎪ c c c c ⎭ ⎪ ⎪ = ⎧ ⎨ ⎪⎪ ⎩ ⎪ ⎪ ⎫ ⎬ ⎪⎪ ⎭ ⎪ ⎪ 750 5 300 102 30 . donde el vector del lado derecho consiste en las cargas de cloru- ro hacia cada uno de los cuatro lagos y c1, c2, c3 y c4 = las con- centraciones de cloruro resultantes en los lagos Powell, Mead, Mohave y Havasu, respectivamente. a) Use la matriz inversa para resolver cuáles son las concen- traciones en cada uno de los cuatro lagos. b) ¿En cuánto debe reducirse la carga del lago Powell para que la concentración de cloruro en el lago Havasu sea de 75? c) Con el uso de la norma columna-suma, calcule el número de condición y diga cuántos dígitos sospechosos se generarían al resolver este sistema. Se debe observar que Solver puede fallar. Su éxito depende de 1. la condición del sistema de ecuaciones y/o 2. la calidad de los valores iniciales. El resultado satisfactorio del ejemplo anterior no está garantizado. A pesar de esto, se puede encontrar a Solver bastante útil para hacer de él una buena opción en la obtención rápida de raíces para un amplio rango de aplicaciones a la ingeniería. 7.7.2 MATLAB MATLAB es capaz de localizar raíces en ecuaciones algebraicas y trascendentes, como se muestra en la tabla 7.1. Siendo excelente para la manipulación y localización de raíces en los polinomios. La función fzero está diseñada para localizar la raíz de una función. Una represen- tación simplificada de su sintaxis es fzero(f,X0,opciones) donde f es la tensión que se va a analizar, x0 es el valor inicial y opciones son los pará- metros de optimización (éstos pueden cambiarse al usar la función optimset). Si no se anotan las opciones se emplean los valores por omisión. Observe que se pueden emplear uno o dos valores iniciales, asumiendo que la raíz está dentro del intervalo. El siguiente ejemplo ilustra cómo se usa la función fzero. EJEMPLO 7.6 Uso de MATLAB para localizar raíces Planteamiento del problema. Utilice la función fzero de MATLAB para encontrar las raíces de f (x) = x10 – 1 7.7 LOCALIZACIÓN DE RAÍCES CON BIBLIOTECAS Y PAQUETES DE SOFTWARE 191 Chapra-Preliminares.indd xx 6/12/06 13:37:34 www.FreeLibros.me ACERCA DE LOS AUTORES Steve Chapra es profesor en el Departamento de Ingeniería Civil y Ambiental de la Universidad de Tufts. Entre sus obras publicadas se encuentran Surface Water-Quality Modeling e Introduction to Computing for Engineers. El Dr. Chapra obtuvo el grado de Ingeniero por las universidades de Manhattan y de Michigan. Antes de incorporarse a la facultad de Tufts trabajó para la Agencia de Protección Ambiental y la Administración Nacional del Océano y la Atmósfera, fue profesor asociado en las universidades de Texas A&M y de Colorado. En general, sus investigaciones están relacionadas con la modelación de la calidad del agua superficial y la aplicación de computación avanzada en la ingeniería ambiental. También ha recibido gran cantidad de reconocimientos por sus destacadas contri- buciones académicas, incluyendo la medalla Rudolph Hering (ASCE en 1993) y el premio al autor distinguido Meriam-Wiley (1987), por parte de la Sociedad Americana para la Educación en Ingeniería. Se ha reconocido como profesor emérito en las facul- tades de ingeniería de las universidades de Texas A&M (premio Tenneco, 1986) y de Colorado (premio Hitchinson, 1992). Raymond P. Canale es profesor emérito de la Universidad de Michigan. En sus más de 20 años de carrera en la universidad ha impartido numerosos cursos en la áreas de computación, métodos numéricos e ingeniería ambiental. También ha dirigido extensos programas de investigación en el área de modelación matemática y por computadora de ecosistemas acuáticos. Es autor y coautor de varios libros, ha publicado más de 100 artículos e informes científicos. También ha diseñado y desarrollado software para computadoras personales, con la finalidad de facilitar la educación en ingeniería y la solución de problemas en ingeniería. Ha recibido el premio al autor distinguido Meriam- Wiley de la Sociedad Americana para la Educación en Ingeniería por sus libros y el software desarrollado, así como otros reconocimientos por sus publicaciones técnicas. Actualmente, el profesor Canale se dedica a resolver problemas de aplicación, tra- bajando como consultor y perito en empresas de ingeniería, en la industria e institucio- nes gubernamentales. Chapra-Preliminares.indd xxiii 6/12/06 13:37:35 www.FreeLibros.me Chapra-Preliminares.indd ii 6/12/06 13:37:29 www.FreeLibros.me Métodos numéricos para ingenieros Chapra-Preliminares.indd Sec1:1 6/12/06 13:37:35 www.FreeLibros.me En la actualidad, las computadoras y los métodos numéricos ofrecen una alternati- va para los cálculos complicados. Al usar la potencia de la computadora se obtienen soluciones directamente, de esta manera se pueden aproximar los cálculos sin tener que recurrir a consideraciones de simplificación o a técnicas muy lentas. Aunque las solu- ciones analíticas aún son muy valiosas, tanto para resolver problemas como para brindar una mayor comprensión, los métodos numéricos representan opciones que aumentan, en forma considerable, la capacidad para enfrentar y resolver los problemas; como resulta- do, se dispone de más tiempo para aprovechar las habilidades creativas personales. En consecuencia, es posible dar más importancia a la formulación de un problema y a la interpretación de la solución, así como a su incorporación al sistema total, o conciencia “holística” (figura PT1.1b). PT1.1.2 Los métodos numéricos y la práctica en ingeniería Desde finales de la década de los cuarenta, la amplia disponibilidad de las computado- ras digitales han llevado a una verdadera explosión en el uso y desarrollo de los métodos numéricos. Al principio, este crecimiento estaba limitado por el costo de procesamien- to de las grandes computadoras (mainframes), por lo que muchos ingenieros seguían usando simples procedimientos analíticos en una buena parte de su trabajo. Vale la pena INTERPRETACIÓN La facilidad de calcular permite pensar holísticamente y desarrollar la intuición; es factible estudiar la sensibilidad y el comportamiento del sistema FORMULACIÓN Exposición profunda de la relación del problema con las leyes fundamentales SOLUCIÓN Método de la computadora fácil de usar b) INTERPRETACIÓN Análisis profundo limitado por una solución que consume tiempo FORMULACIÓN Leyes fundamentales explicadas brevemente SOLUCIÓN Métodos muy elaborados y con frecuencia complicados para hacer manejable el problema a) FIGURA PT1.1 Las tres fases en la solución de problemas en ingeniería en a) la era anterior a las computadoras y b) la era de las computadoras. Los tamaños de los recuadros indican el nivel de importancia que se presenta en cada fase. Las computadoras facilitan la implementación de técnicas de solución y, así, permiten un mayor interés sobre los aspectos creativos en la formulación de problemas y la interpretación de los resultados. 4 MODELOS, COMPUTADORAS Y ANÁLISIS DEL ERROR Chapra-01.indd 4 6/12/06 13:41:06 www.FreeLibros.me mencionar que la reciente evolución de computadoras personales de bajo costo ha per- mitido el acceso, de mucha gente, a las poderosas capacidades de cómputo. Además, existen diversas razones por las cuales se deben estudiar los métodos numéricos: 1. Los métodos numéricos son herramientas muy poderosas para la solución de pro- blemas. Son capaces de manipular sistemas de ecuaciones grandes, manejar no li- nealidades y resolver geometrías complicadas, comunes en la práctica de la ingeniería y, a menudo, imposibles de resolver en forma analítica. Por lo tanto, aumentan la habilidad de quien los estudia para resolver problemas. 2. En el transcurso de su carrera, es posible que el lector tenga la oportunidad de uti- lizar paquetes disponibles comercialmente, o programas “enlatados” que contengan métodos numéricos. El uso eficiente de estos programas depende del buen entendi- miento de la teoría básica en que se basan tales métodos. 3. Hay muchos problemas que no pueden resolverse con programas “enlatados”. Si usted es conocedor de los métodos numéricos y es hábil en la programación de computadoras, entonces tiene la capacidad de diseñar sus propios programas para resolver los problemas, sin tener que comprar un software costoso. 4. Los métodos numéricos son un vehículo eficiente para aprender a servirse de las computadoras. Es bien sabido que una forma efectiva de aprender programación consiste en escribir programas para computadora. Debido a que la mayoría de los métodos numéricos están diseñados para usarlos en las computadoras, son ideales para tal propósito. Además, son especialmente adecuados para ilustrar el poder y las limitaciones de las computadoras. Cuando usted desarrolle en forma satisfactoria los métodos numéricos en computadora y los aplique para resolver los problemas que de otra manera resultarían inaccesibles, usted dispondrá de una excelente de- mostración de cómo las computadoras sirven para su desarrollo profesional. Al mismo tiempo, aprenderá a reconocer y controlar los errores de aproximación que son inseparables de los cálculos numéricos a gran escala. 5. Los métodos numéricos son un medio para reforzar su comprensión de las matemá- ticas, ya que una de sus funciones es convertir las matemáticas superiores en ope- raciones aritméticas básicas, de esta manera se puede profundizar en los temas que de otro modo resultarían oscuros. Esta perspectiva dará como resultado un aumento de su capacidad de comprensión y entendimiento en la materia. PT1.2 ANTECEDENTES MATEMÁTICOS Cada parte de este libro requiere de algunos conocimientos matemáticos, por lo que el material introductorio de cada parte comprende una sección que incluye los fundamen- tos matemáticos. Como la parte uno, que está dedicada a aspectos básicos sobre las matemáticas y la computación, en esta sección no se revisará ningún tema matemático específico. En vez de ello se presentan los temas del contenido matemático que se cubren en este libro. Éstos se resumen en la figura PT1.2 y son: 1. Raíces de ecuaciones (figura PT1.2a). Estos problemas se relacionan con el valor de una variable o de un parámetro que satisface una ecuación no lineal. Son espe- cialmente valiosos en proyectos de ingeniería, donde con frecuencia resulta impo- sible despejar de manera analítica los parámetros de las ecuaciones de diseño. PT1.2 ANTECEDENTES MATEMÁTICOS 5 Chapra-01.indd 5 6/12/06 13:41:06 www.FreeLibros.me 2. Sistemas de ecuaciones algebraicas lineales (figura PT1.2b). En esencia, se trata de problemas similares a los de raíces de ecuaciones, en el sentido de que están rela- cionados con valores que satisfacen ecuaciones. Sin embargo, en lugar de satisfacer una sola ecuación, se busca un conjunto de valores que satisfaga simultáneamente un conjunto de ecuaciones algebraicas lineales, las cuales surgen en el contexto de f(x) x Raíz x2 x1 Solución Mínimo f(x) x Interpolación f(x) x f(x) x Regresión f(x) I a) Parte 2: Raíces de ecuaciones Resuelva f(x) = 0 para x. c) Parte 4: Optimización b) Parte 3: Sistema de ecuaciones algebraicas lineales Dadas las a’s y las c’s, resolver a11x1 + a12x2 = c1 a21x1 + a22x2 = c2 para las x’s. Determine la x que da el óptimo de f(x). e) Parte 6: Integración I = ab f (x) dx Encuentre el área bajo la curva. d) Parte 5: Ajuste de curvas x FIGURA PT1.2 Resumen de los métodos numéricos que se consideran en este libro. 6 MODELOS, COMPUTADORAS Y ANÁLISIS DEL ERROR Chapra-01.indd 6 6/12/06 13:41:06 www.FreeLibros.me y un repaso de los aspectos de computación que están relacionados con los métodos numéricos y presenta las habilidades de programación que se deben adquirir para ex- plotar de manera eficiente la siguiente información. Los capítulos 3 y 4 se ocupan del importante tema del análisis del error, que debe entenderse bien para el uso efectivo de los métodos numéricos. Además, se incluye un epílogo que presenta los elementos de juicio que tienen una gran importancia para el uso efectivo de los métodos numéricos. CAPÍTULO 1 Modelos matemáticos y solución de problemas en ingeniería PARTE 1 Modelos, computadoras y análisis del error CAPÍTULO 2 Programación y software CAPÍTULO 3 Aproximaciones y errores de redondeo CAPÍTULO 4 Errores de truncamiento y la serie de Taylor EPÍLOGO 2.6 Otros lenguajes y bibliotecas 2.5 MATLAB 2.4 Excel 2.3 Programación modular 2.2 Programación estructurada 2.1 Paquetes y programación PT1.2 Antecedentes matemáticos PT1.6 Métodos avanzados PT1.5 Fórmulas importantes 4.4 Varios tipos de error 4.3 Error numérico total 4.2 Propagación del error 4.1 La serie de Taylor 3.4 Errores de redondeo 3.1 Cifras significativas 3.3 Definiciones de error 3.2 Exactitud y precisión PT1.4 Alternativas PT1.3 Orientación PT1.1 Motivación 1.2 Leyes de conservación 1.1 Un modelo simple FIGURA PT1.3 Esquema de la organización del material en la parte uno: Modelos, computadoras y análisis del error. PT1.3 ORIENTACIÓN 9 Chapra-01.indd 9 6/12/06 13:41:07 www.FreeLibros.me PT1.3.2 Metas y objetivos Objetivos de estudio. Al terminar la parte uno el lector deberá estar preparado para aventurarse en los métodos numéricos. En general, habrá adquirido una comprensión fundamental de la importancia de las computadoras y del papel que desempeñan las aproximaciones y los errores en el uso y desarrollo de los métodos numéricos. Además de estas metas generales, deberá dominar cada uno de los objetivos de estudio específicos que se muestran en la tabla PT1.1. Objetivos de cómputo. Al terminar de estudiar la parte uno, usted deberá tener su- ficientes habilidades en computación para desarrollar su propio software para los méto- dos numéricos de este texto. También será capaz de desarrollar programas de computadora bien estructurados y confiables basándose en seudocódigos, diagramas de flujo u otras formas de algoritmo. Usted deberá desarrollar la capacidad de documen- tar sus programas de manera que sean utilizados en forma eficiente por otros usuarios. Por último, además de sus propios programas, usted deberá usar paquetes de software junto con este libro. Paquetes como MATLAB y Excel son los ejemplos de dicho soft- ware. Usted deberá estar familiarizado con ellos, ya que será más cómodo utilizarlos para resolver después los problemas numéricos de este texto. TABLA PT1.1 Objetivos específi cos de estudio de la parte uno. 1. Reconocer la diferencia entre soluciones analíticas y numéricas. 2. Entender cómo las leyes de la conservación se emplean para desarrollar modelos matemáticos de sistemas físicos. 3. Defi nir diseño modular y top-down. 4. Defi nir las reglas para la programación estructurada. 5. Ser capaz de elaborar programas estructurados y modulares en un lenguaje de alto nivel. 6. Saber cómo se traducen los diagramas de fl ujo estructurado y el seudocódigo al código en un lenguaje de alto nivel. 7. Empezar a familiarizarse con cualquier software que usará junto con este texto. 8. Reconocer la diferencia entre error de truncamiento y error de redondeo. 9. Comprender los conceptos de cifras signifi cativas, exactitud y precisión. 10. Conocer la diferencia entre error relativo verdadero ev, error relativo aproximado ea y error aceptable es y entender cómo ea y es sirven para terminar un cálculo iterativo. 11. Entender cómo se representan los números en las computadoras y cómo tal representación induce errores de redondeo. En particular, conocer la diferencia entre precisión simple y extendida. 12. Reconocer cómo la aritmética de la computadora llega a presentar y amplifi car el error de redondeo en los cálculos. En particular, apreciar el problema de la cancelación por sustracción. 13. Saber cómo la serie de Taylor y su residuo se emplean para representar funciones continuas. 14. Conocer la relación entre diferencias fi nitas divididas y derivadas. 15. Ser capaz de analizar cómo los errores se propagan a través de las relaciones funcionales. 16. Estar familiarizado con los conceptos de estabilidad y condición. 17. Familiarizarse con las consideraciones que se describen en el epílogo de la parte uno. 10 MODELOS, COMPUTADORAS Y ANÁLISIS DEL ERROR Chapra-01.indd 10 6/12/06 13:41:07 www.FreeLibros.me CAPÍTULO 1 Modelos matemáticos y solución de problemas en ingeniería El conocimiento y la comprensión son prerrequisitos para la aplicación eficaz de cualquier herramienta. Si no sabemos cómo funcionan las herramientas, por ejemplo, tendremos serios problemas para reparar un automóvil, aunque la caja de herramientas sea de lo más completa. Ésta es una realidad, particularmente cuando se utilizan computadoras para resolver problemas de ingeniería. Aunque las computadoras tienen una gran utilidad, son prác- ticamente inútiles si no se comprende el funcionamiento de los sistemas de ingeniería. Esta comprensión inicialmente es empírica —es decir, se adquiere por observación y experimentación—. Sin embargo, aunque esta información obtenida de manera empí- rica resulta esencial, sólo estamos a la mitad del camino. Durante muchos años de ob- servación y experimentación, los ingenieros y los científicos han advertido que ciertos aspectos de sus estudios empíricos ocurren una y otra vez. Este comportamiento general puede expresarse como las leyes fundamentales que engloba, en esencia, el conocimien- to acumulado de la experiencia pasada. Así, muchos problemas de ingeniería se resuel- ven con el empleo de un doble enfoque: el empirismo y el análisis teórico (figura 1.1). Debe destacarse que ambos están estrechamente relacionados. Conforme se obtie- nen nuevas mediciones, las generalizaciones llegan a modificarse o aun a descubrirse otras nuevas. De igual manera, las generalizaciones tienen una gran influencia en la experimentación y en las observaciones. En lo particular, las generalizaciones sirven para organizar principios que se utilizan para sintetizar los resultados de observaciones y experimentos en un sistema coherente y comprensible, del que se pueden obtener conclusiones. Desde la perspectiva de la solución de un problema de ingeniería, el sis- tema es aún más útil cuando el problema se expresa por medio de un modelo matemá- tico. El primer objetivo de este capítulo consiste en introducir al lector a la modelación matemática y su papel en la solución de problemas en ingeniería. Se mostrará también la forma en que los métodos numéricos figuran en el proceso. 1.1 UN MODELO MATEMÁTICO SIMPLE Un modelo matemático se define, de manera general, como una formulación o una ecuación que expresa las características esenciales de un sistema físico o de un proceso en términos matemáticos. En general, el modelo se representa mediante una relación funcional de la forma: Variable variables funciones dependiente = f independientes, parámetros, de fuerza (1.1) Chapra-01.indd 11 6/12/06 13:41:07 www.FreeLibros.me 14 MODELOS MATEMÁTICOS Y SOLUCIÓN DE PROBLEMAS EN INGENIERÍA Si a la fuerza hacia abajo se le asigna un signo positivo, se usa la segunda ley de Newton para expresar la fuerza debida a la gravedad como FD = mg (1.6) donde g es la constante gravitacional, o la aceleración debida a la gravedad, que es aproximadamente igual a 9.8 m/s2. La resistencia del aire puede expresarse de varias maneras. Una forma sencilla consiste en suponer que es linealmente proporcional a la velocidad,1 y que actúa en di- rección hacia arriba tal como FU = –cv (1.7) donde c es una constante de proporcionalidad llamada coeficiente de resistencia o arrastre (kg/s). Así, cuanto mayor sea la velocidad de caída, mayor será la fuerza hacia arriba debida a la resistencia del aire. El parámetro c toma en cuenta las propiedades del objeto que cae, tales como su forma o la aspereza de su superficie, que afectan la resis- tencia del aire. En este caso, c podría ser función del tipo de traje o de la orientación usada por el paracaidista durante la caída libre. La fuerza total es la diferencia entre las fuerzas hacia abajo y las fuerzas hacia arriba. Por lo tanto, combinando las ecuaciones (1.4) a (1.7), se obtiene d dt mg c m v v= – (1.8) o simplificando el lado derecho de la igualdad, d dt g c m v v= – (1.9) La ecuación (1.9) es un modelo que relaciona la aceleración de un cuerpo que cae con las fuerzas que actúan sobre él. Se trata de una ecuación diferencial porque está escrita en términos de la razón de cambio diferencial (dv/dt) de la variable que nos interesa predecir. Sin embargo, en contraste con la solución de la segunda ley de Newton en la ecuación (1.3), la solución exacta de la ecuación (1.9) para la velocidad del paracaidista que cae no puede obtenerse mediante simples manipulaciones algebraicas. Siendo ne- cesario emplear técnicas más avanzadas, del cálculo, para obtener una solución exacta o analítica. Por ejemplo, si inicialmente el paracaidista está en reposo (v = 0 en t = 0), se utiliza el cálculo integral para resolver la ecuación (1.9), así v( ) ( – )–( / )t gm c e c m t= 1 (1.10) Note que la ecuación (1.10) es un ejemplo de la forma general de la ecuación (1.1), don- de v(t) es la variable dependiente, t es la variable independiente, c y m son parámetros, y g es la función de fuerza. 1 De hecho, la relación es realmente no lineal y podría ser representada mejor por una relación con potencias como FU = –cv 2. Al fi nal de este capítulo, investigaremos, en un ejercicio, de qué manera infl uyen estas no linealidades en el modelo. Chapra-01.indd 14 6/12/06 13:41:08 www.FreeLibros.me EJEMPLO 1.1 1.1 UN MODELO MATEMÁTICO SIMPLE 15 Solución analítica del problema del paracaidista que cae Planteamiento del problema. Un paracaidista con una masa de 68.1 kg salta de un globo aerostático fijo. Aplique la ecuación (1.10) para calcular la velocidad antes de que se abra el paracaídas. Considere que el coeficiente de resistencia es igual a 12.5 kg/s. Solución. Al sustituir los valores de los parámetros en la ecuación (1.10) se obtiene v( ) . ( . ) . ( – ) . ( – )–( . / . ) – .t e et t= =9 8 68 1 12 5 1 53 39 112 5 68 1 0 18355 que sirve para calcular la velocidad del paracaidista a diferentes tiempos, tabulando se tiene t, s v, m/s 0 0.00 2 16.40 4 27.77 6 35.64 8 41.10 10 44.87 12 47.49 • 53.39 De acuerdo con el modelo, el paracaidista acelera rápidamente (figura 1.3). Se alcanza una velocidad de 44.87 m/s (100.4 mi/h) después de 10 s. Observe también que, después de un tiempo suficientemente grande, alcanza una velocidad constante llamada velocidad terminal o velocidad límite de 53.39 m/s (119.4 mi/h). Esta velocidad es constante por- que después de un tiempo la fuerza de gravedad estará en equilibrio con la resistencia del aire. Entonces, la fuerza total es cero y cesa la aceleración. A la ecuación (1.10) se le llama solución analítica o exacta ya que satisface con exactitud la ecuación diferencial original. Por desgracia, hay muchos modelos matemá- ticos que no pueden resolverse con exactitud. En muchos de estos casos, la única alter- nativa consiste en desarrollar una solución numérica que se aproxime a la solución exacta. Como ya se mencionó, los métodos numéricos son aquellos en los que se reformula el problema matemático para lograr resolverlo mediante operaciones aritméticas. Esto puede ilustrarse para el caso de la segunda ley de Newton, observando que a la razón de cambio de la velocidad con respecto al tiempo se puede aproximar mediante (figu- ra 1.4): d dt t t t t t i i i i v v v v≅ = + + ∆ ∆ ( ) – ( ) – 1 1 (1.11) donde ∆v y ∆t son diferencias en la velocidad y en el tiempo, respectivamente, calculadas sobre intervalos finitos, v(ti) es la velocidad en el tiempo inicial ti, y v(ti+1) es la veloci- Chapra-01.indd 15 6/12/06 13:41:09 www.FreeLibros.me 16 MODELOS MATEMÁTICOS Y SOLUCIÓN DE PROBLEMAS EN INGENIERÍA dad algún tiempo más tarde ti + l. Observe que dv/dt ≅ ∆v/∆t es aproximado porque ∆t es finito. Recordando los cursos de cálculo tenemos que d dt tt v v= → lím ∆ ∆ ∆0 La ecuación (1.11) representa el proceso inverso. 0 0 20 40 4 8 12 t, s v, m /s Velocidad terminal FIGURA 1.3 Solución analítica al problema del paracaidista que cae según se calcula en el ejemplo 1.1. La velocidad aumenta con el tiempo y tiende asintóticamente a una velocidad terminal. FIGURA 1.4 Uso de una diferencia fi nita para aproximar la primera derivada de v con respecto a t. v(ti +1) v(ti ) v Pendiente verdadera dv/dt Pendiente aproximada v t v(ti +1) – v(ti ) ti +1 – ti = ti +1ti t t Chapra-01.indd 16 6/12/06 13:41:09 www.FreeLibros.me vemos, existe un costo inevitable entre la exactitud y la cantidad de operaciones. Esta relación es de gran importancia en los métodos numéricos y constituyen un tema rele- vante de este libro. En consecuencia, hemos dedicado el epílogo de la parte uno para ofrecer una introducción a dicho tipo de relaciones. 1.2 LEYES DE CONSERVACIÓN E INGENIERÍA Aparte de la segunda ley de Newton, existen otros principios importantes en ingeniería. Entre los más importantes están las leyes de conservación. Éstas son fundamentales en una gran variedad de complicados y poderosos modelos matemáticos, las leyes de la conservación en la ciencia y en la ingeniería conceptualmente son fáciles de entender. Puesto que se pueden reducir a Cambio = incremento – decremento (1.13) Éste es precisamente el formato que empleamos al usar la segunda ley de Newton para desarrollar un equilibrio de fuerzas en la caída del paracaidista [ecuación (1.8)]. Pese a su sencillez, la ecuación (1.13) representa una de las maneras fundamentales en que las leyes de conservación se emplean en ingeniería —esto es, predecir cambios con respecto al tiempo—. Nosotros le daremos a la ecuación (1.13) el nombre especial de cálculo de variable-tiempo (o transitorio). Además de la predicción de cambios, las leyes de la conservación se aplican también en casos en los que no existe cambio. Si el cambio es cero, la ecuación (1.3) será Cambio = 0 = incremento – decremento o bien, Incremento = decremento (1.14) Así, si no ocurre cambio alguno, el incremento y el decremento deberán estar en equi- librio. Este caso, al que también se le da una denominación especial —cálculo en esta- do estacionario—, tiene diversas aplicaciones en ingeniería. Por ejemplo, para el flujo Tubería 2 Flujo de entrada = 80 Tubería 3 Flujo de salida = 120 Tubería 4 Flujo de salida = ? Tubería 1 Flujo de entrada = 100 FIGURA 1.6 Equilibrio del fl ujo de un fl uido incompresible en estado estacionario a través de tuberías. 1.2 LEYES DE CONSERVACIÓN E INGENIERÍA 19 Chapra-01.indd 19 6/12/06 13:41:10 www.FreeLibros.me 20 MODELOS MATEMÁTICOS Y SOLUCIÓN DE PROBLEMAS EN INGENIERÍA de un fluido incompresible en estado estacionario a través de tuberías, el flujo de entra- da debe estar en equilibrio con el flujo de salida, esto es Flujo de entrada = flujo de salida Para la unión de tuberías de la figura 1.6, esta ecuación de equilibrio se utiliza para calcular el flujo de salida de la cuarta tubería, que debe ser de 60. Para la caída del paracaidista, las condiciones del estado estacionario deberían corres- ponder al caso en que la fuerza total fuera igual a cero o [ecuación (1.8) con dv/dt = 0] mg = cv (1.15) Así, en el estado estacionario, las fuerzas hacia abajo y hacia arriba están equilibradas, y en la ecuación (1.15) puede encontrarse la velocidad terminal. v = mg c Aunque las ecuaciones (1.13) y (1.14) pueden parecer triviales, éstas determinan las dos maneras fundamentales en que las leyes de la conservación se emplean en ingenie- ría. Como tales, en los capítulos siguientes serán parte importante de nuestros esfuerzos por mostrar la relación entre los métodos numéricos y la ingeniería. Nuestro primer medio para establecer tal relación son las aplicaciones a la ingeniería que aparecen al final de cada parte del libro. En la tabla 1.1 se resumen algunos de los modelos sencillos de ingeniería y las leyes de conservación correspondientes, que constituirán la base de muchas de las aplicaciones a la ingeniería. La mayoría de aplicaciones de ingeniería química harán énfasis en el balance de masa para el estudio de los reactores. El balance de masa es una consecuen- cia de la conservación de la masa. Éste especifica que, el cambio de masa de un com- puesto químico en un reactor, depende de la cantidad de masa que entra menos la cantidad de masa que sale. Las aplicaciones en ingeniería civil y mecánica se enfocan al desarrollo de modelos a partir de la conservación del momentum. En la ingeniería civil se utilizan fuerzas en equilibrio para el análisis de estructuras como las armaduras sencillas de la tabla. El mismo principio se aplica en ingeniería mecánica, con la finalidad de analizar el movi- miento transitorio hacia arriba o hacia abajo, o las vibraciones de un automóvil. Por último, las aplicaciones en ingeniería eléctrica emplean tanto balances de co- rriente como de energía para modelar circuitos eléctricos. El balance de corriente, que resulta de la conservación de carga, es similar al balance del flujo representado en la figura 1.6. Así como el flujo debe equilibrarse en las uniones de tuberías, la corriente eléctrica debe estar balanceada o en equilibrio en las uniones de alambres eléctricos. El balance de energía especifica que la suma algebraica de los cambios de voltaje alrededor de cualquier malla de un circuito debe ser igual a cero. Las aplicaciones en ingeniería se proponen para ilustrar cómo se emplean actualmente los métodos numéricos en la solu- ción de problemas en ingeniería. Estas aplicaciones nos permitirán examinar la solución a los problemas prácticos (tabla 1.2) que surgen en el mundo real. Establecer la relación entre las técnicas matemáticas como los métodos numéricos y la práctica de la ingeniería es un paso decisivo para mostrar su verdadero potencial. Examinar de manera cuidado- sa las aplicaciones a la ingeniería nos ayudará a establecer esta relación. Chapra-01.indd 20 6/12/06 13:41:10 www.FreeLibros.me Estructura Ingeniería civil Conservación del momentum Ingeniería química Campo Dispositivo Principio aplicado Expresión matemática Conservación de la masa Equilibrio de fuerzas: Ingeniería mecánica Conservación del momentumMáquina Equilibrio de fuerzas: Ingeniería eléctrica Conservación de la carga Balance de corriente: Conservación de la energía Balance de voltaje: Balance de la masa: Reactores Entrada Salida En un periodo masa = entradas – salidas En cada nodo  fuerzas horizontales (FH) = 0  fuerzas verticales (FV) = 0 En cada nodo  corriente (i ) = 0 Alrededor de cada malla  fems –  caída de potencial en los resistores = 0   –  iR = 0 – FV + FV + FH– FH + i2 – i3+ i1+ – Circuito i1R1 i3R3 i2R2  Fuerza hacia arriba Fuerza hacia abajo x = 0 m = Fuerza hacia abajo – fuerza hacia arribad 2x dt2 TABLA 1.1 Dispositivos y tipos de balances que se usan comúnmente en las cuatro grandes áreas de la ingeniería. En cada caso se especifi ca la ley de conservación en que se fundamenta el balance. 1.2 LEYES DE CONSERVACIÓN E INGENIERÍA 21 Chapra-01.indd 21 6/12/06 13:41:11 www.FreeLibros.me 24 MODELOS MATEMÁTICOS Y SOLUCIÓN DE PROBLEMAS EN INGENIERÍA 10 000 m, donde la velocidad inicial es de 1400 m/s hacia arriba. Compare su resultado con la solución analítica. 1.12 La cantidad de un contaminante radiactivo distribuido uniformemente que se encuentra contenido en un reactor cerrado, se mide por su concentración c (becquerel/litro, o Bq/L). El con- taminante disminuye con una tasa de decaimiento proporcional a su concentración, es decir: tasa de decaimiento = –kc donde k es una constante con unidades de día–1. Entonces, de acuerdo con la ecuación (1.13), puede escribirse un balance de masa para el reactor, así: dc dt kc–= ( ) =de la masacambio por d ecaimientodisminución ( ) a) Use el método de Euler para resolver esta ecuación desde t = 0 hasta 1 d, con k = 0.2 d–1. Emplee un tamaño de paso de ∆t = 0.1. La concentración en t = 0 es de 10 Bq/L. b) Grafique la solución en papel semilogarítmico (p.ej., ln c ver- sus t) y determine la pendiente. Interprete sus resultados. 1.13 Un tanque de almacenamiento contiene un líquido con profundidad y, donde y = 0 cuando el tanque está lleno a la mitad. El líquido se extrae con una tasa de flujo constante Q a fin de satisfacer las demandas. Se suministra el contenido a una tasa senoidal de 3Q sen2(t). Para este sistema, la ecuación (1.13) puede escribirse como d Ay dx Q t Q ( ) –= ( ) 3 sen el volumen cambio en 2 = (flujo de entrada) – (flujo de salida) o bien, como el área de la superficie A es constante dy dx Q A t Q A = 3 sen2 – Emplee el método de Euler para resolver cuál sería la profundi- dad y, desde t = 0 hasta 10 d, con un tamaño de paso de 0.5 d. Los valores de los parámetros son A = 1200 m2 y Q = 500 m3/d. Suponga que la condición inicial es y = 0. 1.14 Para el mismo tanque de almacenamiento que se describe en el problema 1.13, suponga que el flujo de salida no es cons- tante sino que la tasa depende de la profundidad. Para este caso, la ecuación diferencial para la profundidad puede escribirse como dy dx Q A t y A = +3 1 1 5 sen2 – ( ) .α Use el método de Euler para resolver cuál sería la profundidad y, desde t = 0 hasta 10 d, con un tamaño de paso de 0.5 d. Los valores de los parámetros son A = 1200 m2, Q = 500 m3/d, y a = 300. Suponga que la condición inicial es y = 0. 1.15 Suponga que una gota esférica de líquido se evapora a una tasa proporcional al área de su superficie. dV dt kA= − donde V = volumen (mm3), t = tiempo (h), k = la tasa de evapo- ración (mm/h), y A = área superficial (mm2). Emplee el método de Euler para calcular el volumen de la gota desde t = 0 hasta 10 min usando un tamaño de paso de 0.25 min. Suponga que k = 0.1 mm/min, y que al inicio la gota tiene un radio de 3 mm. Evalúe la validez de sus resultados por medio de determinar el radio de su volumen final calculado y la verificación de que es consisten- te con la tasa de evaporación. 1.16 La ley de Newton del enfriamiento establece que la tempe- ratura de un cuerpo cambia con una tasa que es proporcional a la diferencia de su temperatura y la del medio que lo rodea (tem- peratura ambiente). dT dt k T Ta= − −( ) donde T = temperatura del cuerpo (°C), t = tiempo (min), k = constante de proporcionalidad (por minuto), y Ta = temperatu- ra del ambiente (°C). Suponga que una tasa de café tiene origi- nalmente una temperatura de 68°C. Emplee el método de Euler para calcular la temperatura desde t = 0 hasta 10 min, usando un tamaño de paso de 1 min, si Ta = 21°C y k = 0.017/min. 1.17 Las células cancerosas crecen en forma exponencial con un tiempo de duplicación de 20 h cuando tienen una fuente ili- mitada de nutrientes. Sin embargo, conforme las células comien- zan a formar un tumor de forma esférica sin abasto de sangre, el y 0 Figura P1.13 Chapra-01.indd 24 6/12/06 13:41:11 www.FreeLibros.me crecimiento en el centro del tumor queda limitado, y eventual- mente las células empiezan a morir. a) El crecimiento exponencial del número de células N puede expresarse como se indica, donde µ es la tasa de crecimiento de las células. Encuentre el valor de µ para las células can- cerosas. dN dt N= µ b) Construya una ecuación que describa la tasa de cambio del volumen del tumor durante el crecimiento exponencial, dado que el diámetro de una célula individual es de 20 micras. c) Una vez que un tipo particular de tumor excede las 500 micras de diámetro, las células del centro del tumor se mueren (pero continúan ocupando espacio en el tumor). Determine cuánto tiempo tomará que el tumor exceda ese tamaño crítico. 1.18 Se bombea un fluido por la red que se ilustra en la figura P1.18. Si Q2 = 0.6, Q3 = 0.4, Q7 = 0.2 y Q8 = 0.3 m3/s, determine los otros flujos. Figura P1.18 Q1 Q10 Q9 Q8 Q3 Q5 Q7Q6Q4Q2 PROBLEMAS 25 Chapra-01.indd 25 6/12/06 13:41:12 www.FreeLibros.me CAPÍTULO 2 Programación y software En el capítulo anterior, desarrollamos un modelo matemático a partir de la fuerza total para predecir la velocidad de caída de un paracaidista. Este modelo tenía la forma de una ecuación diferencial, d dt g c m v v= − También vimos que se obtenía una solución de esta ecuación utilizando un método nu- mérico simple, llamado método de Euler, v v v i i id dt t+ = +1 ∆ Dada una condición inicial, se emplea esta ecuación repetidamente para calcular la velocidad como una función del tiempo. Sin embargo, para obtener una buena precisión sería necesario desarrollar muchos pasos pequeños. Hacerlo a mano sería muy laborio- so y tomaría mucho tiempo; pero, con la ayuda de las computadoras tales cálculos pueden realizarse fácilmente. Por ende, nuestro siguiente objetivo consiste en observar cómo se hace esto. En el presente capítulo daremos una introducción al uso de la computadora como una herra- mienta para obtener soluciones de este tipo. 2.1 PAQUETES Y PROGRAMACIÓN En la actualidad existen dos tipos de usuarios de software. Por un lado están aquellos que toman lo que se les da. Es decir, quienes se limitan a las capacidades que encuentran en el modo estándar de operación del software existente. Por ejemplo, resulta muy sen- cillo resolver un sistema de ecuaciones lineales o generar una gráfica con valores x-y con Excel o con MATLAB. Como este modo de operación por lo común requiere un mínimo esfuerzo, muchos de los usuarios adoptan este modo de operación. Además, como los diseñadores de estos paquetes se anticipan a la mayoría de las necesidades tí- picas de los usuarios, muchos de los problemas pueden resolverse de esta manera. Pero, ¿qué pasa cuando se presentan problemas que están más allá de las capacida- des estándar de dichas herramientas? Por desgracia, decir “Lo siento jefe, pero no lo sé hacer” no es algo aceptado en la mayoría de los círculos de la ingeniería. En tales casos usted tiene dos alternativas. La primera sería buscar otro paquete y ver si sirve para resolver el problema. Ésta es una de las razones por las que quisimos usar tanto Excel como MATLAB en este libro. Como veremos, ninguno de los dos abarca todo y cada uno tiene sus ventajas. Chapra-02.indd 26 6/12/06 13:43:39 www.FreeLibros.me Una ventaja del seudocódigo es que con él resulta más fácil desarrollar un programa que con el diagrama de flujo. El seudocódigo es también más fácil de modificar y de compartir con los demás. No obstante, los diagramas de flujo, debido a su forma gráfi- ca, resultan a veces más adecuados para visualizar algoritmos complejos. Nosotros emplearemos diagramas de flujo con fines didácticos, y el seudocódigo será el principal medio que usaremos para comunicar algoritmos relacionados con métodos numéricos. 2.2.1 Representación lógica Secuencia. La estructura secuencial expresa la trivial idea de que, a menos que se indique otra cosa, el código debe realizarse instrucción por instrucción. Como en la fi- gura 2.2, la estructura se puede expresar de manera general como un diagrama de flujo o como un seudocódigo. Selección. En contraste con el paso por paso de la estructura secuencial, la selección nos ofrece un medio de dividir el flujo del programa en ramas considerando el resultado de una condición lógica. La figura 2.3 muestra las dos principales maneras de hacer esto. La decisión ante una sola alternativa, o estructura IF/THEN (figura 2.3a), nos per- mite una desviación en el flujo del programa si una condición lógica es verdadera. Si esta condición es falsa no ocurre nada y el programa continúa con la indicación que se encuentra después del ENDIF. La decisión ante dos alternativas, o estructura IF/THEN/ ELSE (figura 2.3b), se comporta de la misma manera si la condición es verdadera; sin embargo, si la condición es falsa, el programa realiza las instrucciones entre el ELSE y el ENDIF. SÍMBOLO NOMBRE Terminal Líneas de flujo Proceso Entrada/Salida Decisión Unión Conexión de fin de página Ciclo de cuenta controlada FUNCIÓN Representa el inicio o el final de un programa. Representan el flujo de la lógica. Los arcos en la flecha horizontal indican que ésta pasa sobre las líneas de flujo verticales y no se conecta con ellas. Representa cálculos o manipulación de datos. Representa entrada o salida de datos e información. Representa una comparación, una pregunta o una decisión que determina los caminos alternativos a seguir. Representa la confluencia de líneas de flujo. Representa una interrupción que continúa en otra página. Se usa para ciclos que repiten un número predeterminado de iteraciones. FIGURA 2.1 Símbolos usados en los diagramas de fl ujo. 2.2 PROGRAMACIÓN ESTRUCTURADA 29 Chapra-02.indd 29 6/12/06 13:43:41 www.FreeLibros.me 30 PROGRAMACIÓN Y SOFTWARE Aunque las estructuras IF/THEN e IF/THEN/ELSE son suficientes para construir cual- quier algoritmo numérico, por lo común también se usan otras dos variantes. Suponga que el ELSE de un IF/THEN/ELSE contiene otro IF/THEN. En tales casos el ELSE y el IF se pue- den combinar en la estructura IF/THEN/ELSEIF que se muestra en la figura 2.4a. Instrucción1 Instrucción2 Instrucción3 Instrucción4 Instrucción1 Instrucción2 Instrucción3 Instrucción4 a) Diagrama de flujo b) Seudocódigo a) Estructura (IF/THEN) para una sola alternativa b) Estructura (IF/THEN/ELSE) para dos alternativas Diagrama de flujo Seudocódigo IF condición THEN Bloque verdadero ENDIF Verdadero Condición ? Bloque verdadero IF condición THEN Bloque verdadero ELSE Bloque falso ENDIF VerdaderoFalso Condición ? Bloque verdadero Bloque falso FIGURA 2.2 a) Diagrama de fl ujo y b) seudocódigo para la estructura secuencial. FIGURA 2.3 Diagrama de fl ujo y seudo- código para estructuras de selección simple. a) Selección con una alter- nativa (IF/THEN) y b) se- lección con dos alternativas (IF/THEN/ELSE). Chapra-02.indd 30 6/12/06 13:43:41 www.FreeLibros.me a) Estructura con múltiples alternativas (IF/THEN/ELSEIF) b) Estructura CASE (SELECCIONA o DESVÍA) Diagrama de flujo Seudocódigo SELECT CASE Expresión de prueba CASE Valor1 Bloque1 CASE Valor2 Bloque2 CASE Valor3 Bloque3 CASE ELSE Bloque4 END SELECT Valor1 Valor2 Valor3 Otro Expresión de prueba Bloque1 Bloque2 Bloque3 Bloque4 IF condición1 THEN Bloque1 ELSEIF condición2 Bloque2 ELSEIF condición3 Bloque3 ELSE Bloque4 ENDIF VerdaderoFalso Verdadero Verdadero Condición1 ? Falso Condición3 ? Falso Condición2 ? Bloque1 Bloque2 Bloque3Bloque4 FIGURA 2.4 Diagrama de fl ujo y seudocódigo para construcciones de selección o ramifi cación. a) Selección de múltiples alternativas (IF/THEN/ELSEIF) y b) Construcción CASE. Observe que en la figura 2.4a hay una cadena o “cascada” de decisiones. La prime- ra es una instrucción IF y cada una de las decisiones sucesivas es un ELSEIF. Siguiendo la cadena hacia abajo, la primera condición que resulte verdadera ocasionará una des- viación a su correspondiente bloque de código, seguida por la salida de la estructura. Al final de la cadena de condiciones, si todas las condiciones resultaron falsas, se puede adicionar un bloque ELSE opcional. 2.2 PROGRAMACIÓN ESTRUCTURADA 31 Chapra-02.indd 31 6/12/06 13:43:41 www.FreeLibros.me 34 PROGRAMACIÓN Y SOFTWARE Desarrolle un algoritmo que haga lo siguiente: Paso 1: Pida al usuario los coefi cientes a, b y c. Paso 2: Realice las operaciones de la fórmula cuadrática previendo todas las eventualidades (como, por ejemplo, evitar la división entre cero y permitir raíces complejas). Paso 3: Dé la solución, es decir, los valores de x. Paso 4: Dé al usuario la opción de volver al paso 1 y repetir el proceso. Solución. Para desarrollar el algoritmo usaremos un método que va de lo general a lo particular (método top-down). Esto es, iremos refinando cada vez más el algoritmo en lugar de detallar todo a la primera vez. Para esto, supongamos, por lo pronto, que ya probamos que están bien los valores de los coeficientes de la fórmula cuadrática (claro que esto no es cierto, pero por lo pronto así lo consideraremos). Un algoritmo estructurado para realizar la tarea es DO INPUT a, b, c r1 = (—b + SQRT (b2 — 4ac))/(2a) r2 = (—b — SQRT (b2 — 4ac))/(2a) DISPLAY r1, r2 DISPLAY ‘¿Repetir? Conteste sí o no’ INPUT respuesta IF respuesta = ‘no’ EXIT ENDDO La construcción DOEXIT se utiliza para repetir el cálculo de la ecuación cuadráti- ca siempre que la condición sea falsa. La condición depende del valor de la variable de tipo carácter respuesta. Si respuesta es igual a ‘sí’ entonces se llevan a cabo los cálculos. Si no es así, si respuesta es igual a ‘no’, el loop termina. De esta manera, el usuario controla la terminación mediante el valor de respuesta. Ahora bien, aunque el algoritmo anterior funcionará bien en ciertos casos, todavía no está completo. El algoritmo quizá no funcione para algunos valores de las variables. Esto es: • Si a = 0 se presentará inmediatamente un problema debido a la división entre cero. Si inspeccionamos cuidadosamente la ecuación (2.1) veremos que aquí se pueden presentar dos casos: Si b ≠ 0, la ecuación se reduce a una ecuación lineal con una raíz real, –c/b Si b = 0, entonces no hay solución. Es decir, el problema es trivial. • Si a ≠ 0, entonces, según sea el valor del discriminante, d = b2 – 4ac, se pueden presentar también dos casos, Si d ≥ 0, habrá dos raíces reales.* Si d < 0, habrá dos raíces complejas. Observe cómo hemos dejado una sangría adicional para hacer resaltar la estructura de decisión que subyace a las matemáticas. Esta estructura se traduce, después, en un con- junto de estructuras IF/THEN/ELSE acopladas que se pueden insertar en la parte con los comandos sombreados en el código anterior, obteniéndose finalmente el algoritmo: * En realidad si d = 0 las dos raíces reales tienen el mismo valor x = –b/2a. Chapra-02.indd 34 6/12/06 13:43:42 www.FreeLibros.me DO INPUT a, b, c r1 = 0: r2 = 0: i1 = 0: i2 = 0 IF a = 0 THEN IF b ≠ 0 THEN r1 = –c/b ELSE DISPLAY “Solución trivial” ENDIF ELSE discr = b2 – 4 * a * c IF discr ≥ 0 THEN r1 = (–b + Sqrt(discr))/(2 * a) r2 = (–b – Sqrt(discr))/(2 * a) ELSE r1 = –b/(2 * a) r2 = r1 i1 = Sqrt(Abs(discr))/(2 * a) i2 = –i1 ENDIF ENDIF DISPLAY r1, r2, i1, i2 DISPLAY ‘¿Repetir? Conteste sí o no’ INPUT respuesta IF respuesta = ‘no’ EXIT ENDDO El método que se utilizó en el problema anterior puede emplearse para desarrollar un algoritmo para el problema del paracaidista. Recordemos que, dadas la condición inicial para tiempo y velocidad, el problema consistía en resolver de manera iterativa la fórmula v v v i i id dt t+ = +1 ∆ (2.2) Como sabemos, para lograr una buena precisión será necesario emplear incrementos pequeños. Por lo que será necesario emplear la fórmula repetidas veces, desde el tiempo inicial hasta el tiempo final. En consecuencia, un algoritmo para resolver este problema estará basado en el uso de un loop. Supongamos, por ejemplo, que empezamos los cálculos en t = 0 y queremos prede- cir la velocidad en t = 4 s con incrementos de tiempo ∆t = 0.5 s. Entonces tendremos que aplicar la ecuación (2.2) ocho veces, esto es, n = =4 0 5 8 . donde n es el número de iteraciones del loop. Como este número es exacto, es decir, esta división nos da un número entero, podemos usar como base del algoritmo un loop con- trolado por contador. A continuación damos un ejemplo de seudocódigo. 2.2 PROGRAMACIÓN ESTRUCTURADA 35 Chapra-02.indd 35 6/12/06 13:43:42 www.FreeLibros.me 36 PROGRAMACIÓN Y SOFTWARE g = 9.8 INPUT cd, m INPUT ti, vi, tf, dt t = ti v = vi n = (tf — ti) / dt DOFOR i = 1 TO n dvdt = g — (cd / m) * v v = v + dvdt * dt t = t + dt ENDDO DISPLAY v 3 Este problema se combina con el hecho de que las computadoras usan internamente, para la representación de números, la base 2. En consecuencia, algunos números que aparentemente son divisibles no dan exactamente un entero cuando la división se hace en una computadora. De esto hablaremos en el capítulo 3. Aunque este esquema es fácil de programar, no está completo. Sólo funcionará si el intervalo es divisible exactamente entre el incremento.3 Para tomar en cuenta el otro caso, en el código anterior, en lugar del área sombreada se puede usar un loop de decisión. El resultado es: g = 9.8 INPUT cd, m INPUT ti, vi, tf, dt t = ti v = vi h = dt DO IF t + dt > tf THEN h = tf — t ENDIF dvdt = g — (cd / m) * v v = v + dvdt * h t = t + h IF t ≥ tf EXIT ENDDO DISPLAY v Al introducir el loop, usamos la estructura IF/THEN para probar si el valor t + dt nos lleva más allá del final del intervalo. Si no es así, lo cual comúnmente será el caso al principio, no hacemos nada. De lo contrario, necesitaremos reducir el intervalo ha- ciendo el tamaño de incremento h igual a tf – t. Así, garantizamos que el paso siguiente caiga precisamente en tf. Después de hacer este paso final, el loop terminará, debido a que t ≥ tf será verdadero. Observe que antes de entrar en el loop hemos asignado el valor del incremento, dt, a otra variable, h. Creamos esta variable con el objeto de que nuestra rutina no cambie el valor de dt cuando tengamos que reducir el incremento. Hacemos esto anticipándonos a que tengamos que usar el valor original de dt en algún otro lado, en el caso de que este programa sea parte de otro programa mayor. Chapra-02.indd 36 6/12/06 13:43:42 www.FreeLibros.me Para ello, construimos primero una hoja de cálculo sencilla. Como se ve abajo, el primer paso consiste en colocar números y letras o palabras en las celdas de la hoja de cálculo. Antes de escribir un programa de macro para calcular el valor numérico, podemos facilitar el trabajo consecuente dando nombres a los valores de los parámetros. Para esto, seleccione las celdas A3:B5 (la manera más fácil de hacerlo es mover el ratón hasta A3, mantener oprimido el botón izquierdo del ratón y arrastrarlo hasta B5). Después selec- cione, del menú, Insert Name Create Left column OK Para verificar que todo haya funcionado correctamente, seleccione la celda B3 y verifi- que que aparezca la etiqueta “m” en la casilla del nombre (casilla que se encuentra en el lado izquierdo de la hoja, justo debajo de las barras del menú). Muévase hasta la celda C8 e introduzca la solución analítica (ecuación 1.9), =9.8*m/cd*(1-exp(-cd/m*A8)) Al introducir esta fórmula debe aparecer el valor 0 en la celda C8. Después copie la fórmula a la celda C9 para obtener 16.405 m/s. Todo lo anterior es típico del uso estándar de Excel. Hecho esto, podría, por ejemplo, cambiar los valores de los parámetros y observar cómo se modifica la so- lución analítica. Ahora mostraremos cómo se usan las macros de VBA para extender los recursos estándar. En la figura 2.8 se da una lista que contiene, para cada una de las estructuras de control dadas en la sección anterior (figuras 2.2 a 2.6), el seudocódigo junto con el código VBA de Excel. Observe que, aunque los detalles difieren, la estructura del seu- docódigo y la del código VBA son idénticas. Ahora podemos usar algunas de las construcciones dadas en la figura 2.8 para es- cribir una función de macro que calcule la velocidad. Para abrir VBA seleccione4 Tools Macro Visual Basic Editor 4 ¡La combinación de las teclas Alt-F11 es más rápida! A B C D 1 Problema del paracaidista 2 3 m 68.1 kg 4 cd 12.5 kg/s 5 dt 0.1 s 6 7 t vnum (m/s) vanal (m/s) 8 0 0.000 9 2 2.4 EXCEL 39 Chapra-02.indd 39 6/12/06 13:43:43 www.FreeLibros.me 40 PROGRAMACIÓN Y SOFTWARE a) Seudocódigo b) Excel VBA IF/THEN: IF condición THEN If b <> 0 Then Bloque verdadero r1 = —c / b ENDIF End If IF/THEN/ELSE: IF condición THEN If a < 0 Then Bloque verdadero b = Sqr(Abs(a)) ELSE Else Bloque falso b = Sqr(a) ENDIF End If IF/THEN/ELSEIF: IF condición1 THEN If class = 1 Then Bloque1 x = x + 8 ELSEIF condición2 ElseIf class < 1 Then Bloque2 x = x – 8 ELSEIF condición3 ElseIf class < 10 Then Bloque3 x = x — 32 ELSE Else Bloque4 x = x — 64 ENDIF End If CASE: SELECT CASE Expresión de prueba Select Case a + b CASE Valor1 Case Is < —50 Bloque1 x = —5 CASE Valor2 Case Is < 0 Bloque2 x = —5 — (a + b) / 10 CASE Valor3 Case Is < 50 Bloque3 x = (a + b) / 10 CASE ELSE Case Else Bloque4 x = 5 END SELECT End Select DOEXIT: DO Do Bloque1 i = i + 1 IF condición EXIT If i >= 10 Then Exit Do Bloque2 j = i*x ENDIF Loop LOOP CONTROLADO POR CONTADOR: DOFOR i = inicio, fi n, incremento For i = 1 To 10 Step 2 Bloque x = x + i ENDDO Next i FIGURA 2.8 Estructuras de control funda- mentales en a) seudo- código y b) VBA de Excel. Chapra-02.indd 40 6/12/06 13:43:43 www.FreeLibros.me Una vez dentro del Visual Basic Editor (VBE), seleccione Insert Module y se abrirá una nueva ventana para código. La siguiente función en VBA se puede obte- ner directamente del seudocódigo de la figura 2.7. Escriba la función dentro de la nueva ventana. Option Explicit Function Euler(dt, ti, tf, yi, m, cd) Dim h As Single, t As Single, y As Single, dydt As Single t = ti y = yi h = dt Do If t + dt > tf Then h = tf – t End If dydt = dy(t, y, m, cd) y = y + dydt * h t = t + h If t >= tf Then Exit Do Loop Euler = y End Function Compare esta macro con el seudocódigo de la figura 2.7 y vea que son muy simila- res. Observe también cómo la lista de argumentos de la función se hizo más larga al incluir los parámetros necesarios para el modelo de la velocidad del paracaidista. La velocidad obtenida, v, pasa a la hoja de cálculo mediante el nombre de la función. Note también cómo, para calcular la derivada, hemos usado otra función. Ésta se puede introducir en el mismo módulo tecleándola directamente debajo de la función Euler, Function dy(t, v, m, cd) Const g As Single = 9.8 dy = g – (cd / m) * v End Function El paso final consiste en volver a la hoja de cálculo y llamar a la función introdu- ciendo la siguiente expresión en la celda B9. =Euler(dt,A8,A9,B8,m,cd) El resultado de la integración numérica, 16.531, aparecerá en la celda B9. Vamos a ver qué ha pasado aquí. Cuando usted da la función en la celda de la hoja de cálculo, los parámetros pasan al programa VBA, donde se realizan los cálculos y, después, el resultado regresa a la celda. En efecto, el lenguaje de macros VBA le permi- te usar Excel como mecanismo de entradas y salidas (input/output). Esta característica resulta de mucha utilidad. 2.4 EXCEL 41 Chapra-02.indd 41 6/12/06 13:43:44 www.FreeLibros.me 44 PROGRAMACIÓN Y SOFTWARE que se encuentra en la barra de tareas (que por lo general está en la parte inferior de la pantalla). Ahora, el programa se puede correr al hacer clic en el archivo M, analpara, que debe parecerse a lo siguiente: >> analpara Si usted ha hecho todo en forma correcta, MATLAB debe responder con la respuesta correcta: v = 16.4050 Ahora, un problema con lo anterior es que está preparado para calcular sólo un caso. El lector lo puede hacer más flexible si hace que el usuario introduzca algunas de las variables. Por ejemplo, suponga que desea evaluar el efecto de la masa sobre la velocidad a los 2 s. Para hacer esto, el archivo M podría reescribirse como sigue: g=9.8; m=input(‘masa (kg):’); cd=12.5; tf=2; v=g*m/cd*(1-exp(-cd/m*tf)) Guarde esto con el nombre de analpara2.m. Si escribió analpara2 mientras se encontra- ba en el modo de comando, la línea mostrará lo que sigue: masa (kg): Entonces, el usuario introduce un valor como 100, y el resultado aparecerá como: v = 17.3420 Ahora, debe quedar bastante claro cómo se puede programar una solución numéri- ca por medio de un archivo M. A fin de hacerlo, primero debemos entender la manera en que MATLAB maneja las estructuras lógica y de lazo (ciclos o loops). En la figura 2.9 se enlista el seudocódigo junto con el código de MATLAB para todas las estructuras de control, con base en la sección anterior. Aunque las estructuras del seudocódigo y el código MATLAB son muy similares, existen algunas diferencias pequeñas que deben destacarse. En especial, observe cómo hemos expresado la estructura DOEXIT. En lugar del DO usamos el WHILE(1). Como MATLAB interpreta al número 1 como correspon- diente a “verdadero”, esta instrucción se repetirá indefinidamente de la misma manera que el DO. El loop termina con un comando de interrupción (break), el cual transfiere el control a la instrucción que se encuentra a continuación, de la instrucción end que termina el ciclo. También hay que observar que los parámetros del lazo controlado por contador están ordenados de modo diferente. Para el seudocódigo, los parámetros del lazo están Chapra-02.indd 44 6/12/06 13:43:45 www.FreeLibros.me a) Seudocódigo b) MATLAB IF/THEN: IF condición THEN if b ~= 0 Bloque verdadero r1 = —c / b; ENDIF end IF/THEN/ELSE: IF condición THEN if a < 0 Bloque verdadero b = sqrt(abs(a)); ELSE else Bloque falso b = sqrt(a); ENDIF end IF/THEN/ELSEIF: IF condición1 THEN if class == 1 Bloque1 x = x + 8; ELSEIF condición2 elseif class < 1 Bloque2 x = x – 8; ELSEIF condición3 elseif class < 10 Bloque3 x = x — 32; ELSE else Bloque4 x = x — 64; ENDIF end CASE: SELECT CASE Expresión de prueba switch a + b CASE Valor1 case 1 Bloque1 x = —5; CASE Valor2 case 2 Bloque2 x = —5 — (a + b) / 10; CASE Valor3 case 3 Bloque3 x = (a + b) / 10; CASE ELSE otherwise Bloque4 x = 5; END SELECT end DOEXIT: DO while (1) Bloque1 i = i + 1; IF condición EXIT if i >= 10, break, end Bloque2 j = i*x; ENDIF end LOOP CONTROLADO POR CONTADOR: DOFOR i = inicio, fi n, incremento for i = 1:10:2 Bloque x = x + i; ENDO end FIGURA 2.9 Estructuras de control fundamentales en a) seudo- código y b) lenguaje de programación en MATLAB. 2.5 MATLAB 45 Chapra-02.indd 45 6/12/06 13:43:45 www.FreeLibros.me 46 PROGRAMACIÓN Y SOFTWARE especificados como start, finish, step. Para MATLAB, los parámetros están ordenados como start:step:finish. Ahora el siguiente archivo-m de MATLAB se puede desarrollar directamente, a partir del seudocódigo dado en la figura 2.7. Escriba lo siguiente en el Editor/Debugger de MATLAB: g=9.8; m=input(‘mass (kg):’); cd=12.5; ti=0; tf=2; vi=0; dt=0.1; t = ti; v = vi; h = dt; while (1) if t + dt > tf h = tf – t; end dvdt = g – (cd / m) * v; v = v + dvdt * h; t = t + h; if t >= tf, break, end end disp(‘velocity (m/s):’) disp(v) Guarde este archivo como numpara.m, vuelva al modo de comandos y córralo dando numpara. Obtendrá la siguiente salida: masa (kg): 100 velocity (m/s): 17.4381 Por último vamos a convertir este archivo-m en una función. Esto se puede hacer en el siguiente archivo-m basado en el seudocódigo de la figura 2.7: function euler = f(dt,ti,tf,yi,m,cd) t = ti; y = yi; h = dt; while (1) if t + dt > tf h = tf – t; end dydt = dy(t, y, m, cd); y = y + dydt * h; t = t + h; if t >= tf, break, end end yy = y; Chapra-02.indd 46 6/12/06 13:43:45 www.FreeLibros.me 2.3 En cada una de las tarjetas de un conjunto de cartas índice, se registra un valor para la concentración de un contaminante en un lago. Al final del conjunto, se coloca una carta marcada como “fin de los datos”. Escriba un algoritmo para determinar la suma, el promedio y el máximo de dichos valores. 2.4 Escriba un diagrama de flujo estructurado para el proble- ma 2.3. 2.5 Desarrolle, depure y documente un programa para determinar las raíces de una ecuación cuadrática, ax2 + bx + c, en cualquier lenguaje de alto nivel, o de macros, de su elección. Utilice un procedimiento de subrutina para calcular las raíces (sean reales o complejas). Ejecute corridas de prueba para los casos en que a) a = 1, b = 6, c = 2; b) a = 0, b = –4, c = 1.6; c) a = 3, b = 2.5, c = 7. 2.6 La función coseno puede evaluarse por medio de la serie infinita siguiente: cos x x x x= − + − +1 2 4 6 2 4 6 ! ! !  Escriba un algoritmo para implementar esta fórmula de modo que calcule e imprima los valores de cos x conforme se agregue cada término de la serie. En otras palabras, calcule e imprima la secuencia de valores para cos cos cos x x x x x x = = − = − + 1 1 2 1 2 4 2 2 4 ! ! ! hasta el término de orden n que usted elija. Para cada uno de los valores anteriores, calcule y haga que se muestre el error porcen- tual relativo: % %error = valor verdadero – aproximación con la serie valor verdadero ×100 2.7 Escriba el algoritmo para el problema 2.6 en forma de a) diagrama de flujo estructurado, y b) seudocódigo. 2.8 Desarrolle, depure y documente un programa para el problema 2.6 en cualquier lenguaje de alto nivel o de macros, de su elección. Emplee la función coseno de la biblioteca de su computadora para determinar el valor verdadero. Haga que el programa imprima en cada paso la serie de aproximación y el error. Como caso de prue- ba, utilice el programa para calcular valores desde cos(1.25) hasta incluir el término x10/10! Interprete los resultados. 2.9 El algoritmo siguiente está diseñado para determinar la ca- lificación de un curso que consiste en cuestionarios, tareas y un examen final: Paso 1: Introducir la clave y nombre del curso. Paso 2: Introducir factores de ponderación para los cuestionarios (C), tareas (T) y examen final (E). Paso 3: Introducir las calificaciones de las preguntas y determi- nar su promedio (PC). Paso 4: Introducir las calificaciones de las tareas y determinar su promedio (PT). Paso 5: Si el curso tiene una calificación final, continuar con el paso 6. Si no, ir al paso 9. Paso 6: Introducir la calificación del examen final, (F). Paso 7: Determinar la calificación promedio, CP, de acuerdo con CP C PC T PT E F C T E = × + × + × + +( ) ×( ) %100 Paso 8: Ir al paso 10. Paso 9: Determinar la calificación promedio, CP, de acuerdo con CP C PC T PT C T = × + × +( ) ×( ) %100 Paso 10: Imprimir la clave y nombre del curso, y la calificación promedio. Paso 11: Finalizar el cálculo. a) Escriba un seudocódigo bien estructurado para implementar este algoritmo. b) Escriba, depure y documente un programa estructurado de computadora basado en este algoritmo. Pruébelo con los datos siguientes para calcular una califi cación sin el examen fi nal, y otra con éste. C = 35; T = 30; E = 35; cuestionario = 98, 85, 90, 65 y 99; tareas = 95, 90, 87, 100, 92 y 77; y examen fi nal = 92. 2.10 El método antiguo de dividir y promediar, para obtener el valor aproximado de la raíz cuadrada de cualquier número posi- tivo a se puede formular como x x a x= + / 2 a) Escriba un seudocódigo bien estructurado para implementar este algoritmo como se ilustra en la fi gura P2.10. Utilice la indentación apropiada para que la estructura sea clara. b) Desarrolle, depure y documente un programa para imple- mentar esta ecuación en cualquier lenguaje de algo nivel, o de macros, de su elección. Estructure su código de acuerdo con la fi gura P2.10. 2.11 Se invierte cierta cantidad de dinero en una cuenta en la que el interés se capitaliza al final del periodo. Debe determinar- se el valor futuro, F, que se obtiene con cierta tasa de interés, i, después de n periodos, por medio de la fórmula siguiente: F = P (1 + i)n PROBLEMAS 49 Chapra-02.indd 49 6/12/06 13:43:46 www.FreeLibros.me 50 PROGRAMACIÓN Y SOFTWARE Escriba un programa que calcule el valor futuro de una inversión para cada año, desde 1 hasta n. La entrada para la función debe incluir la inversión inicial, P, la tasa de interés, i (en forma de- cimal), y el número de años, n, para el que ha de calcularse el valor futuro. La salida debe consistir en una tabla con encabeza- dos y columnas para n y F. Corra el programa para P = $100 000, i = 0.06, y n = 5 años. 2.12 Las fórmulas económicas están disponibles para calcular los pagos anuales de préstamos. Suponga que obtiene en présta- mo cierta cantidad de dinero P y acuerda devolverla en n pagos anuales con una tasa de interés de i. La fórmula para calcular el pago anual A es: A P i i i n n = + + − ( ) ( ) 1 1 1 Escriba un programa para calcular A. Pruébelo con P = $55 000 y una tasa de interés de 6.6% (i = 0.066). Calcule los resultados para n = 1, 2, 3, 4 y 5, y muestre los resultados en forma de tabla con encabezados y columnas para n y A. 2.13 La temperatura promedio diaria para cierta área se aproxi- ma por medio de la función siguiente, T = T media + (T máxima – T media ) cos(w(t – t máxima )) donde T media = temperatura promedio anual, t máxima = temperatura máxima, w = frecuencia de la variación anual (= 2π/365), y t máxima = día de la temperatura máxima (≅ 205 d). Desarrolle un programa que calcule la temperatura promedio entre dos días del año para una ciudad en particular. Pruébelo para a) enero-febre- ro (t = 0 a 59) en Miami, Florida (T media = 22.1ºC; T máxima = 28.3ºC), y b) julio-agosto (t = 180 a 242) en Boston, Massachussetts (T media = 10.7ºC; T máxima = 22.9ºC). 2.14 Desarrolle, depure y pruebe un programa en cualquier len- guaje de alto nivel, o de macros, de su elección, a fin de calcu lar la velocidad del paracaídas que cae como se explicó en el ejemplo 1.2. Diseñe el programa de modo que permita al usuario introducir valores para el coeficiente de arrastre y la masa. Pruebe el progra- ma con la reproducción de los resultados del ejemplo 1.2. Repita el cálculo pero utilice tamaños de paso de 1 y 0.5 s. Compare sus resultados con la solución analítica que se obtuvo previamente, en el Ejemplo 1.1. Un tamaño de paso más pequeño, ¿hace que los resultados sean mejores o peores? Explique sus resultados. 2.15 El método de la burbuja es una técnica de ordenamiento ineficiente pero fácil de programar. La idea que subyace al orde- namiento consiste en avanzar hacia abajo a través de un arreglo, comparar los pares adyacentes e intercambiar los valores si no están en orden. Para que este método ordene por completo un arreglo, es necesario que lo recorra muchas veces. Conforme se avanza para un ordenamiento en orden ascendente, los elementos más pequeños del arreglo parecen ascender como burbujas. Eventualmente, habrá un paso por el arreglo que ya no requiera intercambios. En ese momento, el arreglo estará ordenado. Des- pués del primer paso, el valor más grande cae directamente hasta el fondo. En consecuencia, el segundo paso sólo tiene que proceder del segundo al último valor, y así sucesivamente. De- sarrolle un programa que tome un arreglo de 20 números al azar y los ordene en forma ascendente con la técnica de la burbuja (véase la figura P2.15). 2.16 En la figura P2.16 se muestra un tanque cilíndrico con base cónica. Si el nivel del líquido está muy bajo en la parte cónica, el volumen simplemente es el volumen del cono de líquido. Si el nivel del líquido está entre la parte cilíndrica, el volumen total de líquido incluye la parte cónica llena y la parte cilíndrica par- cialmente llena. Escriba un procedimiento bien estructurado de función para calcular el volumen del tanque como función de los valores dados de R y d. Utilice estructuras de control de decisio- nes (como If/Then, Elself, Else, End If). Diseñe la función de modo que produzca el volumen en todos los casos en los que la profundidad sea menor que 3R. Genere un mensaje de error (“Sobrepasado”) si se rebasa la altura del tanque, es decir, d > 3R. Pruébelo con los datos siguientes: R 1 1 1 1 d 0.5 1.2 3.0 3.1 F F T T Raíz cuadrada = 0 Raíz cuadrada = x y = (x + a/x)/2 e = |(y – x)/y| x = y tol = 105 x = a/2 a > 0 e < tol Figura P2.10 Chapra-02.indd 50 6/12/06 13:43:47 www.FreeLibros.me r x y= +2 2 Si las coordenadas quedan dentro del primer o cuarto cuadrante (p. ej., x > 0), entonces se emplea una fórmula sencilla para el cálculo de q: θ = ⎛⎝ ⎞ ⎠tan –1 y x La dificultad surge en los demás casos. La tabla siguiente resume las posibilidades: x y θ <0 >0 tan–1(y/x) + p <0 <0 tan–1(y/x) – p <0 =0 p =0 >0 p/2 =0 <0 – p/2 =0 =0 0 a) Escriba un diagrama de fl ujo bien estructurado para un pro- cedimiento de subrutina a fi n de calcular r y q como función de x y y. Exprese los resultados fi nales para q, en grados. b) Escriba una procedimiento bien estructurado de función con base en el diagrama de fl ujo. Pruebe el programa de modo que se llene la tabla que sigue: x y r θ 1 0 1 1 0 1 –1 1 –1 0 –1 –1 0 –1 1 –1 0 0 PROBLEMAS 51 2R R d Figura P2.16 Figura P2.15 TT T F F F m = n – 1 cambio = falso cambio = verdaderom = m – 1 i = 1 i = i + 1 i > m cambiar ai ai+1 inicio fin ai > ai+1 No cambiar 2.17 Se requieren dos distancias para especificar la ubicación de un punto en relación con el origen en un espacio de dos di- mensiones (Véase la figura P2.17): • Las distancias horizontal y vertical (x, y) en coordenadas cartesianas. • El radio y el ángulo (r, q) en coordenadas radiales. Es relativamente fácil calcular las coordenadas cartesianas (x, y) sobre la base de las coordenadas polares (r, q). El proceso inverso no es tan simple. El radio se calcula con la fórmula que sigue: III III IV  r x y Figura P2.17 Chapra-02.indd 51 6/12/06 13:43:47 www.FreeLibros.me 54 APROXIMACIONES Y ERRORES DE REDONDEO los dos errores numéricos más comunes: errores de redondeo. Los errores de redondeo se deben a que la computadora tan sólo representa cantidades con un número finito de dígitos. En el siguiente capítulo nos ocuparemos de otra clase importante de error: el de truncamiento. Los errores de truncamiento representan la diferencia entre una formu- lación matemática exacta de un problema y su aproximación obtenida por un método numérico. Por último, se analizan los errores que no están relacionados directamente con el método numérico en sí. Éstos son equivocaciones, errores de formulación o del modelo, y la incertidumbre en la obtención de los datos, entre otros. 3.1 CIFRAS SIGNIFICATIVAS En esta obra se trata de manera extensa con aproximaciones que se relacionan con el manejo de números. En consecuencia, antes de analizar los errores asociados con los métodos numéricos, es útil repasar algunos conceptos básicos referentes a la represen- tación aproximada de los números mismos. Cuando se emplea un número para realizar un cálculo, debe haber seguridad de que pueda usarse con confianza. Por ejemplo, la figura 3.1 muestra un velocímetro y un odómetro (contador de kilometraje) de un automóvil. Con un simple vistazo al velocí- metro se observa que el vehículo viaja a una velocidad comprendida entre 48 y 49 km/h. Como la aguja está más allá de la mitad entre las marcas del indicador, es posible ase- gurar que el automóvil viaja aproximadamente a 49 km/h. Tenemos confianza en este resultado, ya que dos o más individuos que hicieran esta lectura llegarían a la misma conclusión. Sin embargo, supongamos que se desea obtener una cifra decimal en la es- timación de la velocidad. En tal caso, alguien podría decir 48.8, mientras que otra per- sona podría decir 48.9 km/h. Por lo tanto, debido a los límites del instrumento, 40 8 7 3 2 4 4 5 0 120 20 40 60 80 100 FIGURA 3.1 El velocímetro y el odómetro de un automóvil ejemplifi can el concepto de cifras signifi cativas. Chapra-03.indd 54 6/12/06 13:44:11 www.FreeLibros.me únicamente se emplean con confianza los dos primeros dígitos. Para estimaciones del tercer dígito (o más allá) sólo se considerarían aproximaciones. Sería ridículo afirmar, considerando el velocímetro de la figura, que el automóvil viaja a 48.8642138 km/h. En contraste, el odómetro muestra hasta seis dígitos confiables. De la figura 3.1 se conclu- ye que el automóvil ha recorrido un poco menos de 87 324.5 km durante su uso. Aquí el séptimo dígito (y los siguientes) resultan inciertos. El concepto de cifras o dígitos significativos se ha desarrollado para designar for- malmente la confiabilidad de un valor numérico. Las cifras significativas de un número son aquellas que pueden utilizarse en forma confiable. Se trata del número de dígitos que se ofrecen con certeza, más uno estimado. Por ejemplo, el velocímetro y el odóme- tro de la figura 3.1 muestran lecturas de hasta tres y siete cifras significativas, respecti- vamente. Para el velocímetro, los dos dígitos seguros son 48. Por convención al dígito estimado se le da el valor de la mitad de la escala menor de división en el instrumento de medición. Así, la lectura del velocímetro consistirá de las tres cifras significati- vas: 48.5. En forma similar, el odómetro dará una lectura con siete cifras significativas, 87 324.45. Aunque, por lo común, determinar las cifras significativas de un número es un procedimiento sencillo, en algunos casos genera cierta confusión. Por ejemplo, los ceros no siempre son cifras significativas, ya que pueden usarse sólo para ubicar el punto decimal: los números 0.00001845, 0.0001845 y 0.001845 tienen cuatro cifras significa- tivas. Asimismo, cuando se incluye ceros en números muy grandes, no queda claro cuántos son significativos. Por ejemplo, el número 45 300 puede tener tres, cuatro o cinco dígitos significativos, dependiendo de si los ceros se conocen o no con exactitud. La incertidumbre se puede eliminar utilizando la notación científica, donde 4.53 × 104, 4.530 × 104, 4.5300 × 104 muestran, respectivamente, que el número tiene tres, cuatro y cinco cifras significativas. El concepto de cifras significativas tiene dos implicaciones importantes en el estu- dio de los métodos numéricos. 1. Como se mencionó en el problema de la caída del paracaidista, los métodos nu- méricos dan resultados aproximados. Por lo tanto, se deben desarrollar criterios para especificar qué tan confiables son dichos resultados. Una manera de hacerlo es en términos de cifras significativas. Por ejemplo, es posible afirmar que la aproximación es aceptable siempre y cuando sea correcta con cuatro cifras signi- ficativas. 2. Aunque ciertas cantidades tales como p, e, o 7 representan cantidades específicas, no se pueden expresar exactamente con un número finito de dígitos. Por ejemplo, p = 3.141592653589793238462643... hasta el infinito. Como las computadoras retienen sólo un número finito de cifras significativas, tales números jamás se podrán representar con exactitud. A la omisión del resto de cifras significativas se le conoce como error de redondeo. Los errores de redondeo y el uso de cifras significativas para expresar nuestra con- fianza en un resultado numérico se estudiarán con mayor detalle en las siguientes sec- ciones. Además, el concepto de cifras significativas tendrá mucha importancia en la definición de exactitud y de precisión en la siguiente sección. 3.1 CIFRAS SIGNIFICATIVAS 55 Chapra-03.indd 55 6/12/06 13:44:11 www.FreeLibros.me 56 APROXIMACIONES Y ERRORES DE REDONDEO 3.2 EXACTITUD Y PRECISIÓN Los errores en cálculos y medidas se pueden caracterizar con respecto a su exactitud y su precisión. La exactitud se refiere a qué tan cercano está el valor calculado o medido del valor verdadero. La precisión se refiere a qué tan cercanos se encuentran, unos de otros, diversos valores calculados o medidos. Estos conceptos se ilustran gráficamente utilizando la analogía con una diana en la práctica de tiro. Los agujeros en cada blanco de la figura 3.2 se consideran como las predicciones con una técnica numérica; mientras que el centro del blanco representa la verdad. La inexactitud (conocida también como sesgo) se define como una desviación sistemática del valor verdadero. Por lo tanto, aunque los disparos en la figura 3.2c están más juntos que los de la figura 3.2a, los dos casos son igualmente inexactos, ya que ambos se centran en la esquina superior izquierda del blanco. La imprecisión (también llamada incertidumbre), por otro lado, se refiere a la magnitud en la dispersión de los disparos. Por consiguiente, aunque las figuras 3.2b y 3.2d son igualmente exactas (esto es, igualmente centradas respecto al blanco), la última es más precisa, pues los disparos están agrupados en forma más compacta. c) a) d) b) Aumenta la exactitud A u m en ta la p re ci si ó n FIGURA 3.2 Un ejemplo de puntería ilustra los conceptos de exactitud y precisión. a) Inexacto e impreci- so; b) exacto e impreciso; c) inexacto y preciso; d) exacto y preciso. Chapra-03.indd 56 6/12/06 13:44:12 www.FreeLibros.me En capítulos posteriores se explicarán con detalle éste y otros métodos para expresar errores. Los signos de las ecuaciones (3.2) a (3.5) pueden ser positivos o negativos. Si la aproximación es mayor que el valor verdadero (o la aproximación previa es mayor que la aproximación actual), el error es negativo; si la aproximación es menor que el valor verdadero, el error es positivo. También en las ecuaciones (3.3) a (3.5), el denominador puede ser menor a cero, lo cual también llevaría a un error negativo. A menudo, cuando se realizan cálculos, no importa mucho el signo del error, sino más bien que su valor absoluto porcentual sea menor que una tolerancia porcentual prefijada es. Por lo tanto, es útil emplear el valor absoluto de las ecuaciones (3.2) a (3.5). En tales casos, los cálcu- los se repiten hasta que |ea| < es (3.6) Si se cumple la relación anterior, entonces se considera que el resultado obtenido está dentro del nivel aceptable fijado previamente es. Observe que en el resto del texto en general emplearemos exclusivamente valores absolutos cuando utilicemos errores rela- tivos. Es conveniente también relacionar estos errores con el número de cifras significa- tivas en la aproximación. Es posible demostrar (Scarborough, 1966) que si el siguiente criterio se cumple, se tendrá la seguridad que el resultado es correcto en al menos n cifras significativas. es = (0.5 × 102–n)% (3.7) EJEMPLO 3.2 Estimación del error con métodos iterativos Planteamiento del problema. En matemáticas con frecuencia las funciones se repre- sentan mediante series infinitas. Por ejemplo, la función exponencial se calcula usando x 2 x3 xn ex = 1 + x + —– + —– + … + —– (E3.2.1) 2! 3! n! Así cuanto más términos se le agreguen a la serie, la aproximación será cada vez más una mejor estimación del valor verdadero de ex. La ecuación (E3.2.1) se conoce como expansión en series de Maclaurin. Empezando con el primer término ex = 1 y agregando término por término, estime el valor de e0.5. Después de agregar cada término, calcule los errores: relativo porcentual verdadero y normalizado a un valor aproximado usando las ecuaciones (3.3) y (3.5), respectivamente. Observe que el valor verdadero es e0.5 = 1.648721… Agregue términos hasta que el valor absoluto del error aproximado ea sea menor que un criterio de error preestablecido es con tres cifras significativas. Solución. En primer lugar la ecuación (3.7) se emplea para determinar el criterio de error que asegura que un resultado sea correcto en al menos tres cifras significativas: es = (0.5 × 102–3)% = 0.05% Por lo tanto, se agregarán términos a la serie hasta que ea sea menor que este valor. 3.3 DEFINICIONES DE ERROR 59 Chapra-03.indd 59 6/12/06 13:44:13 www.FreeLibros.me 60 APROXIMACIONES Y ERRORES DE REDONDEO La primera estimación es igual a la ecuación (E3.2.1) con un solo término. Entonces, la primera estimación es igual a 1. La segunda estimación se obtiene agregando el se- gundo término, así: ex = 1 + x y para x = 0.5, e0.5 = 1 + 0.5 = 1.5 Esto representa el error relativo porcentual verdadero de [ecuación (3.3)] 1.648721 – 1.5et = —————–— 100% = 9.02% 1.648721 La ecuación (3.5) se utiliza para determinar una estimación aproximada del error, dada por: 1.5 – 1ea = ——— 100% = 33.3% 1.5 Como ea no es menor que el valor requerido es, se deben continuar los cálculos agregan- do otro término, x2/2!, repitiendo el cálculo del error. El proceso continúa hasta que ea < es. Todos los cálculos se resumen de la siguiente manera Términos Resultado εt (%) εa (%) 1 1 39.3 2 1.5 9.02 33.3 3 1.625 1.44 7.69 4 1.645833333 0.175 1.27 5 1.648437500 0.0172 0.158 6 1.648697917 0.00142 0.0158 Así, después de usar seis términos, el error aproximado es menor que es = 0.05%, y el cálculo termina. Sin embargo, observe que, ¡el resultado es exacto con cinco cifras sig- nificativas! en vez de tres cifras significativas. Esto se debe a que, en este caso, las ecua- ciones (3.5) y (3.7) son conservadoras. Es decir, aseguran que el resultado es, por lo menos, tan bueno como lo especifican. Aunque, como se analiza en el capítulo 6, éste no es siempre el caso al usar la ecuación (3.5), que es verdadera en la mayoría de las veces. Con las definiciones anteriores como antecedente, se procede ahora a examinar los dos tipos de error relacionados directamente con los métodos numéricos: el error de redondeo y el error de truncamiento. 3.4 ERRORES DE REDONDEO Como se mencionó antes, los errores de redondeo se originan debido a que la compu- tadora emplea un número determinado de cifras significativas durante un cálculo. Los Chapra-03.indd 60 6/12/06 13:44:13 www.FreeLibros.me números tales como p, e o 7 no pueden exspresarse con un número fijo de cifras significativas. Por lo tanto, no pueden ser representados exactamente por la computado- ra. Además, debido a que las computadoras usan una representación en base 2, no pue- den representar exactamente algunos números en base 10. Esta discrepancia por la omisión de cifras significativas se llama error de redondeo. 3.4.1 Representación de números en la computadora Numéricamente los errores de redondeo se relacionan de manera directa con la forma en que se guardan los números en la memoria de la computadora. La unidad fundamen- tal mediante la cual se representa la información se llama palabra. Ésta es una entidad que consiste en una cadena de dígitos binarios o bits (binary digits). Por lo común, los números son guardados en una o más palabras. Para entender cómo se realiza esto, se debe revisar primero algún material relacionado con los sistemas numéricos. Sistemas numéricos. Un sistema numérico es simplemente una convención para re- presentar cantidades. Debido a que se tienen 10 dedos en las manos y 10 dedos en los pies, el sistema de numeración que nos es muy familiar es el decimal o de base 10. Una base es el número que se usa como referencia para construir un sistema. El sistema de base 10 utiliza 10 dígitos (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) para representar números. Tales dígitos son satisfactorios por sí mismos para contar de 0 a 9. Para grandes cantidades se usa la combinación de estos dígitos básicos; con la po- sición o valor de posición se especifica su magnitud. El dígito en el extremo derecho de un número entero representa un número del 0 al 9. El segundo dígito a partir de la de- recha representa un múltiplo de 10. El tercer dígito a partir de la derecha representa un múltiplo de 100 y así sucesivamente. Por ejemplo, si se tiene el número 86 409 se tienen 8 grupos de 10 000, seis grupos de 1 000, cuatro grupos de 100 y cero grupos de 10, y nueve unidades, o bien (8 × 104) + (6 × 103) + (4 × 102) + (0 × 101) + (9 × 100) = 86 409 La figura 3.3a ofrece una representación de cómo se formula un número en el sis- tema de base 10. Este tipo de representación se llama notación posicional. Debido a que el sistema decimal resulta ser tan familiar, no es común darse cuenta de que existen otras alternativas. Por ejemplo, si el ser humano tuviera ocho dedos en las manos y ocho en los pies, se tendría, sin duda, una representación en un sistema octal o de base 8. En tal sentido nuestra amiga la computadora es como un animal que tiene dos dedos, limitado a dos estados: 0 o 1. Esto se relaciona con el hecho de que las unidades lógicas fundamentales de las computadoras digitales sean componentes elec- trónicos de apagado/encendido. Por lo tanto, los números en la computadora se repre- sentan con un sistema binario o de base 2. Del mismo modo que con el sistema decimal, las cantidades pueden representarse usando la notación posicional. Por ejemplo, el nú- mero binario 11 es equivalente a (l × 21) + (1 × 20) = 2 + 1 = 3 en el sistema decimal. En la figura 3.3b se ilustra un ejemplo más complejo. Representación entera. Ahora que se ha revisado cómo los números de base 10 se representan en forma binaria, es fácil concebir cómo los enteros se representan en la computadora. El método más sencillo se denomina método de magnitud con signo y 3.4 ERRORES DE REDONDEO 61 Chapra-03.indd 61 6/12/06 13:44:13 www.FreeLibros.me 64 APROXIMACIONES Y ERRORES DE REDONDEO para eliminar el cero multiplicando la mantisa por 10 y diminuyendo el exponente en 1, para quedar 0.2941 × 10–1 Así, se conserva una cifra significativa adicional al guardar el número. La consecuencia de la normalización es que el valor absoluto de m queda limitado. Esto es, 1— ≤ m < 1 (3.8) b donde b = la base. Por ejemplo, para un sistema de base 10, m estaría entre 0.1 y 1; y para un sistema de base 2, entre 0.5 y 1. La representación de punto flotante permite que tanto fracciones como números muy grandes se expresen en la computadora. Sin embargo, hay algunas desventajas. Por ejemplo, los números de punto flotante requieren más espacio y más tiempo de proce- sado que los números enteros. Más importante aun es que su uso introduce una fuente de error debido a que la mantisa conserva sólo un número finito de cifras significativas. Por lo tanto, se introduce un error de redondeo. EJEMPLO 3.4 Conjunto hipotético de números con punto fl otante Planteamiento del problema. Determine un conjunto hipotético de números con pun- to flotante para una máquina que guarda información usando palabras de 7 bits. Emplee el primer bit para el signo del número, los siguientes tres para el signo y la magnitud del exponente, y los últimos tres para la magnitud de la mantisa (véase figura 3.6). Solución. El número positivo más pequeño posible se representa en la figura 3.6. El 0 inicial señala que la cantidad es positiva. El 1 en el segundo lugar indica que el expo- nente tiene signo negativo. Los 1, en el tercero y cuarto lugar dan un valor máximo al exponente de 1 × 21 + 1 × 20 = 3 Por lo tanto, el exponente será –3. Por último, la mantisa está especificada por el 100 en los últimos tres lugares, lo cual nos da 1 × 2–1 + 0 × 2–2 + 0 × 2–3 = 0.5 Signo Exponente con signo Mantisa FIGURA 3.5 La forma en que un número de punto fl otante se guarda en una palabra. Chapra-03.indd 64 6/12/06 13:44:14 www.FreeLibros.me Aunque es posible tomar una mantisa más pequeña (por ejemplo, 000, 001, 010, 011), se emplea el valor de 100 debido al límite impuesto por la normalización [ecuación (3.8)]. Así, el número positivo más pequeño posible en este sistema es +0.5 × 2–3, el cual es igual a 0.0625 en el sistema de base 10. Los siguientes números más grandes se desa- rrollan incrementando la mantisa como sigue: 0111101 = (1 × 2–1 + 0 × 2–2 + 1 × 2–3) × 2–3 = (0.078125)10 0111110 = (1 × 2–1 + 1 × 2–2 + 0 × 2–3) × 2–3 = (0.093750)10 0111111 = (1 × 2–1 + 1 × 2–2 + 1 × 2–3) × 2–3 = (0.109375)10 Observe que las equivalencias de base 10 se esparcen de manera uniforme en un inter- valo de 0.015625. En este punto, para continuar el incremento se debe disminuir el exponente a 10, lo cual da un valor de 1 × 21 + 0 × 20 = 2 La mantisa disminuye hasta su valor más pequeño: 100. Por lo tanto, el siguiente núme- ro es 0110100 = (1 × 2–1 + 0 × 2–2 + 0 × 2–3) × 2–2 = (0.125000)10 Esto todavía representa una brecha o espacio de 0.l25000 – 0.109375 = 0.015625. Sin embargo, cuando los números grandes se generan incrementando la mantisa, la brecha es de 0.03125, 0110101 = (1 × 2–1 + 0 × 2–2 + 1 × 2–3) × 2–2 = (0.156250)10 0110110 = (1 × 2–1 + 1 × 2–2 + 0 × 2–3) × 2–2 = (0.187500)10 0110111 = (1 × 2–1 + 1 × 2–2 + 1 × 2–3) × 2–2 = (0.218750)10 Este patrón se repite conforme se formula una cantidad mayor hasta que se alcanza un número máximo: 0011111 = (1 × 2–1 + 1 × 2–2 + 1 × 2–3) × 23 = (7)10 El conjunto del número final se muestra en la figura 3.7. 0 1 1 1 1 0 0 Signo del número Signo del exponente Magnitud del exponente Magnitud de la mantisa 21 20 2–1 2–2 2–3 FIGURA 3.6 El número positivo de punto fl otante más pequeño posible del ejemplo 3.4. 3.4 ERRORES DE REDONDEO 65 Chapra-03.indd 65 6/12/06 13:44:14 www.FreeLibros.me 66 APROXIMACIONES Y ERRORES DE REDONDEO En la figura 3.7 se presentan diversos aspectos de la representación de punto flotan- te, que son importantes respecto de los errores de redondeo en las computadoras. 1. El rango de cantidades que pueden representarse es limitado. Como en el caso de los enteros, hay números grandes positivos y negativos que no pueden representar- se. Intentar emplear números fuera del rango aceptable dará como resultado el llamado error de desbordamiento (overflow). Sin embargo, además de las grandes cantidades, la representación de punto flotante tiene la limitación adicional de que números muy pequeños no pueden representarse. Esto se ilustra por el “agujero” underflow entre el cero y el primer número positivo en la figura 3.7. Se debe ob- servar que este agujero aumenta por las limitaciones de normalización de la ecua- ción (3.8). 2. Existe sólo un número finito de cantidades que puede representarse dentro de un rango. Así, el grado de precisión es limitado. Es evidente que los números irraciona- les no pueden representarse de manera exacta. Además, los números racionales que no concuerdan exactamente con uno de los valores en el conjunto tampoco pueden ser representados en forma precisa. A los errores ocasionados por la aproximación x x – x x/2 x/2 x – x x + x Corte Redondeo 0 0 7 Overflow(1) Underflow(2) “agujero” en el cero (1) Se genera una cantidad demasiado grande, en una operación aritmética, que rebasa la capacidad del registro (2) Se genera una cantidad, en una operación aritmética, demasiado pequeña, para que pueda ser almacenada. FIGURA 3.7 Sistema numérico hipotético desarrollado en el ejemplo 3.4. Cada valor se indica con una marca. Tan sólo se muestran los números positivos. Un conjunto idéntico se extendería en dirección negativa. Chapra-03.indd 66 6/12/06 13:44:14 www.FreeLibros.me ocurre cuando se prueba la convergencia de cantidades, así como en los mecanismos para detener procesos iterativos (véase el ejemplo 3.2). En estos casos deberá ser claro que más que probar si las dos cantidades son iguales, es recomendable probar si su di- ferencia es menor que una pequeña tolerancia aceptable. Además, deberá ser evidente que más que la diferencia absoluta, deberá compararse la diferencia normalizada, en especial cuando se trabaja con números de gran magnitud. El épsilon de la máquina, además, se emplea al formular criterios de paro o de convergencia. Esto asegura que los programas sean portátiles, es decir, que no sean dependientes de la computadora sobre la cual se hayan implementado. En la figura 3.9 se presenta un seudocódigo que auto- máticamente determina el épsilon de la máquina en una computadora binaria. Precisión extendida. Aquí se debe observar que, aunque los errores de redondeo llegan a ser importantes en contextos tales como pruebas de convergencia, el número de dígitos significativos que tiene la mayoría de las computadoras permite que muchos cálculos de ingeniería se realicen con una precisión más que aceptable. Por ejemplo, el sistema numérico hipotético de la figura 3.7 es una enorme exageración que se usó con propósitos ilustrativos. En las computadoras comerciales se utilizan conjuntos mucho más grandes y por consiguiente se permite que los números queden expresados con una precisión adecuada. Por ejemplo, las computadoras que usan el formato IEEE permiten 24 bits para ser usados por la mantisa, lo cual se traduce en cerca de siete cifras signifi- cativas de precisión1 en dígitos de base 10 con un rango aproximado de 10–38 a 1039. Se debe reconocer que aún hay casos donde el error de redondeo resulta crítico. Por tal razón muchas computadoras permiten la especificación de precisión extendida. La más común de estas especificaciones es la doble precisión, en la cual se duplica el nú- mero de palabras utilizado para guardar números de punto flotante. Esto proporciona de 15 a 16 dígitos decimales de precisión y un rango aproximado de 10–308 a 10308. En muchos casos el uso de cantidades de doble precisión llega a reducir, en gran medida, el efecto del error de redondeo. Sin embargo, el precio que se paga por tales medidas remediales consiste en mayores requerimientos de memoria y de tiempo de ejecución. La diferencia en el tiempo de ejecución de un cálculo pequeño podría parecer insignificante. No obstante, conforme los programas van siendo cada vez más grandes y complicados, el tiempo de ejecución agregado se vuelve más considerable y repercute de manera negativa para resolver el problema en forma efectiva. Por lo tanto, la precisión extendida no debería utilizarse en forma generalizada. Por el contrario, deberá ser em- pleada en forma selectiva, donde se obtenga un máximo beneficio al menor costo en términos de tiempo de ejecución. En las siguientes secciones veremos más de cerca cómo los errores de redondeo afectan los cálculos y ello nos servirá para comprender los fun- damentos que nos guíen en el uso de la capacidad de la doble precisión. Antes de proseguir, debemos observar que algunos paquetes de software de uso común (por ejemplo, Excel o Mathcad) normalmente utilizan doble precisión para re- presentar las cantidades numéricas. Así, quienes desarrollaron estos paquetes decidieron reducir los errores de redondeo sacrificando velocidad para usar una precisión extendi- da. Otros, como el MATLAB, permiten usar la precisión extendida, si se desea. 1 Observe que, de hecho, únicamente 23 bits se emplean en la memoria para la mantisa. Sin embargo, debido a la normalización, el primer bit de la mantisa es siempre 1 y, por lo tanto, no se guarda. Así, el primer bit junto con los 23 bits de memoria dan 24 bits en total para la precisión de la mantisa. 3.4 ERRORES DE REDONDEO 69 epsilon = 1 DO IF (epsilon+1 ≤ 1) EXIT epsilon = epsilon/2 END DO epsilon = 2 × epsilon FIGURA 3.9 Seudocódigo para deter- minar el épsilon de la má- quina en una computadora binaria. Chapra-03.indd 69 6/12/06 13:44:15 www.FreeLibros.me 70 APROXIMACIONES Y ERRORES DE REDONDEO 3.4.2 Manipulación aritmética de números en la computadora Junto con las limitaciones del sistema numérico de una computadora, las manipulaciones aritméticas que se usan con tales números también pueden dar como resultado errores de redondeo. En la siguiente sección se ilustrará primero cómo afectan las operaciones aritméticas comunes a los errores de redondeo. De este modo, investigaremos varias manipulaciones que son especialmente propensas a errores de redondeo. Operaciones aritméticas comunes. A causa de que estamos familiarizados con los números de base 10, los emplearemos para ilustrar el efecto del error de redondeo en las operaciones básicas: suma, resta, multiplicación y división. Otras bases de números pueden tener un comportamiento similar. Para simplificar el análisis, emplearemos una computadora decimal hipotética con una mantisa de 4 dígitos y un exponente de 1 dígi- to. Además, se usará el corte. El redondeo puede implicar errores similares, aunque menos dramáticos. Cuando se suman dos números de punto flotante, el número de la mantisa con el exponente menor se modifica de tal forma que los exponentes sean los mismos. Esto tiene el efecto de alinear los puntos decimales. Por ejemplo, suponga que se quiere sumar 0.1557 · 101 + 0.4381 · 10–1. El decimal de la mantisa del segundo número se recorre a la izquierda un número de lugares igual a la diferencia de los exponentes [1 – (–1) = 2], así, 0.4381 · 10–1 → 0.004381 · 101 Ahora se suman los números, 0.1557 · 101 0.004381 · 101 0.160081 · 101 y el resultado es cortado a 0.1600 · 101. Note cómo los últimos dos dígitos del segundo número que se recorrieron a la derecha fueron eliminados de los cálculos. La resta se realiza en forma idéntica a la suma, con la excepción del signo del sus- traendo, que es negativo. Por ejemplo, suponga que hacemos la resta 36.41 menos 26.86. Esto es, 0.3641 · 102 –0.2686 · 102 0.0955 · 102 Aquí el resultado no está normalizado y se debe recorrer el decimal un lugar a la derecha para obtener 0.9550 · 101 = 9.550. Observe que el cero sumado al final de la man- tisa no es relevante, tan sólo llena el espacio vacío creado al recorrer los números. Es posible obtener resultados más dramáticos todavía, cuando las cantidades estén muy cercanas, como por ejemplo, 0.7642 · 103 –0.7641 · 103 0.0001 · 103 Chapra-03.indd 70 6/12/06 13:44:15 www.FreeLibros.me que podría convertirse en 0.1000 · 100 = 0.1000. Así, en este caso, se agregan tres ceros no significativos, lo cual introduce un error sustancial de cálculo debido a que las ma- nipulaciones siguientes actúan como si los ceros fueran significativos. Como se verá más adelante en otra sección, la pérdida significativa durante la resta de números casi iguales es una de las principales fuentes de errores de redondeo en los métodos numéricos. La multiplicación y la división resultan un poco más sencillos que la suma y la resta. Los exponentes se suman y la mantisa se multiplica. Debido a que la multiplicación de dos mantisas de n dígitos da como resultado 2n dígitos, muchas computadoras ofrecen resultados intermedios en un registro de doble longitud. Por ejemplo, 0.1363 · 103 × 0.6423 · 10–1 = 0.08754549 · 102 Si, como en este caso, se introduce un cero, el resultado es normalizado, 0.08754549 · 102 → 0.8754549 · 101 y cortando resulta 0.8754 · 101 La división se realiza en forma similar, aunque las mantisas se dividen y los expo- nentes se restan. Entonces el resultado es normalizado y cortado. Cálculos grandes. Ciertos métodos requieren un número extremadamente grande de manipulaciones aritméticas para llegar a los resultados finales. Además, dichos cálcu- los a menudo son interdependientes; es decir, los cálculos son dependientes de los resultados previos. En consecuencia, aunque el error de redondeo individual sea pequeño, el efecto acumulativo durante el proceso de muchos cálculos puede ser rele- vante. EJEMPLO 3.6 Un número grande de cálculos interdependientes Planteamiento del problema. Investigue el efecto del error de redondeo en un gran número de cálculos interdependientes. Desarrolle un programa que sume un número 100 000 veces. Sume el número 1 con precisión simple, y 0.00001 con precisiones sim- ple y doble. Solución. En la figura 3.10 se muestra un programa en Fortran 90 que realiza la suma. Mientras que la suma con precisión simple de 1 dará el resultado esperado, la precisión simple en la suma de 0.00001 tiene una gran discrepancia. Este error se reduce de ma- nera importante cuando 0.00001 se suma con precisión doble. Los errores de cuantificación son la fuente de las discrepancias. Debido a que el entero 1 puede ser representado en forma exacta en la computadora, puede sumarse exactamente. En contraste, 0.00001 no puede representarse con exactitud y se cuantifi- ca con un valor que es ligeramente diferente de su valor verdadero. Aunque esta ligera discrepancia resultará insignificante para un cálculo pequeño, se acumula después de la repetición de sumas. Tal problema ocurre también con la precisión doble, pero se redu- ce en forma relevante porque el error de cuantificación es mucho más pequeño. 3.4 ERRORES DE REDONDEO 71 Chapra-03.indd 71 6/12/06 13:44:16 www.FreeLibros.me
Docsity logo



Copyright © 2024 Ladybird Srl - Via Leonardo da Vinci 16, 10126, Torino, Italy - VAT 10816460017 - All rights reserved