Metodos Numericos Aplicados a La Ingenieria 4a Nieves | Pocho

January 11, 2018 | Author: Anonymous | Category: Documents
Share Embed


Short Description

pdf. Metodos Numericos Aplicados a La Ingenieria 4a Nieves. 726 Pages ... Métodos Numéricos Aplicados a la Ingeniería...

Description

CD interactivo en esta edición

Antonio Nieves Hurtado Federico C. Domínguez Sánchez

4

Subido por:

Libros de Ingeniería Química y más

https://www.facebook.com/pages/InterfaseIQ/146073555478947?ref=bookmarks

Si te gusta este libro y tienes la posibilidad, cómpralo para apoyar al autor.

Métodos Numéricos Aplicados a la Ingeniería

Métodos Numéricos Aplicados a la Ingeniería

Antonio Nieves Hurtado Federico C. Domínguez Sánchez† Profesores de la Academia de Matemáticas Aplicadas ESIQIE-IPN

PRIMERA EDICIÓN EBOOK MÉXICO, 2014

GRUPO EDITORIAL PATRIA

info

editorialpatria.com.mx

www.editorialpatria.com.mx

Dirección editorial: Javier Enrique Callejas Coordinadora editorial: Estela Delfín Ramírez Supervisor de preprensa: Gerardo Briones González Diseño de portada: Juan Bernardo Rosado Solís Ilustraciones: Braulio Morales Fotografías: © 2011, Thinkstockphoto/ Nemesis Revisión técnica: Dr. José Job Flores Godoy Departamento de Matemáticas Universidad Iberoamericana Métodos numéricos aplicados a la ingeniería, 4a. edición Derechos reservados: © 2014, Antonio Nieves Hurtado / Federico C. Domínguez Sánchez © 2014, GRUPO EDITORIAL PATRIA, S.A. DE C.V. Renacimiento 180, Colonia San Juan Tlihuaca Delegación Azcapotzalco, Código Postal 02400, México, D.F. Miembro de la Cámara Nacional de la Industria Editorial Mexicana Registro Núm. 43 ISBN ebook: 978-607-438-926-5 ISBN: 978-970-817-080-2 (tercera edición) ISBN: 970-24-0258-1 (segunda edición) ISBN: 968-26-1260-8 (primera edición) Queda prohibida la reproducción o transmisión total o parcial del contenido de la presente obra en cualesquiera formas, sean electrónicas o mecánicas, sin el consentimiento previo y por escrito del editor. Impreso en México Printed in Mexico Primera edición ebook: 2014

A dos ángeles en el cielo: a mi madre Isabel y un gran amigo, Fred Eggli. A tres ángeles en la Tierra: mi padre, Antonio; Mom, Violet Eggli y mi esposa, Alda María. Antonio A la memoria de mis padres, Aurelia y Cliserio; y de mis hermanas, Isabel y María Elma. A mis hermanos, Susana y Alejandro; a mis hijos, Alura Lucia, Alejandra y Federico; a mi nieto Osiel; y a mi esposa, María Sara Araceli. Federico

Contenido 



Prefacio

xi



1

Errores

1

1.1

Sistemas numéricos

3

1.2

Manejo de números en la computadora

9

1.3

Errores

13

1.4

Algoritmos y estabilidad

22

Ejercicios

23

Problemas propuestos

27



2

Solucióndeecuacionesnolineales

31

2.1

Método de punto fijo ALGORITMO 2.1 Método de punto fijo

32 38

2.2

Método de Newton-Raphson ALGORITMO 2.2 Método de Newton-Raphson

48 51

2.3

Método de la secante ALGORITMO 2.3 Método de la secante

54 56

2.4

Método de posición falsa ALGORITMO 2.4 Método de posición falsa

57 61

2.5

Método de la bisección

61

2.6

Problemas de los métodos de dos puntos y orden de convergencia

63

2.7

Aceleración de convergencia ALGORITMO 2.5 Método de Steffensen

66 70

2.8

Búsqueda de valores iniciales

71

2.9

Raíces complejas ALGORITMO 2.6 Método de Müller

77 85

2.10

Polinomios y sus ecuaciones ALGORITMO 2.7 Método de Horner ALGORITMO 2.8 Método de Horner iterado

86 89 91

Ejercicios

100

Problemas propuestos

131

VII

Métodos Numéricos Aplicados a la Ingeniería





3

4

5

VIII

Matricesysistemasdeecuacioneslineales

145

3.1

Matrices ALGORITMO 3.1 Multiplicación de matrices

146 153

3.2

Vectores

158

3.3

Independencia y ortogonalización de vectores ALGORITMO 3.2 Ortogonalización de Gram-Schmidt

167 179

3.4

Solución de sistemas de ecuaciones lineales ALGORITMO 3.3 Eliminación de Gauss ALGORITMO 3.4 Eliminación de Gauss con pivoteo ALGORITMO 3.5 Método de Thomas ALGORITMO 3.6 Factorización directa ALGORITMO 3.7 Factorización con pivoteo ALGORITMO 3.8 Método de Doolitle ALGORITMO 3.9 Factorización de matrices simétricas ALGORITMO 3.10 Método de Cholesky

183 189 193 204 210 211 214 217 220

3.5

Métodos iterativos ALGORITMO 3.11 Métodos de Jacobi y Gauss-Seidel

231 242

3.6

Valores y vectores propios

248

Ejercicios

254

Problemas propuestos

272

Sistemasdeecuacionesnolineales

289

4.1

Dificultades en la solución de sistemas de ecuaciones no lineales

291

4.2

Método de punto fijo multivariable ALGORITMO 4.1 Método de punto fijo multivariable

295 301

4.3

Método de Newton-Raphson ALGORITMO 4.2 Método de Newton-Raphson multivariable

302 310

4.4

Método de Newton-Raphson modificado ALGORITMO 4.3 Método de Newton-Raphson modificado

311 315

4.5

Método de Broyden ALGORITMO 4.4 Método de Broyden

316 320

4.6

Aceleración de convergencia ALGORITMO 4.5 Método del descenso de máxima pendiente

321 337

4.7

Método de Bairstow

339

Ejercicios

345

Problemas propuestos

359

Aproximaciónfuncionaleinterpolación

367

5.1

Aproximación polinomial simple e interpolación ALGORITMO 5.1 Aproximación polinomial simple

370 373

5.2

Polinomios de Lagrange ALGORITMO 5.2 Interpolación con polinomios de Lagrange

373 379

Contenido

6

7

5.3

Diferencias divididas ALGORITMO 5.3 Tabla de diferencias divididas

381 384

5.4

Aproximación polinomial de Newton ALGORITMO 5.4 Interpolación polinomial de Newton

385 389

5.5

Polinomio de Newton en diferencias finitas

390

5.6

Estimación de errores en la aproximación

399

5.7

Aproximación polinomial segmentaria

405

5.8

Aproximación polinomial con mínimos cuadrados ALGORITMO 5.5 Aproximación con mínimos cuadrados

412 420

5.9

Aproximación multilineal con mínimos cuadrados

420

Ejercicios

424

Problemas propuestos

438

Integraciónydiferenciaciónnumérica

451

6.1

Métodos de Newton-Cotes ALGORITMO 6.1 Método trapezoidal compuesto ALGORITMO 6.2 Método de Simpson compuesto

454 464 468

6.2

Cuadratura de Gauss ALGORITMO 6.3 Cuadratura de Gauss-Legendre

478 486

6.3

Integrales múltiples ALGORITMO 6.4 Integración doble por Simpson 1/3

487 494

6.4

Diferenciación numérica ALGORITMO 6.5 Derivación de polinomios de Lagrange

495 505

Ejercicios

505

Problemas propuestos

521

Ecuacionesdiferencialesordinarias

535

7.1

Formulación del problema de valor inicial

538

7.2

Método de Euler ALGORITMO 7.1 Método de Euler

539 543

7.3

Método de Taylor

543

7.4

Método de Euler modificado ALGORITMO 7.2 Método de Euler modificado

546 549

7.5

Métodos de Runge-Kutta ALGORITMO 7.3 Método de Runge-Kutta de cuarto orden

549 554

7.6

Métodos de predicción-corrección ALGORITMO 7.4 Método predictor-corrector

555 568

7.7

Ecuaciones diferenciales ordinarias de orden superior y sistemas de ecuaciones diferenciales ordinarias ALGORITMO 7.5 Método de Runge-Kutta de cuarto orden para un sistema de dos ecuaciones diferenciales ordinarias

569 577

IX

Métodos Numéricos Aplicados a la Ingeniería

8

7.8

Formulación del problema de valores en la frontera

578

7.9

Ecuaciones diferenciales rígidas

582

Ejercicios

586

Problemas propuestos

608

Ecuacionesdiferencialesparciales 8.1

Obtención de algunas ecuaciones diferenciales parciales a partir de la modelación de fenómenos físicos (ecuación de calor y ecuación de onda) Aproximación de derivadas por diferencias finitas

623 627

8.3

Solución de la ecuación de calor unidimensional ALGORITMO 8.1 Método explícito ALGORITMO 8.2 Método implícito

632 637 648

8.4

Convergencia (método explícito), estabilidad y consistencia

651

8.5

Método de Crank-Nicholson ALGORITMO 8.3 Método de Crank-Nicholson

654 660

8.6

Otros métodos para resolver el problema de conducción de calor unidimensional

660

8.7

Solución de la ecuación de onda unidimensional

663

8.8

Tipos de condiciones frontera en procesos físicos y tratamientos de condiciones frontera irregulares

670

Ejercicios

674

Problemas propuestos

683

8.2

X

621

Respuestasaproblemasseleccionados

691

Índiceanalítico

705

Prefacio Objetivo del libro El análisis numérico y sus métodos son una dialéctica entre el análisis matemático cualitativo y el análisis matemático cuantitativo. El primero nos dice, por ejemplo, que bajo ciertas condiciones algo existe, que es o no único, etc.; en tanto que el segundo complementa al primero, permitiendo calcular aproximadamente el valor de aquello que existe. Así pues, el análisis numérico es una reflexión sobre los cursos tradicionales de cálculo, álgebra lineal y ecuaciones diferenciales, entre otros, que se concreta en una serie de métodos o algoritmos, cuya característica principal es la posibilidad de obtener resultados numéricos de problemas matemáticos de cualquier tipo a partir de números y de un número finito de operaciones aritméticas. La finalidad de este libro es el estudio y uso racional de dichos algoritmos en diferentes áreas de ingeniería y ciencias.

Enfoque del libro La noción de algoritmo es un concepto clásico en las matemáticas, anterior a la aparición de las computadoras y las calculadoras. Por ejemplo, en el Papiro de Ahmes o de Rhind (de hacia el año 1650 a.C.) se encuentra la técnica de posición falsa aplicada a la solución de ecuaciones lineales y en el Jiuzhang Suanshu (el libro más famoso de la matemática china, del año 200 a. C.) se resolvían sistemas de ecuaciones lineales con el método conocido hoy en día como eliminación de Gauss. En realidad, en la enseñanza básica tradicional todos aprendimos algoritmos como el de la división, la multiplicación y la extracción de raíces cuadradas. Con el transcurso del tiempo, los dos primeros suelen convertirse en las operaciones más conocidas y practicadas (aunque quizás también, en las más incomprendidas) y, el tercero en la operación más fácilmente olvidada. A fin de no caer en un curso más de recetas matemáticas desvinculadas y sin sentido, hemos desarrollado el material de este libro en torno a tres ideas fundamentales: el punto fijo, la eliminación de Gauss y la aproximación de funciones. Para instrumentarlas empleamos como recursos didácticos, en cada método o situación, diferentes sistemas de representación: el gráfico, el tabular y el algebraico, y promovemos el paso entre ellos. Con el fin de que el lector vea claramente la relación entre los métodos que estudia en el libro y su aplicación en el contexto real, se resuelven al final de cada capítulo alrededor de diez o más problemas de diferentes áreas de aplicación. De igual manera, hacemos énfasis en el uso de herramientas como la calculadora y la computadora, así como en la importancia de la visualización en los problemas. Dada la importancia de cada uno de estos aspectos, los trataremos con cierto detalle a continuación.

Los métodos numéricos y las herramientas computacionales Computadora Cada algoritmo implica numerosas operaciones lógicas, aritméticas y en múltiples casos graficaciones, por ello la computadora es fundamental para el estudio de éstos. El binomio computadora-lenguaje de alto nivel (Fortran, Basic, C y otros) ha sido utilizado durante muchos años para la enseñanza y el XI

Métodos Numéricos Aplicados a la Ingeniería

aprendizaje de los métodos numéricos. Si bien esta fórmula ha sido exitosa y sigue aún vigente, también es cierto que la aparición de paquetes comerciales como Mathcad, Maple, Matlab (por citar algunos de los más conocidos) permite nuevos acercamientos al estudio de los métodos numéricos. Por ejemplo, ha permitido que la programación sea más sencilla y rápida y facilitado además la construcción directa de gráficas en dos y tres dimensiones, así como la exploración de conjeturas y la solución numérica directa de problemas matemáticos. En respuesta a estas dos vertientes, se acompaña el libro con un CD donde se han mantenido los programas de la segunda edición (Fortran 90, Pascal, Visual Basic y C) y se han incorporado 34 nuevos programas en Visual Basic. En numerosos ejemplos, ejercicios y problemas utilizamos o sugerimos además el empleo de los paquetes matemáticos mencionados arriba.

Calculadorasgraficadoras Las calculadoras graficadoras (como la TI-89, TI-92 Plus, Voyage 200, HP-48 o HP-49) disponen hoy en día de poderosos elementos como: a) Un sistema algebraico computarizado (CAS por sus siglas en inglés) que permite manipulaciones simbólicas y soluciones analíticas de problemas matemáticos. b) La graficación en dos y tres dimensiones con facilidades como el zoom y el trace. c) La posibilidad de resolver numéricamente problemas matemáticos. d) La posibilidad de programar y utilizar a través de dicha programación los recursos mencionados en los incisos anteriores, convirtiéndose así el conjunto lenguaje-recursos en una herramienta aún más poderosa que un lenguaje procedural como Basic o C. Finalmente, su bajo costo, portabilidad y posibilidades de comunicación con sitios Web donde es posible actualizar, intercambiar y comprar programas e información, permiten plantear un curso de métodos numéricos sustentado en la calculadora o una combinación de calculadora y computadora. A fin de apoyar esta acción hemos incorporado en muchos de los ejemplos y ejercicios programas que funcionan en las calculadoras TI-89, TI-92, TI-92 Plus, Voyage 200.

Visualización A partir de las posibilidades gráficas que ofrecen las computadoras y las calculadoras, la visualización (un recurso natural del ser humano) ha tomado mayor importancia y se ha podido utilizar en las matemáticas de diferentes maneras, como la aprehensión de los conceptos, la solución de problemas, la ilustración de los métodos y, en general, para darle un aspecto dinámico a diversas situaciones físicas. Así, hemos intentado aprovechar cada uno de estos aspectos y aplicarlos a lo largo del libro siempre que fue posible. Por ejemplo, en el capítulo 4 se presentan ilustraciones novedosas de los métodos para resolver sistemas de ecuaciones no lineales (inclusive se han puesto en color varias de esas gráficas a fin de tener una mejor apreciación de las intersecciones de superficies y de las raíces), ilustraciones de conceptos abstractos como el criterio de convergencia del método de punto fijo univariable y la ponderación de pendientes en los métodos de Runge-Kutta. Además, se incluyen varios ejercicios en Visual Basic donde se simula algún fenómeno como el de crecimiento de poblaciones (ejercicio 7.13), amortiguación en choques (ejercicio 7.11) y el desplazamiento de una cuerda vibrante (ejemplo 8.5). En estos últimos se pueden observar los resultados numéricos en tiempo real y la gráfica que van generando e incluso modificar los parámetros para hacer exploraciones propias. Todos ellos aparecen en el CD y se identifican con el icono correspondiente.

XII

Prefacio

Prerrequisitos Generalmente los cursos de métodos numéricos siguen a los de cálculo en una variable, el de ecuaciones diferenciales ordinarias y el de programación. No obstante, sólo consideramos los cursos de cálculo y de programación (en el modelo computadora-lenguaje de alto nivel) como prerrequisitos. Los conocimientos de álgebra lineal requeridos, así como los elementos básicos para estudiar las técnicas de las ecuaciones diferenciales parciales, se exponen en los capítulos correspondientes. Si bien los conceptos y técnicas analíticas de las ecuaciones diferenciales ordinarias serían benéficos y complementarios con los métodos de este curso, no son, sin embargo, material indispensable.

Secuencias sugeridas Como se dijo antes, el libro se desarrolla alrededor de tres ideas matemáticas fundamentales: punto fijo, eliminación de Gauss y aproximación de funciones. Las dos primeras se estudian en los capítulos 2 y 3, respectivamente, y junto con el capítulo 4 constituyen la parte algebraica del libro. Un primer curso (semestral) de métodos numéricos podría organizarse con los primeros cuatro capítulos del libro, seleccionando las secciones que correspondan a su programa de estudios o a las necesidades específicas del curso.

XIII

Métodos Numéricos Aplicados a la Ingeniería

La tercera idea matemática clave en el libro es la de aproximación de funciones, que se presenta en el capítulo 5 y sustenta el material de análisis: integración y derivación numérica (capítulo 6), y que más adelante será la base de la parte de dinámica: ecuaciones diferenciales ordinarias y parciales (capítulos 7 y 8, respectivamente). De este modo, un curso semestral podría configurarse con los capítulos 1, 5, 6, 7 o bien 1, 5, 6, 7 y 8 (ver red de temas e interrelación). Debido a ello y al hecho de que algunos tecnológicos y universidades sólo tienen un curso de un semestre de métodos numéricos, podría elaborarse éste con una secuencia como capítulos 1, 2, 3, 5 o bien 1, 2, 5, 6, por ejemplo. Finalmente, recomendamos al maestro que cualquiera que sea la secuencia y las secciones elegidas en cada una de ellas, se discuta y trabaje con los ejemplos resueltos de final de cada capítulo.

Novedades en esta edición t Entradas de capítulo Cada capítulo se ilustra con una situación proveniente de la cotidianeidad o del ámbito ingenieril, mostrando la necesidad de emplear métodos numéricos en el análisis de tales situaciones. La finalidad es que el lector vea los métodos numéricos como algo vinculado a su realidad circundante y futuro ejercicio profesional. t Proyectos Al final de cada capítulo se plantean uno o dos proyectos, cuya característica es una considerable demanda intelectual y de trabajo para los lectores. En éstos puede requerirse consultar bibliografía adicional, integrar conocimientos diversos y reflexionar sobre los conceptos matemáticos y de ingeniería involucrados. A cambio, los estudiantes y profesores podrán involucrarse en la explotación de ideas novedosas y enfrentar retos, consiguiendo con ello un mejor manejo de los métodos estudiados, pero sobre todo disfrutar del aspecto lúdico de la resolución de este tipo de problemas. t Programas A los 39 programas de la versión anterior se agregan 34 nuevos programas que, en su mayoría, permiten la visualización gráfica y el seguimiento numérico, paso a paso, de la evolución de los métodos al resolver algún problema planteado por el usuario. A continuación se describen por capítulo. Capítulo 1. Conversión de números entre distintos sistemas numéricos. Capítulo 2. Métodos: punto fijo, Newton-Raphson, secante, posición falsa y bisección; para todos ellos se cuenta con un capturador de funciones que permite al usuario proponer sus funciones. Capítulo 3. Programas de multiplicación de matrices, ortogonalización de vectores, métodos de eliminación gaussiana, factorización LU y los métodos iterativos de Jacobi y Gauss-Seidel. Capítulo 4. Programa para graficación de funciones de dos variables; métodos de punto fijo, Newton-Raphson y el de descenso de máxima pendiente. Capítulo 5. Programa de interpolación con diferencias divididas. Se cuenta con un programa que permite al usuario, mediante visualizaciones y manipulaciones virtuales, captar la idea fundamental que subyace en la aproximación lineal por mínimos cuadrados; también con un programa que permite el ajuste a partir de un menú de modelos comunes.

XIV

Prefacio

Capítulo 6. Se presenta un programa para graficar una función analítica proporcionada por el usuario; puede observarse en éste la recta tangente en cada punto de la función y la gráfica de la derivada de dicha función. Asimismo, se dan programas para la derivación de una función dada tabularmente y para la integración de funciones analíticas por cuadratura de Gauss-Legendre con dos y tres puntos. Capítulo 7. Programas para los métodos de Euler y Runge-Kutta (segundo, tercero y cuarto orden). t Nuevos ejercicios y problemas Se han eliminado algunos ejercicios y problemas e incorporado nuevos a lo largo del texto. t Íconos utilizados en la tercera edición El libro se rediseñó íntegramente para facilitar su lectura; en particular, se incluyeron los íconos que aparecen a continuación para permitir al lector identificar con rapidez los apoyos con los que cuenta: Matlab

Guiones de Matlab. Programas para las calculadoras Voyage 200.

VisualBasic

Indica un programa en Visual Basic que se ha incluido en el CD y que le ayuda en la solución de ese ejercicio o ejemplo. La solución se incluye en el CD (en Mathcad, Matlab y Mathematica).

Materiales adicionales CD-ROM diseñado especialmente para la cuarta edición, que contiene: t Programas fuente en Visual Basic y sus respectivos ejecutables que corren en Windows 95 o posterior para la solución de ejemplos y ejercicios. t Documentos de Mathcad y guiones de Matlab. Los documentos en Mathcad permiten dar un sentido exploratorio a los métodos numéricos y los guiones de Matlab, acceso a uno de los paquetes más poderosos para resolver problemas matemáticos. t Algoritmos, descripción de los programas de cómputo y explicaciones detalladas de su uso. t Ligas a sitios donde el lector encontrará tutoriales de Mathcad, Matlab y Mathematica, en los que podrá aprender a usar estos paquetes. t Sugerencias de empleo de software comercial (Mathcad y Matlab, Mathematica) para resolver un gran número de ejemplos y ejercicios.

Agradecimientos Esta obra tiene su origen en apuntes para los cursos de métodos numéricos en la carrera de Ingeniería Química Industrial del Instituto Politécnico Nacional, desarrollados durante una estancia de año sabático en el Instituto Tecnológico de Celaya y, posteriormente, a raíz de un certamen organizado por el propio IPN, se convirtieron en una propuesta de libro que ganó el primer lugar en el Primer Certamen Editorial Politécnico en 1984. Desde entonces, con actualizaciones continuas, ha sido utilizado como texto para estos cursos en diferentes instituciones del país y del extranjero. Los autores agradecen al XV

Métodos Numéricos Aplicados a la Ingeniería

Instituto Politécnico Nacional la facilidad que otorgó para que la editorial CECSA, ahora Grupo Editorial Patria, lo publicara. Agradecemos también a los investigadores y profesores que colaboraron para la realización de esta nueva edición y de las anteriores. t t t t t t t t t t t t t t t t t t t

Dr. Gustavo Iglesias Silva. Texas A & M University e Instituto Tecnológico de Celaya. Dr. Ramón Duarte Ramos. Universidad Autónoma de Sinaloa. Dr. Horacio Orozco Mendoza. Instituto Tecnológico de Celaya. Ing. Adriana Guzmán López. Instituto Tecnológico de Celaya. M. en C. Miguel Hesiquio Garduño. ESIQIE-IPN. Ing. Arturo Javier López García. ESIQIE-IPN. Ing. Rogelio Márquez Nuño. ESIQIE-IPN. Ing. César Gustavo Gómez Sierra. ESIQIE-IPN. Dr. Ricardo Macías Salinas. ESIQIE-IPN. Ing. Blanca Navarro Anaya. ESIQIE-IPN. Dr. César Cristóbal Escalante. Universidad de Quintana Roo. Dr. Carlos Angüis Terrazas†. ESIQIE-IPN. Dr. Daniel Gómez García. Universidad Autónoma de Saltillo. Ing. Manuel Guía Calderón. Universidad de Guanajuato, Campus Salamanca. Ing. José Luis Turriza Pinto. ESIME ZAC.-IPN. Q. Amparo Romero Márquez. Instituto Tecnológico de Celaya. Dr. Guillermo Marroquín Suárez†. ESIQIE-IPN. Q. Gabriela Romero Márquez. Instituto Tecnológico de Celaya. Ing. Leslie Gómez Ortíz. ESIQIE-IPN.

Agradecemos al Dr. José Job Flores Godoy de la Universidad Iberoamericana por la completa y extraordinaria revisión técnica de la obra y al Profesor Raúl Guinovart Díaz del ITESM-CEM por sus comentarios para mejorar la obra. Nuestro agradecimiento especial al personal del Grupo Editorial Patria, y en particular a la Ing. Estela Delfín Ramírez, nuestra editora, por su esmero y pulcritud, así como por la serie de ideas y sugerencias que permitieron enriquecer esta nueva edición.

XVI

1

Errores El 4 de junio de 1996 el cohete no tripulado Ariane 5, lanzado por la Agencia Espacial Europea, explotó 40 segundos después de despegar. Después de una década de desarrollo con una inversión de 7 mil millones de dólares, el cohete hacía su primer viaje al espacio. El cohete y su carga estaban valuados en 500 millones de dólares. Un comité investigó las causas de la explosión y en dos semanas emitió un reporte. La causa de la falla fue un error de software en el sistema de referencia inercial. Específicamente un número de punto flotante de 64 bits, relativo a la velocidad horizontal del cohete con respecto a la plataforma, fue convertido a un entero con signo de 16 bits. El número entero resultó mayor que 32,768, el entero con signo más grande que puede almacenarse en una palabra de 16 bits, fallando por ello la conversión.*

Figura 1.1 Ariane 5.

El objetivo de este capítulo es conocer y analizar errores del tipo mencionado y prevenirlos en alguna medida. * Fuente: http://ta.twi.tudelft.nl/users/vuik/wi211/disasters.html

1

Métodos Numéricos Aplicados a la Ingeniería

A dónde nos dirigimos En este capítulo revisaremos tres de los sistemas numéricos posicionales más relevantes en el estudio de los métodos numéricos: binario, octal y decimal. Analizaremos las conversiones entre ellos, la representación y el manejo del sistema binario en la computadora, así como los diversos errores que ello puede ocasionar y algunas formas de evitarlos. Dada la naturaleza electrónica de las calculadoras y las computadoras, los sistemas binario y octal resultan los más indicados para usarse en estos aparatos; a fin de tener una idea de los procesos numéricos internos en ellas, conviene hacer un estudio de tales sistemas y su conversión al decimal, ya que éste es finalmente nuestro medio de enlace con las máquinas. Por un lado, dada la finititud de la palabra de memoria de las máquinas, es imposible representar todos los números reales en ella. Así, números como π, 2, 1/3 = 0.333..., números muy pequeños* (o muy grandes) se manejan usando números que son aproximaciones de ellos, o simplemente no se manejan. Por otro lado, una de las características más sobresalientes de los métodos numéricos es el uso de los números reales en cálculos extensos. Cabe entonces preguntarse qué efecto tienen tales aproximaciones en los cálculos que hacemos con dichos números, en los resultados que obtenemos e incluso qué números reales pueden representarse con exactitud en la computadora. El conocimiento de todo esto nos ayudará a evitar cierto tipo de errores, analizar su propagación e, incluso, interpretar mejor los resultados dados por una máquina.

Introducción En la antigüedad, los números naturales se representaban con distintos tipos de símbolos o numerales. A continuación se presentan algunas muestras de numerales primitivos (figuras 1.2 y 1.3.).

Figura 1 Fi 1.2 2N Numerales l usados d por llos mayas.

* En estos casos la computadora envía un mensaje indicando que el número es muy pequeño (underflow) o muy grande (overflow) para su capacidad.

2

Errores

UNO

DOS

TRES

CUATRO

Figura 1.3 1 3 Numerales primitivos. primitivos

En la figura 1.3 se puede observar que cada numeral es un conjunto de marcas sencillas e iguales. ¡Imagínese si así se escribiera el número de páginas del directorio telefónico de la Ciudad de México! No sería práctico, por la enorme cantidad de tiempo y espacio que requeriría tal sucesión de marcas iguales. Más aún: nadie podría reconocer, a primera vista, el número representado. Por ejemplo, ¿podría identificar rápidamente el siguiente numeral? | | | | | | | | | | | | | | | | | | | =? Los antiguos egipcios evitaron algunos de los inconvenientes de los numerales representados por medio de marcas iguales, usando un solo jeroglífico o figura. Por ejemplo, en lugar de | | | | | | | | | |, usaron el símbolo , que representaba el hueso del talón. En la figura 1.4 se muestran otros numerales egipcios básicos relacionados con los del sistema decimal que les corresponden.

1

10

100

1 000

10 000

100 000

1 000 000

Raya

Hueso del talón

Cuerda enrollada

Flor de loto

Dedo señalando

Pez

Hombre sorprendido

Figura 1.4 Fi 1 4 Numerales N l egipcios i i antiguos. ti

1.1 Sistemas numéricos Numeraciónconbasedos(sistemabinario) Dado el siguiente conjunto de marcas simples e iguales: | | | | | | | | | | |, si se encierran en óvalos por parejas, a partir de la izquierda, se tiene

3

Métodos Numéricos Aplicados a la Ingeniería

A continuación, también empezando por la izquierda, se encierra cada par de óvalos en otro mayor.

Finalmente, se encierra cada par de óvalos grandes en uno mayor todavía, comenzando también por la izquierda.

22

23

21

20

Nótese que el número de marcas dentro de cualquier óvalo es una potencia de 2. El número representado por el numeral | | | | | | | | | | | se obtiene así

23 + 21 + 20,

o también

(1  23) + (1  21 ) + (1  20)

Hay que observar que en esta suma no aparece 22. Como 0  22 = 0, entonces la suma puede escribirse así: (1  23) + (0  22) + (1  21) + (1  20) Ahora puede formarse un nuevo símbolo para representar esta suma omitiendo los paréntesis, los signos de operación + y , y las potencias de 2, de la siguiente manera: (1  23) + (0  22) + (1  21) + (1  20) Nuevo símbolo:

$

$

$

$

1

0

1

1

Ahora bien, ¿cómo interpretaremos este nuevo símbolo? El significado de los números 1 en este nuevo símbolo depende del lugar que ocupan en el numeral. Así pues, el primero de derecha a izquierda representa una unidad; el segundo, un grupo de dos (o bien 21) y el cuarto, cuatro grupos de dos (8, o bien 23). El cero es el medio de asignarle a cada “1”, su posición correcta. A los números o potencias de 2 que representan el “1”, según su posición en el numeral, se les llama valores de posición; se dice que un sistema de numeración que emplea valores de posición es un sistema posicional. El de este ejemplo es un sistema de base dos, o sistema binario, porque emplea un grupo básico de dos símbolos: 0 y 1. Los símbolos “1” y “0” utilizados para escribir los numerales se denominan dígitos binarios o bits. ¿Qué número representa el numeral 101010dos? (Se lee: “uno, cero, uno, cero, uno, cero, base dos”.) Escríbanse los valores de posición debajo de los dígitos: Dígitos binarios Valores de posición 4

1 2

0 5

1 4

2

0 3

2

1 2

2

1

2

0dos 20

Errores

Al multiplicar los valores de posición por los dígitos binarios correspondientes y sumándolos todos, se obtiene el equivalente en decimal. 101010dos = (1  25) + (0  24) + (1  23) + (0  22) + (1  21) + (0  20) = 42diez (se lee: “cuatro, dos, base diez”). El sistema de numeración más difundido en la actualidad es el sistema decimal, un sistema posicional que usa un grupo básico de diez símbolos (base diez). Considérese por ejemplo el numeral 582diez Dígitos decimales

5

Valores de posición Forma desarrollada

8 2

2 1

10

10

100

(5  102) + (8  101) + (2  100)

Al escribir números decimales se omite la palabra “diez” y se establece la convención de que un numeral con valor de posición es un número decimal, sin necesidad de indicar la base. De ahí que siempre se anote 582 en lugar de 582diez. El desarrollo y arraigo del sistema decimal quizá se deba al hecho de que siempre tenemos a la vista los diez dedos de las manos. El sistema binario se emplea en las computadoras digitales debido a que los alambres que forman los circuitos electrónicos presentan sólo dos estados: magnetizados o no magnetizados, ya sea que pase o no corriente por ellos.

Conversióndenúmerosenterosdelsistemadecimalaunsistemadebase byviceversa Para convertir un número n del sistema decimal a un sistema con base b, se divide el número n entre la base b y se registran el cociente c1 y el residuo r1 resultantes; se divide c1 entre la base b y se anotan el nuevo cociente c2 y el nuevo residuo r2. Este procedimiento se repite hasta obtener un cociente ci igual a cero con residuo ri. El número equivalente a n en el sistema con base b queda formado así: ri ri–1 ri–2 ... r1. ,QLTWSV Convierta el número 35810 al sistema octal. :VS\JP}U La base del sistema octal* es 8, por tanto 358 = 8  44

=

8



5

=

8



44 c1 5 c2 0 c3

+ + +

6 r1 4 r2 5 r3

Así que el número equivalente en el sistema octal es 546. * El sistema octal usa un grupo básico de ocho símbolos: 0, 1, 2, 3, 4, 5, 6, 7.

5

Métodos Numéricos Aplicados a la Ingeniería

,QLTWSV Convierta el número 35810 a binario (base 2). :VS\JP}U

358 179 89 44 22 11 5 2 1

= = = = = = = = =

2 2 2 2 2 2 2 2 2

        

179 89 44 22 11 5 2 1 0

+ + + + + + + + +

0 1 1 0 0 1 1 0 1

Por tanto, 35810 = 1011001102

Para convertir un entero m de un sistema con base b al sistema decimal, se multiplica cada dígito de m por la base b elevada a una potencia igual a la posición del dígito, tomando como posición cero la del dígito situado más a la derecha. De la suma resulta el equivalente decimal. Así: 2768 = 2  82 + 7  81 + 6  80 = 19010 10100012 = 1  26 + 0  25 + 1  24 + 0  23 + 0  22 + 0  21 + 1  20 = 8110

Conversióndenúmerosenterosdelsistemaoctalalbinarioyviceversa Dado un número del sistema octal, su equivalente en binario se obtiene sustituyendo cada dígito del número octal con los tres dígitos equivalentes del sistema binario.

6

Base octal

Equivalente binario en tres dígitos

0

000

1

001

2

010

3

011

4

100

5

101

6

110

7

111

Errores

,QLTWSV Convierta el número 5468 a binario. :VS\JP}U

5

4

6

101

100

110

Así que, 5468 = 1011001102

Dado un número en binario, su equivalente en octal se obtiene formando ternas de dígitos, contando de derecha a izquierda y sustituyendo cada terna por su equivalente en octal. Así: Convertir 100110012 a octal 010

011

0012

2

3

1

Por tanto, 100110012 = 2318

Dado que la conversión de octal a binario es simple y la de decimal a binario resulta muy tediosa, se recomienda usar la conversión a octal como paso intermedio al convertir un número decimal a binario.

Decimal

Octal

Binario

Las flechas señalan dos sentidos porque lo dicho es válido en ambas direcciones. ,QLTWSV Convierta 1011001102 a decimal. :VS\JP}U a) Conversión directa 1011001102 = 1  28 + 0  27 + 1  26 + 1  25 + 0  24 + 0  23 + 1  22 + 1  21 + 0  20 = 35810 b) Usando la conversión a octal como paso intermedio: 1) Conversión a octal

101

100

110

5

4

6

Por tanto, 1011001102 = 5468 2) Conversión de octal a decimal 5468 = 5  82 + 4  81 + 6  80 = 35810 7

Métodos Numéricos Aplicados a la Ingeniería

Conversióndenúmerosfraccionariosdelsistemadecimal aunsistemaconbaseb Para convertir un número x10 fraccionario a un número con base b, se multiplica dicho número por la base b; el resultado tiene una parte entera e1 y una parte fraccionaria f1. Ahora se multiplica f1 por b y se obtiene un nuevo producto con parte entera e2 y fraccionaria f2. Este procedimiento se repite indefinidamente o hasta que se presenta fi = 0. El equivalente de x10 con base b queda así: 0. e1 e2 e3 e4... ,QLTWSV Convierta 0.210 a octal y binario. :VS\JP}U a) Conversión a octal 0.2 8 –––– 1.6

0.6 8 –––– 4.8

0.8 8 –––– 6.4

0.4 8 –––– 3.2

0.2 8 –––– 1.6

e1 f1

e2 f2

e3 f3

e4 f4

e5 f5

Después de e4 se repetirá la secuencia e1, e2, e3, e4 indefinidamente, de modo que 0.210 = 0.14631463...8 b) Conversión a binario 0.2 2 –––– 0.4

0.4 2 –––– 0.8

0.8 2 –––– 1.6

0.6 2 –––– 1.2

0.2 2 –––– 0.4

e1 f1

e2 f2

e3 f3

e4 f4

e5 f5

Igual que en el inciso a), después de e4 se repite la secuencia e1, e2, e3, e4 indefinidamente, por lo que 0.210 = 0.001100110011...2

Obsérvese que 0.210 pudo convertirse en binario simplemente tomando su equivalente en octal y sustituyendo cada número por su terna equivalente en binario. Así: 0.210 = 0.1 0.001

4 100

6 110

3 011

1 001

4 100

6 110

3 011

y 0.210 = 0.0011001100110011001100110011...2 De lo anterior se puede observar que 358.210 = 101100110.001100110011001100110011...2 y cualquier número con parte entera y fraccionaria puede pasarse a otro sistema, cambiando su parte entera y fraccionaria de manera independiente, y al final concatenarlos. 8

Errores

Para convertir números decimales enteros y fraccionarios a base 2, 3,... , 9 puede usar el PROGRAMA 1.4 del CD-ROM.

Conversióndeunnúmerofraccionarioensistemabinarioasistemadecimal El procedimiento es similar al que se aplica en el caso de números enteros, sólo hay que tomar en cuenta que la posición inicia con –1, a partir del punto. ,QLTWSV Convierta 0.0101011102 a octal y decimal. :VS\JP}U a) Conversión a octal 0.010 2

101 5

110 6

y 0.0101011102 = 0.2568 b) Conversión a decimal 0.2568 = 2  8–1 + 5  8–2 + 6  8–3 = 0.3398437510

,QLTWSV Convierta 0.0101011102 a decimal. :VS\JP}U

0.010101110 = 0  2–1 + 1  2–2 + 0  2–3 + 1  2–4 + 0  2–5 + 1  2–6 + 1  2–7 + 1  2–8 + 0  2–9 = 0.3398437510

1.2 Manejo de números en la computadora Por razones prácticas, en una computadora sólo puede manejarse una cantidad finita de bits para cada número; esta cantidad o longitud varía de una máquina a otra. Por ejemplo, cuando se realizan cálculos de ingeniería y ciencias, es mejor trabajar con una longitud grande; por otro lado, una longitud pequeña es más económica y útil para cálculos y procesamientos administrativos. Para una computadora dada, el número de bits generalmente se llama palabra. Las palabras van desde ocho hasta 64 bits y, para facilitar su manejo, cada una se divide en partes más cortas denominadas bytes; por ejemplo, una palabra de 32 bits puede dividirse en cuatro bytes (ocho bits cada uno).

Figura 1.5 Una computadora sólo puede manejar una cantidad finita de bits.

9

Métodos Numéricos Aplicados a la Ingeniería

Númerosenteros Cada palabra, cualquiera que sea su longitud, almacena un número, aunque en ciertas circunstancias se usan varias palabras para contener un número. Por ejemplo, considérese una palabra de 16 bits para almacenar números enteros. De los 16 bits, el primero representa el signo del número; un cero es un signo más y un uno es un signo menos. Los 15 bits restantes pueden usarse para guardar números binarios desde 000000000000000 hasta 111111111111111 (véase figura 1.6). Al convertir este número en decimal se obtiene: (1  214) + (1  213) + (1  212) + ... + (1  21) + (1  20) que es igual a 215 – 1 = 327671. Por lo tanto, cada palabra de 16 bits puede contener un número cualquiera del intervalo –32768 a + 32767 (véase el problema 1.10).

Númerosreales(puntoflotante)

16 bits bit 0

bit 15

Figura 1.6 Esquema de una palabra de 16 bits para un número entero.

,QLTWSV Represente el número 52510 en una palabra de 16 bits. :VS\JP}U 52510 = 10158 = 10000011012, y su almacenamiento quedaría de la siguiente forma: 0

0

0

0

0

0

1

0

0

0

0

0

1

1

0

1

,QLTWSV Represente el número –26 en una palabra de 16 bits. :VS\JP}U –2610 = – 110102 y su almacenamiento en una palabra de 16 bits quedaría así: 1

10

0

0

0

0

0

0

0

0

0

0

1

1

0

1

0

Errores

Cuando se desea almacenar un número real, se emplea en su representación binaria, llamada de punto flotante, la notación 0.d1d2d3d4d5d6d7d8  2d

1

d2 d3 d4 d5 d6 d7

donde d1 = 1 y di y dj con i = 2, ..., 8 y j = 1,2,... , 7 pueden ser ceros o unos y se guarda en una palabra, como se muestra en la figura 1.7. Igual que antes, el bit cero se usa para guardar el signo del número. En los bits del uno al siete se almacena el exponente de la base 2 y en los ocho restantes la fracción.* Según el lenguaje de los logaritmos, Característica

Mantisa

Bit 0

Bit 15 Figura 1.7 Esquema de una palabra de 16 bits para un número de punto flotante.

la fracción es llamada mantisa y el exponente característica. El número mayor que puede guardarse en una palabra de 16 bits, usando la notación de punto flotante, es Exponente positivo

#

0

0111111

11111111

más

263

Equivalente a 0.99 en decimal

#

#

y los números que se pueden guardar en punto flotante binario van de alrededor de 2–64 (si la característica es negativa) a cerca de 263; en decimal, de 10–19 a cerca de 1018 en magnitud (incluyendo números positivos, negativos y el cero). Nótese que primero se normaliza el número, después se almacenan los primeros ocho bits y se truncan los restantes. ,QLTWSV El número decimal –125.32 que en binario es –1111101.010100011110101, :VS\JP}U Normalizado queda así: –.11111010100011110101  2+111 bits truncados en el almacenamiento

* El exponente es un número binario de seis dígitos, ya que el bit uno se emplea para su signo. En algunas computadoras el exponente se almacena en base ocho (octal) o base 16 (hexadecimal), en lugar de base 2.

11

Métodos Numéricos Aplicados a la Ingeniería

y la palabra de memoria de 16 bits donde se almacena este valor quedaría como signo mantisa

1

0

característica positiva

0

0

0

1

1

1

1

1

1

característica

1

1

0

1

0

mantisa

El número decimal + 0.2, que en binario es 0.0011001100110011... y que normalizado queda .1100110011001100...  2–10 bits truncados

se almacena así: 0

1

0

0

0

0

1

0

1

1

0

0

1

1

0

0

Dobleprecisión La doble precisión es un esfuerzo para aumentar la exactitud de los cálculos adicionando más bits a la mantisa. Esto se hace utilizando dos palabras, la primera en la forma expuesta con anterioridad y los bits de la segunda para aumentar la mantisa de la primera. Entonces, con una palabra de 16 bits puede usarse en doble precisión una mantisa de 8 + 16 = 24 bits, los cuales permiten expresar alrededor de 7 dígitos de exactitud en un número decimal, en lugar de 3 de la precisión sencilla. La desventaja del uso de la doble precisión es que se emplean más palabras, con lo que aumenta el uso de memoria por un programa.

Errorderedondeo Para finalizar esta sección, se analizarán brevemente algunas consecuencias de utilizar el sistema binario y una longitud de palabra finita. Como no es posible guardar un número binario de longitud infinita o un número de más dígitos de los que posee la mantisa de la computadora que se está empleando, se almacena sólo un número finito de estos dígitos; la consecuencia es que comete automáticamente un pequeño error, conocido como error de redondeo, que al repetirse muchas veces puede llegar a ser considerable. Por ejemplo, si se desea guardar la fracción decimal 0.0001, que en binario es la fracción infinita 0.000000000000011010001101101110001011101011000... 12

Errores

quedaría, después de normalizarse, almacenada en una palabra de 16 bits como .11010001  2–1101 Si se desea sumar el número 0.0001 con él mismo diez mil veces, usando una computadora, naturalmente que no se esperará obtener 1 como resultado, ya que los números que se adicionen no serían realmente 0.0001, sino valores aproximados a él (véase el problema 1.16).

1.3 Errores Errorabsoluto,errorrelativoyerrorenporciento Si p* es una aproximación a p, el error se define como E = p* – p Sin embargo, para facilitar el manejo y el análisis se emplea el error absoluto definido como EA = | p* – p | y el error relativo como | p* – p | ER = ––––––––––, si p ≠ 0 p y como por ciento de error a ERP = ER  100 En otros libros, las definiciones pueden ser diferentes; por ejemplo, algunos autores definen el error E como p – p*; por tanto, sugerimos que al consultar distintas bibliografías se busquen las definiciones de error dadas.

,QLTWSV Suponga que el valor para un cálculo debiera ser p = 0.10  102, pero se obtuvo el resultado p* = 0.08  102, entonces EA = | 0.08  102 – 0.10  102 | = 0.2  101 | 0.08  102 – 0.10  102 | ER = ––––––––––––––––––––––––––––––––––––––––––––––– = 0.2  100 0.10  102 ERP = ER  100 = 20%

Por lo general, interesa el error absoluto y no el error relativo; pero, cuando el valor exacto de una cantidad es “muy pequeño” o “muy grande”, los errores relativos son más significativos. Por ejemplo, si p = 0.24  10–4 y p* = 0.12  10–4, 13

Métodos Numéricos Aplicados a la Ingeniería

entonces: EA = | 0.12  10–4 – 0.24  10–4 | = 0.12  10–4 Sin reparar en las cantidades que se comparan, puede pensarse que el error absoluto es muy pequeño y, lo más grave, aceptar p* como una buena aproximación a p. Si, por otro lado, se calcula el error relativo | 0.12  10–4 – 0.24  10–4 | ER = ––––––––––––––––––––––––––––––– = 0.5  100 0.24  10–4 se observa que la “aproximación” es tan sólo la mitad del valor verdadero y, por lo tanto, está muy lejos de ser aceptable como aproximación a p. Finalmente, ERP = 50% De igual manera, puede observarse que si p = 0.46826564  106

y

p* = 0.46830000  106,

entonces: EA = 0.3436  102, y si de nueva cuenta dejan de considerarse las cantidades en cuestión, puede creerse que el EA es muy grande y que se tiene una mala aproximación a p. Sin embargo, al calcular el error relativo ER = 0.7337715404  10–4, se advierte que el error es muy pequeño, como en realidad ocurre. Advertencia:

Cuando se manejan cantidades “muy grandes” o “muy pequeñas”, el error absoluto puede ser engañoso, mientras que el error relativo es más significativo en esos casos.

+LÄUPJP}U Se dice que el número p* aproxima a p con t dígitos significativos si t es el entero más grande no negativo, para el cual se cumple | p* – p | –––––––––– < 5  10 – t p

Supóngase, por ejemplo, el número 10. Para que p* aproxime a 10 con dos cifras significativas, usando la definición, p* debe cumplir con | p* – 10 | ––––––––––– < 5  10–2 10 p* – 10 –5  10–2 < –––––––––– < 5  10–2 10

14

Errores

10 – 5  10–1 < p* < 5  10–1 + 10 9.5 < p* < 10.5 esto es, cualquier valor de p* en el intervalo (9.5, 10.5) cumple la condición. En general, para t dígitos significativos | p* – p | –––––––––– < 5  10–t p

si p > 0

| p* – p | < 5 p  10–t p – 5 p  10–t < p* < p + 5 p  10–t Si, por ejemplo, p = 1000 y t = 4 1000 – 5  1000  10–4 < p* < 1000 + 5  1000  10–4 999.5 < p* < 1000.5

Causasdeerroresgravesencomputación Existen muchas causas de errores en la ejecución de un programa de cómputo, ahora discutiremos algunas de las más serias. Para esto, pensemos en una computadora imaginaria que trabaja con números en el sistema decimal, de tal forma que tiene una mantisa de cuatro dígitos decimales y una característica de dos dígitos decimales, el primero de los cuales es usado para el signo. Sumados estos seis al bit empleado para el signo del número, se tendrá una palabra de siete bits. Los números que se van a guardar deben normalizarse primero en la siguiente forma: 3.0 = .3000  101 7956000 = .7956  107 –0.0000025211 = –.2521  10–5 Empleando esta computadora imaginaria, podemos estudiar algunos de los errores más serios que se cometen en su empleo. a) Suma de números muy distintos en magnitud Vamos a suponer que se trata de sumar 0.002 a 600 en la computadora decimal imaginaria. 0.002 = .2000  10–2 600 = .6000  103 Estos números normalizados no pueden sumarse directamente y, por lo tanto, la computadora debe desnormalizarlos antes de efectuar la suma. .000002  103 + .600000  103 ––––––––––––––––––3 .600002  10 Como sólo puede manejar cuatro dígitos, son eliminados los últimos dos y la respuesta es .6000  103 o 600. Según el resultado, la suma nunca se realizó. 15

Métodos Numéricos Aplicados a la Ingeniería

Este tipo de errores, cuyo origen es el redondeo, es muy común y se recomienda, de ser posible, no sumar o restar dos números muy diferentes (véase el ejercicio 1.12). b) Resta de números casi iguales Supóngase que la computadora decimal va a restar 0.2144 de 0.2145. –

.2145  100 .2144  100 ––––––––––––––0 .0001  10

Como la mantisa de la respuesta está desnormalizada, la computadora automáticamente la normaliza y el resultado se almacena como .1000  10–3. Hasta aquí no hay error, pero en la respuesta sólo hay un dígito significativo; por lo tanto, se sugiere no confiar en su exactitud, ya que un pequeño error en alguno de los números originales produciría un error relativo muy grande en la respuesta de un problema que involucrara este error, como se ve a continuación. Supóngase que la siguiente expresión aritmética es parte de un programa: X = (A – B) * C Considérese ahora que los valores de A, B y C son A = 0.2145  100,

B = 0.2144  100,

C = 0.1000  105

Al efectuarse la operación se obtiene el valor de X = 1, que es correcto. Sin embargo, supóngase que A fue calculada en el programa con un valor de 0.2146  100 (error absoluto 0.0001, error relativo 0.00046 y ERP = 0.046%). Usando este valor de A en el cálculo de X, se obtiene como respuesta X = 2. Un error de 0.046% de pronto provoca un error de 100% y, aún más, este error puede pasar desapercibido. c) Overflow y Underflow Con frecuencia una operación aritmética con dos números válidos da como resultado un número tan grande o tan pequeño que la computadora no puede representarlo; la consecuencia es que se produce un overflow o un underflow, respectivamente. Por ejemplo, al multiplicar 0.5000  108 por 0.2000  109, se tiene 0.5000  108  0.2000  109 ––––––––––––––––– 0.1000  1017 Cada uno de los números que se multiplican puede guardarse en la palabra de la computadora imaginaria; sin embargo, su producto es muy grande y no puede almacenarse porque la característica requiere tres dígitos. Entonces se dice que ha sucedido un overflow. Otro caso de overflow puede ocurrir en la división; por ejemplo 2000000 0.2000  107 ––––––––––– = –––––––––––––––– = 0.4000  1012 0.000005 0.5000  10–5 Generalmente, las computadoras reportan esta circunstancia con un mensaje que varía dependiendo de cada máquina. 16

Errores

El underflow puede aparecer en la multiplicación o división, y por lo general no es tan serio como el overflow; las computadoras casi nunca envían mensaje de underflow. Por ejemplo: (0.3000  10–5)  (0.02000  10–3) = 0.006  10–8 = 0.6000  10–10 Como el exponente –10 está excedido en un dígito, no puede guardarse en la computadora y este resultado se expresa como valor cero. Dicho error expresado como error relativo es muy pequeño, y a menudo no es serio. No obstante, puede ocurrir, por ejemplo: A = 0.3000  10–5,

B = 0.0200  10–3,

C = 0.4000  10 7,

y que se desee en algún punto del programa calcular el producto de A, B y C. X=A*B*C Se multiplican primero A y B. El resultado parcial es cero. La multiplicación de este resultado por C da también cero. Si, en cambio, se arregla la expresión como X=A* C*B se multiplica A por C y se obtiene 0.1200  102. La multiplicación siguiente da la respuesta correcta: 0.2400  10–3. De igual manera, un arreglo en una división puede evitar el underflow. d) División entre un número muy pequeño Como se dijo, la división entre un número muy pequeño puede causar un overflow. Supóngase que se realiza en la computadora una división válida y que no se comete error alguno en la operación; pero considérese que previamente ocurrió un pequeño error de redondeo en el programa, cuando se calculó el denominador. Si el numerador es grande y el denominador pequeño, puede presentarse en el cociente un error absoluto considerable. Si éste se resta después de otro número del mismo tamaño relativo, puede presentarse un error mayor en la respuesta final. Como ejemplo, considérese la siguiente instrucción en un programa X=A–B/C donde: A = 0.1120  109 = 112000000 B = 0.1000  106 = 100000 C = 0.900  10–3 = 0.0009 Si el cálculo se realiza en la computadora decimal de cuatro dígitos, el cociente B / C es 0.1111  109, y X es 0.0009  109 o, después de ser normalizado, X = 0.9000  106. Nótese que sólo hay un dígito significativo. Vamos a imaginar ahora que se cometió un pequeño error de redondeo al calcular C en algún paso previo y resultó un valor C* = 0.9001  10–3 (EA = 0.0001  10–3; ER = 10–4 y ERP = 0.01%). Si se calcula B / C* se obtiene como cociente 0.1110  109 y X* = 0.1000  10 7. El valor correcto de X es 0.9000  106. Entonces: EA = | 1000000 – 900000 | = 100000 | 1000000 – 900000 | ER = –––––––––––––––––––––––– = 0.11 900000 ERP = 0.11  100 = 11% 17

Métodos Numéricos Aplicados a la Ingeniería

El error relativo se ha multiplicado cerca de 1100 veces. Como ya se dijo, estos cálculos pueden conducir a un resultado final carente de significado o sin relación con la respuesta verdadera. e) Error de discretización Dado que un número específico no se puede almacenar exactamente como número binario de punto flotante, el error generado se conoce como error de discretización (error de cuantificación), ya que los números expresados exactamente por la máquina (números máquina) no forman un conjunto continuo sino discreto. ,QLTWSV Cuando se suma 10000 veces 0.0001 con él mismo, debe resultar 1; sin embargo, el número 0.0001 en binario resulta en una sucesión infinita de ceros y unos, que se trunca al ser almacenada en una palabra de memoria. Con esto se perderá información, y el resultado de la suma ya no será l. Se obtuvieron los siguientes resultados que corroboran lo anterior, utilizando una PC, precisión sencilla y Visual Basic. :VS\JP}U 10000

a)

Σ

0.0001 = 1.000054

i=1 10000

b) 1 +

Σ

0.0001 = 2.000166

i=1 10000

c) 1000 +

Σ

0.0001 = 1001.221

i=1 10000

d) 10000 +

Σ

0.0001 = 10000

i=1

Nótese que en los tres últimos incisos, además del error de discretización, se generó el error de sumar un número muy grande con un número muy pequeño (véanse los problemas 1.16 y 1.17). El programa se ejecutó iniciando primero a una variable con el valor entero 0, 1, 1000 y 10000; después se fue acumulando a esa variable 0.0001 diez mil veces. f ) Errores de salida Aun cuando no se haya cometido error alguno durante la fase de cálculos de un programa, puede presentarse un error al imprimir resultados. Por ejemplo, supóngase que la respuesta de un cálculo particular es exactamente 0.015625. Cuando este número se imprime con un formato tal como F10.6 o E14.6 (de FORTRAN), se obtiene la respuesta correcta. Si, por el contrario, se decide usar F8.3, se imprimirá el número 0.016 (si la computadora redondea), o bien 0.015 (si la computadora trunca), con lo cual se presenta un error.

18

Errores

Propagacióndeerrores Una vez que sabemos cómo se producen los errores en un programa de cómputo, podríamos pensar en tratar de determinar el error cometido en cada paso y conocer, de esa manera, el error total en la respuesta final. Sin embargo, esto no es práctico. Resulta más adecuado analizar las operaciones individuales realizadas por la computadora para ver cómo se propagan los errores de dichas operaciones. a) Suma Se espera que al sumar a y b, se obtenga el valor correcto de c = a + b; no obstante, se tiene en general un valor de c incorrecto debido a la longitud finita de palabra que se emplea. Puede considerarse que este error fue causado por una operación incorrecta de la computadora +˙ (el punto indica que es suma con error). Entonces el error es: Error = (a +˙ b) – (a + b) La magnitud de este error depende de las magnitudes relativas, de los signos de a y b, y de la forma binaria en que a y b son almacenados en la computadora. Esto último varía dependiendo de la computadora. Por tanto, es un error muy difícil de analizar y no lo estudiaremos aquí. Si por otro lado, de entrada a y b son inexactos, hay un segundo error posible. Por ejemplo, considérese que en lugar del valor verdadero de a, la computadora tiene el valor a*, el cual presenta un error ;a a* = a + ;a y de igual forma para b b* = b + ;b Como consecuencia de ello se tendría, incluso si no se cometiera error en la adición, un error en el resultado: Error = (a* + b*) – (a + b) = (a + ;a + b + ;b) – (a + b) = ;a + ;b = ;c o sea c* = c + ;c El error absoluto es: | (a* + b*) – (a + b) | = | ;a + ;b | ≤ | ;a | + | ;b | o bien | ;c | ≤ | ;a | + | ;b | Se dice que los errores ;a y ;b se han propagado a c, y ;c se conoce como el error de propagación. Dicho error es causado por valores inexactos de los valores iniciales y se propaga en los cómputos siguientes, con lo cual causa un error en el resultado final. b) Resta El error de propagación ocasionado por valores inexactos iniciales a* y b*, puede darse en la sustracción de manera similar que en la adición, con un simple cambio de signo (véase el problema 1.24).

19

Métodos Numéricos Aplicados a la Ingeniería

c) Multiplicación Si se multiplican los números a* y b* (ignorando el error causado por la operación misma), se obtiene: (a*  b*) = (a + ;a)  (b + ;b) = (a  b) + (a  ;b ) + (b  ;a) + (;a  ;b) Si ;a y ;b son suficientemente pequeños, puede considerarse que su producto es muy pequeño en comparación con los otros términos y, por lo tanto, despreciar el último término. Se obtiene, entonces, el error del resultado final: (a*  b*) – (a  b) ≈ (a  ;b) + (b  ;a) Esto hace posible encontrar el valor absoluto del error relativo del resultado, dividiendo ambos lados entre a  b. (a*  b* ) – (a  b) ;b ;a ;b ;a | –––––––––––––––––––––– | ≈ | –––– + –––– | ≤ | –––– | + | –––– | (a b) b a b a El error de propagación relativo en valor absoluto en la multiplicación es aproximadamente igual o menor a la suma de los errores relativos de a y b en valor absoluto. ,QLTWSV En los cursos tradicionales de álgebra lineal se enseña que al multiplicar una matriz por su inversa, se obtiene la matriz identidad (una matriz con unos en la diagonal principal y ceros como los demás elementos). :VS\JP}U No obstante, al realizar este cálculo con un software matemático, éste cometerá pequeños errores, como puede verse en este caso. Utilizando el programa Matlab generamos una matriz cuadrada con números aleatorios1 con la instrucción A = rand (3) y obtenemos: A=

0.84622141782432 0.52515249630517 0.20264735765039

0.67213746847429 0.83811844505239 0.01963951386482

0.68127716128214 0.37948101802800 0.83179601760961

Si ahora invertimos esta matriz con B = inv (A), resulta: B=

2.95962951001411 –1.54449898903352 –0.68457636062692

–2.34173605180686 2.42808986631982 0.51317884382928

–1.35572133824039 0.15727157830512 1.52879381800410

Finalmente, al multiplicar ambas matrices con A*B, obtenemos: ans = 1.000000000000000e+000 –2.220446049250313e–016 –2.220446049250313e–016 –3.330669073875470e–016 1.000000000000000e+000 –1.110223024625157e–016 0 –1.110223024625157e–016 1.000000000000000e+000

1

Cada vez que se ejecute esta instrucción, el generador de números aleatorios proporcionará diferentes valores numéricos.

20

Errores

Moraleja: Siempre debemos tener precaución con los resultados que arroja una computadora. El lector puede usar algún otro software matemático o la calculadora de que disponga y comparar.

d) División Puede considerarse la división de a* y b* como sigue: a* ( a + ;a ) — = –––––––––– b* ( b + ;b ) 1 = (a + ;a) ––––––––– (b + ;b) Multiplicando numerador y denominador por b – ;b a* (a + ;a) (b – ;b) — = ––––––––––––––––––– b* (b + ;b) (b – ;b) ab – a;b + ;ab – ;a;b = ––––––––––––––––––––––––– b2 – ;b2 Si, como en la multiplicación, se considera el producto ;a ;b muy pequeño y, por las mismas razones, a ;b2 y se desprecian, se tiene: a* ab ;ab a;b — ≈ –––– + ––––– – ––––– 2 2 b* b b b2 a ; a;b ≈ — + –––a – ––––– b b b2 El error es entonces: a* a ; a;b — – — ≈ –––a – ––––– b* b b b2 Dividiendo entre a / b se obtiene el error relativo. Al tomar el valor absoluto del error relativo, se tiene:

|

a* a ;a a;b ––– – –– ––– – –––– b* b b b2 ;a ;b ;a ;b ––––––––– ≈ ––––––––––––– ≈ –––– – –––– ≤ –––– + –––– a a a b a b — — b b

||

||

|| || |

Se concluye que el error de propagación relativo del cociente en valor absoluto es aproximadamente igual o menor a la suma de los errores relativos en valor absoluto de a y b. 21

Métodos Numéricos Aplicados a la Ingeniería

e) Evaluación de funciones Por último, se estudiará la propagación del error (asumiendo operaciones básicas +, –,  y /, ideales o sin errores), cuando se evalúa una función f (x) en un punto x = a. En general, se dispone de un valor de a aproximado: a*; la intención es determinar el error resultante: ;f = f (a*) – f(a) La figura 1.6 muestra la gráfica de la función f (x) en las cercanías de x = a. A continuación se determina la relación entre ;a y ;f. Si ;a es pequeño, puede aproximarse la curva f(x) por su tangente un entorno de x = a. Se sabe que la pendiente de esta tangente es f(a) o aproximadamente ;f /;a; esto es:

; –––f ≈ f (a) ;a

y

;f ≈ ;a f(a) ≈ ;a f (a*) En valor absoluto: |;f| ≈ |;a f (a*)| ≈ |;a| |f (a*)| El error al evaluar una función en un argumento inexacto es proporcional a la primera derivada de la función en el punto donde se ha evaluado.

y f(x) f(a∗)

∈f = f (a∗) − f (a)

f(a)

∈a = a* – a a

a*

x

Figura 1.8 Gráfica de una función y su primera derivada en a.

1.4 Algoritmos y estabilidad El tema fundamental de este libro es el estudio, selección y aplicación de algoritmos, que se definen como secuencias de operaciones algebraicas y lógicas para obtener la solución de un problema. Por lo general, se dispone de varios algoritmos para resolver un problema particular; uno de los criterios de selección es la estabilidad del algoritmo; esto es, que a pequeños errores de los valores manejados se obtengan pequeños errores en los resultados finales. Supóngase que un error ; se introduce en algún paso en los cálculos y que el error de propagación de n operaciones subsiguientes se denota por ;n. En la práctica, por lo general, se presentan dos casos. 22

Errores

∈n

Propagación exponencial

∈n = kn∈

Propagación lineal

∈n = nc∈

∈ 1

2

3

4

5

6

7

8

9

n

10

Figura 1.9 Propagación lineal y propagación exponencial de errores.

a) | ;n | ≈ n c ;, donde c es una constante independiente de n; se dice entonces que la propagación del error es lineal. b) | ;n | ≈ kn ;, para k > 1; se dice entonces que la propagación del error es exponencial. La propagación lineal de los errores suele ser inevitable; cuando c y ; son pequeños, los resultados finales normalmente son aceptables. Por otro lado, debe evitarse la propagación exponencial, ya que el término kn crece con rapidez para valores relativamente pequeños de n. Esto conduce a resultados finales muy poco exactos, sea cual sea el tamaño de ;. Como consecuencia, se dice que un algoritmo con crecimiento lineal del error es estable, mientras que uno con una propagación exponencial es inestable (véase la figura 1.9).

Ejercicios 1.1

Error de redondeo al restar dos números casi iguales. Vamos a considerar las ecuaciones 31.69 x + 14.31 y = 45.00

(1)

13.05 x + 5.89 y = 18.53

(2)

La única solución de este sistema de ecuaciones es (redondeando a cinco cifras decimales) x = 1.25055, y = 0.37527. Un método para resolver este tipo de problemas es multiplicar la ecuación (1) por el coeficiente de x de la ecuación (2), multiplicar la ecuación (2) por el coeficiente de x de la ecuación (1) y después restar

23

Métodos Numéricos Aplicados a la Ingeniería

las ecuaciones resultantes. Para este sistema se obtendría (como los coeficientes tienen dos cifras decimales, todas las operaciones intermedias se efectúan redondeando a dos cifras decimales): [13.05 (14.31) – 31.69 (5.89)] y = 13.05 (45.00) – 31.69 (18.53) (186.75 – 186.65) y = 587.25 – 587.22 0.10 y = 0.03 de donde y = 0.3, luego (18.53) – 5.89 (0.3) 18.53 – 1.77 16.76 x = ––––––––––––––––––––– = –––––––––––––– = ––––––– = 1.28 13.05 13.05 13.05 Para la variable x EA = |1.28 – 1.25| = 0.03;

ER = 0.03/1.25 = 0.024;

ERP = 2.4%

ER = 0.08/0.38 = 0.21;

ERP = 21%

Para la variable y EA = | 0.3 – 0.38 | = 0.08; 1.2

Error de redondeo al sumar un número grande y uno pequeño. Considere la sumatoria infinita d

s=

1

1

1

1

1

1

1

+ ––– + ... + –––– + ... 3 —n = —1 + —4 + —9 + ––– 16 25 100

n=1

2

resulta (usando precisión sencilla y 5000 como valor final de n) 1.644725 si se suma de izquierda a derecha, pero el resultado es 1.644834 si se suma de derecha a izquierda, a partir de n = 5000. Debe notarse que el resultado de sumar de derecha a izquierda es más exacto, ya que en todos los términos se suman valores de igual magnitud. Por el contrario, al sumar de izquierda a derecha, una vez que se avanza en la sumatoria, se sumarán números cada vez más grandes con números más pequeños. Lo anterior se corrobora si se realiza la suma en ambos sentidos, pero ahora con doble precisión. El resultado obtenido es 1.64473408684689 (estos resultados pueden variar de máquina a máquina). 1.3

Reducción de errores. Para resolver la ecuación cuadrática 100 x2 – 10011 x + 10.011 = 0, el método común sería usar la fórmula –b ± b2 – 4 a c x = –––––––––––––––––– , 2a, después de dividir la ecuación entre 100 x2 – 100.11 x + 10.011 = 0 100.11 ± (–100.11)2 – 4(0.10011) x = –––––––––––––––––––––––––––––––––––– 2

24

Errores

Trabajando con aritmética de cinco dígitos X

¢n ¢ =   =

¢ = 

   

Las soluciones verdaderas, redondeadas a cinco dígitos decimales, son 100.11 y 0.00100. El método empleado fue adecuado para la solución mayor, pero no del todo para la solución menor. Si las soluciones fueran divisores de otras expresiones, la solución x = 0 hubiese causado problemas serios. Se restaron dos números “casi iguales” (números iguales en aritmética de cinco dígitos) y sufrieron pérdida de exactitud. ¿Cómo evitar esto? Una forma sería reescribir la expresión para la solución de una ecuación cuadrática a fin de evitar la resta de números “casi iguales”. El problema, en este caso, se da en el signo negativo asignado a la raíz cuadrada; esto es: –b – b2 – 4 a c –––––––––––––––––– 2a Multiplicando numerador y denominador por –b +

b2 – 4a c, queda

(–b – b2 – 4 a c) (–b + b2 – 4 a c) (–b)2 –(b2 – 4 a c) –––––––––––––––––––––––––––––––––––––– = ––––––––––––––––––––– 2a (–b + b2 – 4 a c) 2a (–b + b2 – 4 a c) 4ac 2c –––––––––––––––––––––– = –––––––––––––––––– 2 2a (–b + b – 4 a c) (–b + b2 – 4 a c) Usando esta expresión con a = 1, b = –100.11, y c = 0.10011, se obtiene 2 (0.10011) 0.20022 –––––––––––––––––– = –––––––––– = 0.001 (en aritmética de cinco dígitos) 100.11 + 10022 200.22 que es el valor verdadero, redondeado a cinco dígitos decimales. Esta forma alternativa para calcular una raíz pequeña de una ecuación cuadrática, casi siempre produce una respuesta más exacta que la de la fórmula usual (véase el problema 2.31). 1.4

Más sobre reducción de errores. Se desea evaluar la expresión A / (1 – sen x), en x = 89° 41. En tablas con cinco cifras decimales, sen 89° 41 = 0.99998. Con aritmética de cinco dígitos y redondeando se tiene: sen x = 0.99998 y 1 – sen x = 0.00002 El valor de sen x sólo tiene cuatro dígitos exactos (confiables). Por otro lado, el único dígito que no es cero en 1 – sen x se ha calculado con el dígito no confiable de sen x, por lo que se pudo perder la exactitud en la resta. Tal situación de arriba puede mejorarse observando que (1 – sen x) (1 + sen x) 1 – sen2 x cos2 x 1 – sen x = –––––––––––––––––––––––– = ––––––––––– = ––––––––––– 1 + sen x 1 + sen x 1 + sen x Por esto, es posible escribir 1 – sen x de una forma que no incluye la resta de dos números casi iguales.

25

Métodos Numéricos Aplicados a la Ingeniería

1.5

Comparaciones seguras. A menudo, en los métodos numéricos la comparación de igualdad de dos números en notación de punto flotante permitirá terminar la repetición de un conjunto de cálculos (proceso cíclico o iterativo). En vista de los errores observados, es recomendable comparar la diferencia de los dos números en valor absoluto contra una tolerancia ε apropiada, usando por ejemplo el operador de relación menor o igual (≤). Esto se ilustra en seguida. En lugar de: SI X = Y ALTO; en caso contrario REPETIR las instrucciones 5 a 9. Deberá usarse: SI ABS (X – Y) ≤ ε ALTO; en caso contrario REPETIR las instrucciones 5 a 9. En lugar de: REPETIR {Pasos de un ciclo} HASTA QUE X = Y Deberá usarse: REPETIR {Pasos de un ciclo} HASTA QUE ABS (X – Y) ≤ ε donde ε es un número pequeño (generalmente menor que uno, pero puede ser mayor, dependiendo del contexto en que se trabaje) e indicará la cercanía de X con Y, que se aceptará como “igualdad” de X y Y.

1.6

Análisis de resultados. Al ejecutar las siguientes instrucciones en Visual Basic con doble precisión y en Matlab, se tiene, respectivamente: Dim Y As Double, A as Double Y=1000.2 A=Y–1000 Print A

format long Y=1000.2; A=Y–1000

Se obtiene: 0.200000000000045

Se obtiene: 0.20000000000005

Ejecute las mismas instrucciones usando Y = 1000.25. Los resultados ahora son correctos. Explíquelo. En doble precisión pueden manejarse alrededor de quince dígitos decimales de exactitud, de modo que la resta de arriba se representa 1000.200 – 1000.000 La computadora convierte Y a binario dando un número infinito de ceros y unos, y almacena un número distinto a 1000.2 (véase el problema 1.6 b).

26

Errores

Por otro lado, 1000 sí se puede almacenar o representar exactamente en la computadora en binario en punto flotante (los números con esta característica se llaman números de máquina). Al efectuarse la resta se obtiene un número diferente de 0.2. Esto muestra por qué deberá analizarse siempre un resultado de un dispositivo digital antes de aceptarlo. 1.7

Más sobre análisis de resultados. El método de posición falsa (véase sección 2.4) obtiene su algoritmo al encontrar el punto de corte de la línea recta que pasa por los puntos (xD , yD ), (xI , yI ) y el eje x. Pueden obtenerse dos expresiones para encontrar el punto de corte xM: xI yD – xD yI i) xM = ––––––––––––– yD – yI

(xD – xI) yD ii) xM = xD – ––––––––––––– yD – yI

Si (xD, yD) = (2.13, 4.19) y (xI, yI) = (1.96, 6.87) y usando aritmética de tres dígitos y redondeando, ¿cuál es la mejor expresión y por qué? :VS\JP}U Sustituyendo en i) y en ii) i)

1.96 ( 4.19 ) – 2.13 ( 6.87 ) xM = –––––––––––––––––––––––––––––– = 2.38 4.19 – 6.87

ii)

( 2.13 – 1.96 ) 4.19 xM = 2.13 – –––––––––––––––––––––– = 2.40 4.19 – 6.87

Al calcular los errores absoluto y relativo, y tomando como valor verdadero a 2.395783582, el cual se calculó con aritmética de 13 dígitos, se tiene: i)

EA = 2.395783582 – 2.38 = 0.015783582 0.015783582 ER = –––––––––––––––– = 0.006588066 2.395783582

ii)

EA = 2.395783582 – 2.40 = 0.004216418 0.004216418 ER = ––––––––––––––– = 0.001759932 2.395783582

de donde es evidente que la forma ii) es mejor. Se sugiere al lector reflexionar sobre el porqué.

Problemas propuestos 1.1

Convierta* los siguientes números decimales a los sistemas con base 2 y base 8, y viceversa. a) 536

1.2

b) 923

c) 1536

d) 8

e) 2

f ) 10

g) 0

Escriba los símbolos o numerales romanos correspondientes a los siguientes símbolos arábigos. 10, 100, 1000, 10000, 100000, 1000000

* Puede usar el Programa 1.1 del CD del texto para comprobar sus resultados.

27

Métodos Numéricos Aplicados a la Ingeniería 1.3

Convierta los siguientes números enteros del sistema octal a sistema binario y viceversa. a) 0

1.4

b) 573

c) 7

d) 777

e) 10

f) 2

Responda las siguientes preguntas. a) ¿El número 101121 pertenece al sistema binario? b) ¿El número 3852 pertenece al sistema octal? c) Si su respuesta es NO en alguno de los incisos, explique por qué; si es SÍ, conviértalo(s) a decimal.

1.5

Convierta los siguientes números fraccionarios dados en decimal a binario y octal. a) 0.8

1.6

b) 0.2

c) 0.973

d) 0.356

e) 0.713

f ) 0.10

Convierta los siguientes números dados en binario a decimal y viceversa, usando la conversión a octal como paso intermedio. a) 1000

b) 001011

c) 01110

d) 10101

e) 111111

f) 10010

g) 01100 1.7

Convierta los siguientes números fraccionarios dados en binario a decimal. a) 0.0011

b) 0.010101

g) 0.00001

h) 0.1

c) 0.11

d) 0.11111

e) 0.00110011

f ) 0.0110111

1.8

Repita los incisos a) a h ) del problema 1.7, pero pasando a octal como paso intermedio.

1.9

Convierta los siguientes números en decimal a octal y binario. a) –0.9389

b) 977.93

g) 888.222

h) 3.57

c) 985.34

d) 0.357

f ) 0.9389

e) 10.1

1.10 En la sección 1.2 se dijo que cada palabra de 16 bits puede contener un número entero cualquiera del intervalo –32768 a +32767. Investigue por qué se incluye al –32768, o bien por qué el intervalo no inicia en –32767. 1.11 Represente el número –26 en una palabra de 8 bits. 1.12 Considere una computadora con una palabra de 8 bits. ¿Qué rango de números enteros puede contener dicha palabra? 1.13 Dados los siguientes números de máquina en una palabra de 16 bits: a)

1

0

0

0

1

0

1

1

0

0

0

1

0

1

0

0

b)

0

0

0

1

1

0

0

0

1

0

0

0

1

1

1

0

c)

0

1

0

0

0

0

1

0

1

1

0

0

1

1

0

0

¿Qué decimales representan? 1.14 Normalice los siguientes números. a) 723.5578

b) 8  103

c) 0.003485

Sugerencia: Pasar los números a binario y después normalizarlos.

28

d) –15.324

Errores 1.15 Represente en doble precisión el número decimal del ejemplo 1.10. 1.16 Elabore un programa para la calculadora o el dispositivo de cálculo con el que cuente, de modo que el número 0.0001 se sume diez mil veces consigo mismo. 0.0001 + 0.0001 + ... + 0.0001 1 2 10000 El resultado deberá imprimirse. Interprete este resultado de acuerdo con los siguientes lineamientos: a) Si es 1, ¿cómo es posible si se sumaron diez mil valores que no son realmente 0.0001? b) En caso de haber obtenido 1, explore con el valor 0.00001, 0.000001, etc., hasta obtener un resultado diferente de 1. c) ¿Es posible obtener un resultado menor de 1? ¿Por qué? 1.17 Efectúe con el programa del problema 1.16 los cálculos de los incisos a) a d) del ejemplo 1.12 de la página 18 y obtenga los resultados de la siguiente manera: a) Inicialice la variable SUMA con 0, 1, 1000 y 10000 en los incisos a), b), c) y d), respectivamente, y luego en un ciclo sume a ese valor diez mil veces el 0.0001. Anote sus resultados. b) Inicialice la variable SUMA con 0 para los cuatro incisos y al final del ciclo donde se habrá sumado 0.0001 consigo mismo 10000 veces, sume a ese resultado los números 0, 1, 1000 y 10000 e imprima los resultados. Interprete las diferencias de los resultados. 1.18 La mayoría de las calculadoras científicas almacenan dos o tres dígitos de seguridad más de los que despliegan. Por ejemplo, una calculadora que despliega ocho dígitos puede almacenar realmente diez (dos dígitos de seguridad); por tanto, será un dispositivo de diez dígitos. Para encontrar la exactitud real de su calculadora, realice las siguientes operaciones: t %JWJEBFOUSF BMSFTVMUBEPSÏTUFMF t %JWJEBFOUSF BMSFTVMUBEPSÏTUFMF t %JWJEBFOUSF BMSFTVMUBEPSÏTUFMF t %JWJEBFOUSF BMSFTVMUBEPSÏTUFMF Notará que la cantidad de los números 3 desplegados se va reduciendo. La cantidad de números 3 desplegada en cualquiera de las operaciones anteriores, sumada a la cantidad de ceros utilizados con el 1, indica el número de cifras significativas que maneja su calculadora. Por ejemplo, si con la segunda operación despliega 0.3333333, la calculadora maneja nueve cifras significativas de exactitud (7 + 2 ceros que tiene 100). ALERTA: Si su calculadora es del tipo intérprete BASIC, no realice las operaciones como 1000/3–333 porque obtendrá otros resultados. 1.19 Evalúe la expresión A / (1–cos x), en un valor de x cercano a 0°. ¿Cómo podría evitar la resta de dos números casi iguales en el denominador? 1.20 Deduzca las expresiones para xM dadas en el ejercicio 1.7. 1.21 Determine si en su calculadora o microcomputadora se muestra un mensaje de overflow o no. 1.22 Un número de máquina para una calculadora o computadora es un número real que se almacena exactamente (en forma binaria de punto flotante). El número –125.32 del ejemplo 1.10, evidentemente no es un número de máquina (si el dispositivo de cálculo tiene una palabra de 16 bits). Por otro lado, el número –26 del ejemplo 1.8 sí lo es, empleando una palabra de 16 bits. Determine 10 números de máquina en el intervalo [10–19, 1018 ] cuando se emplea una palabra de 16 bits.

29

Métodos Numéricos Aplicados a la Ingeniería 1.23 Investigue cuántos números de máquina positivos es posible representar en una palabra de 16 bits. 1.24 Haga el análisis de la propagación de errores para la resta (véase análisis de la suma, en la sección 1.3). 1.25 Resuelva el siguiente sistema de ecuaciones usando dos cifras decimales para guardar los resultados intermedios y finales: 21.76x + 24.34y = 1.24

14.16x + 15.84y = 1.15

y determine el error cometido. La solución exacta (redondeada a 5 cifras decimales) es x = –347.89167, y = 311.06667. 1.26 Se desea evaluar la función e5x en el punto x = 1.0; sin embargo, si el valor de x se calculó en un paso previo con un pequeño error y se tiene x* = 1.01; determine ;f con las expresiones dadas en la evaluación de funciones de la sección 1.3. Luego, establezca ;f como f (1) – f (1.01) y compare los resultados. 1.27 Codifique el siguiente algoritmo en su microcomputadora (utilice precisión sencilla). PASO 1. PASO 2. PASO 3. PASO 4. PASO 5.

Leer A. Mientras A>0, repetir los pasos 3 y 4. IMPRIMIR Ln(Exp(A))–A, Exp(Ln(A))–A. Leer A. TERMINAR.

Ejecútelo con diferentes valores de A, por ejemplo 0.18. 0.21, 0.25, 1, 1.5, 1.8, 2.5, 3.14159, 0.008205, 0.3814 entre otros, y observe los resultados. 1.28 Modifique el programa del problema del ejemplo 1.27 usando doble precisión para A y compare los resultados. 1.29 Modifique el paso 3 del programa del problema 1.27 para que quede así: IMPRIMIR SQR(A ^ 2) – A, SQR(A) ^ 2 – A y vuelva a ejecutarlo con los mismos valores. 1.30 Realice la modificación indicada en el problema 1.29 al programa del problema 1.28. Compare los resultados. 1.31 Repita los problemas 1.27 a 1.30 con lenguaje Pascal (puede usar Delphi, por ejemplo), con lenguaje Visual C++ y compare los resultados con los obtenidos en Basic.

Proyecto Un número de máquina en una calculadora o computadora es un número que está almacenado exactamente en forma normalizada de punto flotante (véase sección 1.2). Todo dispositivo digital sólo puede almacenar un número finito de números de máquina N. Por tanto, la mayoría de los números reales no puede almacenarse exactamente en cualquier dispositivo. Calcule cuántos números de máquina pueden almacenarse en una palabra de 16 bits.

30

2

Solucióndeecuaciones nolineales Resulta difícil no encontrar un área de ingeniería en donde las ecuaciones no lineales no sean utilizadas: circuitos eléctricos y electrónicos, riego agrícola, columnas empotradas y articuladas, tanques de almacenamiento, industria metal mecánica, industria química, etcétera.

Figura 2.1 Circuito electrónico.

A dónde nos dirigimos En este capítulo estudiaremos diversos métodos para resolver ecuaciones no lineales en una incógnita, f (x) = 0, aprovechando los conceptos básicos del cálculo y las posibilidades gráficas y de cómputo de la tecnología moderna. A lo largo del texto recurriremos sistemáticamente a la interpretación gráfica de los métodos, a fin de mostrar, de manera visual, su funcionamiento y de enriquecer las imágenes asociadas con ellos; de igual manera, se generan tablas en la aplicación de cada técnica para analizar el comportamiento numérico y eventualmente detener el proceso. El material se ha organizado como métodos de uno y de dos puntos, usando como prototipo de los primeros el de punto fijo, y de los segundos el de posición falsa. Esto, junto con el concepto de orden de convergencia, nos permitirá tener los elementos suficientes para seleccionar la técnica más adecuada para una situación dada. Finalizamos el capítulo con el estudio de las técnicas para resolver ecuaciones

31

Métodos Numéricos Aplicados a la Ingeniería

polinomiales. Algunas de ellas son adaptaciones de las que estudiamos anteriormente y otras son particulares para esta familia. El propósito de este capítulo es que el lector cuente con los elementos básicos, computacionales y de criterio, apropiados para resolver el problema algebraico clásico de encontrar las raíces reales y complejas de la ecuación f (x) = 0, en donde las técnicas algebraicas de “despejar” la incógnita no sean aplicables, como es el caso de cos x – 3x = 0 o ex – 3x = 0, o bien resulten imprácticas. Por último, es importante señalar lo difícil que resulta pensar en un tópico de matemáticas o ingeniería que no involucre ecuaciones de esta naturaleza.

Introducción Uno de los problemas más frecuentes en ingeniería es encontrar las raíces de ecuaciones de la forma f (x) = 0, donde f (x) es una función real de una variable x, como un polinomio en x f (x) = 4 x5 + x 3 – 8 x + 2 o una función trascendente* f (x) = e x sen x + ln 3x + x3 Existen distintos algoritmos para encontrar las raíces o ceros de f (x) = 0, pero ninguno es general. Es decir, no hay un algoritmo que funcione con todas las ecuaciones; por ejemplo, se puede pensar en un algoritmo que funcione perfectamente para encontrar las raíces de f1(x) = 0, pero al aplicarlo no se pueden encontrar los ceros de una ecuación distinta f2 (x) = 0. Sólo en muy pocos casos será posible obtener las raíces exactas de f (x) = 0, por ejemplo cuando f (x) es un polinomio factorizable, tal como f (x) = (x – x¯1) (x – x¯2) ... (x – x¯n) donde x¯i, 1 ≤ i ≤ n denota la i-ésima raíz de f (x) = 0. Sin embargo, se pueden obtener soluciones aproximadas al utilizar algunos de los métodos numéricos de este capítulo. Se empezará con el método de punto fijo (también conocido como de aproximaciones sucesivas, de iteración funcional, etc.), por ser el prototipo de todos ellos.

2.1 Método de punto fijo Sea la ecuación general f (x) = 0

(2.1)

de la cual se desea encontrar una raíz real** x¯. El primer paso consiste en transformar algebraicamente la ecuación 2.1 a la forma equivalente x = g (x)

(2.2)

* Las funciones trascendentes contienen términos trigonométricos, exponenciales o logarítmicos de la variable independiente. **En las secciones 2.9 y 2.10 se analizará el caso de raíces complejas.

32

Solución de ecuaciones no lineales

Por ejemplo, para la ecuación f (x) = 2x2 – x – 5 = 0

(2.3)

cuyas raíces son 1.850781059 y –1.350781059, algunas posibilidades de x = g (x) son: a) x = 2x2 – 5 b) x =

x+5 ––––––– 2

“Despejando” el segundo término. “Despejando” x del primer término.

5 c) x = ––––––– 2x – 1

Factorizando x y “despejándola”.

d) x = 2x2 – 5

Sumando x a cada lado.

2x2 – x – 5 e) x = x – –––––––––––– 4x – 1

Véase sección 2.2.

(2.4)

Una vez que se ha determinado una forma equivalente (ec. 2.2), el siguiente paso es tantear una raíz; esto puede hacerse por observación directa de la ecuación (por ejemplo, en la ecuación 2.3 se ve directamente que x = 2 es un valor cercano a una raíz).* Se denota el valor de tanteo o valor de inicio como x0. Otros métodos de tanteo se estudiarán en la sección 2.8. Una vez que se tiene x0, se evalúa g (x) en x0, denotándose el resultado de esta evaluación como x1; esto es g (x0) = x1 El valor de x1 comparado con x0 presenta los dos siguientes casos:

Caso1.Quex1=x0 Esto indica que se ha elegido como valor inicial una raíz y que el problema queda concluido. Para aclararlo, recuérdese que si x¯ es raíz de la ecuación 2.1, se cumple que f ( x¯ ) = 0 y como la ecuación 2.2 es sólo un rearreglo de la ecuación 2.1, también es cierto que g ( x¯ ) = x¯ Si se hubiese elegido x0 = 1.850781059 para la ecuación 2.3, el lector podría verificar que cualquiera que sea la g (x) seleccionada, g (1.850781059) = 1.850781059; esto se debe a que 1.850781059 es una raíz de la ecuación 2.3. Esta característica de g (x) de fijar su valor en una raíz x¯ ha dado a este método el nombre que lleva.

* Puede graficar usando un paquete comercial.

33

Métodos Numéricos Aplicados a la Ingeniería

Caso2.Quex1≠x0 Es el caso más frecuente, e indica que x1 y x0 son distintos de x¯. Esto es fácil de explicar, ya que si x· no es una raíz de 2.1, se tiene que f ( x·) ≠ 0 y por otro lado, evaluando g (x) en x·, se tiene g ( x·) ≠ x· En estas circunstancias se procede a una segunda evaluación de g (x), ahora en x1, denotándose el resultado como x2 g (x1) = x2 Este proceso se repite y se obtiene el siguiente esquema iterativo:

Valor inicial: Primera iteración: Segunda iteración: Tercera iteración: · · · i-ésima iteración: i + 1-ésima iteración: · · ·

x0 x1 = g (x0) x2 = g (x1) x3 = g (x2) · · · xi = g (xi–1) xi + 1 = g (xi) · · ·

f (x0) f (x1) f (x2) f (x3) · · · f (xi) f (xi + 1) · · ·

(2.5)

Aunque hay excepciones, generalmente se encuentra que los valores x0, x1, x2,… se van acercando a x¯ de manera que xi está más cerca de x¯ que xi–1; o bien, se van alejando de x¯ de modo que cualquiera está más lejos que el valor anterior. Si para la ecuación 2.3 se emplea x0 = 2.0, como valor inicial, y las g (x) de los incisos a) y b) de la ecuación 2.4, se obtiene, respectivamente: x0 = 2 ; g ( x ) = 2x2 – 5

x0 = 2; g ( x ) =

x+5 –––––– 2

i

xi

g (xi )

i

xi

g (xi )

0 1 2 3

2 3 13 333

3 13 333 221773

0 1 2 3

2.00000 1.87083 1.85349 1.85115

1.87083 1.85349 1.85115 1.85083

Puede apreciarse que la sucesión diverge con la g (x) del inciso a), y converge a la raíz 1.850781059 con la g (x) del inciso b). 34

Solución de ecuaciones no lineales

Finalmente, para determinar si la sucesión x0, x1, x2,… está convergiendo o divergiendo de una raíz x¯, cuyo valor se desconoce, puede calcularse en el proceso 2.5 la sucesión f (x0), f (x1), f (x2),… Si dicha sucesión tiende a cero, el proceso 2.5 converge a x¯ y dicho proceso se continuará hasta que | f (xi) | < ε1, donde ε1 es un valor pequeño e indicativo de la exactitud o cercanía de xi con x¯. Se toma a xi como la raíz y el problema de encontrar una raíz real queda concluido. Si por el contrario f (x0), f (x1), f (x2),… no tiende a cero, la sucesión x0, x1, x2,… diverge de x¯, y el proceso deberá detenerse y ensayarse uno nuevo con una g (x) diferente. ,QLTWSV Encuentre una aproximación a una raíz real de la ecuación cos x – 3 x = 0 :VS\JP}U Dos posibilidades de g (x) = x son: a)) x = cos x – 2 x b) x = cos x / 3 Graficando por separado las funciones cos x y 3x, se obtiene la figura 2.2. (Para graficar puede usar: el guión [script] de Matlab, las indicaciones para la Voyage 200 o algún otro software comercial.) Matlab

x = –4: 0.1:4; y = cos(x); z = 3*x; t = zeros (size(x)); plot (x,y) axis([–4 4 –2 2]) hold on plot(x,z) plot(x,t)

Invoque el editor Y=¶W. Escriba en y1 = la primera función a graficar: cos(x). Escriba en y2 = la segunda función a graficar: 3*x. Grafique con zoom estándar (F2 6) Lleve el cursor gráfico al punto donde se cruzan las dos funciones Haga un acercamiento(F2 2)↵ Use el trazador (F3) para ubicar la raíz

De donde un valor cercano a x¯ es x0 = (π/2) /4*. Iterando se obtiene para la forma del inciso a). i 0 1 2 3 4

xi π/8 0.13848 0.71346 –0.67083 2.12496

g (xi) 0.13848 0.71346 –0.67083 2.12496 –4.77616

| f (xi ) | 0.25422 0.57498 1.38429 2.79579 6.90113

* En el caso de funciones trigonométricas x debe estar en radianes.

35

Métodos Numéricos Aplicados a la Ingeniería

2 y 1.5

3x

1 0.5 ≠/2

0

x

x¯ –0.5 –1

cos x

–1.5 –2 –4

–3

–2

–1

0

1

2

3

4

Figura 2.2 Gráfica de cos x y de 3x.

Se detiene el proceso en la cuarta iteración, porque f (x0), f (x1), f (x2),… no tiende a cero. Se emplea el valor absoluto de f (x) para manejar la idea de distancia. Se inicia un nuevo proceso con x0 = (π/2)/4 y la forma equivalente del inciso b). i

xi

g (xi)

| f (xi ) |

0 1 2 3 4

π/8 0.30796 0.31765 0.31666 0.31676

0.30796 0.31765 0.31666 0.31676 0.31675

0.25422 0.02907 0.00298 0.00031 0.00003

y la aproximación de la raíz es: x¯ ≈ x4 = 0.31675 Para llevar a cabo los cálculos que se muestran en la tabla anterior, puede usar Matlab o la Voyage 200:

36

Solución de ecuaciones no lineales

Matlab

E2_1() E 2 1 Prgm ClrIO : 3.1416/8¶x0 For i, 1, 5 cos (x0) /3¶x abs (cos (x0) –3*x0)¶f string (x0) &” “&string(x)¶a a&” “&string(f)¶a Disp a: Pause : x¶x0 EndFor EndPrgm

format long x0=pi / 8; for i = 1 : 5 x=cos(x0) / 3; f=abs(cos(x0) – 3*x0); disp ( [x0, x, f] ) x0=x; end

Matlab posee una función que resuelve ecuaciones no lineales, suministrando la función y un valor inicial. Para este caso la instrucción quedaría fun = @(x)cos(x)–3*x; fzero(fun, pi/8) con lo que se obtiene ans = 0.3168 y en formato largo (format long) ans = 0.31675082877122 La calculadora Voyage 200 también tiene una función que resuelve ecuaciones no lineales. La instrucción es nSolve(cos(x) = 3*x, x) y el resultado es 0.316751

Criteriodeconvergencia Se estudiará un criterio más de convergencia del proceso iterativo 2.5, basado en que g (x¯ ) = x¯ por lo cual puede suponerse que si la sucesión x0, x1, x2,… converge a x¯, los valores consecutivos xi y xi+1 irán acercándose entre sí según avanza el proceso iterativo, como puede verse en seguida: x x0

x1

x2

x3

x4 x5 x6

x

Un modo práctico de saber si los valores consecutivos se acercan es ir calculando la distancia entre ellos d i = | xi + 1 – xi | 37

Métodos Numéricos Aplicados a la Ingeniería

Si la sucesión d1, d2, d3,... tiende a cero, puede pensarse que el proceso 2.5 está convergiendo a una raíz x¯ y debe continuarse hasta que di < ε, y tomar a xi+1 como la raíz buscada. Si d1, d2, d3,… no converge para un número “grande” de iteraciones (llámense MAXIT), entonces x0, x1, x2,… diverge de x¯, y se detiene el proceso para iniciar uno nuevo, modificando la función g (x), el valor inicial o ambos. Este criterio de convergencia se utiliza ampliamente en el análisis numérico y resulta más sencillo de calcular que el que emplea la sucesión f (x0), f (x1), f (x2),…, pero también es menos seguro, como se verá más adelante. Para finalizar esta sección, se da un algoritmo del método de punto fijo en forma propia para lenguajes de programación. Algoritmo 2.1 Método de punto fijo Para encontrar una raíz real de la ecuación g (x) = x, proporcionar la función G (X) y los DATOS: Valor inicial X0, criterio de convergencia EPS y número máximo de iteraciones MAXIT. RESULTADOS: La raíz aproximada X o un mensaje de falla. PASO 1. Hacer I = 1. PASO 2. Mientras I < MAXIT, realizar los pasos 3 a 6. PASO 3. Hacer X = G(X0) (calcular (xi )). PASO 4. Si ABS (X – X0) ≤ EPS entonces IMPRIMIR X y TERMINAR. De otro modo CONTINUAR. PASO 5. Hacer I = I + 1. PASO 6. Hacer X0 = X (actualizar X0). PASO 7. IMPRIMIR mensaje de falla: “EL MÉTODO NO CONVERGE A UNA RAÍZ” y TERMINAR.

Elcriterio|g(x)| 1 y f1, f2,… fn son todas funciones lineales de x1, x2, x3,… , xn. Por todo esto, es fácil entender que los métodos iterativos de solución de la ecuación 4.1 son extensiones de los métodos para ecuaciones no lineales con una incógnita y emplean las ideas que se aplicaron al desarrollar los algoritmos iterativos para resolver A x = b. A continuación se dan algunos ejemplos: a) fl (xI, x2) = 10 (x2 – xi2) = 0 f2 (x1, x2) = 1 – x1 = 0 b) f1 (x1, x2) = x12 + x22 – 4 = 0 f2 (x1, x2) = x2 – x12 = 0 c) f1 (x1, x2, x3) = x1x2x3 – 10x13 + x2 = 0 f2 (x1, x2, x3) = x1 + 2x2x3 + sen x2 – 15 = 0 f3 (x1, x2, x3) = x22 – 5x1x3 – 3x33 + 3 = 0 290

Sistemas de ecuaciones no lineales

4.1 Dificultades en la solución de sistemas de ecuaciones no lineales Antes de desarrollar los métodos iterativos para resolver sistemas de ecuaciones no lineales con varias incógnitas, destacaremos algunas de las dificultades que se presentan al aplicar estos métodos. t Es imposible graficar las superficies multidimensionales definidas por las ecuaciones de los sistemas para n > 2. t No es fácil encontrar “buenos” valores iniciales. Para atenuar estas dificultades, proporcionamos algunas sugerencias antes de analizar un intento formal de solución de la ecuación 4.1.

Reduccióndeecuaciones Resulta muy útil tratar de reducir analíticamente el número de ecuaciones y de incógnitas antes de intentar una solución numérica. En particular, hay que intentar resolver alguna de las ecuaciones para alguna de las incógnitas. Después, se debe sustituir la ecuación resultante para esa incógnita en todas las demás ecuaciones; con esto el sistema se reduce en una ecuación y una incógnita. Continúe de esta manera hasta donde sea posible. Por ejemplo, en el sistema f1(x1, x2) = 10 (x2 – x12 ) = 0 f2(x1, x2) = 1 – x1 = 0 se despeja x1 en la segunda ecuación x1 = 1 y se sustituye en la primera 10(x2 – 12) = 0 cuya solución, x2 = 1, conjuntamente con x1 = 1 proporciona una solución del sistema dado, sin necesidad de resolver dos ecuaciones con dos incógnitas.

Particióndeecuaciones A veces resulta más sencillo dividir las ecuaciones en subsistemas menores y resolverlos por separado. Considérese, por ejemplo, el siguiente sistema de cinco ecuaciones con cinco incógnitas. f1(xl, x2, x3, x4, x5) f2(x1, x2, x4) f3(x1, x3, x4, x5) f4(x2, x4) f5(x1, x4)

= = = = =

0 0 0 0 0

291

Métodos Numéricos Aplicados a la Ingeniería

En vez de atacar las cinco ecuaciones al mismo tiempo, se resuelve el subsistema formado por f2, f4 y f5. Las soluciones de este subsistema se utilizan después para resolver el subsistema compuesto por las ecuaciones f1 y f3. En general, una partición de ecuaciones es la división de un sistema de ecuaciones en subsistemas llamados bloques. Cada bloque de la partición es el sistema de ecuaciones más pequeño que incluye todas las variables que es preciso resolver.

Tanteodeecuaciones Supóngase que se quiere resolver el siguiente sistema de cuatro ecuaciones con cuatro incógnitas. f1(x2, x3) f2(x2, x3, x4) f3(x1, x2, x3, x4) f4(x1, x2, x3)

= = = =

0 0 0 0

Estas ecuaciones no se pueden dividir en subsistemas, sino que es preciso resolverlas simultáneamente; sin embargo, es posible abordar el problema por otro camino. Supóngase que se estima un valor de x3. Se podría obtener así x2 a partir de f1, x4 de f2 y x1 de f3. Finalmente, se comprobaría con f4 la estimación hecha de x3. Si f4 fuese cero o menor en magnitud que un valor predeterminado o criterio de exactitud ε, la estimación x3 y los valores de x2, x4 y x1, obtenidos con ella, serían una aproximación a la solución del sistema dado. En caso contrario, habría que proponer un nuevo valor de x3 y repetir el proceso. Nótese la íntima relación que guarda este método con el de punto fijo (véase capítulo 2), ya que un problema multidimensional se reduce a uno unidimensional en x3. h(x3) = 0

Valoresiniciales a) De consideraciones físicas Si el sistema de ecuaciones 4.1 tiene un significado físico, con frecuencia es posible acotar los valores de las incógnitas a partir de consideraciones físicas. Por ejemplo, si alguna de las variables xi representa la velocidad de flujo de un fluido, ésta no podrá ser negativa. Por lo tanto, xi ≥ 0. En el caso de que xi represente una concentración expresada como fracción peso o fracción molar de una corriente de alimentación, se tiene que 0 ≤ xi ≤ 1. (Para mayores detalles, ver los ejercicios resueltos que aparecen al final del capítulo.) b) Visualización de raíces en sistemas de dos ecuaciones no lineales con dos incógnitas. Sea el sistema f1 (x, y) = x2 – 10x + y2 + 8 = 0 (4.2) f2 (x, y) = x y2 + x – 10y + 8 = 0 Algebraicamente una solución o raíz del sistema 4.2 es una pareja – x, – y , tal que satisface cada una de las ecuaciones de dicho sistema. Nos permitiremos hacer la interpretación o visualización de una raíz a través de varias etapas 292

Sistemas de ecuaciones no lineales

Al graficar la función f1 (x, y), se obtiene una superficie en el espacio, como se ve en la figura 4.2. Para apreciar mejor ésta y otras gráficas, se puede consultar el CD-ROM del texto (con las figuras 4.2 a 4.9).

30 f1(x,y) 20

10 z 0 Plano x-y

–10

c1

–20 1 y

0

–1

–1.5 –1

–0.5 0 x

0.5

1

1.5

Figura 4.2 Intersección de la superficie f1(x, y) con el plano x-y.

La intersección, si la hay, de la superficie f1 (x, y) con el plano x – y puede resultar en una curva c1, como se muestra en la figura 4.2. A lo largo de esta curva se observa el hecho de que f1 (x, y) = 0; dicho de otra manera, los puntos de esta curva son la solución de la ecuación f1 (x, y) = 0, no del sistema 4.2. Repitiendo el mismo procedimiento con la superficie de la función f2 (x, y), se obtiene otra curva c2 en el plano x – y, que ahora resulta ser la solución de la ecuación f2 (x, y) = 0 (véase figura 4.3). Finalmente, las intersecciones de las curvas c1 y c2 del plano x – y, resultan ser puntos comunes a las tres superficies: f1 (x, y), f2 (x, y) y el plano x – y; dichos puntos satisfacen ambas ecuaciones del sistema 4.2 y son precisamente las raíces – x , –y que buscamos (véase figura 4.4). Partiendo de la raíz mostrada en la gráfica 4.4 se pueden proponer valores iniciales. Por último, resulta muy conveniente conocer bien las características de cada método de solución del sistema 4.1 para efectuar la elección más adecuada para el mismo. En la sección siguiente se iniciará el estudio de dichos métodos con la extensión del método de punto fijo a sistemas de ecuaciones no lineales.

293

Métodos Numéricos Aplicados a la Ingeniería

30

20

f2(x,y) 10

c2 z 0 Plano x-y

–10

–20 1

0 y

–1

–0.5 0x

–1.5 –1

0.5

1

1.5

Figura 4.3 Intersección de la superficie f2(x, y) con el plano x-y.

30 f1(x,y)

20 f2(x,y) 10 z 0

Plano x-y

–10 Raíz

–20 1 y

0

–1

–1.5 –1

–0.5 0 x

0.5

Figura 4.4 Intersección de las superficies f1(x, y) y f2(x, y) con el plano x-y.

294

1

1.5

Sistemas de ecuaciones no lineales

4.2 Método de punto fijo multivariable Los algoritmos que se estudiarán en este capítulo son, en principio, aplicables a sistemas de cualquier número de ecuaciones; sin embargo, para ser más concisos y evitar notación complicada, se considerará sólo el caso de dos ecuaciones con dos incógnitas. Éstas generalmente se escribirán como f1(x, y) = 0 f2(x, y) = 0

(4.3)

y se tratará de encontrar pares de valores (x, y) que satisfagan ambas ecuaciones. Como en el método de punto fijo (véase sección 2.1) y en los métodos de Jacobi y Gauss-Seidel (véase sección 3.5), en éste también se resolverá la primera ecuación para alguna de las variables, x por ejemplo, y la segunda para y. x = g1(x, y) y = g2(x, y)

(4.4)

Al igual que en los métodos mencionados, se tratará de obtener la estimación (k + 1)-ésima a partir de la estimación k-ésima, con la expresión xk+l = g1(xk, yk) yk+l = g2(xk, yk)

(4.5)

Se comienza con valores iniciales x0, y0, se calculan nuevos valores x1, y1, y se repite el proceso, esperando que después de cada iteración los valores de xk, yk se aproximen a la raíz buscada – x, – y , la cual cumple con – x = g1( – x, – y) – y = g2( – x, – y) Por analogía con los casos analizados, es posible predecir el comportamiento y las características de este método de punto fijo multivariable. Como se sabe, en el caso de una variable, la manera particular de pasar de f (x) = 0 a x = g(x), afecta la convergencia del proceso iterativo. Entonces, debe esperarse que la forma en que se resuelve para x = g1(x, y) y y = g2(x, y), afecte la convergencia de las iteraciones (4.5). Por otro lado, se sabe que en el caso lineal el reordenamiento de las ecuaciones afecta la convergencia, por lo que puede esperarse que la convergencia del método en estudio dependa de si se despeja x de f2 o de f1. Finalmente, como en el método iterativo univariable y en el de Jacobi y de Gauss-Seidel, la convergencia —en caso de existir— es de primer orden, cabe esperar que el método iterativo multivariable tenga esta propiedad. ,QLTWSV Encuentre una solución del sistema de ecuaciones no lineales f1(x, y) = x2 – 10x + y2 + 8 = 0 f2(x, y) = x y2 + x – 10y + 8 = 0 295

Métodos Numéricos Aplicados a la Ingeniería

:VS\JP}U Con el despeje de x del término (–10x) en la primera ecuación, y de y del término (–10y) en la segunda ecuación, resulta x2 + y 2 + 8 x = –––––––––––– 10 x y2 + x + 8 y = –––––––––––– 10 o con la notación de la ecuación 4.5 (xk)2 + (y k)2 + 8 x k+l = –––––––––––––––– 10 xk (y k)2 + x k + 8 y k+l = –––––––––––––––– 10 Con los valores iniciales x0 = 0, y0 = 0, comienza el proceso iterativo.

Primera iteración 02 + 02 + 8 x1 = ––––––––––– = 0.8 10 0(0)2 + 0 + 8 y1 = –––––––––––––– = 0.8 10

Segunda iteración (0.8)2 + (0.8)2 + 8 x2 = ––––––––––––––––––– = 0.928 10 0.8(0.8)2 + 0.8 + 8 y2 = –––––––––––––––––––– = 0.9312 10 Al continuar el proceso iterativo, se encuentra la siguiente sucesión de vectores:

296

k

xk

yk

0 1 2 3

0.00000 0.80000 0.92800 0.97283

0.00000 0.80000 0.93120 0.97327

Sistemas de ecuaciones no lineales

4 5 6 7 8 9 10 11 12 13

0.98937 0.99578 0.99832 0.99933 0.99973 0.99989 0.99996 0.99998 0.99999 1.00000

0.98944 0.99579 0.99832 0.99933 0.99973 0.99989 0.99996 0.99998 0.99999 1.00000

Los cálculos pueden hacerse con Matlab o con la Voyage 200. Matlab X0=0; y0=0; fprintf(‘ k x(k) y(k)\n’) fprintf(‘ %2d %10.5f %10.5f\n’, 0, x0, y0) for k=1:13 x1=(x0^2+y0^2+8)/10; y1=(x0*y0^2+x0+8)/10; fprintf(‘ %2d %10.5f %10.5f\n’,k,x1,y1) x0=x1; y0=y1; end

Plus e4_1( ) Prgm Define g1(x, y) = (x^2+y^2+8)/10 Define g2(x, y) = (x*y^2+x+8)/10 0¶x0 : 0¶y0 : 0¶k : ClrI0 Disp “k x(k) y(k)” string (k) &” “&format (x0, ”f5”)¶d d&” “&format(y0, ”f5”)¶d : Disp d For k, 1, 13 g1(x0, y0)¶x : g2(x0, y0)¶y string(k) &” “&format(x, ”f5”)¶d d&” “&format(y, ”f5”)¶d : Disp d x¶x0 : y¶y0 EndFor EndPrgm

297

Métodos Numéricos Aplicados a la Ingeniería

Para observar la convergencia del proceso iterativo se pudieron usar los criterios del capítulo anterior, como la distancia entre dos vectores consecutivos, o bien las distancias componente a componente de dos vectores consecutivos. También existe un criterio de convergencia equivalente al de las ecuaciones 2.10 y 3.97, que puede aplicarse antes de iniciar el proceso iterativo mencionado, y que dice:

Una condición suficiente, aunque no necesaria, para asegurar la convergencia es que ∂g ∂g ∂g ∂g + | ––– | ≤ M < 1 ; | ––– | + | ––– | ≤ M < 1 | ––– | ∂x ∂x ∂y ∂y 1

2

1

2

(4.6)

para todos los puntos (x, y) de la región del plano que contiene todos los valores (x k, y k) y la raíz buscada (x–, – y ).

Por otro lado, si M es muy pequeña en una región de interés, la iteración converge rápidamente; si M es cercana a 1 en magnitud, entonces la iteración puede converger lentamente. Este comportamiento es similar al del caso de una función univariable discutido en el capítulo 2. Por lo general es muy difícil encontrar el sistema 4.4 a partir de la ecuación 4.3, de modo que satisfaga la condición 4.6. De todas maneras, cualquiera que sea el sistema (4.4) a que se haya llegado y que se vaya a resolver con este método, puede aumentarse la velocidad de convergencia usando los desplazamientos sucesivos en lugar de los desplazamientos simultáneos del esquema 4.5. Es decir, se iteraría mediante

x k + 1 = g1(x k, y k) y k+1 = g2(x k+1, y k)

(4.7)

Como en el caso lineal (Jacobi y Gauss-Seidel), si la iteración por desplazamientos simultáneos diverge, generalmente el método por desplazamientos sucesivos divergería más rápido; es decir, se detecta más rápido la divergencia, por lo que en general se recomienda el uso de desplazamientos sucesivos en lugar de desplazamientos simultáneos. ,QLTWSV Resuelva el sistema del ejemplo 4.1, utilizando el método de punto fijo multivariable con desplazamientos sucesivos f1(x, y) = x 2 – 10x + y 2 + 8 = 0 f2(x, y) = x y 2 + x – 10y + 8 = 0 Sugerencia: Se pueden seguir los cálculos con un pizarrón electrónico, o programar una calculadora.

:VS\JP}U Al despejar x del término (–10x) y y del término (–10y), de la primera y segunda ecuaciones, respectivamente, resulta 298

Sistemas de ecuaciones no lineales

(x k)2 + (y k)2 + 8 x k+1 = g1 (xk, y k) = –––––––––––––––– 10 x k+1 (y k)2 + x k +1 + 8 y k = g2 (x k+1, y k) = –––––––––––––––––––– 10 Al derivar parcialmente, se obtiene ∂g 2x k –––1 = –––– ∂x 10 (y k)2 + 1 ∂g –––2 = ––––––––– ∂x 10

∂g 2y k –––1 = –––– ∂y 10 ∂g 2x k+1 y k –––2 = –––––––– ∂y 10

y evaluadas en x0 = 0 y en y0 = 0 ∂g –––1 0 = 0 ∂x x y0

∂g –––1 0 = 0 ∂y x y0

∂g –––2 0 = 1/10 ∂x x y0

∂g –––2 0 = 0 ∂y x y0

con lo que se puede aplicar la condición 4.6 ∂g ∂g –––1 + –––2 = 0 + 1/10 = 1/10 < 1 ∂x ∂x ∂g1 ∂g2 ––– + ––– = 0 + 0 = 0 < 1 ∂y ∂y la cual se satisface, si los valores sucesivos de la iteración: x1, y1; x2, y2; x3, y3;… la satisfacen también; se llega entonces a – x, – y.

Primera iteración 02 + 02 + 8 x1 = –––––––––––– = 0.8 10 0.8(0)2 + 0.8 + 8 y1 = –––––––––––––––––– = 0.88 10 Cálculo de la distancia entre el vector inicial y el vector [x1, y1]T

| x(1) – x(0) | =

(0.8 – 0.0)2 + (0.88 – 0.00)2 = 1.18929

299

Métodos Numéricos Aplicados a la Ingeniería

Segunda iteración (0.8)2 + (0.88)2 + 8 x2 = ––––––––––––––––––––– = 0.94144 10 0.94144(0.88)2 + 0.94144 + 8 y2 = –––––––––––––––––––––––––––––––– = 0.96704 10 Cálculo de la distancia entre [x2, y 2]T y [x1, y1]T

| x(2) – x(1) | =

(0.94144 – 0.8)2 + (0.96704 – 0.88)2 = 0.16608

A continuación se muestran los resultados de las iteraciones. k

xk

yk

| x(k+1) – x(k) |

0 1 2 3 4 5 6 7 8 9 10 11

0.00000 0.80000 0.94144 0.98215 0.99448 0.99829 0.99947 0.99983 0.99995 0.99998 0.99999 1.00000

0.00000 0.88000 0.96705 0.99006 0.99693 0.99905 0.99970 0.99991 0.99997 0.99999 1.00000 1.00000

–––––––– 1.18929 0.16608 0.04677 0.01411 0.00436 0.00135 0.00042 0.00013 0.00004 0.00001 0.00001

Observemos que se requirieron 11 iteraciones para llegar al vector solución (1,1) contra 13 del ejemplo 4.1, donde se usaron desplazamientos simultáneos. Los cálculos pueden realizarse con Matlab o con la Voyage 200. Matlab x0=0; y0=0; fprintf(‘ k x(k) y(k) Dist \n’) fprintf(‘ %2d %10.5f %10.5f\n’, 0, x0, y0) for k=1:11 x1=(x0^2+y0^2+8)/10; y1=(x1*y0^2+x1+8)/10; Dist=((x1–x0)^2+(y1–y0)^2)^0.5; fprintf(‘%2d %10.5f %10.5f %10.5f\n’, k, x1, y1, Dist) x0=x1; y0=y1; End

300

Sistemas de ecuaciones no lineales

E4_2 ( ) Prgm Define g1(x,y) = (x^2+y^2+8)/10 Define g2(x,y) = (x*y^2+x+8)/10 0¶x0 : 0¶y0 : 0¶k : ClrI0 Disp “k x(k) y(k)” string(k)&” “&format(x0,“f5”)¶d d&” “&format(y0, “f5”)¶d : Disp d for k, 1, 11 g1(x0,y0)¶x : g2(x,y0)¶y string(k)&” “format (x,“f5”)¶d d&” “format (y,“f5”)¶d: Disp d x¶x0 : y¶y0 EndFor EndPrgm

A continuación se presenta un algoritmo para el método de punto fijo multivariable en sus versiones de desplazamientos simultáneos y desplazamientos sucesivos.

Algoritmo 4.1 Método de punto fijo multivariable Para encontrar una solución aproximada de un sistema de ecuaciones no lineales g (x) = x, proporcionar las funciones G(I, x), I=1, 2,… , N y los DATOS:

El número de ecuaciones N, el vector de valores iniciales x, el criterio de convergencia EPS, el número máximo de iteraciones MAXIT y M = 0 para desplazamientos sucesivos o M = 1 para desplazamientos simultáneos. RESULTADOS: Una solución aproximada x o mensaje “NO HUBO CONVERGENCIA”. PASO 1. PASO 2.

Hacer K = 1. Mientras K ≤ MAXIT, repetir los pasos 3 a 14. PASO 3. Si M = 0, hacer xaux = x. De otro modo continuar. PASO 4. Hacer I = 1. PASO 5. Mientras I ≤ N, repetir los pasos 6 y 7. PASO 6. Si M = 0, hacer X(I) = G(I, x). De otro modo hacer XAUX(I) = G(I, x). PASO 7. Hacer I = I + 1. PASO 8. Hacer I = 1. PASO 9. Mientras I ≤ N, repetir los pasos 10 y 11. PASO 10. Si ABS (XAUX(I) – X(I)) > EPS ir al paso 13. De otro modo continuar. PASO 11. Hacer I = I + 1. PASO 12. IMPRIMIR x Y TERMINAR. PASO 13. Si M = 1 hacer x = xaux. De otro modo continuar. PASO 14. Hacer K = K + 1. PASO 15. IMPRIMIR mensaje “NO HUBO CONVERGENCIA” y TERMINAR.

Sugerencia: Desarrolle este algoritmo con Mathcad o un software equivalente.

301

Métodos Numéricos Aplicados a la Ingeniería

4.3 Método de Newton-Raphson El método iterativo para sistemas de ecuaciones converge linealmente. Del mismo modo que en el método de una incógnita, puede crearse un método de convergencia cuadrática, es decir, el método de Newton-Raphson multivariabe. A continuación se obtendrá este procedimiento para dos variables; la extensión a tres o más variables es viable generalizando los resultados. Supóngase que se está resolviendo el sistema f1(x, y) = 0 f2(x, y) = 0 Donde ambas funciones son continuas y diferenciables, de modo que puedan expandirse en serie de Taylor. Esto es ∂f ∂f 1 f (x, y) = f (a, b ) + ––– (x – a) + ––– (y – b) + — ∂x ∂x 2!

[

∂ 2f ––––– (x – a)2 + ∂x∂x

∂2f ∂2f 2 ––––– (x – a) (y – b) + ––––– (y – b)2 + … ∂x∂y ∂x∂y

]

donde f (x, y) se ha expandido alrededor del punto (a, b) y todas las derivadas parciales están evaluadas en (a, b). Expandiendo f1 alrededor de (x k, y k) ∂f ∂f f1 (x k+1, y k+1) = f1 (x k, y k) + –––1 (x k+1 – x k) + –––1 (y k+1 – y k) + ∂x ∂y 1 ∂2f1 ∂2f1 — ––––– (x k+1 – x k)2 + 2 ––––– (x k+1 – x k)(y k+1 – y k) + 2! ∂x∂x ∂x∂y

[

∂2f1 ––––– (y k+1 – y k)2 + … ∂y∂y

]

(4.8)

donde todas las derivadas parciales están evaluadas en (x k, y k). De la misma forma puede expandirse f2 como sigue ∂f ∂f f2 (x k+1, y k+1) = f2(x k, y k) + –––2 (x k+1 – x k) + –––2 (y k+1 – y k) + ∂x ∂y 1 ∂2f2 ∂2f2 — ––––– (x k+1 – x k)2 + 2 ––––– (x k+1 – x k)(y k+1 – y k) + 2! ∂x∂x ∂x∂y

[

∂2f2 ––––– (y k+1 – y k)2 + … ∂y∂y

]

(4.9)

De igual manera que en la ecuación 4.8, todas las derivadas parciales de 4.9 están evaluadas en (x k, y k). 302

Sistemas de ecuaciones no lineales

Ahora, supóngase que x k+1 y y k+1 están cerca de la raíz buscada (x–, – y ) y que los lados izquierdos de las dos últimas ecuaciones son casi cero; además, asúmase que x k y y k están tan próximos de x k+1 que pueden omitirse los términos a partir de los que se encuentran agrupados en paréntesis rectangulares. Con esto las ecuaciones 4.8 y 4.9 se simplifican a ∂f ∂f 0 ≈ f1 (x k, y k) + –––1 (x k+1 – x k) + –––1 (y k+1 – y k) ∂x ∂y (4.10) ∂f ∂f 0 ≈ f2 (x k, y k) + –––2 (x k+1 – x k) + –––2 (y k+1 – y k) ∂x ∂y Para simplificar aún más, se cambia la notación con x k+1 – x k = h (4.11)

y k+1 – y k = h y así queda la (k + 1)-ésima iteración en términos de la k-ésima x k+1 = x k + h

(4.12)

y k+1 = y k + j La sustitución de la ecuación 4.11 en la 4.10 y el rearreglo dan como resultado ∂f ∂f –––1 h + –––1 j = – f1 (xk, yk) ∂x ∂y

(4.13) ∂f ∂f –––2 h + –––2 j = – f2 (xk, yk) ∂x ∂y el cual es un sistema de ecuaciones lineales en las incógnitas h y j (recuérdese que las derivadas parciales de la ecuación 4.13, así como f1 y f2, están evaluadas en (x k, y k) y, por lo tanto, son números reales). Dicho sistema de ecuaciones lineales resultante tiene solución única, siempre que el determinante de la matriz de coeficientes o matriz jacobiana J no sea cero; es decir, si

J =

∂f –––1 ∂x

∂f –––1 ∂y

∂f –––2 ∂x

∂f –––2 ∂y

≠0

Precisando: el método de Newton-Raphson consiste fundamentalmente en formar y resolver el sistema 4.13, esto último mediante alguno de los métodos vistos en el capítulo 3. Así, con la solución y la ecuación 4.12 se obtiene la siguiente aproximación. Este procedimiento se repite hasta satisfacer algún criterio de convergencia establecido. Cuando converge este método, lo hace con orden 2 y requiere que el vector (x0, y0) esté muy cerca de la raíz buscada (x–, – y ). 303

Métodos Numéricos Aplicados a la Ingeniería

InterpretacióngeométricadelmétododeNewton-Raphson Desarrollemos en etapas esta interpretación para un sistema de dos ecuaciones. Sea el sistema f1(x, y) = x2 + y2 – 1 f2(x, y) = x2 – y2 – 1 La gráfica de f1(x, y) se muestra en la figura 4.5.

f1(x,y)

10 8 6 4 2 0 –2 2 2

1 1

0

0

–1

–1 –2

Figura 4.5 Gráfica de la superficie f1 (x, y).

–2

Si el punto de inicio es (x0, y0) = (1, 1), el plano tangente a la superficie f1(x, y) en el punto (1, 1, f (1, 1)) se muestra en la figura 4.6. f1(x,y) punto de tangencia

10

5

0

–5 plano tangente a f1(x,y)

–10 2 Figura 4.6 Plano tangente a la superficie f1 (x, y) en el punto (1, 1, f1 (1, 1)).

304

1

0

–1

–2

–2

–1

0

1

2

Sistemas de ecuaciones no lineales

La intersección del plano tangente con el plano x-y, en caso de existir, es una línea recta r1, como puede apreciarse en la figura 4.7.

10

f1(x,y)

8 6 4 2 0

recta r1

plano x-y

–2 –4 –6 plano tangente a f (x,y)

–8 –10 2 0 –2

–1

–2

1

0

2

Figura 4.7 Intersección del plano tangente y el plano x-y.

Si repetimos el procedimiento con la superficie f2(x, y), obtenemos la recta r2, como puede apreciarse en la figura 4.8.

10

recta r2

5 plano x-y

0

–5 f2(x,y)

–10 2

plano tangente a f2(x,y)

1 0 –1 –2

–2

–1

0

1

2

Figura 4.8 Intersección del plano tangente y el plano x-y para la función f2 (x, y).

Finalmente, la intersección de los dos planos tangentes con el plano x-y, en caso de existir, es la intersección de la recta r1 con la recta r2, punto (x1, y1), como puede observarse en la figura 4.9, donde se han omitido las superficies f1(x, y) y f2(x, y) a fin de mostrar más claramente a (x1, y1). Obsérvese que la intersección de las rectas r1 y r2 corresponde a la siguiente aproximación de una solución del sistema de ecuaciones no lineales. 305

Métodos Numéricos Aplicados a la Ingeniería

10

plano tangente a f2(x,y)

plano tangente a f1(x,y)

(x1, y1)

5

recta r1

plano x-y

0 z

-5 –10

recta r2

–15 2 1 x

0 –1 –2

0y

–1

–2

1

2

Figura 4.9 Intersección de los planos tangentes y el plano x-y.

Podemos apreciar que este punto tiene aproximadamente las coordenadas (x1, y1) = (1, 0.5), que servirán como punto de partida para la siguiente iteración. El lector encontrará más adelante un inserto a color donde podrá observar mejor las intersecciones de las superficies y la raíz. Un ejercicio interesante para el lector consiste en identificar los pasos correspondientes entre la interpretación gráfica dada y la interpretación del método de Newton-Raphson univariable; por ejemplo, la recta tangente a la gráfica de f(x) en (x0, f(x0)) corresponde a la superficie tangente a una de las gráficas del sistema en (x0, y0, f(x0, y0)), etcétera. ,QLTWSV Use el método de Newton-Raphson para encontrar una solución aproximada del sistema f1 (x, y) = x2 – 10x + y 2 + 8 = 0 f2 (x, y) = x y 2 + x – 10y + 8 = 0 con el vector inicial: [x0, y 0]T = [0, 0]T. :VS\JP}U Primero se forma la matriz coeficiente del sistema 4.13, también conocida como matriz de derivadas parciales ∂f –––1 = 2x – 10 ∂x ∂f2 ––– = y2 + 1 ∂x

∂f –––1 = 2y ∂y ∂f2 ––– = 2xy – 10 ∂y

que aumentada en el vector de funciones resulta en 2x – 10 y2 + 1 306

2y

– x2 + 10x – y 2 – 8

2x y –10

–x y 2 – x + 10y – 8

Sistemas de ecuaciones no lineales

Primera iteración Al evaluar la matriz en [x0, y 0]T se obtiene –10 1

0 –10

–8 –8

que al resolverse por eliminación de Gauss da h = 0.8

j = 0.88

al sustituir en la ecuación 4.12 se obtiene x1 = x0 + h = 0 + 0.8 = 0.8 y1 = y0 + j = 0 + 0.88 = 0.88 Cálculo de la distancia entre x(0) y x(1)

| x(1) – x(0) | =

(0.8 – 0)2 + (0.88 – 0)2 = 1.18929

Segunda iteración Al evaluar la matriz en [x1, y1]T resulta –8.4 1.7744

1.76 –8.592

–1.41440 –0.61952

que por eliminación gaussiana da como nuevos resultados de h y j h = 0.19179

j = 0.11171

de donde x2 = x1 + h = 0.8 + 0.19179 = 0.99179 y2 = y1 + j = 0.88 + 0.11171 = 0.99171 Cálculo* de la distancia entre x(1) y x(2)

| x(2) – x(1) | =

(0.99179 – 0.8)2 + (0.99171 – 0.88)2 = 0.22190

Con la continuación de este proceso iterativo se obtienen los resultados siguientes: k

xk

yk

| x k+1 – x k |

0 1 2 3 4

0.00000 0.80000 0.99179 0.99998 1.00000

0.00000 0.88000 0.99171 0.99997 1.00000

––––––– 1.18929 0.22195 0.01163 0.00004

* Nótese que | x(1) – x(0) | = h2 + j2 .

307

Métodos Numéricos Aplicados a la Ingeniería

Como puede observarse, se requirieron cuatro iteraciones para llegar al vector solución (1, 1) contra 11 del ejemplo 4.2, donde se usó el método de punto fijo con desplazamientos sucesivos. Sin embargo, esta convergencia cuadrática implica mayor número de cálculos ya que, como se puede observar, en cada iteración se requiere: a) La evaluación de 2  2 derivadas parciales. b) La evaluación de 2 funciones. c) La solución de un sistema de ecuaciones lineales de orden 2. Estos cálculos pueden realizarse con Matlab o con la Voyage 200. Matlab x0=0; y0=0; fprintf(‘ k x(k) y(k) |x(k+1) –x(k)| \n’) fprintf(‘ %2d %10.5f %10.5f\n’, 0, x0, y0) for k=1 : 4 df1x=2*x0–10; df1y=2*y0; df2x=y0^2+1; df2y=2*x0*y0–10; f1=x0^2–10*x0+y0^2+8; f2=x0*y0^2+x0–10*y0+8; A=[df1x df1y; df2x df2y]; b=[–f1; –f2]; hj=inv(A)*b; x1=x0+hj(1); y1=y0+hj(2); Dist=((x1–x0)^2+(y1–y0)^2)^0.5; fprint(‘ %2d %10.5f %10.5f %10.5f\n’, k, x1, y1, Dist) x0=x1; y0=y1; end

e4_3 ( ) Prgm Define f1(x, y) = x^2–10*x+y^2+8 Define f2(x, y) =x*y^2+x–10*y+8 Define df1x(x, y) =2*x–10 Define df1y(x, y) =2*y Define df2x(x, y) =y^2+1 Define df2y(x, y) =2*x*y–10; 0¶x0 : 0¶y0 : 0¶k : ClrI0 Disp “k x(k) y(k) |x(k+1) –x(k)|” string(k) &” “&format(x0, “f5”)¶d d&” “%format (y0, “f5”)¶d : Disp d For k, 1, 4 [df1x(x0,y0),df1y(x0,y0); df2x(x0,y0),df2y(x0,y0)]¶a [–f1(x0, y0); –f2(x0,y0)]¶b simult(a,b)¶dx : x0+dx[1]¶x : y0+dx[2]¶y norm(dx)¶dist : norm(x)¶x : norm(y)¶y string(k) &” “&format(x, “f5”)¶d d&” “&format(y1, “f5”)¶d : Disp d x¶x0 : y¶y0 EndFor EndPrgm

308

Sistemas de ecuaciones no lineales

Generalización Para un sistema de n ecuaciones no lineales con n incógnitas (véase ecuación 4.1), y retomando la notación vectorial y matricial, las ecuaciones 4.13 quedan ∂f –––1 ∂x1

h1

+

∂f –––1 ∂x2

h2

+



∂f –––2 ∂x1

h1

+

∂f –––2 ∂x2

h2

+



· · · ∂f –––n ∂x1

h1

· · · +

∂f –––n ∂x2

h2

+



∂f + –––1 hn = –f1 ∂xn ∂f + –––2 hn = –f2 ∂xn · · · ∂fn + ––– hn = –fn ∂xn

(4.14)

o Jh=–f donde las funciones fi y las derivadas parciales ∂fi| ∂xj, i = 1, 2,… , n; j = 1, 2,… , n están evaluadas en el vector x(k) y hi = xik+1 – xik

1≤ i ≤ n

(4.15)

xik+1 = xik + hi

1≤i≤n

(4.16)

De donde

o x(k+1) = x(k) + h(k) y la matriz de derivadas parciales (matriz jacobiana), ampliada en el vector de funciones, queda ∂f –––1 ∂x1

∂f –––1 ∂x2

∂f –––2 ∂x1 · · · ∂fn ––– ∂x1

∂f –––2 ∂x2 · · · ∂fn ––– ∂x2







∂f –––1 ∂xn ∂f –––2 ∂xn · · · ∂fn ––– ∂xn

–f1

–f2 (4.17)

–fn

o bien [ J | –f ] Se presenta a continuación un algoritmo para este método. 309

Métodos Numéricos Aplicados a la Ingeniería

Algoritmo 4.2 Método de Newton-Raphson multivariable Para encontrar una solución aproximada de un sistema de ecuaciones no lineales f(x) = 0, proporcionar la matriz jacobiana ampliada con el vector de funciones (véase ecuación 4.17) y los DATOS:

El número de ecuaciones N, el vector de valores iniciales x, el número máximo de iteraciones MAXIT y el criterio de convergencia EPS. RESULTADOS: El vector solución xn o mensaje “NO CONVERGE”. PASO 1. PASO 2.

Hacer K = 1. Mientras K ≤ MAXIT, repetir los pasos 3 a 9. PASO 3. Evaluar la matriz jacobiana aumentada (4.17). PASO 4. Resolver el sistema lineal (4.14). PASO 5. Hacer* xn = x + h. PASO 6. Si | xn – x | > EPS ir al paso 8 . De otro modo continuar. PASO 7. IMPRIMIR xn y TERMINAR. PASO 8. Hacer x = xn. PASO 9. Hacer K = K + 1. PASO 10. IMPRIMIR “NO CONVERGE “ Y TERMINAR.

* Operaciones vectoriales.

,QLTWSV Con el algoritmo 4.2, elabore un programa de propósito general para resolver sistemas de ecuaciones no lineales. Luego úselo para resolver el sistema f1 (x1, x2, x3) = 3x1 – cos(x2x3) – 0.5 = 0 f2 (x1, x2, x3) = x12 – 625x22 = 0 (10π – 3) f3 (x1, x2, x3) = e–x1x2 + 20x3 + –––––––––– = 0 3 :VS\JP}U El PROGRAMA 4.1 del CD consta de los subprogramas GAUSSJORDAN y PIVOTEO, de propósito general; es decir, no dependen del sistema de ecuaciones para resolver. El usuario deberá escribir el programa principal que llama al subprograma VisualBasic FFUNCIONES, donde proporcionará la matriz jacobiana ampliada (véase ecuación 4.17). La matriz jacobiana ampliada para el sistema es 3

x3 sen (x2x3)

x2sen (x2x3)

–3x1 + cos(x2x3) + 0.5

2x1

–1250x2

0

–x12 + 625x22

–x2e–x1x2

–x1e–x1x2

20

10 π – 3 –e–x1x2 – 20x3 – ––––––––– 3

El programa queda finalmente como se muestra en el disco PROGRAMA 4.1. Su ejecución con el vector inicial [1 1 1]T produce los siguientes resultados: 310

Sistemas de ecuaciones no lineales

k

x1

x2

x3

Distancia

0 1 2 3 4 5 6 7 8 9

1.00000 0.90837 0.49927 0.49996 0.49998 0.49998 0.49998 0.49998 0.49998 0.49998

1.00000 0.50065 0.25046 0.12603 0.06460 0.03540 0.02335 0.02024 0.02000 0.02000

1.00000 –0.50286 –0.51904 –0.52045 –0.52199 –0.52272 –0.52302 –0.52309 –0.52310 –0.52310

–––––––––– 1.5863 0.47982 0.12444 0.61446E-01 0.29214E-01 0.12052E-01 0.31095E-02 0.23879E-03 0.14280E-05

La solución del sistema es x1 = 0.49998176 x2 = 0.19999269E-01 x3 = –0.52310085 Los cálculos también pueden realizarse usando el guión de Matlab dado en el ejemplo 4.3, con los cambios correspondientes.

Nótese que en cada iteración se requiere: a) La evaluación de n2 derivadas parciales. b) La evaluación de n funciones. c) La solución de un sistema de ecuaciones lineales de orden n. Lo que representa una inmensa cantidad de cálculos. Debido a esto, se han elaborado métodos donde los cálculos no son tan numerosos y cuya convergencia es, en general, superior a la del método de punto fijo (superlineal). En seguida se presentan dos de estos métodos, el de Newton-Raphson modificado y el método de Broyden, siendo este último también una modificación del método de NewtonRaphson.

4.4 Método de Newton-Raphson modificado El método de Newton Raphson modificado que se describe a continuación consiste en aplicar dos veces el método de Newton-Raphson univariable (para el caso de un sistema de n ecuaciones no lineales con n incógnitas, se aplicará n veces), una para cada variable. Cada vez que se hace esto, se consideran las otras variables fijas. Considérese de nuevo el sistema f1 (x, y) = 0 f2 (x, y) = 0 311

Métodos Numéricos Aplicados a la Ingeniería

Tomando los valores iniciales x0, y0, se calcula a partir del método de Newton-Raphson univariable un nuevo valor x1, así

f1 (x0, y0) x1 = x0 – –––––––––– ∂f1/∂x ∂f1/∂x evaluada en x0, y0. Hay que observar que se ha obtenido x1 a partir de f1 y los valores más recientes de x y y: x0, y0. Ahora emplearemos f2 y los valores más recientes de x y y: x1, y0 para calcular y1 f2 (x1, y 0) y1 = y0 – –––––––––– ∂f2/∂y donde ∂f2/∂y se evalúa en x1, y0. Se tiene ahora x1 y y1. Con estos valores se calcula x2, después y2, y así sucesivamente. Este método converge a menudo si x0, y0 está muy cerca de – x, – y , y requiere la evaluación de sólo 2n funciones por paso (cuatro para el caso de dos ecuaciones que se está manejando). Hay que observar que se han empleado desplazamientos sucesivos, pero los desplazamientos simultáneos también son aplicables.

,QLTWSV Resuelva el sistema f1 (x, y) = x2 – 10x + y2 + 8 = 0 f2 (x, y) = xy2 + x – 10y + 8 = 0 con el método de Newton-Raphson modificado, usando los valores iniciales x0 = 0, y0 = 0. Puede seguir los cálculos con un pizarrón electrónico. :VS\JP}U Primero se obtiene ∂f –––1 = 2x – 10 ∂x

y

Primera iteración Se evalúan f1 y ∂f1/∂x en [0, 0]T f1 (0, 0) = 8 y 312

∂f –––2 = 2xy – 10 ∂y

Sistemas de ecuaciones no lineales

∂f –––1 ∂x

x0 y0

= –10

se sustituye 8 x1 = 0 – –––– = 0.8 –10 Para el cálculo de y1 se necesita evaluar f2 y ∂f2/∂y en x1, y0 f2 (0.8,0) = 0.8(0) + 0.8 – 10(0) + 8 = 8.8 ∂f –––2 ∂x

x1 y0

= 2(0.8)(0) – 10 = –10

se sustituye 8.8 y1 = 0 – –––– = 0.88 –10

Segunda iteración f1(0.8, 0.88) = 1.4144

y

∂f –––1 ∂x

x1 y1

= –8.4

1.4144 x2 = 0.8 – –––––––– = 0.96838 –8.4 Ahora se evalúan f2 y ∂f2/∂y en (x2, y1) f2 (0.96838, 0.88) = 0.91830

y

∂f –––2 ∂y

x2 y1

= –8.29565

de donde 0.91830 y 2 = 0.88 – ––––––––––– = 0.99070 –8.59565 Los cálculos pueden continuarse y observarse con Matlab o con la Voyage 200. Matlab x0=0; y0=0; Eps=le–5; fprintf(‘ k x(k) y(k) Dist\n’) fprintf(‘ %2d %10.5f %10.5f\n’, 0, x0, y0) for k=1 : 10 f1=x0^2–10*x0+y0^2+8;

313

Métodos Numéricos Aplicados a la Ingeniería

df1x=2*x0–10; x1=x0–f1/df1x; f2=x1*y0^2+x1–10*y0+8; df2y=2*x0*y0–10; y1=y0–f2/df2y; fprintf(‘ %2d%10.5f%10.5f%10.5f\n’, k, x1, y1, Dist) Dist=((x1–x0)^2+(y1–y0)^2)^0.5; If Dist < Eps Break end x0=x1; y0=y1; end

e4_5 ( ) Prgm Define f1(x,y) = x^2–10*x+y^2+8 Define f2(x,y) =x*y^2+x–10*y+8 Define df1x(x,y) =2*x–10 Define df2y(x,y) =2*x*y–10 0¶x0 : 0¶y0 : 0¶k : 1E–5¶eps : ClrI0 Disp “k x(k) y(k) |x(k+1) –x(k)|” string(k) &” “&format(x0, “f5”)¶d d&” “&format (y0, “f5”)¶d : Disp d for k, 1, 6 x0–f1(x0,y0)/df1x(x0,y0)¶x y0–f2(x,y0)/df2y(x,y0)¶y √((x–x0)^2+(y–y0)^2)¶dist string(k)&” “&format(x, “f5”)¶d d&” “&format(y, “f5”)¶d d&” “&format(dist, “f5”)¶d: Disp d x¶x0 : y¶y0 EndFor EndPrgm

Sugerimos al lector proseguir con las iteraciones y calcular las distancias entre cada dos vectores consecutivos. Continúe hasta que x k ≈ 1 y y k ≈ 1. Compare, además, la velocidad de convergencia de este método con la velocidad de convergencia del método de Newton-Raphson y el de punto fijo para este sistema particular. En la aplicación de este método se pudo tomar f2 para evaluar x1 y f1, a fin de evaluar y1, así f2 (x 0, y 0) x1 = x0 – –––––––––– ∂f2/ ∂x f1 (x 1, y 0) y1 = y 0 – –––––––––– ∂f1/∂y 314

Sistemas de ecuaciones no lineales

Esto puede producir convergencia en alguno de los arreglos y divergencia en el otro. Es posible saber de antemano si la primera o la segunda forma convergirán* para el caso de sistemas de dos ecuaciones, pero cuando 3 ≤ n las posibilidades son varias (n!) y es imposible conocer cuál de estos arreglos tiene viabilidad de convergencia, por lo que la elección se convierte en un proceso aleatorio. Esta aleatoriedad es la mayor desventaja de este método. En general, para un sistema de n ecuaciones con n incógnitas: x1, x2,… , xn, el algoritmo toma la forma

k+1

xi

fi (x1k+1, x2k+1,… , xi–1k+1, xik,… , xnk ) = x – ––––––––––––––––––––––––––––––––––––––– ∂f –––i ∂xi (x1k+1, x2k+1,… xi–1k+1, xik,… , xnk ) k i

|

1≤i≤n

(4.18)

Algoritmo 4.3 Método de Newton-Raphson modificado Para encontrar una solución aproximada de un sistema de ecuaciones no lineales f(x) = 0, proporcionar las funciones F (I, x) y las derivadas parciales D (I, x) y los DATOS:

El número de ecuaciones N, el vector de valores iniciales x, el número máximo de iteraciones MAXIT, el criterio de convergencia EPS y M=0 para desplazamientos sucesivos o M=1 para desplazamientos simultáneos. RESULTADOS: El vector solución xn o mensaje “NO CONVERGE”.

PASO 1. PASO 2.

Hacer K =1. Mientras K ≤ MAXIT, repetir los pasos 3 a 11. PASO 3. Si M = 0 hacer* xaux = x. PASO 4. Hacer I = 1. PASO 5. Mientras I ≤ N, repetir los pasos 6 y 7. PASO 6. Si M = 0 hacer. X(I) = X(I)-F(I,x)/D(I,x). De otro modo hacer: XAUX(I) = X(I) – F(I,x)/D(I,x). PASO 7. Hacer I = I + 1. PASO 8. Si | xaux –x | >EPS ir al paso 10. De otro modo continuar. PASO 9. IMPRIMIR x y TERMINAR. PASO 10. Si M =1 hacer x = xaux. PASO 11. Hacer K = K + 1. PASO 12. IMPRIMIR “NO CONVERGE” Y TERMINAR.

* Operaciones vectoriales.

El método siguiente puede saltarse sin pérdida de continuidad.

* Peter A. Stark, Introduction to Numeral Methods, McMillan.

315

Métodos Numéricos Aplicados a la Ingeniería

4.5 Método de Broyden Ahora, considérese la generalización del método de la secante a sistemas multivariables, conocido como el método de Broyden. Según se vio en el capítulo 2, el método de la secante consiste en remplazar f  (xk) del método de Newton-Raphson xk+1 = xk – [f (xk)]–1 f (xk)

(4.19)

por el cociente f (xk) – f (xk–1) ––––––––––––––– ≈ f  (xk) xk – xk–1 obtenido con los resultados de dos iteraciones previas: xk y xk+1. Para ver la modificación o la aproximación correspondiente del método de Newton-Raphson multivariable, conviene expresarlo primero en forma congruente con la ecuación 4.19, lo que se logra sustituyendo en la ecuación vectorial (véase ecuación 4.16) x(k+1) = x(k) + h(k)

(4.20)

el vector h(k) que, como se sabe, es la solución del sistema J(k) h(k) = –f (k) Al multiplicar esta última ecuación por (J(k))–1 se obtiene h(k) = –(J(k))–1 f (k)

(4.21)

y al remplazar la ecuación 4.21 en la 4.20 se llega a x(k+1) = x(k) –(J(k))–1 f (k)

(4.22)

la ecuación correspondiente a la 4.14 para n > 1. El método de la secante para sistemas de ecuaciones no lineales consiste en sustituir J(k) en la ecuación 4.22 con una matriz A(k), cuyos componentes se obtienen con los resultados de dos iteraciones previas x(k) y x(k–1), de la siguiente manera*

[f(x(k)) – f(x(k–1)) – A(k–1) (x(k) – x(k–1))] (x(k) – x(k–1))T A(k) = A(k–1) + ––––––––––––––––––––––––––––––––––––––––––––––––––––– | x(k) – x(k–1)|2

(4.23)

[Δf (k) – A(k–1) Δx(k)] (Δx(k))T A(k) = A(k–1) + ––––––––––––––––––––––––––– | Δx(k) |2

(4.24)

o bien

* J. E. Dennis Jr. y J. J. More, “Quasi-Newton Methods, Motivation and Theory”, SIAM Review, 19, No. 1, 1977, pp. 46-89.

316

Sistemas de ecuaciones no lineales

con la notación Δf(k) = fx(k) – f(x(k–1)) Δx(k) = x(k) – x(k–1) Para la primera aplicación de la ecuación 4.24 se requieren dos vectores iniciales: x(0) y x(1), este último puede obtenerse de una aplicación del método de Newton-Raphson multivariable x(1) = x(0) – (J(0))–1 f (0), cuya J(0), a su vez, puede emplearse en 4.24, con lo cual ésta queda (Δf(1) – J(0) Δx(1)) (Δx(1))T A(1) = J(0) + –––––––––––––––––––––––––– | Δx(1) |2

(4.25)

La inversión de A(k) en cada iteración significa un esfuerzo computacional grande (del orden de n3) que, sin embargo, puede reducirse empleando la fórmula de inversión matricial de Sherman y Morrison.* Esta fórmula establece que si A es una matriz no singular y x y y son vectores, entonces A + xyT es no singular, siempre que yT A–1 x ≠ 1. Además, en este caso A–1 xyT A–1 (A + xyT)–1 = A–1 – –––––––––––– 1 + yT A–1x

(4.26)

Esta fórmula también permite calcular (A(k))–1 a partir de (A(k–1))–1, eliminando la necesidad de invertir una matriz en cada iteración. Para esto, primero se obtiene la inversa de la ecuación 4.24 (Δf (k) – A(k–1) Δx(k) (A(k))–1 = (A(k–1) + ––––––––––––––––––– (Δx(k))T )–1 | Δx(k) |2 Después se hace A = A(k–1) (Δf (k) – A(k–1) Δx(k)) x = ––––––––––––––––––– | Δx(k) |2 y y = Δx(k) con lo que la última ecuación queda (A(k))–1 = (A + xyT )–1 y sustituyendo la ecuación 4.26

* Ibid.

317

Métodos Numéricos Aplicados a la Ingeniería

[

]

Δf (k) – A(k–1) Δx(k) (A(k–1))–1 –––––––––––––––––– (Δx(k))T (A(k–1))–1 (k) 2 | Δx | (A(k))–1 = (A(k–1))–1 – ––––––––––––––––––––––––––––––––––––––––––––––––– Δf (k) – (A(k–1)) Δx(k) 1+ (Δx(k))T (A(k–1))–1 ––––––––––––––––––– | Δx(k) |2 [(A(k–1))–1 Δf(k) – Δx(k)] (Δx(k))T (A(k–1))–1 = (A(k–1))–1 – ––––––––––––––––––––––––––––––––––––––––––– | Δx(k) |2 + (Δx(k))T (A(k–1))–1 Δf (k) – | Δx(k) |2

[Δx(k) – (A(k–1))–1 Δf (k)] (Δx(k))T (A(k–1))–1 (A(k))–1 = (A(k–1))–1 + ––––––––––––––––––––––––––––––––––––––– (Δx(k))T (A(k–1))–1 Δf (k)

(4.27)

Asimismo, esta fórmula permite calcular la inversa de una matriz con sumas y multiplicaciones de matrices solamente, con lo que se reduce el esfuerzo computacional al orden n2. ,QLTWSV Use el método de Broyden para encontrar una solución aproximada del sistema f1(x, y) = x2 – 10x + y 2 + 8 = 0 f2(x, y) = xy2 + x – 10y + 8 = 0 tome como vector inicial: [x0, y0]T = [0, 0]T. Se recomienda especialmente emplear un pizarrón electrónico para llevar los cálculos, con el objeto de poner así la atención en el algoritmo y en el análisis de los resultados. :VS\JP}U En el ejemplo 4.3 se encontró una solución aproximada de este sistema, empleando el método de Newton-Raphson y el vector cero como vector inicial. Con los resultados de la primera iteración del ejemplo 4.3 J(0) =

–10 0 1 –10

(J(0))–1 =

–0.1 –0.01

0 –0.1

x(1) =

0.8 0.88

se calcula (A(1))–1 con la ecuación 4.23 (Δx(1) – (J(0))–1 Δf (1)) (Δx(1))T (J(0))–1 (A(1))–1 = (J(0))–1 + –––––––––––––––––––––––––––––––––––– (Δx(1))T (J(0))–1 Δf (1)

(A(1))–1 =

–0.1 –0.01

.8 –.1 0 –6.5856 .8 T –.1 0 – .88 –.01 –.1 –7.38048 .88 –.01 –.1 0 + –––––––––––––––––––––––––––––––––––––––––––––––––––––––– –0.1 .8 T –.1 0 –6.5856 .88 –.01 –.1 –7.38048 =

318

–0.11015 –0.01546

–0.010079 –0.105404

Sistemas de ecuaciones no lineales

Se calcula ahora x(2) empleando la ecuación x(2) = x(1) – (A(1))–1 f (1) =

.8 .88

–0.11015 –0.010079 –0.01546 –0.105404

=

0.96208 0.96720



1.4144 0.61952

Para la segunda iteración se utilizarán las ecuaciones [Δx(2) – (A(1))–1 Δf (2)] (Δx(2))T (A(1))–1 (A(2))–1 = (A(1))–1 + ––––––––––––––––––––––––––––––––––––– (Δx(2))T (A(1))–1 Δf (2) y x(3) = x(2) – (A(2))–1 f (2) Al sustituir valores se obtiene x(3) =

0.997433 0.996786

La continuación de las iteraciones da x(4) =

0.9999037 0.9998448

,

x(5) =

0.999998157 0.999996667

x(6) =

0.9999999849 0.9999999722

,

x(7) =

1 1

que es la solución del sistema, tal como se obtuvo en los ejemplos 4.2 y 4.3. Los cálculos pueden realizarse con Matlab o con la Voyage 200. Matlab x=[0 0]; Eps=le-8; fprintf(‘ k x(k) y(k)\n’) fprintf(‘ %2d %10.6f %10.6f\n’,0,x(1),x(2)) f1=x(1)^2-10*x(1)+x(2)^2+8; f2=x(1)*x(2)^2+x(1)-10*x(2)+8; dflx=2*x(1)-10; df 1y=2*x(2); df2x=x(2) ^2+1; df2y=2*x(1)*x(2)-10; J=[df 1x df 1y; df2x df2y]; F0=[f1; f2]; Jl=inv(J); dx=-Jl*f0; xl=x+dx’; for k=1:25 f1=x1(1)^2-10*x1(1)+x1(2)^2+8; f2=x1(1)*x1(2)^2+x1(1)–10*x1(2)+8;

319

Métodos Numéricos Aplicados a la Ingeniería

f=[f1; f2]; df=f-f0; Al=Jl+(dx-Jl*df)*dx’*Jl/(dx’*Jl*df); dx=-Al*f; x2=xl+dx’; Dist=norm(x2-xl); fprintf(‘ %2d %10.6f %10.6f %10.5e\n’,… k,xl(l),x1(2),Dist) xl=x2; Jl=Al; f0=f; if Dist < Eps; break; end end

e4_6 () Prgm Define f1(x)=x(l,l)^2-10*x(l,l)+x(1,2)^2+8 Define f2(x)=x(l,l)*x(1,2)^2+x(1,1)-10*x(1,2)+8 Define df1x(x)=2*x(1,1)-10 : Define df1y(x)=2*x(1,2) Define df2x(x)=x(1,2)^2+1 Define df2y(x)=2*x(1,1)*x(1,2)-10 [0,0]¶x : lE-5¶eps : 0¶k : ClrIO Disp “k x(k) y(k) |x(k+l)-x(k)| “ string(k)&format(x[l,l],”f7”)¶d d&” “&format(x[1,2],”f7”)¶d : Disp d [df1x(x),df1y(x);df2x(x),df2y(x)]¶j [f1(x);f2(x)]¶f0 : j^-l¶jl : -jl*f0¶dx : x+dxT¶xl For k,1,25 [f1(x1);f2(x1)]¶f : f-f0¶dff jl+(dx-jl*dff)*dxT*jl/norm(dxT*jl*dff)¶al -al*f¶dx : xl+dxT¶x2 : norm(x2-xl)¶dist string(k)&format(x2[1,1],”f7”)¶d d&” “&format(x2[1,2],”f7”)¶d d&” “&format(dist,”f5”)¶d : Disp d x2¶xl : al¶jl : f¶f0 if dist < Eps exit EndFor EndPrgm

A continuación se presenta el algoritmo para este método.

Algoritmo 4.4 Método de Broyden Para encontrar una solución aproximada de un sistema de ecuaciones no lineales f(x) = 0, proporcionar la matriz jacobiana ampliada con el vector de funciones (véase ecuación 4.17) y los DATOS:

Número de ecuaciones N, dos vectores de valores iniciales: x0 y x1, el número máximo de iteraciones MAXIT y el criterio de convergencia EPS. RESULTADOS: Una aproximación a una solución: xn o el mensaje “NO CONVERGE”. PASO 1. PASO 2. PASO 3.

320

Calcular AK, la matriz inversa de la matriz jacobiana evaluada en x0. Hacer K = 1. Mientras K ≤ MAXIT, repetir los pasos 4 a 10.

Sistemas de ecuaciones no lineales

PASO 4. PASO 5. PASO 6.

PASO 11.

Calcular f0 y f1, el vector de funciones evaluado en x0 y x1, respectivamente. Calcular (*)dx = x1 – x0; df = f1 – f0. Calcular AK1, la matriz que aproxima a la inversa de la matriz jacobiana (4.22), con la ecuación (4.27), usando como (A(k–1))–1 a AK. PASO 7. Calcular (*) xn = x1 –AK1 * f1. PASO 8. (*) Si | xn - x1 | ≤ EPS ir al paso 11. De otro modo continuar. PASO 9. Hacer (*) x0 = x1; x1 = xn; AK =AK1 (actualización de x0, x1 y AK). PASO 10. Hacer K = K + 1. Si K ≤ MAXIT, IMPRIMIR el vector xn y TERMINAR. De otro modo IMPRIMIR “NO CONVERGE” y TERMINAR.

* Operaciones matriciales.

4.6 Aceleración de convergencia Al igual que en los capítulos anteriores, una vez que se tienen métodos de solución funcionales se mejorarán algoritmos, o se crearán nuevos, usando dicho conocimiento. También, como ya se estudió, esto se logra a través de un proceso de generalización y abstracción. En seguida se procederá en esa dirección. En cada iteración de los algoritmos vistos se parte de un vector x(k), que ahora se llamará punto base; desde ese punto se camina en una dirección, dada por un vector, que se denominará dirección de exploración. Considérese la figura 4.10 y el punto base (x0, y0)* = (2, 2). Si desde el punto base se camina en la dirección del vector d(0) = [4, 1]T, se terminará pasando por el punto P (6, 3).

y

R Punto base (x0,y0) = (2,2)

d(0) = (4,1)

P(6,3)

Dirección de exploración x

Figura Fi 4.10 4 10 Punto P t base b y vector t de d exploración. l ió

Al avanzar en cierta dirección de exploración, a partir de un punto base, se llega a un nuevo punto que va a ser base para la siguiente iteración, pudiera ser el punto P (6, 3) o cualquier otro punto de R que dará la ecuación vectorial x(1) = x(0) + t d (0) * De aquí en adelante se usará indistintamente n-adas ordenadas (x1, x2, ..., xn) para representar un vector de n elementos y un punto en el espacio n-dimensional.

321

Métodos Numéricos Aplicados a la Ingeniería

o en forma más general

x(k+1) = x(k) + t d (k)

(4.28)

donde t es el factor de tamaño de la etapa y determina la distancia del desplazamiento en la dirección especificada. Esta ecuación se obtiene fácilmente por la suma de vectores en el plano, como se muestra en la figura 4.11.

y

R x(1) = x(0) + t d(0)

x(0)

t d(0) d(0) x

Figura 4.11 Suma de vectores en el plano.

Para aclarar esta generalización, se identifica el algoritmo de Newton-Rapshon para sistemas de dos ecuaciones no lineales con la ecuación 4.28. Primero se reescribe la ecuación 4.13 ∂f ∂f –––1 (x k+1 – x k) + –––1 (y k+1 – y k) = –f1(x k, y k) ∂x ∂y ∂f ∂f –––2 (x k+1 – x k) + –––2 (y k+1 – y k) = –f2(x k, y k) ∂x ∂y para pasarla a notación matricial como sigue ∂f1 ––– ∂x

∂f1 ––– ∂y

∂f –––2 ∂x

∂f –––2 ∂y

x k+1 – x k

f1(x k, y k) =–

322

y k+1 – y k

f2(x k, y k)

Sistemas de ecuaciones no lineales

que ahora, multiplicada por la inversa de la matriz jacobiana, llega a la forma ∂f –––1 ∂x

∂f –––1 ∂y

∂f –––2 ∂x

∂f –––2 ∂y

–1



f1(x k, y k )

x k+1 – x k

f2(x k, y k )

y k+1 – y k

=

o también

x k+1

xk =

y k+1

∂f1 ––– ∂x

∂f1 ––– ∂y

∂f –––2 ∂x

∂f –––2 ∂y

–1

f1(x k, y k )



(4.29)

yk

f2(x k, y k )

y en esta última forma, ya como ecuación vectorial, se tiene la identificación total con la ecuación 4.28, con

x(k+1) =

x k+1 y k+1

; x(k) =

xk yk

; t = –1; d(k) =

∂f –––1 ∂x

∂f –––1 ∂y

∂f –––2 ∂x

∂f –––2 ∂y

–1

f1(x k, y k ) f2(x k, y k )

Hay que observar que en el método de Newton-Rapshon, el factor de tamaño de la etapa es constante en todos los pasos iterativos del proceso y que d(k), el vector de exploración, es el resultado de multiplicar la inversa de la matriz jacobiana por el vector de funciones.

MétododeNewton-Raphsonconoptimizacióndet Con la ecuación 4.28 puede estudiarse cómo mejorar los métodos disponibles; por ejemplo, se puede ver que en el algoritmo de Newton-Raphson el tomar distintos valores de t llevaría a distintos vectores x(k+1), alguno más cercano a la raíz x que los demás (véase figura 4.12). La mejora consiste en optimizar el valor de t en el método de Newton-Rapshon. Para ejemplificar, tómense los valores de la primera iteración del ejemplo 4.3: k=0

xk = 0

yk = 0

h = 0.8

j = 0.88

de aquí d(k) = [–0.8 – 0.88]T. La ecuación 4.29 queda

x(k+1) = x k + t d1k y(k+1) = y k + t d2k

323

Métodos Numéricos Aplicados a la Ingeniería

(x1, y1) 5 (x1, y1) 4 (x1, y1)

(x0, y0)

3

con t = 2

2

con t = 1

con t = .5 1

x d 0

1

2

3

4

5

6

7

8

9

10

Figura 4.12 Influencia de t en el vector x(k+1).

Ahora se enlista una serie de valores de t y los correspondientes valores de x(k+1) y y(k+1).

t

x(k+1)

y(k+1)

–0.50

0.4

0.44

–.075

0.6

0.66

–1.00

0.8

0.88

–1.25

1.0

1.10

– 1.50

1.2

1.32

Para determinar cuál de las x(k+1) está más cerca de la raíz x, se desarrolla un nuevo criterio de convergencia o avance sustentado en la definición de residuo de una función f (x, y), dada esta última así: El residuo de una función f (x, y) en un punto (x k, y k) es el valor de f en (x k, y k). Así, en el sistema f1 (x, y) = x2 + y2 – 4 = 0 f2 (x, y) = y – x2 = 0 en el punto (1, 1), los residuos son f1 (1,1) = 12 + 12 – 4 = –2

324

Sistemas de ecuaciones no lineales

y f2 (1,1) = 1 – 12 = 0 En general, el valor de la función suma de residuos al cuadrado

zk = f12 (x k, y k) + f22 (x k, y k)

(4.30)

será indicativo de la cercanía de x(k) con la raíz x. Con la aplicación de este concepto a los distintos vectores x(k+1) obtenidos arriba, se tiene para t = –0.5 zk+1 = [0.42 – 10(0.4) + 0.442 + 8]2 + [0.4(44)2 + 0.4 – 10(0.44) + 8]2 = 35.57 Para t = –0.75 :

zk+1 = 12.93

Para t = –1.0 :

zk+1 = 2.38

Para t = –1.25 :

zk+1 = 0.67

Para t = –1.5 :

zk+1 = 4.31

De donde x(k+1) correspondiente a t = –1.25 resulta ser el más cercano a la raíz x = [1, 1]T. Los valores de t propuestos anteriormente se eligieron de manera arbitraria alrededor de –1, y aunque el valor de –1.25 es el mejor de ellos, cabe aclarar que no es el óptimo de todos los valores posibles para la primera iteración. A continuación se da una forma de seleccionar los valores de t. Se selecciona un intervalo de búsqueda [a, b]; dentro de ese intervalo se calculan valores de t de la siguiente manera b–a t = a + –––––– F

y

b–a t = b – –––––– F

donde F son los términos de la sucesión de Fibonacci F = 1, 1, 2, 3, 5, 8, 13, 21, 34, 55,… Para cada valor de t se calcula su correspondiente zk+1, y el valor mínimo zk+1 proporcionará el valor óptimo de t. Así, seleccionando el intervalo [–1.2, –1], el valor mínimo de zk+1 (= 0.4578) corresponde al valor óptimo de t (= –1.184) en la primera iteración de la solución del ejemplo 4.3. Una vez encontrado el valor óptimo de t, se toma el vector x(1) correspondiente y se calcula d(1) para proceder a optimizar el valor de t en la segunda iteración x(2) = x(1) + t d(1)

325

Métodos Numéricos Aplicados a la Ingeniería

,QLTWSV Modifique el programa del ejemplo 4.4 para incluir la optimización de t. Utilizando el programa resultante, resuelva el sistema del ejemplo 4.4. :VS\JP}U Las modificaciones consisten en: VisualBasic

t Elaborar un subprograma para encontrar el valor de t que minimice la función zk, utilizando la búsqueda de Fibonacci.

t Modificar el subprograma NEWTON del ejemplo 4.4, para utilizar ahora como criterio de convergencia o avance la función de zk y la llamada al subprograma de búsqueda de Fibonacci. En el CD PROGRAMA 4.2 se muestran los subprogramas NEWOPT y BUSCA resultantes. El programa principal y los subprogramas GAUSSJORDAN y PIVOTEO no sufren cambio alguno. Con el programa resultante y con los valores iniciales x(0) = [1 1 1]T se obtienen los siguientes resultados: VARI FUNC SUMA VARI FUNC SUMA VARI FUNC SUMA VARI FUNC SUMA VARI FUNC SUMA VARI FUNC SUMA VARI FUNC SUMA

1 1 2 2 3 3 4 4 5 5 6 6 7 7

1.00000 1.95970 .39027E+06 .83201 1.00701 .62539E+03 .53770 .11359 .74503E+01 .50380 .01153 .15745E+00 .49935 –.00190 .17748E-02 .49992 –.00019 .17817E-04 .49998 –.00002 .17825E-06

1.00000 –624.00000 TOPT= .08453 –3.77371 TOPT= .04775 –1.13613 TOPT = .03001 –.30917 TOPT = .02028 –.00767 TOPT = .02003 –.00081 TOPT = .02000 –.00008 TOPT =

La solución del sistema es X(1) = .49998116 X(2) = .19999571E-01 X(3) = -.52309883 326

1.00000 29.83985 1.833 –1.75525 –24.70092 .9000 –.64629 –2.47923 .9000 –.53527 –.24846 1.167 –.52103 .04138 .9000 –.52289 .00414 .9000 –.52308 .00041 .9000

Sistemas de ecuaciones no lineales

Obsérvense los valores de TOPT en las diferentes iteraciones. Los cálculos pueden realizarse con el siguiente guión de Matlab, que usa la función min4_7, que hace la búsqueda de Fibonacci descrita anteriormente. Las instrucciones que conforman la función deben guardarse en un archivo separado con el nombre min4_7.m y posteriormente escribir el guión que la llama, grabarlo y ejecutarlo.

Matlab function f=min4_7(X,Dx) A = 0.5; B = 2.5; NP = 0; NU = 1; Menor = 1000000000; Top = 1; for i = 1:20 NF = NU + NP; T = A + (B - A)/NF; XX=X+T*Dx’; Suma=(-3*XX(l)+cos(XX(2)*XX(3))+0.5)^2+… (-XX(1)^2+625*XX(2)^2)^2+… (-exp(-XX(l)*XX(2))-20*XX(3)-(10*pi-3)/3)^2; if Suma < Menor Menor = Suma; Topt = T; end T = B - (B - A)/NF; XX=X+T*Dx’; Suma=(-3*xx(1)+cos(XX(2)*XX(3))+0.5)^2+… (–XX(1)^2+625*XX(2)^2)^2+… (-exp(-XX(l)*XX(2))-20*XX(3)-(10*pi-3)/3)^2; if Suma < Menor Menor = Suma; Topt = T; end NP = NU; NU = NF; end f=Topt; n=3; x=[1 1 1]; Maxit=25; Eps=le-5; Dist=l; Fprintf(‘ k xl x2 x3’) fprintf(‘ Dist Topt\n’) fprintf(‘ %2d %10.5f %10.5f %10.5f\n’,0,x(1),x(2),x(3)) for k=1:Maxit J=[3 x(3)*sin(x(2)*x(3)) x(2)*sin(x(2)*x(3));… 2*x(1) -1250*x(2) 0;… -x(2)*exp(-x(l)*x(2)) -x(l)*exp(-x(l)*x(2)) 20]; b=[-3*x(1)+cos(x(2)*x(3))+0.5;… –x(1)^2+625*x(2)^2;… -exp(-x(l)*x(2))-20*x(3)-(10*pi-3)/3]; dx=inv(J)*b;t=l; t=min4_7(x,dx); xl=x+t*dx’; Dist=norm(xl-x); fprintf(‘ %2d %10.5f %10.5f %10.5f %10.5e %6.3f\n’,… k,xl(l),x1(2),x1(3),Dist,t) if Dist < Eps break end x=xl; end

327

Métodos Numéricos Aplicados a la Ingeniería

e4_7( ) Prgm @ Inicia el subprograma para búsqueda de Fibonacci local min4_7 Define min4_7(x,dx)=Prgm .5¶a : 2.5¶b : 0¶np : l¶nu : 1000¶menor : l¶topt For i,l,20 nu+np¶nf For j,l,2 If j=1 Then a+(b-a)/nf¶t Else b-(b-a)/nf¶t EndIf x+t*dxT¶xx f1(xx)^2+f2(xx)^2+f3(xx)^2:¶suma If suma1 Then For j, 1, n–1 x + h¶x:f(x)+s¶s EndFor EndIf h/2*(f(a) +2*s+f(b))¶s abs(0.682689–s)/s*100¶e format (n,“f0”)&” “&format(s,“f3”)&” Disp d EndFor EndPrgm

“&format(e,“f3”)¶d

En general, cuando se recurre a una integración numérica, no se tiene el resultado verdadero y resulta conveniente integrar con un número n de subintervalos y luego con el doble. Si los resultados no difieren considerablemente, puede aceptarse como bueno cualquiera de los dos. ,QLTWSV Elabore un subprograma para integrar una función analítica por el método de Simpson compuesto, usando sucesivamente 2, 4, 8, 16,… , 2048 subintervalos. Compruébela con la función del ejemplo 6.5. :VS\JP}U VisualBasic

Véase V el PROGRAMA 6.2 en el CD.

471

Métodos Numéricos Aplicados a la Ingeniería

En el CD encontrará el PROGRAMA 6.5 de Integración Numérica con los métodos de trapecios, el de Simpson 1/3 y el de cuadratura de Gauss (el cual se estudia en la sección 6.2). Con este programa usted puede proporcionar la función a integrar simbólicamente, los límites de integración y el número de intervalos. Podrá apreciar simultáneamente la representación gráfica de los distintos métodos y valores numéricos para diferentes secciones del área.

Análisisdelerrordetruncamientoenlaaproximacióntrapezoidal Considérese el i-ésimo trapezoide de una integración trapezoidal compuesta o sucesiva, con abscisas xi–1 y xi. La distancia entre estas abscisas es h = (b – a)/n. Sea además F (x) la primitiva del integrando f (x), es decir, dF (x)/dx = f (x). Con esto, la integral de la función f (x) en el intervalo [xi–1, xi] queda dada por xi

Ii =

 f (x) dx = F (x ) – F (x

xi–1

i

)

i–1

(6.11)

Por otro lado, la aproximación de Ii, usando el método trapezoidal es h Ti = — [ f (xi–1) + f (xi)] 2

(6.12)

En ausencia de errores de redondeo, puede definirse el error de truncamiento para este trapezoide particular así: Ei = Ti – Ii

(6.13)

Para continuar con este análisis, f (x) se expande en serie de Taylor alrededor de x = xi, para obtener f (xi–1) (xi–1 – xi)2 f (xi–1) = f (xi) + (xi–1 – xi) f  (xi) + –––––––––– f (xi) + … 2! como h = xi – xi–1 h2 f (xi–1) = f (xi) – h f  (xi) + ––– f (xi) – … 2!

(6.14)

se sustituye la ecuación 6.14 en la 6.12 h h2 Ti = — [2 f (xi) – h f  (xi) + ––– f  (xi) + … ] 2 2! h2 h3 Ti = hf (xi) – ––– f  (xi) + –––––– f  (xi) + … 2 2(2!) En forma análoga puede obtenerse h2 h3 F (xi–1) = F (xi) – h F  (xi) + ––– F  (xi) – ––– F (xi) + . . . 2! 3!

472

(6.15)

Integración y diferenciación numérica

Cuya sustitución en la ecuación 6.11 produce h2 h3 Ii = h F  (xi) – ––– F  (xi) + ––– F  (xi) – . . . 2! 3! Como f (x) = F  (x) f  (x) = F  (x) f  (x) = F  (x) · · · y al sustituir se obtiene h2 h3 Ii = h f (xi) – ––– f  (xi) + ––– f (xi) – … 2! 3!

(6.16)

Al remplazar las ecuaciones 6.15 y 6.16 en la (6.13) h2 h3 Ei = [h f (xi) – ––– f  (xi) + –––––– f  (xi) + … ] 2! 2(2!) h2 h3 – [ h f (xi) – ––– f  (xi) + ––– f  (xi) – . . . ] 2! 3! 1 1 Ei = ( — – — ) h3 f  (xi) + términos en h4, h5, etcétera. 4 6 Considerando que h es pequeña (h 1 for j=1 : n–1 x=x+h; f=sin(pi*x) ; s=f+s ; end end fa=sin(pi*a) ; fb=sin(pi*b) ; s=h/2*(fa+2*s+fb) ; I(k+1, 1) =s ; fprintf ( ´ %4d %10.7f\n’, n, s) end for m=2:5 for k=1 : 5-m+1 I(k, m)=(4ˆ(m-1)*I(k+1,m-1)–I(k,m-1))/(4ˆ(m-1)–1); end end I

477

Métodos Numéricos Aplicados a la Ingeniería

e6_8( ) Prgm Define f(x) =sin(π*x) ClrIO : newMat(5, 5)¶I 0¶a : 1¶b For k, 0, 4 2ˆk¶n: (b-a)/n¶h : a¶x:0¶s If n>1 Then For j, 1, n-1 x+h¶x : s+f(x)¶s EndFor EndIf h/2* (f(a) +2 * s + f(b))¶I [k+1,1] Disp format (n,“f0”)&” “&format(I[k + 1, 1],“f7” ) EndFor For m, 2, 5 For k, 1, 5-m+1 (4ˆ(m-1)*I[k+1,m-1]–I[k,m-1])/(4ˆ(m-1)–1)¶I[k, m] EndFor EndFor Disp I EndPrgm

El método de Romberg puede emplearse sucesivamente hasta que dos elementos consecutivos de una fila Ik(m), Ik(m+1) coincidan hasta llegar a cierta cifra decimal; esto es | Ik(m)



Ik(m+1) | ≤ EPS

Además, puede generarse otra columna y ver si (m+2) | Ik+1



Ik(m+2) | ≤ EPS

con lo que se evita la posibilidad de que dos elementos consecutivos de una fila coincidan entre sí, pero no con el valor de la integral que se está aproximando. Utilice estos criterios para resolver el ejemplo 6.8 con EPS = 10–6.

6.2 Cuadratura de Gauss En sus investigaciones, Gauss encontró que es factible disminuir el error en la integración cambiando la localización de los puntos sobre la curva de integración f (x). El investigador desarrolló su propio método, conocido como cuadratura de Gauss, el cual se describe a continuación. En la figura 6.9 se ilustra la curva de la función f (x) que se desea integrar entre los límites a y b. La figura a) muestra cómo se integraría usando un trapezoide: uniendo el punto A de coordenadas (a, f (a)) con el punto B (b, f (b)), mediante un segmento de recta p1(x). Esto forma un trapezoide de altura h = (b – a), cuya área es 478

Integración y diferenciación numérica

h T = — [ f (a) + f (b)] 2 y que podría escribirse como* T = w1 f (a) + w2 f (b)

(6.23)

h donde w1 = w2 = — . 2 El área del trapezoide calculada T, aproxima el área bajo la curva f (x). Por otro lado, en la aplicación de la cuadratura de Gauss, en lugar de tomar los dos puntos A y B en los extremos del intervalo, se escogen dos puntos interiores C y D [(véase b) de la figura 6.9)].

p1(x)

y

y C

A

D B f (x) x

x1

x0 a

a

b

x

b a) Método trapezoidal

b) Método de Gauss con dos puntos

Figura 6.9 Desarrollo del método de integración de Gauss, usando dos puntos a partir del método trapezoidal.

Se traza una línea recta por estos dos puntos, se extiende hasta los extremos del intervalo y se forma el trapezoide sombreado. Parte del trapezoide queda por encima de la curva y parte por abajo. Si se escogen adecuadamente los puntos C y D, cabe igualar las dos zonas de modo que el área del trapezoide sea igual al área bajo la curva; el cálculo del área del trapezoide resultante da la integral exacta. El método de Gauss consiste esencialmente en seleccionar los puntos C y D adecuados. La técnica se deduce a continuación. Considérese primero, sin que esto implique perder generalidad, que se desea integrar la función mostrada en la figura 6.10 entre los límites –1 y +1.** Los puntos C y D se escogen sobre la curva y se forma el trapezoide con vértices E, F, G, H.

* De hecho, cualquiera de las fórmulas de integración desarrolladas en las secciones anteriores puede escribirse en la forma b

a f ( x ) dx ≈

n

3 wi f (xi)

i=1

donde, por ejemplo, la regla de Simpson aplicada una vez tendría w1 = w3 = h/3 y w2 = 4h/3 (véase ecuación 6.4). **Si los límites son distintos, se hace un cambio de variable para pasarlos a –1 y +1.

479

Métodos Numéricos Aplicados a la Ingeniería

y

F(z)

D F

C F(z1)

21 E

z1

G F(z2)

z2

0

z

1 H

Figura 6.10 Derivación del método de integración de Gauss.

Sean las coordenadas del punto C (z1, f (z1)) y las del punto D (z2, f (z2)). Motivado por la fórmula trapezoidal (ecuación 6.3), Gauss se propuso desarrollar una fórmula del tipo A = w1 F (z1) + w2 F (z2)

(6.24)

ya que esto simplificaría relativamente el cálculo del área. El problema planteado de esta manera consiste en encontrar los valores de z1, z2, w1 y w2. Entonces hay cuatro parámetros por determinar y, por lo tanto, cuatro condiciones que se pueden imponer. Éstas se eligen de manera que el método dé resultados exactos cuando la función por integrar sea alguna de las cuatro siguientes, o combinaciones lineales de ellas. F (z) = 1 F (z) = z F (z) = z2 F (z) = z3 Los valores exactos de integrar estas cuatro funciones entre –1 y +1 son 1

I1 =



|

1

z2 –– 2

|

1

z3 dz = –– 3

|

1

|

1

1 dz = z

–1 1

I2 =

 z dz = –1 1

I3 =

z

2

–1 1

I4 =

z

3

–1

480

z4 dz = –– 4

= 1– 1 (–1) = 2 –1

–1

–1

–1

12 (–1 ) 2 = –– – –––––– = 0 2 2 13 (–1)3 = –– – –––––– = 2 3 3 14 (–1)4 = –– – –––––– = 0 4 4

Integración y diferenciación numérica

Suponiendo que una ecuación de la forma 6.24 funciona exactamente, se tendría el siguiente sistema de ecuaciones: I1 = w1 (1) + w 2(1) = 2 I2 = w 1 z 1 + w 2 z2 = 0 I3 = w 1 z 21 + w 2 z22 = 2/3 I4 = w 1 z 31 + w 2 z23 = 0 De la primera ecuación se tiene que w1 + w2 = 2; nótese también que si w1 = w2 y z1 = – z2 se satisfacen la segunda y la cuarta ecuaciones. Entonces se elige w 1 = w2 = 1 y z1 = – z2 y al sustituir en la tercera ecuación se obtiene z12 + (–z1)2 = 2/3 o bien z12 = 1/3 de donde 1 z1 = ± ––– = ± 0.57735… 3 y queda entonces z1 = –0.57735… z2 = 0.57735… Con lo que se determina la fórmula 1



F (z) dz = w1 F (z1) + w2 F (z2) = F (–0.57735…) + F (+0.57735…) (6.25) –1 que, salvo porque se tiene que calcular el valor de la función en un valor irracional de z, es tan simple como la regla trapezoidal; además, trabaja perfectamente para funciones cúbicas, mientras que la regla trapezoidal lo hace sólo para líneas rectas. 481

Métodos Numéricos Aplicados a la Ingeniería

En páginas anteriores se comentó que para integrar en un intervalo distinto de [–1, 1], se requiere un cambio de variable a fin de pasar del intervalo de integración general [a, b] a [–1, 1] y así aplicar la ecuación 6.25; por ejemplo, si se desea obtener 5

e

–x

dx

0

2 se puede cambiar a z = — x –1, de modo que si x = 0, z = –1 y si x = 5, z = 1. 5 El resto de la integral se pone en términos de la nueva variable z y se encuentra que e–x = e–5(z+1)/2 y 5 5 dx = d ( — (z + 1) ) = — dz 2 2 entonces la integral queda 5

1



e

5 e–x dx = — 2 0

–5 (z+1)/2

dz

–1

de modo que las condiciones de aplicación del método de Gauss quedan satisfechas. Al resolver, se tiene 5 — 2

1

e

–5 (z+1) /2

–1

5 dz ≈ — [w1F (–0.57735…) + w2 F (+0.57735…)] 2 5 = — [( 1 ) e–5(–0.57735 +1) /2 + ( 1 ) e–5(–0.57735 +1) /2 ] = 0.91752 2

Esto es 5

e

–x

0

dx ≈ 0.91752



El valor exacto de esta integral es 0.99326. b

En general, si se desea calcular gración con la siguiente fórmula*

a f (x) dx aplicando la ecuación 6.25, se cambia el intervalo de inte2x – (a + b) z = –––––––––––– b–a

ya que si x = a, z = – 1, y si x = b, z = 1.

* Sólo es aplicable cuando los límites de integración a y b son finitos.

482

(6.26)

Integración y diferenciación numérica

El integrando f (x) dx en términos de la nueva variable queda: b – a z + ––––––) a+b f (x) = F (–––––– 2 2 y b–a z a+b b–a dx = d ( –––––– + –––––– ) = –––––– dz 2 2 2 Por lo que la integral queda finalmente como

b

1





( ) (

)

b–a b–a a+b f ( x ) dx = –––––– F –––––– z + –––––– dz 2 2 2 a –1 b–a b–a a+b b–a a+b ≈ –––––– F –––––– (–0.57735) + –––––– + F –––––– (+ 0.57735) + –––––– 2 2 2 2 2

[(

)]

(6.27)

Una cuestión importante es que el método de Gauss puede extenderse a tres o más puntos; por ejemplo, si se escogen tres puntos no equidistantes en el segmento de la curva f (z), comprendida entre –1 y 1, se podría pasar una parábola por los tres como en la regla de Simpson, excepto que dichos puntos se escogerían de modo que minimicen o anulen el error. Similarmente es factible elegir cuatro puntos y una curva cuadrática, cinco puntos y una curva cúbica, etc. En general, el algoritmo tiene la forma 1

 F (z) dz = A ≈ w



1

F (z1) + w2 F (z2) + w3 F (z3) + … + wn F (zn)

(6.28)

–1

donde se han calculado los valores wi y zi por usar, y la tabla 6.2 presenta valores hasta para seis puntos. Con dos puntos, el método de Gauss está diseñado para obtener exactitud en polinomios cúbicos; con tres, se tendrá exactitud en polinomios de cuarto grado y así sucesivamente. Los coeficientes y las abscisas dadas en la tabla 6.2 sirven para integrar sobre todo el intervalo de interés, o bien puede dividirse el intervalo en varios subintervalos (como en los métodos compuestos de integración) y aplicar el método de Gauss a cada uno de ellos. Tabla 6.2 Coeficientes y abscisas en el método de la cuadratura de Gauss Legendre. Número de puntos

Coeficientes wi

Abscisas zi

2

w1 = w2 = 1.0

–z1 = z2 = 0.5773502692

3

0.88888… w2 = w1 = w3 = 0.55555…

–z1 = z3 = 0.7745966692 z2 = 0.0

4

w1 = w4 = 0.3478548451 w2 = w3 = 0.6521451549

–z1 = z4 = 0.8611363116 –z2 = z3 = 0.3399810436

5

w1 = w5 = 0.2369268851 w2 = w4 = 0.4786286705 w3 = 0.56888…

–z1 = z5 = 0.9061798459 –z2 = z4 = 0.5384693101 z3 = 0.0

6

w1 = w6 = 0.1713244924 w2 = w5 = 0.3607615730 w3 = w4 = 0.4679139346

–z1 = z6 = 0.9324695142 –z2 = z5 = 0.6612093865 –z3 = z4 = 0.2386191861

483

Métodos Numéricos Aplicados a la Ingeniería

,QLTWSV 1 Integre la función –––– e–x /2 en el intervalo (–0.8, 1.5) por cuadratura de Gauss. 2π 2

:VS\JP}U a) Con dos puntos. Cambio de límites de la integral con la ecuación 2x – (a + b) 2x – 0.7 z = –––––––––––– = ––––––––– b–a 2.3 Si x = –0.8, z = –1; si x = 1.5, z = 1. Con el cambio de la función en términos de la nueva variable z, queda: 1 I = –––– 2π 1 = –––– 2π

1.5

e

–x2/2

dx

0.8 1

1.5 – ( – 0.8)  [ ––––––––––––––– ]e [ 2

1.5 – ( – 0.8 ) –0.8 + 1.5 2/2 – ––––––––––––––– z + –––––––––––– 2 2

]

dz

–1

2.3 = ––––––– 2 2π

1

e

–(2.3 z + 0.7)2/8

dz

–1

De la tabla 6.2, w1 = w2 = 1.0; –z1 = z2 = 0.5773502692. Al evaluar la función del integrando en z1, z2. F (0.5773502692) = e–[ 2.3 (–.5773502692) + 0.7]2/8 = 0.5980684 F (–0.5773502692) = e–[ 2.3 (–.5773502692) + 0.7]2/8 = 0.9519115 Se aplica la ecuación 6.28 2.3 I = ––––––– [ 1 (+ 0.5980684) + 1 (0.9519115) ] = 0.711105 2 2π b) Con tres puntos. De la tabla 6.2. w1 = w3 = 0.55555…

w2 = 0.88888…

–z1 = z3 = 0.7745966692

z2 = 0.0

Al evaluar la función del integrando en z1, z2 y z3 y emplear la ecuación 6.28 se tiene: 2.3 I ≈ ––––––– [(0.55555…) ( 0.4631…) + (0.88888…) (0.9405…) 2 2π + (0.55555…) (0.8639…) ] = 0.721825

484

Integración y diferenciación numérica

,QLTWSV 2P

Halle

 sen x dx, por el método de la cuadratura de Gauss, utilizando tres puntos. 0

:VS\JP}U Se cambian variables y límites de integración con la expresión 2x – (a + b) z = –––––––––––– b–a como a = 0, b = 2 π, entonces 2x – 2 π x–2π z = ––––––––– = –––––––– 2π π se despeja x : x = π z + π, de donde dx = π dz. Se sustituye en la integral 1

2P



sen x dx =

0

 –1

1

sen (π z + π) π dz = π

 sen (π z + π) dz –1

Con el empleo de la ecuación 6.28 con n = 3 y los valores de la tabla 6.2, queda: A ≈ π {(0.55555…)[sen(π (–0.7745966692) + π)] + (0.88888…)[sen(π (0) + π)] + (0.55555…)[sen(π (0.7745966692) + π)]} Se deja al lector la comparación de este resultado con la solución analítica.

La expresión 6.28 puede ponerse en forma más general y adecuada para programarla, así





b

a

b–a n (b – a) zi + b + a f (x) dx = –––––– i 3 w F [ ––––––––––––––––– ] =1 i 2 2

(6.29)

la cual puede deducirse de los ejemplos resueltos (véase el problema 6.21). A continuación se presenta un algoritmo para la cuadratura de Gauss-Legendre.

485

Métodos Numéricos Aplicados a la Ingeniería

Algoritmo 6.3 Cuadratura de Gauss-Legendre Para aproximar el área bajo la curva de una función analítica f (x) en el intervalo [a, b], proporcionar la función a integrar F (X) y los DATOS: El número de puntos (2, 3, 4, 5 o 6) por utilizar: N, el límite inferior A y el límite superior B. RESULTADOS: El área aproximada AREA. PASO 1. PASO 2. PASO 3.

PASO 4.

PASO 5. PASO 6.

PASO 9. PASO 10. PASO 11. PASO 12.

PASO 18. PASO 19.

Hacer (NP(I), I = 1, 2,… ,5) = (2, 3, 4, 5, 6). Hacer IAUX(I), I=1, 2,… ,6) = (1, 2, 4, 6, 9, 12). Hacer (Z(I), I=1, 2,… ,11) = (0.577350269, 0.0, 0.774596669, 0.339981044, 0.861136312, 0.0, 0.538469310, 0.906179846, 0.238619186, 0.661209387, 0.932469514). Hacer (W(I), I=1, 2,… ,11) = (1.0, 0.888888888, 0.555555555, 0.652145155, 0.347854845, 0.568888888, 0.478628671, 0.236926885, 0.467913935, 0.360761573, 0.171324493). Hacer I = 1. Mientras I ≤ 5, repetir los pasos 7 y 8. PASO 7. Si N= NP(I), ir al paso 10. De otro modo continuar. PASO 8. Hacer I = I + I. IMPRIMIR “N NO ES 2, 3, 4, 5 o 6” y TERMINAR. Hacer S = 0. Hacer J = IAUX(I). Mientras J ≤ IAUX(I+1) – 1, repetir los pasos 13 a 17. PASO 13. Hacer ZAUX = (Z(J)* (B – A) + B + A) /2. PASO 14. Hacer S = S + F (ZAUX) * W (J ). PASO 15. Hacer ZAUX = (-Z(J )*(B – A) + B + A) /2. PASO 16. Hacer S = S +F (ZAUX) *W ( J ). PASO 17. Hacer J = J + 1. Hacer ÁREA = ( B –A) /2* S. IMPRIMIR AREA Y TERMINAR.

,QLTWSV Elabore un programa que integre funciones analíticas con la cuadratura de Gauss-Legendre usando 2, 3, 4 5, o 6 puntos, mismos que usted elegirá. Pruebe el programa con la función del ejemplo 6.8. :VS\JP}U La expresión general de Gauss-Legendre para integrar es VisualBasic



b

a

b–a n (b – a) zi + b + a f (x) dx ≈ –––––– i 3 w F [ ––––––––––––––––– ] =1 i 2 2

donde wi, zi, i = 1, 2,…n, están dados en la tabla 6.2. En el disco se encuentra el PROGRAMA 6.3 solicitado.

486

Integración y diferenciación numérica

6.3 Integrales múltiples Cualquiera de las técnicas de integración estudiadas en este capítulo es modificable, de modo que se puede aplicar en la aproximación de integrales dobles o triples. A continuación se ilustra el método de Simpson 1/3 en la solución de integrales dobles. P 3

a)



3 4

y sen x dx dy

y

b)

0 0

 e

x+y

dx dy

1 0

Para la integral del inciso a), se divide el intervalo [a, b] = [0,3] en n = 6 subintervalos iguales, con lo que la amplitud de cada subintervalo es igual a 3–0 h1 = –––––– = 0.5 6 y se aplica la regla de Simpson compuesta a la integral interna, manteniendo constante la variable y (nótese que se está integrando en el eje x). P 3



P

y sen x dx dy ≈

0 0

h1

[ y sen 0 + 4 y (sen 0.5 + sen 1.5 + sen 2.5) +  ––– 3

0

2y (sen 1 + sen 2) + y sen 3] dy P



 1.9907 y dy

0

Ahora se integra en el eje y. El intervalo [c, d] = [0, π] se divide en m = 8 subintervalos, por ejemplo, y queda π–0 π h2 = –––––– = — 8 8 y P

1.9907

h2

π 0 + 4 (––  y dy ≈ 1.9907 ––– [ 3 8

0



2π 4π 6π 8π 2 ––– + ––– + ––– + ––– 8 8 8 8

(

)

)

3π + ––– 5π + ––– 7π + + ––– 8 8 8

]

≈ 9.82373 entonces, se tiene

P 3

  y sen x dx dy

≈ 9.82373

0 0

Observemos que se ha efectuado una integración repetida; esto es, se ha integrado siguiendo el proceso P 3



0 0

P

y sen x dx dy =

3

 (  y sen x dx ) dy

0

0

487

Métodos Numéricos Aplicados a la Ingeniería

en la primera integración y se mantuvo constante. Es importante recordar que la integración iterada puede llevarse a cabo primero con respecto a y y después respecto a x, pero intercambiando los límites de integración. Esto se indica 3 P

  y sen x dy dx

0 0

y el resultado es el mismo (véase problema 6.30). Para la integral del inciso b), el intervalo [a, b] = [0,4] se divide en n = 4 subintervalos, de donde 4–0 h1 = –––––– = 1 4 3 –4



3 x+y

e

1

 ––3

dx dy =

1 0

[e0+y + 4 (e1+y + e3+y) + 2 e2+y + e4+y] dy

1

cuya integración por Simpson 1/3 con m = 6 en el eje y da con 3–1 1 h2 = –––––– = –– 6 3 3 4



 e

x+y

1



0

1 1 dx dy = –– ––––– [e1 + 4 (e4/3 + e2 + e6/3) + 2 (e5/3 + e7/3) + e3] + 3 3(3) 1 1 –– ––––– [e0.5+1 + 4 (e0.5+4/3 + e0.5+2 + e0.5+8/3) + 3 3(3) 2 (e0.5+5/3 + e0.5+7/3) + e0.5+3] +



1 1 –– ––––– [e1.5+1 + 4 (e1.5+4/3 + e1.5+2 + e1.5+8/3) + 3 3(3) 2 (e1.5+5/3 + e1.5+7/3) + e1.5+3] +



1 –– 3

( ––13 [e

1+1

+ 4 (e1+4/3 + e1+2 + e1+8/3) +

)

2 (e1+5/3 + e1+7/3) + e1+3] +

1 –– 3

1 (0.5) [e ( ––––––– 3

2+1

+ 4 (e2+4/3 + e2+2 + e2+8/3) +

)

2 (e2+5/3 + e2+7/3) + e2+3]

≈ 935.53 (el resultado analítico es 930.853) En general, la integración de una función f (x, y) sobre una región R del plano x – y, dada así: { (x, y): a ≤ x ≤ b, c ≤ y ≤ d } por el método de Simpson 1/3 es 488

Integración y diferenciación numérica

d a



d

f (x, y) dx dy =

c b d

h1

 ( ––– 3 c



a

  [

c

f (x, y ) dx ] dy

b

n–1

n–2

$i = 2

$i = 2

[ f (x0, y) + 4 i 3 f (xi, y ) + 2 i 3 f (xi, y ) =1 =2 + f ( xn, y ) ] ) dy

b–a donde h1 = ––––––. Desarrollando, se tiene n d b



c a

h1 f (x, y) dx dy ≈ ––– 3 2h1 n – 2 3 + –––– 3 $ii ==22

d



c

d



c

4 h n–1 f (x0, y) dy + ––––1 i 3 3 $i==12

h1 f (xi, y) dy + ––– 3

d



f (xi, y) dy

c

d



f (xn, y) dy

c

d–c e integrando nuevamente por Simpson 1/3 con h2 = –––––– m d b



f (x, y) dx dy ≈

c a

m–1 m–2 h h2 –––1 ––– [ f (x0, y0) + 4 j 3 f (x0 , yj ) + 2 j 3 f (x0 , yj ) + f (x0,ym)] =1 =2 3 3 $j = 2 $j = 2 m–1 m–2 4h1 h2 n – 1 3 3 f (xi, yj ) + f (xi, ym)] + –––– ––– i 3 [ f (x , y ) + 4 f (x , y ) + 2 i 0 i j j = 1 j=2 3 3 $i==12 $j = 2 $j = 2 m–1 m–2 2h1 h2 n – 2 3 3 f (xi, yj) + f (xi, ym)] +–––– ––– i 3 [ f (x , y ) + 4 f (x , y ) + 2 i 0 i j j = 1 j=2 3 3 $i==22 $j = 2 $j = 2 m–1 m–2 h1 h2 + ––– ––– [ f (xn, y0) + 4 j 3 f (xn, yj ) + 2 j 3 f (xn, yj ) + f (xn, ym)] =1 =2 3 3 $j = 2 $j = 2

h2 ≈ h1 ––– [ f (x0, y0) + f (x0, ym) + f (xn, y0) + f (xn, ym) + 9 m–1

m–2

$j = 2

$j = 2

+ 4 j3 ( f (x0, yj) + f (xn,yj) ) + 2 j 3 (f (x0, yj) + f (xn,yj) ) =1 =2 n–1

m–1

m–2

$i = 2

$j = 2

$j = 2

n–2

m–1

m–2

$i = 2

$j = 2

$j = 2

+ 4 i3 ( f (xi, y0) + 4 j 3 f (xi,yj) ) + 2 j 3 f (xi, yj) + f (xi,ym) ) =1 =2 =1

+ 2 i3 ( f (xi, y0) + 4 j 3 f (xi,yj) + 2 j 3 f (xi, yj) + f (xi,ym) )] =1 =2 =2

(6.30)

489

Métodos Numéricos Aplicados a la Ingeniería

Igualmente puede emplearse la cuadratura de Gauss para integrales dobles o triples. Así, en el caso general d b

  f (x ,y ) dx dy

c a

primero se cambian los intervalos de x y y a [ – 1, 1] con las fórmulas 2x – (a + b) t = ––––––––––––– b–a

2y – (c + d) u = ––––––––––––– d–c

y

y asimismo se cambian dx, dy y f (x,y) a términos de las nuevas variables t y u. Para esto, se despeja x (b – a) (b + a) x = ––––––– t + ––––––– 2 2

de donde

(b – a) dx = ––––––– dt 2

(d – c)u (c + d) y = –––––––– + ––––––– 2 2

de donde

(d – c) dy ––––––– du 2

y después y

se sustituye





d b

 c a

(b – a) (d – c) f (xy) dxdy = –––––––––––––– 4

1 1

(b – a)

(a + b) (d – c)

(c – d)

t + –––––––, ––––––– u + –––––––] dtdu   f [ ––––––– 2 2 2 2

(6.31)

–1 –1

a la cual cabe aplicar la fórmula 6.29. Para ilustrar esto, a continuación se resuelve la integral 3 4

 e

x+y

2

dx dy

0

empleando dos puntos. Primero se sustituye e integra respecto a t 3 4



(4 – 0) (3 – 1) ex+y dx dy ≈ –––––––––––––––– 4



1

0

1

≈2

[e

2(–0.57735)+4+u

1 1

 e

(2t+2)+(u+2)

] dtdu

–1 –1

+ e2(0.57735)+4+u] du

–1

Ahora se integra respecto a u 3 4

 e

x+y

1

dx dy ≈ 2 [ e2.84530–0.57735 + e2.84530+0.57735

0

+ e5.15470–0.57735 + e5.15470+0.57735] = 892.335 La Voyage 200 permite llevar a cabo integrales dobles o triples. En seguida se muestra el cálculo de la integral que nos ocupa. 490

Integración y diferenciación numérica

Para mayor facilidad y sencillez de programación, es conveniente emplear la fórmula







d b

(b – a) (d – c)

  f (x, y) dxdy ≈ –––––––––––––– 4 c a

m n b–a b+a d–c c+d 3 3 wjwi F –––––– ti + ––––––, –––––– uj + –––––– 2 2 2 2

j=1 i=1

[

]

(6.32)

donde n y m son los números de puntos por usar en los ejes x y y, respectivamente. Su aplicación a la integral del inciso a), empleando tres puntos en ambos ejes, conduce a 3 4

 e

x+y

1

0

(4 – 0) (3 – 1) 3 3 3 wjwi F (2ti + 2, uj + 2 ) dx dy ≈ ––––––––––––––– j 3 =1 i=1 4

donde w1, w2 y w3 y t1 = u1 = z1, y t2 = u2 = z2 y t3 = u3 = z3 están dados en la tabla 6.2. Al sustituir valores, se tiene 3 4

e

1

x+y

dx dy ≈ 934.39

0

La solución analítica de esta integral es 930.85. Hasta ahora sólo se han visto integraciones dobles sobre regiones R rectangulares. No obstante, también pueden resolverse integrales del tipo d b(y)

 

c

f (x, y) dx dy

a(y)

o del tipo b d(x)

a 

f (x, y) dy dx

c(x)



cuyas regiones R1 y R2 quedan dadas como se muestra en la figura 6.11 a) y b). A continuación se resuelve por el método de Simpson 1/3 la integral 2 2x



(x3 + 4y) dy dx

que representa el área sombreada de la figura 6.12. 0 x

2

491

Métodos Numéricos Aplicados a la Ingeniería

El intervalo [a, b] = [0,2] se divide en, por ejemplo, dos subintervalos y queda h1 = (2 – 0)/2 = 1; el tamaño de paso en el eje y varía con x, de acuerdo con la expresión d (x) – c (x) h2 (x) = ––––––––––––– m donde m es el número de subintervalos en que se divide el eje y.

y y a (d)

d

d (b)

b (d) d (a) h2

R1

R2

c (a) h1

c

a (c) b (c) x

a)

a a + h1

b)

Figura 6.11 Regiones no rectangulares de integración.

y

4

y=

2x

(2, 4)

y = x2 0 a

2 b

x

Figura 6.12 Región de integración delimitada por una recta y una parábola.

492

c (b) x

Integración y diferenciación numérica

Si se hace m = 2, se tiene 2 2x



0 x

2

3

(x + 4y) dy dx ≈

h2 (x)

[x  ( ––––––– 3

3

+ 4x2 + 4(x3 + 4 (x2+h2(x) ) ) + x3 + 4(2x)]) dx

0

2

2



h2 (x)

[6x +20x  ––––––– 3 3

2

+ 8x +16h2(x) ] dx

0

h1 h2 (0) = ––– ––––––– [6(0)3 + 20(0)2 + 8(0) + 16h2 (0)] 3 3

(

4h2 (0 + 1) + –––––––––––– [6(1)3 + 20(1)2 + 8(1) + 16h2 (1) ] 3 h2 (2) + ––––––– [6(2)3 + 20(2)2 + 8(2) + 16h2 (2) ] 3

)

ya que 2 ( 0 ) – 02 h2 (0) = ––––––––––– = 0, 2

2 ( 1 ) – 12 h2 (1) = –––––––––––– = 0.5 2

2 ( 2 ) – 22 h2 (2) = –––––––––––– = 0 2 2 2x



0 x

(x3 + 4y) dy dx ≈ 9.33

2

Si se divide el intervalo [a, b] en cuatro subintervalos y se mantiene m = 2, se tiene h1 = (2 – 0)/4 = 0.5. Entonces, la integración queda como sigue:

2 2x



0 x2

0.5 4h2 (0.5) (x3 + 4y)dy dx ≈ –––– –––––––––– [6(0.5)2 + 20(0.5)3 + 8(0.5) + 16h2 (0.5)] 3 3

(

2h2 (1) + –––––––– [6(1)3 + 20(1)2 + 8(1) + 16h2 (1) ] 3 4h2 (1.5) + –––––––––– [6(1.5)3 + 20(1.5)2 + 8(1.5) + 16h2 (1.5) ] 3

)

ya que 2 (0.5) – 0.52 h2(0) = 0, h2 (2) = 0, h2 (0.5) = ––––––––––––––– = 0.375 2

493

Métodos Numéricos Aplicados a la Ingeniería

y 2 (1.5) – 1.52 h2 (1) = 0.5, h2 ( 1.5 ) = ––––––––––––––– = 0.375 2 Al sustituir valores, se obtiene 2 2x



0 x

(x3 + 4y)dy dx ≈ 10.583

2

En seguida se muestra el cálculo de esta integral con la Voyage 200.

Algoritmo 6.4 Integración doble por Simpson 1/3 b d(x)

Para aproximar

a 

f (x, y) dy dx, proporcionar las funciones C(X), D(X) y F (X, Y) y los

c(x)

DATOS:

El número N de subintervalos a usar en el eje x, el número M de subintervalos por emplear en el eje y, el límite inferior A y el límite superior B. RESULTADOS: El área aproximada AREA. PASO 1. PASO 2.

Hacer H1 = (B – A)/N. Hacer S = (F (A,C(A)) + F (A,D(A)))*(D(A) – C(A))/M. + (F(B,C(B)) + F (B,D(B))) *(D(B) – C(B))/M. PASO 3. Hacer S1 = 0; S2 = 0; Y1 = C(A); Y2 = C(B). PASO 4. Hacer J = 1. PASO 5. Mientras J ≤ M – 1, repetir los pasos 6 a 9. PASO 6. Hacer H2A = (D(A) – C(A))/M; Y1 = Y1 + H2A; S1 = S1 + H2A*F (A,Y1); H2B = (D(B)–C(B))/M; Y2 = Y2 + H2B; S1 = S1 + H2B*F (B,Y2). PASO 7. SI J = M –1, ir al paso 9. De otro modo continuar. PASO 8. Hacer Y1 = Y1 + H2A; S2 = S2 + H2A*F (A,Y1); Y2 = Y2 + H2B;S2 =S2 + H2B*F (B,Y2). PASO 9. Hacer J = J + 2. PASO 10. Hacer S3 = 0; S6 = 0; S7 = 0; X = A. PASO 11. Hacer I=1. PASO 12 Mientras I ≤ N –1, repetir los pasos 13 a 16. PASO 13. Hacer X = X + H1; H2 = (D(X) – C(X))/M; S3 = S3 + H2*F (X,C(X)); S6 = S6 + H2*F (X,D(X)). PASO 14. SI I = N–1, ir al paso 16. De otro modo continuar.

494

Integración y diferenciación numérica

PASO 17. PASO 18. PASO 19.

PASO 32. PASO 33.

PASO 15. Hacer X = X + H1; H2 = (D(X) – C(X))/M; S7 = S7 + 2*(F (X,C(X)) + F (X,D(X))). PASO 16. Hacer I = I + 2. Hacer S4 = 0;S5 = 0; S8 = 0; S9 = 0; X = A – H1. Hacer I = 1. Mientras I ≤ N – 1, repetir los pasos 20 a 31. PASO 20. Hacer X = X + 2*H1; Y1 = C(X); Y2 = C(X + H1); HA = (D(X) – C(X))/M; HB = (D(X+H1) – C(X + H1))/M. PASO 21. Hacer J = 1. PASO 22. Mientras J ≤ M – 1, repetir los pasos 23 a 30. PASO 23. Hacer Y1 = Y1 + HA; S4 = S4 * HA*F (X,Y1). PASO 24. SI I = N–1, ir al paso 26. De otro modo continuar. PASO 25. Hacer Y2 = Y2 + HB; S8 = S8 + HB*F (X + H1,Y2). PASO 26. SI J = M – 1, ir al paso 30. De otro modo continuar. PASO 27. Hacer Y1 = Y1 + HA; S5 = S5 + HA*F (X,Y1). PASO 28. SI I = N – 1, ir al paso 30. De otro modo continuar. PASO 29. Hacer Y2 = Y2 + HB; S9 = S9+ HA*F (X + H1,Y2). PASO 30. Hacer J = J + 2. PASO 31. Hacer I = 1 + 2. Hacer AREA=H1/9 * (S + 4*(S1 + S3 + S6 + S9) + 2*(S2 + S7) + 16 * S4 + 8*(S5 + S8)). IMPRIMIR AREA y TERMINAR.

6.4 Diferenciación numérica En la introducción del capítulo 5 se comentó que, cuando se va a practicar una operación en una función tabulada, el camino es aproximar la tabla por alguna función y efectuar la operación en la función aproximante. Así se procedió en la integración numérica y así se procederá en la diferenciación numérica; esto es, se aproximará la función tabulada f (x) y se diferenciará la aproximación pn (x). Si la aproximación es polinomial y con el criterio de ajuste exacto,* la diferenciación numérica consiste simplemente en diferenciar la fórmula del polinomio interpolante que se utilizó. Sea en general f (x) = pn(x) + Rn (x) y la aproximación de la primera derivada queda entonces df (x) dpn(x) ––––––– ≈ ––––––– dx dx o en general dnf (x) dnpn(x) ––––––– ≈ –––––––– dxn dxn

(6.33)

* Si la aproximación es por mínimos cuadrados, la diferenciación numérica consistirá en diferenciar el polinomio que mejor ajuste la información tabulada.

495

Métodos Numéricos Aplicados a la Ingeniería

Al diferenciar la fórmula fundamental de Newton dada arriba, se tiene dn pn( x ) dn Rn ( x ) dn f ( x ) ––––––––– = –––––––––– + ––––––––––– dxn dxn dxn

(6.34)

dn Rn ( x ) dn f ( x ) dn pn ( x ) donde –––––––––– es el error que se comete al aproximar –––––––––– por ––––––––––. dxn dxn dxn Si las abscisas dadas x0, x1,… , xn están espaciadas regularmente por intervalos de longitud h, entonces pn (x) puede escribirse en términos de diferencias finitas. Al sustituir f [x0], f [x0, x1], etc., en la ecuación 5.29 en términos de diferencias finitas (véase ecuación 5.35), se obtiene Δ f [ x0 ] Δ2 f [ x0 ] pn ( x ) = f [x0] + (x – x0) –––––––––– + (x – x0) (x – x1) –––––––––– +… h 2! h2 Δn f [ x0 ] + (x – x0) (x – x1) … (x – xn–1) –––––––––– n! hn y se tendrá Δ f [ x0 ] Δ2 f [ x0 ] d (x – x0) ––––––––– d (x – x0) (x – x1) –––––––––– d f (x) dpn (x) df [x0] h 2! h2 ––––––– ≈ –––––––– = –––––––– + –––––––––––––––––––––– + –––––––––––––––––––––––––––––––– dx dx dx dx dx

[

] [

]

Δn f [ x0 ] d (x – x0) (x – x1) … (x – xn–1) ––––––––––– n! hn + … + –––––––––––––––––––––––––––––––––––––––––––––– dx

[

]

(6.35)

Se desarrollan algunos de los primeros términos y se tiene d f (x) dpn (x) Δ f [x0] Δ2 f [x0] ––––––– ≈ –––––––– = ––––––– + (2x – x0 – x1) –––––––– dx dx h 2! h2 Δ3 f [ x0 ] + [ 3x2 – 2( x0 + x1 + x2) x + ( x0 x1 + x0 x2+ x1 x2 )] –––––––––– 3! h3

(6.36)

Selecciónese ahora un valor particular para n; por ejemplo, tómese n = 1, es decir, que se aproxime la función tabulada f (x) por una línea recta. Entonces Δ f [x0] pn (x) = p1 (x) = f [x0] + (x – x0 ) –––––––– h y la primera derivada de f (x) queda aproximada por d f (x) d p1 (x) Δ f [x0] f (x1) – f [x0] ––––––– ≈ –––––––– = –––––––– = –––––––––––––– = f [x0 , x1] dx dx h x 1 – x0 496

Integración y diferenciación numérica

d f (x) f (x1) – f (x0) ––––––– ≈ –––––––––––––– dx h

(6.37)

y, como es de esperarse: d2f (x) d2 p1 (x) ––––––– ≈ ––––––––– =0 dx2 dx2 y así cualquier otra derivada superior de f (x) quedará aproximada por cero. Geométricamente, esto equivale a tomar como primera derivada la pendiente de la recta que une los dos puntos de la curva f (x) de abscisas x0 y x1 (véase figura 6.13). La primera derivada de f (x) en todo el intervalo [x0, x1] queda aproximada por el valor constante ( f (x1) – ( f (x0))/h, el cual es muy diferente del valor verdadero df (x)/dx, en general.

Figura 6.13 Aproximación lineal de la primera derivada.

Si ahora n = 2; es decir, aproximando la función tabulada f (x) por un polinomio de segundo grado, se tiene Δf [x0] Δ2f [x0] pn (x) ≈ p2 (x) = f [x0] + (x – x0) ––––––– + (x – x0) (x – x1) –––––––– h 2! h2 y la primera derivada de f (x) queda aproximada por df (x) dp2 (x) Δ f [x0] Δ2 f [x0] ––––––– ≈ ––––––– = –––––––– + (2x – x0 – x1) ––––––––– dx dx h 2! h2 497

Métodos Numéricos Aplicados a la Ingeniería

Se desarrollan las diferencias hacia adelante y se tiene

df (x) 2x – x0 – x1– 2h 2x0 – 4x + 2x1 + 2h 2x – x0 – x1 –––––– ≈ ––––––––––––––––– f (x0) + –––––––––––––––––––– f (x1) + –––––––––––– f (x2) 2 2 dx 2h 2h 2h2

(

)

(

)

(

)

(6.38)

La segunda derivada puede calcularse derivando una vez más con respecto a x, o sea d 2f (x) d 2p2 (x) Δ2 f [x0] ––––––– ≈ –––––––– = ––––––––– = 2f [x0, x1, x2] dx2 dx2 h2

d 2f (x) 1 2 1 –––––––– ≈ ––– f (x0) – –––2 f (x1) + –––2 f (x2) 2 2 dx h h h

(6.39)

De igual modo se obtienen las distintas derivadas para n > 2. dnf (x) dnpn (x) Como se dijo al inicio de esta sección, el error cometido al aproximar ––––––– por –––––––– dxn dxn dnRn (x) está dado por –––––––––, donde a su vez Rn (x) está dado por la la ecuación 5.38 dxn

(

n

)

Rn (x) = i0 (x – xi) f [x, x0, x1,… , xn] =0 n

que quedaría más compacta si se denota por ψ (x) a i0 (x –xi ), es decir =0 Rn(x) = ψ (x) f [x, x0, x1,… , xn]

(6.40)

En este punto es importante recordar que hay una estrecha relación entre las diferencias divididas y las derivadas. En general, esta relación está dada así: dn f ( ξ ) f [x, x0, x1,… , xn] = –––––––––, con ξ ε (mín xi, máx xi) 0 ≤ i ≤ n n! dxn esto es, ξ es un valor de x desconocido, del cual sólo se sabe que está entre los valores menor y mayor de los argumentos. Se sustituye en la ecuación 6.40 dn+1 f ( ξ1 (x) ) Rn (x) = ψ (x) –––––––––––––––, con ξ1 ( x ) ε ( mín x, xi, máx x, xi) 0 ≤ i ≤ n (n + 1)! dxn+1 donde se ha escrito ξ1 como una función de x, ya que su valor depende del argumento x donde se desee evaluar la derivada. Su primera derivada es:

498

Integración y diferenciación numérica

dn+1f (ξ1 (x)) d –––––––––––––– (n+1)! dxn+1 d n+1 f ( ξ1 (x) ) dψ (x) ––––––––––––––––––– + –––––––––––––––– –––––––– dx (n+1)! dx n+1 dx

(

dRn(x) ––––––– = ψ (x) dx

)

(6.41)

Puede encontrarse que* dn+1f ( ξ1 (x) ) d ––––––––––––––– (n+1)! dxn+1 d n+2 f ( ξ2 (x) ) –––––––––––––––––––– = –––––––––––––––– dx (n + 2)! dx n+2

(

)

(6.42)

con ξ1 (x), ξ2 (x) ε (mín x, xi, máx x, xi) 0 ≤ i ≤ n, donde ξ2 es una función de x distinta de ξ1. Por esto, la ecuación 6.41 puede reescribirse como dRn(x) dn+2f (ξ2 (x) ) dn+1f (ξ1(x) ) dψ (x) ––––––– = ψ (x) –––––––––––––– + –––––––––––––– –––––––– dx (n + 2)! dxn+2 (n + 1)! dxn+1 dx

(6.43)

con ξ1 (x), ξ2 (x) ε (mín x, xi, máx x, xi) 0 ≤ i ≤ n. En particular, para x = xi [cuando x es una de las abscisas de la tabla de f (x)] el error de truncamiento dado por la ecuación 6.43 se simplifica, ya que ψ (xi) = (xi – x0) (xi – x1) … (xi – xi) … (xi – xn) = 0. Entonces dRn(x) dn+1f ( ξ1 (xi)) dψ (x) ––––––– = ––––––––––––––– –––––––– dx xi (n + 1)! dx n+1 dx xi

|

|

dn+1f (ξ1 (xi) ) n 0 (x – xj) = ––––––––––––––– (n + 1)! dx n+1 jj =≠ 0i i

ξ1 (x1) ε (mín xi, máx xi) 0 ≤ i ≤ n

(6.44)

En los ejercicios (al final de este capítulo) se demuestra que n dψ (x) ––––––– = j0 (xi – xj) =0 dx xi j≠i

|

Por ejemplo, la ecuación 6.38 puede escribirse en términos del error como sigue df (x) 2x0 – x0 – x1 – 2h 2x0 – 4x0 + 2x1 + 2h ––––––– = –––––––––––––––––– f (x0) + –––––––––––––––––––– 2 dx x0 2h 2h2

| (

2x0 – x0 –x1 + –––––––––––– 2h2

(

)

)

(

) f (x ) 1

d 3f (x) f (x2) + (x0 – x1) (x0 – x2) –––––––3 3! dx ξ

|

o df (x) 1 h2 d3 f ( x ) ––––––– = ––– [–3f (x0) + 4f (x1) – f (x2)] + ––– ––––––––– dx x0 2h 3 dx3 ξ

|

|

(6.45)

con ξ ε (mín xi, máx xi,), i = 0, 1, 2. * M. S. Pizer, Numerical Computing and Mathematical Analysis, S.R.A., 1975, pp. 315-317.

499

Métodos Numéricos Aplicados a la Ingeniería

En la misma forma df (x) 1 h2 d 3 f (x) –––––– = ––– [f (x2) – f (x0)] + ––– ––––––––– dx x1 2h 6 dx3 ξ

|

|

(6.46)

con ξ ε ( mín xi, max xi), i = 0, 1, 2. Y df (x) 1 h2 d 3 f (x) –––––– = ––– [ f (x0) – 4 f (x1) + 3f (x2)] + ––– ––––––––– dx x2 2h 3 dx3 ξ

|

|

(6.47)

con ξ ε ( mín xi, máx xi), i = 0, 1, 2. Debemos observar que el término del error para la derivada en x1 es la mitad del término del error para la derivada en x0 y x2. Esto es así porque en la primera derivada en x1 se utilizan valores de la función a ambos lados de x1. En la diferenciación numérica, el error de truncamiento puede ser muy grande. Si por ejemplo f (n+2)(x) / ( n + 2)! y f (n+1)(x) / (n+1)! son de la misma magnitud, lo cual es común, el primer término de la ecuación 6.43 tiene aproximadamente la misma magnitud que el error de interpolación;* entonces puede decirse que el error de la aproximación de la derivada es, por lo general, mayor que el error de interpolación en dn+1 f (ξ1 (x)) –––––––––––––– (n + 1)! dxn+1

dψ ( x ) ––––––––– dx

que es el segundo término de la ecuación 6.43. Además, cuando x = xi, la ecuación 6.44 muestra que el error en la derivada en xi tiene la misma forma que el error de interpolación (véase nota a pie de página), salvo que los polinomios factores sean distintos. Se ha discutido sólo el error de la aproximación de la primera derivada; pero todo lo visto también es aplicable a derivadas de mayor orden.

,QLTWSV La ecuación de Van der Walls para un gmol de CO2 es a (P + –––) (v – b) = RT v2 donde a = 3.6  10–6 atm cm 6 /gmol2 b = 42.8 cm3 / gmol R = 82.1 atm cm3 / (gmol K)

n f (n+1) (ξ) * Recuérdese que el error de interpolación es 0 (x – xi) –––––––––– donde ξ depende de x de un modo desconocido. i=1 (n + 1)!

500

Integración y diferenciación numérica

Si T = 350 K, se obtiene la siguiente tabla de valores: Puntos

0

1

2

3

P (atm)

13.782

12.577

11.565

10.704

2000

2200

2400

2600

3

v (cm )

Calcule ∂P/∂v cuando v = 2300 cm3 y compárelo con el valor de la derivada analítica. :VS\JP}U Al usar la ecuación 6.38 con los puntos (0), (1) y (2), se obtiene: ∂P 2v – v0 – v1 – 2h 2v0 – 4v + 2v1 +2h 2v – v0 – v1 ––– = ––––––––––––––––– P0 + ––––––––––––––––––– P1 + –––––––––––– P2; con h = 200 2 2 ∂v 2h 2h 2 h2 2(2300) – 2000 – 2200 – 2(200) = ––––––––––––––––––––––––––––––––––– 13.782 2(200)2 2(2000) – 4(2300) + 2(2200) + 2(200) + –––––––––––––––––––––––––––––––––––––––––– 12.577 2(200)2 2(2300) – 2000 – 2200 + –––––––––––––––––––––––––– 11.565 = –0.00506 2(200)2 La derivada analítica es ∂P – RT 2a –82.1 (350) 2(3.6  10–6) –––– = ––––––––2 + ––– = ––––––––––––––––2 + ––––––––––––––– = –0.005048 3 ∂v (v – b) v (2300 – 42.8) 23003 Aquí cabe observar que la aproximación es muy buena (error relativo = –0.24%) pese a que se aplicó un polinomio de segundo grado para aproximar la ecuación de Van der Walls que, como se sabe, es un polinomio de tercer grado en v.

,QLTWSV Obtenga la primera derivada del polinomio general de Lagrange (ecuaciones 5.22 y 5.23). :VS\JP}U n n x–x De la ecuación pn (x) = i 3 f (x ) ––––––j 0 i =0 j=0 j ≠ i xi – xj

Se deriva con respecto a x

501

Métodos Numéricos Aplicados a la Ingeniería

n dpn ( x ) d ––––––––– = i3 f (xi) ––– =0 dx dx

[

n x – xj Π –––––– j=0 j ≠ i x i – xj

]

Se hace n x–x y = jΠ ––––––j =0 j ≠ i x i – xj

y se toman logaritmos en ambos lados, con lo que se tiene n n x–x x – xj ln y = ln jΠ –––––– = j 3 ln ––––––j =0 =0 xi – xj j ≠ i xi – xj j≠i

ya que el logaritmo de un producto es igual a la suma de logaritmos de los factores. Ambos miembros se derivan con respecto a x n n d 1 dy d x – xj 1 ––– (ln y) = — ––– = j 3 ––– ln –––––– = –––––– 3 =0 j=0 dx y dx dx x – x x – xj j≠i j≠i i j

(

)

se despeja dy/dx dy ––– dx

n 1 = y j3 –––––– =0 x – xj j≠i

Se sustituye y en lado derecho n dy x – xj n 1 ––– = jΠ –––––– 3 –––––– =0 j=0 dx x – x x – xj j≠i i j j≠i

y finalmente n dpn ( x ) ––––––––– = i3 f (xi) =0 dx

[

n x – xj n 1 Π –––––– j 3 –––––– j=0 =0 j ≠ i xi – xj j ≠ i x – xj

]

Hay que observar que esta ecuación no sirve para evaluar la derivada en una de las abscisas de la tabla, ya que significaría dividir entre cero en la sumatoria dentro del paréntesis. Sin embargo, manipulando algebraicamente el lado derecho, puede escribirse en la forma n dpn ( x ) f ( xi ) ––––––––– = i3 –––––––––––––– n =0 dx Π ( xi – xj ) j=0 j≠i

La cual ya no tiene la limitante mencionada.

502

n

Σ

k=0 k≠i

n

Π

j ≠ k, i

(x – xj)

(6.48)

Integración y diferenciación numérica

,QLTWSV k ▸ Productos, la concentración del reactante A es una función de En una reacción química A + B ––– la presión P y la temperatura T. La siguiente tabla presenta la concentración de A en gmol/L como función de estas dos variables.

P (kg/cm2) 273

T (K) 300 325

360

1

0.99

0.97

0.96

0.93

2

0.88

0.82

0.79

0.77

8

0.62

0.51

0.48

0.45

15

0.56

0.49

0.46

0.42

20

0.52

0.44

0.41

0.37

Calcule la variación de la concentración de A con la temperatura a P = 8 kg/cm2 y T = 300 K, usando un polinomio de segundo grado. :VS\JP}U ∂C Lo que se busca es en sí ––––A que se puede evaluar con la ecuación 6.48. ∂T T = 300, P = 8

|

Al desarrollarla para n = 2 se tiene dp2 ( x ) (2x – x1 – x2) f (x0) (2x – x0 – x2) f (x1) (2x – x0 – x1) f (x2) ––––––––– = –––––––––––––––––––– + –––––––––––––––––––– + ––––––––––––––––––– dx (x0 – x1)(x0 – x2) (x1 – x0)(x1 – x2) (x2 – x0)(x2 –x1) donde f (x) representa a CA y x a T; de tal modo que sustituyendo los tres puntos enmarcados de la tabla queda dp2 ( x ) ∂CA ––––––––– = –––– dx ∂T

| T=300

(2(300) – 300 – 325)(0.62) (2(300) – 273–325)(0.51) = –––––––––––––––––––––––––––––– + –––––––––––––––––––––––––––– (273 – 300)(273 – 325) (300 – 273)(300 – 325)

P=8 (2(300) – 273–300)(0.48) gmol + ––––––––––––––––––––––––––––– = – 0.0026 ––––––– (325 – 273)(325 – 300) LK

503

Métodos Numéricos Aplicados a la Ingeniería

,QLTWSV Obtenga la primera y segunda derivadas evaluadas en x = 1 para la siguiente función tabulada: Puntos

0

1

2

3

4

x

–1

0

2

5

10

f(x)

11

3

23

143

583

:VS\JP}U Al construir la tabla de diferencias divididas se tiene Diferencias divididas Puntos

x

f(x) Primeras

0

–1

11

1

0

3

Segundas

–8 6 10 2

2

23

6 40

3

5

143

6 88

4

10

583

Observemos que un polinomio de segundo grado puede representar exactamente la función (ya que la segunda diferencia dividida es constante). El polinomio de Newton de segundo grado en diferencias divididas es p2(x) = f [x0] + (x – x0) f [x0, x1] + (x – x0) (x – x1) f [x0, x1, x2] que al derivarse da dp2 ( x ) ––––––––– = f [x0, x1] + (2x – x0 – x1) f [x0, x1, x2] dx y al derivarlo nuevamente se obtiene d2p2 ( x ) –––––––––– = 2 f [x0, x1, x2] dx2 con la sustitución de valores finalmente resulta dp2 ( 1 ) d2p2 ( 1 ) ––––––––– = –8 + (2(1) – (–1) – 0)(6) = 10 y –––––––––– = 12 dx dx2 504

Integración y diferenciación numérica

Algoritmo 6.5 Derivación con polinomios de Lagrange Para obtener una aproximación a la primera derivada de una función tabular f (x) en un punto x, proporcionar los DATOS:

El grado N del polinomio de Lagrange por usar, las (N + 1) parejas de valores (X(I), FX(I), I = 0, 1, 2, … , N) y el punto XD en que se desea la evaluación. RESULTADOS: Aproximación a la primera derivada en XD:DP. PASO 1. PASO 2. PASO 3.

Hacer DP = 0. Hacer I = 0. Mientras I ≤ N, repetir los pasos 4 a 21. PASO 4. Hacer P = 1. PASO 5. Hacer J = 0. PASO 6. Mientras J ≤ N, repetir los pasos 7 a 8. PASO 7. SI I ≠ J Hacer P = P * (X(I)–X(J)). PASO 8. Hacer J = J + 1. PASO 9. Hacer S = 0. PASO 10. Hacer K = 0. PASO 11. Mientras K ≤ N, repetir los pasos 12 a 19. PASO 12. SI I ≤ K, realizar los pasos 13 a 18. PASO 13. Hacer P1 = 1. PASO 14. Hacer J = 0. PASO 15. Mientras J ≤ N, repetir los pasos 16 a 17. PASO 16. SI J ≠ I y J ≠ K. Hacer P1 = P1 * (XD – X(J)). PASO 17. Hacer J = J + 1. PASO 18. Hacer S = S + P1. PASO 19. Hacer K = K + 1. PASO 20. Hacer DP = DP + FX(I)/P* S. PASO 21. Hacer I = I +1. PASO 22. IMPRIMIR DP Y TERMINAR.

Ejercicios 6.1

Después de haber analizado durante varios años una gran cantidad de datos empíricos, el astrónomo alemán Johannes Kepler (1571-1630) formuló tres leyes que describen el movimiento de los planetas alrededor del Sol. Estas leyes pueden enunciarse como sigue: Primera Ley: La órbita de cada planeta es una elipse que tiene al Sol en uno de sus focos. Segunda Ley: El vector que va del centro del Sol al centro del planeta en movimiento describe áreas iguales en tiempos iguales. Tercera Ley: Si el tiempo que requiere un planeta para recorrer una vez su órbita elíptica es T y el eje mayor de tal elipse es 2a, entonces T2 = ka2 para una constante k. Estas leyes ponen de relieve a la matemática de la elipse; por ejemplo, la medición de la longitud de una elipse (la trayectoria de un planeta que gira alrededor del Sol). Este cálculo no resulta tan trivial como pudiera pensarse y tiene que recurrirse a los métodos numéricos para obtener una aproximación. Por ejemplo, si se tiene que r (θ ) = a sen θ i + b cos θ j

505

Métodos Numéricos Aplicados a la Ingeniería

donde r es el vector de posición de un punto de la elipse y θ es el ángulo descrito por dicho punto; a es el semieje mayor y b es el semieje menor de la elipse. El cálculo de la longitud de arco (s) de una curva se sabe Q que está dado por s= r· rdt



0

Como r(θ)= a cos θ i – b sen θ j r· r = a2 cos2 θ + b2 sen2 θ sustituyendo en la integral a cos2 t por 1 – sen2 t: Q

Q

s=



a2 cos2 t + b2 sen2 t dt =



a2 – (a2– b2) sen2 t dt



0 Q

=

a2 – a2 sen2 t + b2 sen2 t dt

0

0

Q



s=

0

a

Q

a2 – (a2– b2) sen2 t ––––––––––––––––––––– dt = a2

a

0

(a2– b2) 1 – –––––––– sen2 t dt a2

Q

=



a 1 – k2 sen2 t dt

0

donde k es la excentricidad y sus valores van de cero a 1. Si la excentricidad de la órbita de Mercurio es 0.206, ¿cuál sería la longitud del recorrido de una órbita completa de este planeta? :VS\JP}U Se sabe que el semieje mayor de la trayectoria de Mercurio es a = 0.387 UA (1 UA = 150 000 000 km), de modo que Q

s=



a

1 – k2 sen2 t dt

0 P/2

s=4



0. 387

1 – 0.206 2 sen2 t dt

0

Utilizando el método de Simpson 1/3 con 10 subintervalos, se obtiene: s = 2.40558697 UA. 6.2

En el interior de un cilindro de aluminio (véase figura 6.14) se tiene una resistencia eléctrica que genera una temperatura T1 = 1200 ºF. En la superficie exterior del cilindro circula un fluido que mantiene su temperatura a T2 = 300 ºF. Calcule la cantidad de calor transferido al fluido por unidad de tiempo. Datos adicionales R1 = 2 pulg, R2 = 12 pulg, L = 12 pulg. La conductividad térmica del aluminio varía con la temperatura según la tabla siguiente:

506

k BTU/ ( hr pie2 (°F/pie) )

165

150

130

108

T °F

1200

900

600

300

Integración y diferenciación numérica

R1 R2

300 °F fluido

L

1200 °F

300 °F fluido

Figura 6.14 Representación de cilindro de aluminio.

:VS\JP}U Se asume un régimen permanente y se modela el proceso con la ecuación de Fourier (véase figura 6.14). dT q = –k A ––– dr donde q = calor transferido al fluido en BTU/hr. BTU k = conductividad térmica del aluminio en –––––––––––––––. hr pie2 (°F/pie ) A = área de transferencia de calor en pie2. T = temperatura en ºF. r = distancia radial a partir del centro del cilindro en pies. Al separar variables, integrar y aplicar límites, la ecuación de Fourier queda: R2



R1

dr 1 ––– = – — A q

T2

 k dT

T1

Al sustituir el área de transmisión de calor A en función de la distancia radial r: A = 2πrL e integrar analíticamente el lado izquierdo, se tiene 1 R2 1 –––––– ln (–––) = – — q 2πL R1

T2



k dT

T1

507

Métodos Numéricos Aplicados a la Ingeniería

Sin embargo, debe integrarse numéricamente el lado derecho, ya que k = f (T) está dada en forma discreta (tabulada). Así que, despejando q, se tiene T2



k dT

T1

q = – ––––––––––––––––– 1 R ––––– ln –––2 2π L R1

( )

y al integrar con la regla trapezoidal el numerador y sustituir valores, se obtiene – 124950 q = – ––––––––––––––––––––––– = 438163.7 BTU/hr 1 12 –––––––––––– ln –––– 2π (12/12) 2

( )

6.3

Evalúe el coeficiente de fugacidad φ del butano a 40 atm y 200 ºC utilizando la cuadratura de Gauss-Legendre con dos puntos. El coeficiente de fugacidad está dado por la ecuación P

ln φ =

z–1 –––––– dP P

 0

y la relación de la presión con el factor de compresibilidad z se determinó experimentalmente y se presenta en la tabla siguiente:

Puntos

1

2

3

4

5

6

7

8

P (atm)

5

8

15

19

25

30

35

40

z

0.937

0.887

0.832

0.800

0.781

0.754

0.729

0.697

z–1 Se sabe también que LÓM –––––– = –0.006 atm–1 Pö0 P :VS\JP}U La expresión de Gauss-Legendre para dos puntos queda*



b

a

b–a f ( t ) dt ≈ –––––– 2

x1 ( b – a ) + b + a x2 (b – a) + b + a w1 f ––––––––––––––––––– + w 2 f ( –––––––––––––––––– 2 2

[ (

)

donde w1 = w2 = 1; x1 = 0.5773502692; x2 = – 0.5773502692. Con el cálculo de los argumentos de la función f se tiene x1 ( b – a ) + b + a 0.5773502692 (40 – 0) + 40 + 0 ––––––––––––––––––– = ––––––––––––––––––––––––––––––––––– = 31.547 2 2 x2 ( b – a ) + b + a –0.5773502692 (40 – 0) + 40 + 0 ––––––––––––––––––– = –––––––––––––––––––––––––––––––––––– = 8.453 2 2 * Véase el problema 6.21, en la sección al final de este capítulo.

508

)]

Integración y diferenciación numérica

El cálculo del factor de compresibilidad z a los valores de P = 31.547 y P = 8.453 se realiza por interpolación. A partir de los puntos (6), (7) y (8) de la tabla y empleando alguno de los métodos del capítulo 5 se obtiene z (31.547) = 0.746, y con los puntos (1), (2) y (3) se obtiene z (8.453) = 0.881. Con los valores de z y P en los dos puntos, se calcula el valor de la función por integrar z–1 0.746 – 1 ––––––– = –––––––––––– = –0.00805 P 31.457 z–1 0.881 – 1 ––––––– = –––––––––––– = –0.01408 P 8.453 Se sustituyen valores en la ecuación de Gauss-Legendre y se tiene 40

ln φ =

 0

z–1 40 – 0 –––––– dP = –––––––– [ 1(–0.00805 ) + 1(–0.01408) ] = –0.4426 P 2

de donde φ = 0.6424. Observemos que basta tener el valor experimental de z a las presiones de 8.453 y 31.547, que en este ejemplo se determinaron por interpolación. Es importante señalar que procediendo a la inversa; es decir, calculando los valores de las presiones a las que se requiere el valor de z y después determinando experimentalmente dichos valores, se ahorra un considerable número de experimentos (2 contra 8, en este caso). Esto constituye una de las ventajas más importantes del método de la cuadratura de Gauss-Legendre. 6.4

Encuentre el centro de masa de una lámina rectangular de 2π  π (véase figura 6.15), suponiendo que la densidad en un punto P(x, y) de la lámina está dado por

ρ (x, y) = e–(x

2

+ y2) / 2

:VS\JP}U Por definición, los momentos de inercia con respecto al eje x y al eje y, respectivamente, están dados por Mx =

  x ρ (x, y) dx dy,

My =

R

y el centro de masa de la lámina es el punto (x– , –y ) tal que

  y ρ (x, y) dx dy

R

Mx – M –x = –––, y = –––y M M donde M =

  x ρ (x, y) dx dy.

R

Para facilitar las integraciones, la lámina se coloca como se muestra en la figura 6.15, con lo que R = { (x, y): 0 ≤ x ≤ 2π, 0 ≤ y ≤ π } Primero, se obtiene M con el método de cuadratura de Gauss empleando tres puntos P 2P

M=

 

0

2

e– (x

+ y2)/ 2

dx dy = 1.56814

0

Después se calculan Mx y My, donde P 2P

Mx =

 

0

2

x e– (x

+ y2)/2

dx dy ≈ 1.2556

0

509

Métodos Numéricos Aplicados a la Ingeniería

y

?

0



x

Figura 6.15 Representación de lámina rectangular. P 2P

My =

 

0

2

y e– (x

+ y2)/2

dx dy ≈ 1.24449

0

Finalmente 1.24449 –y ≈ ––––––––– = 0.7936 1.56814 1.2556 – x ≈ ––––––––– = 0.8007 1.56814 el centro de masa es el punto del primer cuadrante (0.8007, 0.7936). 6.5

El flujo a través de canales abiertos que tengan una sección transversal de forma constante y un fondo con pendiente también constante, queda modelado por la expresión*

y2

L=



y1

Q2T 1 – –––––– gA3 ––––––––––––––––2 nQ S0 – ––––––––– CmAR2/3

(

)

donde el integrando representa el perfil de la superficie del líquido y, si n y S0 son constantes a lo largo del canal, el integrando es función del tiro y del canal solamente: y2

L=

 F (y)dy

y1

con 1 – Q2T –––––––– gA3 F (y) = ––––––––––––––––2 dy nQ S0 – ––––––––– CmAR2/3

(

)

* Victor L. Streeter y E. Benjamin Wylie, Mecánica de fluidos, 8a. Ed., McGraw-Hill, 1987, p. 495.

510

Integración y diferenciación numérica

Un canal de sección transversal trapezoidal con base b = 3 m y paredes laterales inclinadas con pendiente m = 1, conduce un gasto Q = 28 m3/s de agua. Si el tirante en la sección 1 es y1 = 3m, determine el perfil de la superficie del agua F (y) para los siguientes 700 m en la dirección de la corriente. Utilice los parámetros n = 0.014, S0 = 0.001. :VS\JP}U En un canal trapezoidal, el área de la sección transversal A = by + my2 = 3y + y2 El perímetro mojado es P = b + 2y m2 + 1 = 3 + 2y 2 El radio hidráulico A y (3 + y) R = –– = –––––––––– P b + 2y 2 El ancho de la sección transversal de la superficie líquida es T = b + 2y = 3 + 2y Tomando Cm = 1 y dado que el gasto es Q = 28 m3/s, se tiene 282(3 + 2y) 1 – –––––––––––––– 9.8(3y + y2)3 F (y) = ––––––––––––––––––––––––––––––––––––––––––2 0.014 × 28 0.001 – –––––––––––––––––––––––––––––– 2/3 y(3 + y) 1 × (3y + y2) –––––––– 2 3 + 2y

(

)

Para calcular el perfil para 700 metros, es necesario resolver la ecuación integral: y700



F (y)dy = 700

3

Como se observa en esta ecuación, la incógnita es y700, el límite superior de la integral. También se puede escribir de la siguiente forma: y700



F (y)dy – 700 = 0

3

Y esta ecuación se puede resolver por el método de Newton-Raphson f (yk) yk + 1 = yk – ––––––– f ’(yk) donde y700

f (y) =



3

d F (y)dy – 700 y f’(y) = ––– dy

y700

[ 3

]

F (y)dy – 700 = F (y)

Primera iteración con y0 = 3.5

511

Métodos Numéricos Aplicados a la Ingeniería

3.5

f (3.5) =



F (y)dy – 700 = 562.5633 – 700 = –137.4367

3

f’(y) = F (3.5) = 1083.00484 –137.4367 y1 = 3.5 – –––––––––––––– = 3.626903 1083.00484 Segunda iteración con y1 = 3.626903 3.626903

f (3.626903) =



F (y)dy – 700 = –0.877035

3

f’(y) = F (3.626903) = 1069.685673 –0.877035 y2 = 3.626903 – –––––––––––––– = 3.627723 1069.685673 El valor de y prácticamente no cambió y 3.62773



f (3.627723) =

F (y) dy – 700 = 0.000075

3

que es suficientemente pequeña como para considerarla una raíz; de modo que el valor de y a una distancia de 700 metros es 3.627723 metros. 6.6

De la gráfica de un diagrama de Moliere del amoniaco se obtienen los siguientes datos de temperatura (T) contra presión (P) a entalpía constante (H = 700 BTU/Lb).

VisualBasic

Puntos

0

1

2

3

4

T (°F)

175

200

225

250

275

P (psia)

100

270

450

640

850

Calcule el coeficiente de Joule-Thompson a una presión de 270 psia. a) Mediante la derivada de la fórmula generalizada del polinomio de Lagrange del ejemplo 6.13 con los primeros cuatro puntos. b) Mediante la derivada analítica de una curva empírica polinomial de segundo grado calculada con mínimos cuadrados usando todos los puntos. :VS\JP}U El coeficiente de Joule-Thompson está definido como la derivada parcial de la temperatura con respecto a la presión a entalpía constante, o sea ∂T μ = –––– ∂P H

( )

a) La fórmula del ejemplo 6.13 se desarrolla para n = 3 y se obtiene

512

Integración y diferenciación numérica

dp3(x) f (x0) –––––– = [3x2 – 2(x1 + x2 + x3)x + (x1x2 + x1x3 + x2x3) ] ––––––––––––––––––––––––– dx (x0 – x1)(x0 – x2)(x0 – x3) f (x1) + [3x2 – 2(x0 + x2 + x3)x + (x0x2 + x0x3 + x2x3) ] –––––––––––––––––––––––––– (x1 – x0)(x1 – x2)(x1 – x3) f (x2) + [3x2 – 2(x0 + x1 + x3)x + (x0x1 + x0x3 + x1x3) ] –––––––––––––––––––––––––– (x2 – x0)(x2 – x1)(x2 – x3) f (x3) + [3x2 – 2(x0 + x1 + x2)x + (x0x1 + x0x2 + x1x2) ] –––––––––––––––––––––––––– (x3 – x0)(x3 – x1)(x3 – x2) donde x representa la presión y p3(x) la temperatura. Al sustituir x por 270 psia, así como los valores de los puntos dados, se obtiene

( )

∂T μ = –––– ≈ 0.1429 °F / psia ∂P H Los cálculos se pueden realizar con Matlab o la Voyage 200.

Matlab N = 3; Xd = 270 ; X=[100 270 450 640] ; Fx=[175 200 225 250] ; Dp = 0; for I = 1 : N + 1 P = 1; for J = 1 : N + 1 if I ~= J P = P * (X (I) - X (J)); end end S = 0; for K = 1: N + 1 if I ~=K P1 = 1 for J = 1: N+1 if J = = I | J = = K else P1 = P1 * (Xd - X (J) ) ; end end S = S + P1 ; end end Dp = Dp + Fx (I) / P * S ; end Dp

513

Métodos Numéricos Aplicados a la Ingeniería

ejer6_6( ) Prgm 4¶n: 270¶xd {100, 270, 450, 640}¶x {175, 200, 225, 250}¶fx 0¶dp For I, 1, n 1¶p For j, 1, n, If i Ҫ j p*(x[i]-x [j])¶p End for 0¶s For k,1,n If iҪk Then 1¶p1 For j,1,n If jҪi and jҪk p1*(xd-x[j])¶p1 EndFor s+p1¶s EndIf EndFor dp+fx [I] / p*s¶dp EndFor Disp dp EndPrgm

b) El sistema de ecuaciones 5.64 se resuelve usando los cinco puntos de la tabla a fin de obtener los coeficientes del polinomio de segundo grado que mejor aproxima la función tabulada a0 = 159.5134

a2 = –0.2453  10–4

a1 = 0.156799

que sustituidos dan T(P) ≈ 159.5134 + 0.156799P – 0.2453  10–4 P 2 cuya derivada es

( )

∂T –––– ≈ 0.156799 – 2 (0.2453  10–4) P ∂P H

que evaluada en P = 270 resulta

( )

∂T –––– ≈ 0.1436 °F / psia ∂P H

6.7

Para un dipolo de media longitud de onda, se requiere generalmente interar la función π cos2 — cos θ 2 f (θ) = –––––––––––––––– sen θ

(

514

)

Integración y diferenciación numérica

Evalúe la integral de esta función entre cero y π; es decir, estime P



0

π cos2 — cos θ 2 –––––––––––––––– dθ sen θ

(

)

:VS\JP}U La estimación numérica podría representar dificultades con un método cerrado, ya que la función integrando no está definida en cero y en π: π cos2 — cos 0 2 0 f (0) = –––––––––––––––– = — sen 0 0

(

)

π cos2 — cos π 2 0 f (π) = –––––––––––––––– = — sen π 0

(

)

Dado que la indeterminación en ambos casos es del tipo 0/0 y en la integración se pueden usar los límites de la función, en este caso el límite de f (θ) cuando θ tiende hacia cero y el límite de f (θ) cuando θ tiende hacia π, podemos recurrir a la regla de l’Hôpital y ver si tales límites existen. Aplicando esta regla se tiene: π d cos2 — cosθ 2 π –––––––––––––––––– –cos — cosθ π senθ dθ 2 LÓM f (θ ) = LÓM ––––––––––––––––––– = LÓM –––––––––––––––––––––––– Qöa Qöa Qöa cosθ d(senθ) ––––––––– dθ

( (

))

(

)

Evaluando en a = 0 y en a = π: π –cos — cos 0 π sen 0 2 0 –––––––––––––––––––––––– = — = 0 cos 0 1

(

)

π –cos — cos π π sen π 2 0 –––––––––––––––––––––––– = ––– = 0 cos π –1

(

)

Dado que los límites existen y son cero, tomamos como cero el valor de la función en cero y en π. De este modo, ya es posible emplear un método cerrado como el trapezoidal o el de Simpson 1/3. Usando el método trapezoidal compuesto (ecuación 6.8) y n = 20 subintervalos, el resultado es 1.219. Si se utiliza el método de Simpson 1/3 compuesto (ecuación 6.10), también con n = 20 subintervalos, se obtiene el mismo resultado: 1.219. Por otro lado, el método de cuadratura de Gauss-Legendre no requiere evaluar la función integrando en cero y en π; sin embargo, la estimación empleando tres puntos da un resultado menos exacto que el obtenido anteriormente: 1.144. La explicación puede darse al observar la gráfica de f (θ) entre cero y π (véase figura 6.16).

515

Métodos Numéricos Aplicados a la Ingeniería

f (θ ) 0.8

0.6

0.4

0.2

0

0

0.5

1

1.5

2

2.5

θ

3

Figura 6.16 Gráfica del método de cuadratura Gauss-Legendre.

Como sabemos, el empleo de la cuadratura de Gauss-Legendre con tres puntos utiliza una parábola, por lo que resulta difícil que ésta “cuadre” a f (θ) debido al cambio de concavidad que se presenta en sus extremos. 6.8

Se tiene un mecanismo de cuatro barras (véase figura 6.17), donde a = longitud de la manivela de entrada. b = longitud de la biela. c = longitud de la manivela de salida. d = longitud de la barra fija.

β b c

φ

a

θ

d x

Figura 6.17 Mecanismo de cuatro barras.

516

Integración y diferenciación numérica

Las ecuación de Freudenstein relaciona los ángulos de entrada y de salida θ y φ, respectivamente, de la siguiente forma: R1cos θ – R2cos φ + R3 – cos (θ – φ) = 0 d d d2 + a2 – b2 + c2 con R1 = —; R2 = — y R3 = ––––––––––––––––– c a 2ca Si a = 1 pulg , b = 2 pulg , c = 2 pulg y d = 2 pulg, analice el comportamiento de la relación entre θ y φ y haga un estudio cinemático de la manivela de salida. :VS\JP}U Una gráfica de θ vs. φ permitirá apreciar el comportamiento de la relación solicitada; para ello se le dan valores a θ y se calculan los valores correspondientes de φ. Esto último, sin embargo, implica resolver la ecuación no lineal para cada valor de θ asignado. f (φ) = R1cos θ – R2cos φ + R3 – cos (θ – φ) = 0 Dado que se requieren múltiples valores de θ entre cero y 2π, resulta indispensable recurrir a un programa escrito exprofeso o un software matemático. El siguiente programa en Mathcad permitió calcular los valores de π 2π 3π 360π φ en radianes, correspondientes a los valores de θ : 0, ––––, ––––, ––––, ..., –––––– radianes (0, 1, 2, ..., 360º) y 180 180 180 180 graficar los resultados obtenidos* (véase figura 6.18). a := 1

b := 2 c := 2 d := 2

d R1 := — c

d R2 := — a

d2 + a2 – b2 + c2 R3 := –––––––––––––––– 2·c·a

k := 0.360 f (φ, θ ) := R1·cos (θ ) – R2·cos (φ ) + R3 – cos (θ – φ ) π θk := k · –––– 180

φ := 1.5 φ rk := root (f (φ, θk), φ ) φ 1.5

1

0.5

0

2

4

6

θ

Figura 6.18 Gráfica de los resultados obtenidos en Mathcad.

* La lista de valores numéricos se omite por cuestiones de espacio.

517

Métodos Numéricos Aplicados a la Ingeniería

En la descripción de la gráfica θ se recorre de izquierda a derecha y los cambios de φ son referidos a incrementos del mismo tamaño de θ ; se sugiere, asimismo, visualizar las barras y sus articulaciones en movimiento. Considerando θ = 0 radianes como el estado inicial del mecanismo, la manivela de entrada estaría en posición horizontal y la de salida en uno de sus puntos bajos, φ = 0.723 radianes (41.4º). Entre cero y dos radianes, φ aumenta en forma aproximadamente lineal para θ entre 2 y 2.7 radianes (114.6º y 154.7º); sin embargo, los cambios de φ son muy pequeños: la manivela de salida gira muy poco, alcanza su máximo desplazamiento φ = 1.6961 radianes en θ = 2.426 radianes (96.9º y 139º) y a partir de ese punto empieza a regresar con desplazamientos pequeños, para después aumentarlos considerablemente entre 2.7 y 3.7 radianes (154.7º y 212º). Después la manivela sigue regresando, pero lentamente, hasta alcanzar el ángulo más bajo φ = 0.505 radianes en θ = 4.97 radianes (28.9 y 284.8º, sin alcanzar la posición horizontal). A partir de este último valor de θ, la manivela de salida empieza a girar lentamente hacia arriba de nuevo, hasta que la manivela de entrada alcanza su posición inicial y el ciclo se repite. En caso de seguir graficando se obtendría una curva periódica. Para el estudio cinemático consideramos una velocidad angular constante ω de la manivela, por ejemplo de 100 radianes/s; de esta manera la posición angular θ de la manivela queda dada por θ = ωt, de modo que el cambio de φ con respecto a θ queda así: dφ dφ 1 dφ ––– = –––– = –––––– dωt ω dt dθ y la velocidad angular de la manivela de salida como dφ dφ ––– = ω ––– dt dθ La segunda derivada de φ respecto de θ nos permitirá obtener la aceleración angular de la manivela de salida, ya que dφ dφ dφ d ––– d ––– d ––– dθ 1 dt 1 dt 1 d2φ –––––––– = — –––––––– = — –––––––– = —2 –––––– ω dθ ω ωdt ω dt2 dθ

( )

( )

( )

y d 2φ d2φ 2 –––– = w –––– dθ 2 dt2 Para estimar la velocidad angular de la manivela de salida se emplearon diferencias divididas hacia adelante, cuyas instrucciones en Mathcad son i: = 0 .. 359

φri+1 – φri dφdti : = 100 . ––––––––––– θi+1 – θi La gráfica correspondiente se muestra en la figura 6.19. Se recomienda asociar el signo de las velocidades con el signo de las tangentes a la curva y con el sentido de giro de la manivela de salida: signo (+), giro en el sentido contrario de las manecillas del reloj (la manivela sube); signo (–), giro en el sentido de las manecillas del reloj (la manivela baja). Complementariamente, el valor de θ donde la derivada es cero pasando de (+) a (–) da el ángulo máximo de φ y, obviamente, el punto donde la manivela baja.

518

Integración y diferenciación numérica

dφ dt 50 0 –100 –100 –150

0

2

4

θ

6

Figura 6.19 Gráfica de la velocidad angular de la manivela con Mathcad.

A partir de la posición inicial, la velocidad angular de la manivela de salida aumenta hasta alcanzar su máximo de 50.549 radianes/s en θ = 1.1345 radianes (65º); luego empieza a descender hasta alcanzar el valor de cero en θ = 2.4086 radianes (138º) que corresponde al máximo de φ (esto se debe a que una velocidad con signo (+) significa crecimiento, en este caso de φ). En oposición, una velocidad con signo (–) significa decrecimiento, de modo que entre θ = 2.4086 y θ = 4.9044 radianes (138º y 166.4º) φ disminuye (la palanca regresa con diferentes velocidades). A partir de θ = 4.9044 radianes la velocidad vuelve a tener signo (+), indicando con ello que la manivela de salida irá hacia arriba con velocidad aproximadamente lineal, por lo que se esperaría una aceleración “constante” en ese tramo, al final del cual θ = 6.2832 radianes y el ciclo se repetiría. Se deja al lector el cálculo de las diferencias divididas de segundo orden para aproximar la aceleración y el análisis de la gráfica (véase figura 6.20).

d2φ dt2 1 ·104

0

–1 ·104

–2 ·104 0

2

4

6

θ

Figura 6.20 Gráfica de las diferencias divididas de segundo orden.

Se sugiere que vincule sus observaciones con las descritas anteriormente; recuerde que la aceleración representa la medida del cambio de la velocidad.

519

Métodos Numéricos Aplicados a la Ingeniería

6.9

En la siguiente tabla:

t

0

1

2

3

4

5

T

93.1

85.9

78.8

75.1

69.8

66.7

donde T representa la temperatura ( ºC ) de una salmuera utilizada como refrigerante y t (min) el tiempo, encuentre la velocidad de enfriamiento en los tiempos t = 2.5 y t = 4 mín. :VS\JP}U Al emplear la ecuación 6.38 con n = 2, se tiene dp2(t) (2t – t0– t1– 2h) T0 (2t0 – 4t + 2t1 + 2h)T1 (2t – t0– t1) T2 –––––– = ––––––––––––––––––– + –––––––––––––––––––––– + –––––––––––––––– 2h2 2h2 dt 2h2 Se toman t0 = 1, t1 = 2, t2 = 3 y h = 1, y se tiene para t = 2.5 dp2(t) [ 2 (2.5) – 1 – 2 – 2 ( 1) ] –––––– = –––––––––––––––––––––––––––– (85.9) dt 2 ( 1 )2 [ 2 (1) – 4 (2.5 ) + 2(2) + 2 (1) ] (78.8) (2 (2.5) –1 – 2) (75.1) + ––––––––––––––––––––––––––––––––––––––––––– + ––––––––––––––––––––––––– = –3.7 2 2(1)2 2(1) Al tomar t0 = 2, t1 = 3 y t2 = 4 se tiene, para t = 2.5 dp2(t) [ 2 (2.5) – 2 – 3 – 2 (1) ] (78.8) ––––––– = –––––––––––––––––––––––––––––––––– dt 2 (1)2 [ 2 (2) – 4 (2.5 ) + 2(3) + 2 (1) ] (75.1) (2 (2.5) – 2 – 3) (69.8) + –––––––––––––––––––––––––––––––––––––––––– + –––––––––––––––––––––––––– = –3.7 2(1)2 2(1)2 Estos valores confirman que la función tabular se comporta como una parábola (n = 2); por lo tanto, el grado seleccionado es adecuado. Se deja al lector repetir estos cálculos para t = 4 mín. 6.10 La siguiente tabla muestra las medidas observadas en una curva de imantación del hierro.

β

5

6

7

8

9

10

11

12

μ

1090

1175

1245

1295

1330

1340

1320

1250

En ella β es el número de kilolíneas por cm2 y μ la permeabilidad. Encuentre la permeabilidad máxima. :VS\JP}U b bil Como la permeabilidad máxima registrada en la tabla es 1340, correspondiente a β =10, se utilizan los puntos de abscisas β0 = 9, β1 = 10, β2 = 11 para obtener un polinomio de segundo grado, por el método de aproximación polinomial simple:

520

Integración y diferenciación numérica

a0 + a1(9) + a2(9)2 = 1330 a0 + a1(10) + a2(10)2 = 1340 a0 + a1(11) + a2(11)2 = 1320 Al resolver se tiene a0 = –110, a1 = 295 y a2 = –15, por lo que el polinomio es μ = –110 + 295β –15β 2 Para obtener la permeabilidad máxima, se deriva e iguala con cero este polinomio dμ ––– = 295 – 30β = 0 dβ 295 Al despejar β = ––––– = 9.83333 30 de donde

μmax = –110 + 295(9.83333) – 15(9.83333)2 = 1340.416

Problemas propuestos 6.1

Con el algoritmo obtenido en el problema anterior, integre la función 1 ––––– e–x /2 2π 2

entre los límites a = –1 y b = 1. Compare el resultado con los valores obtenidos en el ejemplo 6.5. 6.2

En el gasoducto Cactus, que va de Tabasco a Reynosa, Tamaulipas, periódicamente durante el día se determina el gasto W (kg/min) y su contenido de azufre S (en por ciento). Los resultados se presentan en la siguiente tabla. t (hr)

0

4

8

12

15

20

22

24

W (kg/min)

20

22

19.5

23

21

20

20.5

20.8

S(%)

0.30

0.45

0.38

0.35

0.30

0.43

0.41

0.40

a) ¿Cuál es el contenido de azufre (%) promedio diario? b) ¿Cuál es el gasto promedio? c) ¿Qué cantidad de azufre se bombea en 24 horas? d) ¿Qué cantidad de gas se bombea en 24 horas? 6.3

Mediante el método de Simpson 3/8 aproxime las integrales del ejemplo 6.1. Compare los resultados con los obtenidos en los ejemplos 6.1 y 6.2.

6.4

Emplee la ecuación 6.5 con n = 3 para obtener la ecuación de Simpson 3/8 (véase ecuación 6.6).

6.5

Siguiendo las ideas que llevaron a las ecuaciones 6.8 y 6.10, encuentre la ecuación correspondiente a usar la fórmula de Simpson 3/8 sucesivamente.

521

Métodos Numéricos Aplicados a la Ingeniería 6.6

Integre la función de Bessel de primera especie y orden 1 d (x/2)2k+1 J1 (x) = k 3= 0 (–1)k –––––––––––––– k! (1 + k + 1)

con el método de Simpson compuesto (aplicado siete veces) en el intervalo [0,7]; esto es 7

J

1

(x) dx

0

Sugerencia: Consulte las tablas de funciones de Bessel. 6.7

Obtenga

3

 xe

ex

dx

1

6.8

Obtenga 2



h3 dh

 –––––––––– (1 + h ) 1/2

1

6.9

Elabore un subprograma para integrar una función analítica por el método de Simpson 3/8 compuesto, usando sucesivamente 3, 6, 12, 24, 48,… , 3072 subintervalos. Compruébelo con la función del ejemplo 6.5.

6.10 De acuerdo con las ideas acerca del análisis del error de truncamiento en la aproximación trapezoidal, analice dicho error en la aproximación de Simpson 1/3. Sugerencia: La expresión a que debe llegar es: n h5 h4 h4 | E T | ≤ –– ––– M = n h –––– M = ( b – a ) –––– M 2 90 180 180 donde | f lV (xi) | ≤ M y n es el número de subintervalos en que se divide [a, b]; de donde, el error de truncamiento en el método de Simpson 1/3 es proporcional a h4, lo cual conjuntamente con la ecuación 6.10 se expresa b



a f (x) dx



n–1 n–2 h = — [ f (x0) + 4 i 3 f (xi) + 2 i 3 f (xi) + f (xn)] + O (h4) =1 =2 3 $i = 2 $i = 2

6.11 Mediante la ecuación 6.18 encuentre una cota para el error de truncamiento al integrar la función e–x /2 entre los límites [–1, 1], usando 2, 4, 8, 16,… ,1024 subintervalos. 2

6.12 Emplee la integración de Romberg a fin de evaluar I2(2) para las siguientes integrales definidas: 1

1

a)

e

–x2/2

dx

b)

3



2

522

x3 exdx

0

–1

c)



dx ––– x

3

d)



1

ln x dx

Integración y diferenciación numérica 6.13 Utilizando el método de Romberg y el criterio de convergencia siguiente: | Ik(m) – Ik–1(m+1) | ≤ 10–3 aproxime las integrales que se dan a continuación 1

a)

2

e

cos2πx

dx

cos x –––––– dx x



b)

1

0 2

c)

e

x/π

cos kx dx

con k = 1, 2

0

En el inciso c) compare con la solución analítica. 6.14 Pruebe que en la integración de Romberg con h2 = h1/2 [ecuación 6.21], Ik(1) = s, donde s es la aproximación de Simpson compuesta [ecuación 6.10], empleando 2k subintervalos. 6.15 Estime las siguientes integrales: 1

a)



sen (101 πx ) dx

0 1

b)



f (x) dx con f (x) =

0

{

sen x –––––– x

en x ≤ 0

1

en x = 0

con una aproximación de 10–5. Sugerencia: Emplee la integración de Romberg y el criterio de convergencia

|I

con

|I

(m) k

– I k(m+1) | ≤ 10–6

(m+1) k+1

(m+2) – Ik+1 | ≤ 10–6

6.16 La longitud de un intercambiador de calor de tubos concéntricos, cuando se usa vapor saturado a temperatura Ts para calentar un fluido, está dada por m L = –––– Dπ

(

T



T1

CpdT –––––––––– h(Ts – T )

) ( ) 0.8

0.33

0.023k 4m μCp ––––– , m es la masa, k es la conductividad térmica, μ la viscosidad, Cp la donde h = –––––––– –––––– k D πDμ capacidad calorífica a presión constante, todas del fluido frío. Para un fluido cuyas propiedades están dadas por BTU Cp(T) = 0.53 + 0.0006T – 6.25 × 10–6 T2 ––––– °F; lb lb BTU μ(T) = 30 + 0.09T – 0.00095T2 –––––––; k = 0.153 –––––––––– pie hr hr pie °F

523

Métodos Numéricos Aplicados a la Ingeniería

¿Cuál será la longitud necesaria de los tubos para calentar este fluido de 20 hasta 60 °F? Use m = 1500 lb/hr Ts = 320 °F D = 0.25 pies 6.17 A principios del siglo XX, Lord Rayleigh resolvió el problema de la destilación binaria simple (una etapa) por lotes, con la ecuación que ahora lleva su nombre Lf



 Li

dL –––– = L

xf



xi

dx –––––– y–x

donde L son los moles de la mezcla líquida en el hervidor, x las fracciones mol del componente más volátil en la mezcla líquida y y las fracciones mol de su vapor en equilibrio. Los subíndices i y f se refieren al estado inicial y final, respectivamente. Calcule qué fracción de un lote es necesario destilar en una mezcla binaria para que x cambie de xi = 0.7 a xf = 0.4. La relación de equilibrio está dada por la ecuación αx y = ––––––––––––– 1+( α – 1) x donde α es la volatibilidad relativa de los componentes y una función de x según la siguiente tabla (para una mezcla dada):

x

0.70

0.65

0.60

0.55

0.50

0.45

0.40

α

2.20

2.17

2.13

2.09

2.04

1.99

1.94

P

6.18 La integral



–P

sen x –––––– dx puede presentar serias dificultades. x

Estudie cuidadosamente el integrando y aproxime dicha integral, empleando alguno de los métodos vistos. 6.19 Ensaye varios métodos de integración numérica para aproximar 1



2

x dx  –––––––– 1–x

–1

2

6.20 Sea la función f (x) definida en (0,1) como sigue: f( x ) =

{ 1x –x

0 ≤ x ≤ 0.5 0.5 < x ≤ 1

1

aproxime numéricamente

 f (x) dx utilizando 0

a) El método trapezoidal aplicado una vez en (0, 1). b) El método trapezoidal aplicado una vez en (0, 0.5) y otra en (0.5, 1). c) El método de Simpson 1/3 aplicado una vez en (0, 1). Compare los resultados con el valor analítico y explique las diferencias.

524

Integración y diferenciación numérica 6.21 Demuestre que la expresión general para integrar por Gauss-Legendre puede anotarse así: b



a

[

b–a n xi (b – a) + b + a f (t) dt ≈ –––––– i 3 wi f –––––––––––––––––– =1 2 2

]

donde wi, xi, i = 1, 2, …, n dependen de n y están dados en la tabla 6.2. 6.22 Use la cuadratura de Gauss con n = 3 para aproximar las integrales de los problemas 6.18 y 6.19. 6.23 Dada la función f (x) en forma tabular

x

0

41

56

95

145

180

212

320

f (x)

0

1.18

1.65

2.70

3.75

4.10

4.46

5.10

encuentre

320



x2f (x)dx

0

usando la cuadratura de Gauss con varios puntos. 6.24 Calcule el cambio de entropía ΔS que sufre un gas ideal a presión constante al cambiar su temperatura de 300 a 380 K. Utilice la cudratura gaussiana de tres puntos. T2





T1

CP dT ––––––– T

T(K)

280

310

340

370

400

CP(cal/mol K)

4.87

5.02

5.16

5.25

5.30

6.25 Modifique el programa del ejemplo 6.11 de forma que se puedan integrar funciones dadas en forma discreta o tabular. 6.26

Una partícula de masa m se mueve a través de un fluido, sujeta a una resistencia R que es función de la velocidad v de m. La relación entre la resistencia R, la velocidad v y el tiempo t está dada por la ecuación

VisualBasic

vf

t=



v0

m –––––– dv R (v)

Supóngase que R (v) = –v v + 0.0001 para un fluido particular. Si m = 10 kg y v0= 10 m/s, aproxime el tiempo requerido para que la partícula reduzca su velocidad a vf = 5 m/s, usando el método de cuadratura de Gauss con dos y tres puntos. 6.27 Aproxime las siguientes integrales usando la cuadratura de Gauss-Laguerre. d

a)

e

d –3x

0

ln x dx

b)

e

–2x

(tan x + sen x ) dx

0

525

Métodos Numéricos Aplicados a la Ingeniería d

c)



d

e–x x3 dx

d)

0

e

–x

3x dx

0

d

e)

e

–3x

dx

0 d

6.28 Las integrales del tipo



f (x) dx, con a > 0 se conocen como integrales impropias y se pueden aproximar, si

a

su límite existe, por los métodos de cuadratura, haciendo el cambio de variable t = x –1. Con este cambio el integrando y los límites pasan a ser: como t = x –1, x = t –1 y dx = –1/t2 dt. El integrando queda f (x)dx = (–1/t2) f (t–1) dt. Los límites pasan a como x = a, t = 1/a y x= ∞,

t = 1/∞ = 0

Al sustituir queda d

0

1/a

 f (x) dx = –  t

a

–2

f (t –1) dt =

1/a



t–2 f (t –1) dt

0

que ya puede aproximarse por los métodos vistos en este capítulo. Aplique estas ideas para aproximar las siguientes integrales: d

a)

x

d –3

dx

b)

5

x

–4

sen (1/x) dx

1 d

c)

x

–2

e –3x cos (4/x) dx

10

Utilice el método numérico que considere más conveniente. 6.29 Elabore un algoritmo correspondiente al algortimo 6.3, usando la cuadratura de Gauss-Laguerre. 6.30 Aproxime las integrales siguientes: 1 2

aa)

 xe

2 1 xy

dy dx

b)

0 1

  sen x cos y dx dy

1 4

xy

dx dy

1 1

3 8

c)

  xe

1 0

d)

  x y dx dy 0 0

empleando el método de Simpson 1/3, dividiendo el intervalo [a, b] del eje x en n (par) subintervalos y el intervalo [c, d] del eje y en m (par) subintervalos. La ecuación por utilizar es la 6.31.

526

Integración y diferenciación numérica 6.31 Aproxime las integrales del problema 6.30 empleando la cuadratura de Gauss-Legendre d b

(b – a) (d – c)

m

  f (x,y) dxdy ≈ –––––––––––––– 4 c a

3

j=1

[

]

b–a b+a d–c c+d wj wi f –––––– ti + ––––––, –––––– uj + –––––– 2 2 2 2

n

3

i=1

donde wi o wj son los coeficientes wi dados en la tabla 6.2, ti o uj son las abscisas zi dadas en la tabla 6.2 y n y m son los números de puntos por usar en los ejes x y y, respectivamente. 6.32 Mediante el método de Simpson 1/3 aproxime las integrales 1 1

P y

a)



y sen x dx dy

b)

0 0

2 x2

c)

  dy dx

0 x

2 ey

  dy dx

d)

1 x

  dx dy

0 1

6.33 En el estudio de integrales dobles, un problema típico es demostrar que R



R R –x2

e

dx =

0

  0

e–x

2

– y2

dy dx

0

Demuéstrelo numéricamente con R = 1. Utilice el método de Simpson 1/3. 6.34 Elabore un algoritmo para aproximar integrales dobles empleando el método de cuadratura de GaussLegendre. 6.35 Encuentre el centro de masa de una lámina cuya forma se encuentra en la figura adjunta, suponiendo que la densidad en un punto ρ (x, y) de la lámina está dada por

ρ (x, y ) = x sen y y

1

x2 + y2 = 1

lámina 0

1

x

d b

6.36 La expresión



dx dy representa el área del rectángulo cuyos vértices son a, b, c y d (corrobórelo), de modo

c a d b

que



f (x, y) dx dy representa el volumen del cuerpo cuya base es el rectángulo a, b, c, d, y cuya altura

c a

para cualquier punto (x, y) dentro de dicho rectángulo es f (x, y). Aproximar el volumen de los siguientes cuerpos:

527

Métodos Numéricos Aplicados a la Ingeniería

a) f (x, y) = sen x + exy ; (a, b, c,d) = (0, 4, 1, 3) b) f (x, y) = sen πx cos πy, (a, b, c, d) = (0, π/4, 0, π/4) 6.37 Emplee las ideas que llevaron a las ecuaciones 6.38 y 6.39 para obtener la aproximación de una función tabulada por un polinomio de tercer grado y su primera y segunda derivadas. 6.38 La ecuación de estado de Redlich-Kwong es a [ P + ––––––––––––– ] ( V – b ) = RT T V(V+ b) 0.5

donde a = 17.19344 y b = 0.02211413 para el oxígeno molecular. Si T = 373.15 K, se obtiene la siguiente tabla de valores:

Puntos

0

1

2

3

P (atm)

30.43853

27.68355

25.38623

23.44122

V (L/gmol)

1.0

1.1

1.2

1.3

a) Proceda como en el inciso anterior, pero ahora aplique la ecuación 6.48 con n = 1 y n = 2. b) Calcule la dP/dV cuando V = 1.05 L, utilizando las ecuaciones 6.37 y 6.38 y compárela con el valor de la derivada analítica. ∂CA 6.39 Calcular ––––– utilizando la información del ejemplo 6.14. ∂P T = 325, P = 10

|

6.40 Obtenga la segunda derivada evaluada en x = 3.7 para la función que se da en seguida:

Puntos

0

1

2

3

4

5

x

1

1.8

3

4.2

5

6.5

f (x)

3

4.34536

6.57735

8.88725

10.44721

13.39223

Utilice un polinomio de Newton en diferencias divididas para aproximar f (x). 6.41 Dada la función f (x) = x ex + ex aproxime f (x), f  (x) en x = 0.6, empleando los valores de h = 0.4, 0.1, 0.0002, 0.003 con n = 1, 2, 3, para cada h. Compare los resultados con los valores analíticos. 6.42 Elabore un programa que aproxime la primera derivada de una función dada en forma tabular, usando el algoritmo 6.5. 6.43 En la tabla que se presenta a continuación, x es la distancia en metros que recorre una bala a lo largo de un cañón en t segundos. Encuentre la velocidad de la bala en x = 3.

528

Integración y diferenciación numérica

x

0

1

2

3

4

5

t

0

0.0359

0.0493

0.0596

0.0700

0.0786

6.44 Dada la tabla siguiente: x

0.2

0.3

0.4

0.5

0.6

f (x)

0.24428

0.40496

0.59673

0.82436

1.09327

1.75482

2.08855

2.47308

f´ (x)

calcule f  (x) para x = 0.3, 0.4 y 0.5, con n = 2 (ecuación 6.38) y compare con los valores analíticos dados en la tabla. 6.45 Encuentre la primera derivada numérica de x ln x en el punto x = 2, usando un polinomio de aproximación de tercer grado. Estime el error cometido. 6.46 Dado un circuito con un voltaje E(t) y una inductancia L, la primera ley de Kirchoff que lo modela es E = L di/dt + R i donde i es la corriente en amperes y R la resistencia en ohms. La tabla de abajo presenta los valores experimentales de i correspondientes a varios tiempos t dados en segundos. Si la inductancia L es constante e igual a 0.97 henries y la resistencia es de 0.14 ohms, aproxime el voltaje E en los valores de t dados en la tabla usando la ecuación 6.38.

t

0.95

0.96

0.97

0.98

0.99

1.0

i

0.90

1.92

2.54

2.88

3.04

3.10

6.47 La reacción en fase líquida entre trimetilamina y bromuro de propilo en benceno se llevó a cabo introduciendo cinco ampolletas con una mezcla de reactantes en un baño a temperatura constante. Las ampolletas se sacan a varios tiempos, se enfrían para detener la reacción y se analiza su contenido. El análisis se basa en que la sal cuaternaria de amoniaco está ionizada, de aquí que la concentración de los iones bromuro se pueda obtener por titulación. Los resultados obtenidos son:

Tiempo (min)

10

35

60

85

110

Conversión (%)

12

28

40

46

52

Calcule la variación de la conversión con respecto al tiempo de los distintos puntos de la tabla. d

6.48 Las integrales del tipo

e

–x

f ( x ) dx se conocen como integrales impropias y se pueden aproximar, si su límite

0

existe, por la cuadratura de Gauss-Laguerre

529

Métodos Numéricos Aplicados a la Ingeniería d

e



–x

n

f ( x ) dx ≈ i 3 Hn,i f ( xi ) =1

(1)

0

donde xi es la i-ésima raíz del polinomio de Laguerre Ln (x) y d

Hn,i =

e

–x

0

n

x – xj

j≠i

xi – xj

0 – ––––––– dx j=1

se dan a continuación los primeros polinomios de Laguerre L0 (x) =

1; L1 (x) = 1 – x; L2 (x) = 2 – 4x + x2

L3 (x) =

6 – 18x + 9x2–x3; L4 (x) = 24 – 96x; 72x2–16x3 + x4

L5 (x) =

120 – 600x + 600x2 – 200x3 + 25x4 – x5

y la ecuación Li+1 (x) = (1 + 2i –x) Li (x) – i2 Li–1 (x) que permite obtener el polinomio de Laguerre de grado i + 1 en términos de los polinomios de Laguerre de grado i e i–1. d

Aproxime

e

–x

sen x dx con n=2.

0

6.49 La densidad de soluciones de cloruro de calcio (CaCl2) a diferentes temperaturas y concentraciones se presenta en la siguiente tabla:

T°C C % peso –5

0

20

40

80

100

2

––––––

1.0171

1.0148

1.0084

0.9881

0.9748

8

1.0708

1.0703

1.0659

1.0586

1.0382

1.0257

16

1.1471

1.1454

1.1386

1.1301

1.1092

1.0973

30

––––––

1.2922

1.2816

1.2709

1.2478

1.2359

40

––––––

––––––

1.3957

1.3826

1.3571

1.3450

Calcule: a) La variación de la densidad respecto de la temperatura a T = 30°C y c = 10%. b) La variación de la densidad respecto de la temperatura a T = 0°C y c = 40%. c) La variación de la densidad respecto de la concentración a T = 30°C y c = 10%. d) La variación de la densidad respecto de la concentración a T = 0°C y c = 40%.

530

Integración y diferenciación numérica

Proyecto 1 La difracción de rayos X es una técnica muy poderosa para la caracterización de materiales, que tiene aplicaciones en la evaluación de parámetros reticulares, identificación y cuantificación de fases; actualmente, con el advenimiento de la nanotecnología, se usa en el cálculo del tamaño de partículas del orden de nanómetros (1 nanómetro = 10–9 m) y en la evaluación de microdeformaciones para propiedades de reactividad de sólidos cristalinos (determinar si un material sirve para acelerar una reacción química). Al analizar un sólido en un difractómetro de polvos (véase figura 6.21a) se obtiene su difractograma (véase figura 6.21b). El área bajo la curva del perfil obtenido en un medio sirve para calcular la cantidad de masa de cada fase presente, así como el tamaño de partícula. Su cálculo puede llevarse a cabo ajustando una función analítica a la curva del perfil e integrando analíticamente dicho proceso; sin embargo, reviste serias complicaciones. Una alternativa sencilla y exitosa es la integración numérica.

Figura 6.21a Difractómetro de rayos X.

6000

Intensidad (arb. unidades)

5400 – ZCE4004R Modif. dat.

4800 4200 3600 3000 2400 1800 1200 600 0 20

40

60

80

100

120

140

Figura 6.21b Difractómetro de óxido de zinc tratado térmicamente a 400 °C.

El difractograma de la figura 6.21b) corresponde al óxido de zinc tratado térmicamente a 400 ºC (un material de importancia tecnológica que se usa como soporte para catalizador y como material fotocatalítico). Para visualizar mejor el área de interés a las primeras tres reflexiones (máximos), se requiere calcular la intensidad integrada para las tres primeras reflexiones (máximos). En la figura 6.22 se muestra un acercamiento del intervalo 29-41 que comprende tales máximos.

531

Métodos Numéricos Aplicados a la Ingeniería

6000

Intensidad (arb. unidades)

5400 4800 4200 3600 3000 2400 1800 1200 600 0 29

31

33

35

37

39

41

Figura 6.22 6 22 Difractograma en el intervalo 29-41. 29 41

Un nuevo acercamiento en la región próxima al máximo del tercer pico, junto con los valores que se utilizaron, se muestra en la figura 6.23.

2θ1

36.03

36.04

36.05

36.06

36.07

36.08

36.09

36.1

36.11

36.12

36.13

36.14

36.15

36.16

36.17

36.18

I

5058

5164

5382

5209

5329

5349

5363

5917

5300

5503

5359

5179

5317

5180

5240

5018

35.91

35.97

36.03

36.09

2

1

Posición angular (0)

2

Intensidad (cuentas)

5620

Intensidad (arb. unidades)

5560 5500 5440 5380 5320 5260 5200 5140 5080 35.85

36.15

36.21

36.27

36.33

36.39

Figura 6 6.23. 23

En este último acercamiento podemos ver que la gráfica es una trayectoria poligonal, por lo que el método trapezoidal resulta adecuado para la integración. La integración debe realizarse pico por pico, ejemplificándose para el primer pico en seguida:

532

Integración y diferenciación numérica

Primerpico Se hace la integración entre 29 y 33 con los siguientes datos: h = 0.01 (xi = 29.29.01, 29.02Λ, 33) y n = 401. La información correspondiente se obtiene del archivo ZCE4004.dat ubicado en la carpeta software del capítulo 6 del CD. Se sugiere el uso de Excel o algún otro software matemático para realizar esta integración. Una vez obtenida la integral, se traza la línea de fondo. Para ello se puede elegir al azar alguno de los puntos ubicados a la izquierda del primer pico (29 a 30) y otro a la derecha del tercer pico (alrededor de 33). Algunos investigadores recomiendan, sin embargo, usar un promedio de los valores a la izquierda y un promedio de los puntos a la derecha. En la figura 6.24 se ilustra la línea de fondo separando el área en gris y el área en rojo. El área comprendida entre la curva y la línea de fondo es la intensidad integrada que permite calcular la cantidad en masa de fase presente (cuando se trata de una mezcla). Por otro lado, la intensidad integrada sobre la altura del máximo del pico correspondiente está asociada con el tamaño de partícula y microdeformación. Calcule los valores de los tres intensidades correspondientes a los tres picos.

6000 5400

Intensidad (arb. unidades)

4800 4200 3600 3000 2400 1800 1200 600 0

29

31

33

Figura 6.24.

Proyecto 2 En el mecanismo de cuatro barras estudiado en el ejercicio 6.9 se tiene un polígono cerrado (véase figura 6.25), donde a = longitud de la manivela de entrada = 1 pulg b = longitud de la biela = 2 pulg c = longitud de la manivela de salida = 2 pulg d = longitud de la barra fija = 2 pulg

533

Métodos Numéricos Aplicados a la Ingeniería

β b c

φ

a

θ

d x

Figura 6.25 6 25 Mecanismo Mecanismo i de de cuatro cuatro barras. b barras

Al variar el ángulo θ, el perímetro del polígono se conserva, pero no su área. Determinar el ángulo θ donde se alcanza el área máxima y el área mínima del polígono.

534

7

Ecuacionesdiferenciales ordinarias El cometa Halley tuvo su último perihelio (punto más cercano al Sol) el 9 de febrero de 1986. Sus componentes de posición y velocidad en ese momento fueron:

(x, y, z) = (0.325514, –0.459460, 0.166229)

(

)

dx dy dz –––, –––, ––– = (–9.096111, –6.906686, –1.305721) dt dt dt

Donde la posición se mide en unidades astronómicas (la distancia media de la Tierra al Sol) y el tiempo en años. El cálculo de las coordenadas del cometa en el futuro y la fecha de su próximo perihelio implican la solución de un sistema de ecuaciones diferenciales ordinarias.

Figura 7.1 Cometas.

A dónde nos dirigimos En este capítulo se estudian las técnicas numéricas de solución de ecuaciones diferenciales con condiciones iniciales o de frontera, denominadas problemas de valor inicial o de frontera, respectivamente. Se inicia con la formulación de tales problemas y luego, a partir de las ideas de extrapolación, se plantean métodos como el de Euler y los de Taylor. Más adelante, en un proceso de ponderación de pendientes, se obtienen métodos con diferentes órdenes de exactitud, en los que no se requiere de derivaciones complicadas de funciones, pagándose como precio un mayor número de cálculos. Éstos son conocidos como métodos de Runge-Kutta. Basándose en el proceso de integración implicado en la solución de las ecuaciones diferenciales y en la aproximación de funciones, vista en el capítulo 5, se plantean familias de métodos de predicción-corrección.

535

Métodos Numéricos Aplicados a la Ingeniería

Al final del capítulo se extienden las técnicas vistas a ecuaciones diferenciales de orden superior al primero, transformándolas a sistemas de ecuaciones diferenciales de primer orden y resolviéndolas como tales. Dado que las ecuaciones diferenciales ordinarias permiten modelar procesos dinámicos: vaciado de recipientes, reactores químicos, movimientos amortiguados, desarrollos poblacionales, e incluso situaciones estáticas como la deflexión de vigas y problemas geométricos, y de que las técnicas analíticas son válidas sólo para ciertas ecuaciones muy particulares, las técnicas de este capítulo resultan no sólo complementarias, sino necesarias.

Introducción Se da el nombre de ecuación diferencial a la ecuación que contiene una variable dependiente y sus derivadas respecto de una o más variables independientes. Muchas de la leyes generales de la naturaleza se expresan en el lenguaje de las ecuaciones diferenciales; abundan también las aplicaciones del mismo en ingeniería, economía, en las mismas matemáticas y en muchos otros campos de la ciencia aplicada. Esta utilidad de las ecuaciones diferenciales es fácil de explicar; recuérdese que si se tiene la función y = f (x), su derivada dy/dx puede interpretarse como la velocidad de cambio de y respecto a x. En cualquier proceso natural, las variables incluidas y sus velocidades de cambio se relacionan entre sí mediante los principios científicos que gobiernan el proceso. El resultado de expresar en símbolos matemáticos estas relaciones es a menudo una ecuación diferencial. Se tratará de ilustrar estos comentarios con el siguiente ejemplo: Supóngase que se quiere conocer cómo varía la altura h del nivel en un tanque cilíndrico de área seccional A cuando se llena con un líquido de densidad ρ a razón de G (L/min), como se muestra en la figura 7.2. La ecuación diferencial se obtiene mediante un balance de materia (principio universal de continuidad) en el tanque

Acumulación (kg/min)

=

Entrada (kg/min)



Salida (kg/min)

donde la acumulación significa la variación de la masa de líquido en el tanque respecto al tiempo, la cual se expresa matemáticamente como una derivada d(Vρ)/dt G Lo que entra es –– (kg/min) y el término de salida es nulo, con lo cual la ecuación de continuidad queda ρ como sigue: d ( Vρ ) ––––––––– = G/ρ dt Por otro lado, el volumen de líquido V que contiene el tanque a una altura h es* V = A h. Al sustituir V en la ecuación diferencial de arriba y considerando que la densidad ρ es constante, se llega a * El fondo del tanque es plano.

536

Ecuaciones diferenciales ordinarias

dh A –––– = G dt

(7.1)

ecuación diferencial cuya solución describe cómo cambia la altura h del líquido dentro del tanque con respecto al tiempo t. A continuación se enumeran ejemplos de ecuaciones diferenciales: dy ––– = –ky dt

(7.2)

d2y m –––– = ky dt2

(7.3)

dy 2 ––– + 2 xy = e–x dx

(7.4)

d2y dy –––– – 5 ––– + 6y = 0 2 dx dx

(7.5)

d2y dy (1 – x2) –––– – 2 x ––– + p (p + 1) y = 0 2 dx dx

(7.6)

d2y dy x2 –––– + x ––– + (x2 – p2) = 0 2 dx dx

(7.7)

G(L/min)

h

Figura 7.2 Llenado de un tanque cilíndrico.

La variable dependiente en cada una de estas ecuaciones es y, y la variable independiente es x o t. Las letras k, m y p representan constantes. Una ecuación diferencial es ordinaria si sólo tiene una variable independiente, por lo que todas las derivadas que tiene son ordinarias o totales. Así, las ecuaciones 7.1 a 7.7 son ordinarias. El orden de una ecuación diferencial es el orden de la derivada de más alto orden en ella. Las ecuaciones 7.1, 7.2 y 7.4 son de primer orden, y las demás de segundo. 537

Métodos Numéricos Aplicados a la Ingeniería

7.1 Formulación del problema de valor inicial La ecuación diferencial ordinaria (EDO) general de primer orden es dy ––– = f (x, y) dx

(7.8)

En la teoría de las EDO se establece que su solución general debe contener una constante arbitraria c, de tal modo que la solución general de la ecuación 7.8 es F (x, y, c) = 0

(7.9)

La ecuación 7.9 representa una familia de curvas en el plano x-y, obtenida cada una de ellas para un valor particular de c, como se muestra en la figura 7.3. Cada una de estas curvas corresponde a una solución particular de la EDO 7.8, y analíticamente dichas constantes se obtienen exigiendo que la solución de esa ecuación pase por algún punto (x0, y0); esto es, que y (x0) = y0

(7.10)

lo cual significa que la variable dependiente y vale y0 cuando la variable independiente x vale x0 (véase la curva F2 de la figura 7.3). En los cursos regulares de cálculo y ecuaciones diferenciales se estudian técnicas analíticas para encontrar soluciones del tipo de la ecuación 7.9 a problemas como el de la ecuación 7.8 o, mejor aún, a problemas de valor inicial —ecuación 7.8 y condición 7.10, simultáneamente. En la práctica, la mayoría de las ecuaciones no pueden resolverse utilizando estas técnicas, por lo general debe recurrirse a los métodos numéricos.

y F3 = 0

F2 = 0, con y (x0) = y0 y0 F1 = 0

x0

x

Figura 7.3 Representación gráfica de la solución general de la ecuación 7.9.

538

Ecuaciones diferenciales ordinarias

Cuando se usan métodos numéricos no es posible encontrar soluciones de la forma F (x, y, c) = 0, ya que éstos trabajan con números y dan por resultado números. Sin embargo, el propósito usual de encontrar una solución es determinar valores de y (números) correspondientes a valores específicos de x, lo cual es factible con los mencionados métodos numéricos sin tener que encontrar F (x, y, c) = 0. El problema de valor inicial (PVI) por resolver numéricamente queda formulado como sigue: a) Una ecuación diferencial de primer orden (del tipo 7.8). b) El valor de y en un punto conocido x0 (condición inicial). c) El valor xf donde se quiere conocer el valor de y (yf). En lenguaje matemático quedará así: dy ––– = f (x, y) dx PVI

y (x0) = y0

(7.11)

y (xf) = ? Una vez que se ha formulado el problema de valor inicial, a continuación se describe una serie de técnicas numéricas para resolverlo.

7.2 Método de Euler E1 método de Euler es el más simple de los métodos numéricos para resolver un problema de valor inicial del tipo 7.11. Consiste en dividir el intervalo que va de x0 a xf en n subintervalos de ancho h (véase figura 7.4); o sea xf – x0 h = ––––––– n

(7.12)

de manera que se obtiene un conjunto discreto de (n + 1) puntos:* x0, x1, x2,… , xn del intervalo de interés [x0, xf]. Para cualquiera de estos puntos se cumple que xi = x0 + ih, 0 ≤ i ≤ n

(7.13)

Nótese la similitud de este desarrollo con el primer paso de la integración numérica. La condición inicial y (x0) = y0 representa el punto P0 = (x0, y0) por donde pasa la curva solución de la ecuaci6n 7.11, la cual por simplicidad se denotará como F (x) = y, en lugar de F (x, y, c1) = 0. Con el punto P0 se puede evaluar la primera derivada de F (x) en ese punto; a saber dy F (x) = ––– P0 = f (x0, y0) dx

|

(7.14)

* xf se convierte en xn.

539

Métodos Numéricos Aplicados a la Ingeniería

F (xf )

,y

0

)

y

f( x

0

F (x1) y1

y0 h x0

x1

xi

xi+1

xf = xn

x

Figura i 7.4 Deducción d gráfica fi d dell método d d de Euler. l

Con esta información se procede a trazar una recta, aquella que pasa por P0 y de pendiente f (x0, y0). Esta recta aproxima F (x) en una vecindad de x0. Tómese la recta como remplazo de F (x) y localícese en ella (la recta) el valor de y correspondiente a x1. Entonces, de la figura 7.4 y1 – y0 –––––––– = f (x0, y0) x1 – x0

(7.15)

Se resuelve para y1 y1 = y0 + ( x1 – x0 ) f ( x0, y0 ) = y0 + h f ( x0, y0 )

(7.16)

Es evidente que la ordenada y1 calculada de esta manera no es igual a F (x1), pues existe un pequeño error. No obstante, el valor y1 sirve para aproximar F (x) en el punto P = (x1, y1) y repetir el procedimiento anterior a fin de generar la sucesión de aproximaciones siguiente:

y1 = y0 + h f (x0,y0) y2 = yl + h f (x1, y1) . . . yi+1 = yi + h f (xi, yi) . . . yn = yn–1 + h f (xn–l, yn–l)

540

(7.17)

Ecuaciones diferenciales ordinarias

y

Error final

x x0

x1

x2

x3

x4

xn

Figura 7.5 Aplicación repetida del método de Euler.

Como se muestra en la figura 7.5, en esencia se trata de aproximar la curva y = F (x) por medio de una serie de segmentos de línea recta. Dado que la aproximación a una curva mediante una línea recta no es exacta, se comete un error propio del método mismo. De modo similar a como se hizo en otros capítulos, éste se denominará error de truncamiento. Dicho error puede disminuirse tanto como se quiera (al menos teóricamente) reduciendo el valor de h, pero a cambio de un mayor número de cálculos y tiempo de máquina y, por consiguiente, de un error de redondeo más alto. ,QLTWSV Resuelva el siguiente dy ––– = (x – y) dx PVI

y (0) = 2 y (1) = ?

mediante el método de Euler.

:VS\JP}U Sugerencia: Puede usar un pizarrón electrónico para seguir los cálculos.

541

Métodos Numéricos Aplicados a la Ingeniería

El intervalo de interés para este ejemplo es [0, 1] y al dividirlo en cinco subintervalos se tiene 1–0 h = –––––– = 0.2 5 con lo cual se generan los argumentos x0 = 0.0, x1 = x0 + h = 0.0 + 0.2 = 0.2 x2 = x1 + h = 0.2 + 0.2 = 0.4 . . . x5 = x4 + h = 0.8 + 0.2 = 1.0 Con x0 = 0.0, y0 = 2 y las ecuaciones 7.17 se obtienen los valores y1 = y (0.2) = 2 + 0.2[0.0 – 2] = 1.6 y2 = y (0.4) = 1.6 + 0.2[0.2 – 1.6] = 1.32 y3 = y (0.6) = 1.32 + 0.2[0.4 – 1.32] = 1.136 y4 = y (0.8) = 1.136 + 0.2[0.6 – 1.136] = 1.0288 y5 = y (1.0) = 1.0288 + 0.2[0.8 – 1.0288] = 0.98304 Por otro lado, la solución analítica es 1.10364 (el lector puede verificarla resolviendo analíticamente el PVI); el error cometido es 0.1206 en valor absoluto y 10.92 en por ciento (véase figura 7.6).

y y0

2

1.8

1.6

1.4

Solución analítica Solución con método de Euler

1.2

Error

1

0.8 –0.2

542

y5

0 x0

0.2

0.4

0.6

0.8

1 x5

x

F Figura 7.6 SSolución aanalítica en ccontraste con el método de Euler m aaplicado cinco vveces.

Ecuaciones diferenciales ordinarias

Algoritmo 7.1 Método de Euler Para obtener la aproximación YF a la solución de un problema de valor inicial o PVI (véase ecuación 7.11), proporcionar la función F (X,Y) y los DATOS:

La condición inicial X0, Y0, el valor XF donde se desea conocer el valor de YF y el número N de subintervalos por emplear. RESULTADOS: Aproximación a YF: Y0. PASO 1. Hacer H = (XF – X0)/N. PASO 2. Hacer I = 1. PASO 3. Mientras I ≤ N, repetir los pasos 4 a 6. PASO 4. Hacer Y0 = Y0 + H * F(X0, Y0). PASO 5. Hacer X0 = X0 + H. PASO 6. Hacer I = I + 1. PASO 7. IMPRIMIR Y0 y TERMINAR.

7.3 Métodos de Taylor Antes de proceder a la explicación de estos métodos, conviene hacer una acotación al método de Euler. Puede decirse que el método de Euler utiliza los primeros dos términos de la serie de Taylor para su primera iteración; o sea F (x1) ≈ y1 = F (x0) + F (x0) (x1 – x0)

(7.18)

donde se señala que yl no es igual a F (xl). Esto pudo hacer pensar que para encontrar y2, se expandió de nuevo F (x) en serie de Taylor, como sigue: F (x2) ≈ y2 = F (x1) + F (x1) (x2 – x1)

(7.19)

sin embargo, no se dispone de los valores exactos de F (xl) y F (xl) y, rigurosamente hablando, son los que deben usarse en una expansión de Taylor de F (x) —en este caso alrededor de xl—; por lo tanto, el lado derecho de la ecuación 7.19 no es evaluable. Por ello, sólo en la primera iteración, para encontrar yl, se usa realmente una expansión en serie de Taylor de F (x), aceptando desde luego que se tienen valores exactos en la condición inicial y0 = F (x0). Después de eso, se emplea la ecuación yi+1 = yi + f (xi , yi) (xi+1 – xi) = F (xi) + F (x i) (xi+1 – xi)

(7.20)

que guarda similitud con una expansión en serie de Taylor. Una vez aclarado este punto, a continuación se aplicará la información acerca de las series de Tay– lor para mejorar la exactitud del método de Euler y obtener extensiones que constituyen la familia de métodos llamados algoritmos de Taylor. Si se usan tres términos en lugar de dos en la expansión de F (x1), entonces (x1 – x0)2 F (x1) ≈ y1 = F (x0) + F (x0) (x1 – x0) + F(x0) –––––––––– 2!

(7.21) 543

Métodos Numéricos Aplicados a la Ingeniería

Como dF (x) df (x, y) F(x) = –––––––– = ––––––––– dx dx y h = xl – x0 la primera iteración (ecuación 7.21) tomaría la forma* h2 df (x, y) yl = y0 + hf (x0, y0) + ––– ––––––––– 2! dx x0, y0

|

(7.22)

Ahora cabe pensar que, usando una fórmula de iteración basada en la ecuación 7.22 para obtener y2, y3,… , yn mejoraría la exactitud obtenida con la 7.18. Se propone entonces la fórmula

h2 df (x, y) yi+1 = yi + h f (xi, yi) + ––– ––––––––– 2! dx

| x, y i

(7.23) i

que equivaldría a usar una curva que pasa por el punto (x0, y0), cuya pendiente y segunda derivada serían iguales que las de la función desconocida F (x) en el punto (x0, y0). Como puede verse en la figura 7.7, en general se obtiene una mejor aproximación que con el método de Euler, aunque realizando un mayor número de cálculos. La utilidad de esta ecuación depende de cuán fácil sea la diferenciación de f (x, y). Si f (x, y) es una función sólo de x, la diferenciación respecto de x es relativamente fácil y la fórmula propuesta es muy práctica. Si, como es el caso general, f (x, y) es una función de x y y, habrá que usar derivadas totales. La derivada total de f (x, y) con respecto a x está dada por d f (x, y) ∂f (x, y) ∂f (x, y) dy ––––––––– = ––––––––– + ––––––––– ––– dx ∂x ∂y dx Si aplicamos las ideas vistas en el método de Euler, pero empleando como fórmula la ecuación 7.23, obtendremos el método de Taylor de segundo orden. Esto último es indicativo de la derivada de mayor orden que se emplea y de cierta exactitud. Con esta terminología, al método de Euler le correspondería el nombre de método de Taylor de primer orden.

df (x, y) * La notación –––––––– significa la evaluación de la derivada de f (x, y) con respecto a x en el punto (x0, y0). dx x0, y0

|

544

Ecuaciones diferenciales ordinarias

Error Taylor

7 y = F (x)

Error Euler

6

5

4

3 y0 2 Taylor orden 2 1

Euler

0 0

0.5

1 x0

1.5

2 x1

Figura 7.7 Comparación gráfica de los errores del método de Euler y el método de Taylor de orden 2.

,QLTWSV Resuelva el PVI del ejemplo 7.1 por el método de Taylor de segundo orden. Puede utilizar un pizarrón electrónico para seguir los cálculos. :VS\JP}U Al utilizar de nuevo cinco intervalos, se tiene h = 0.2

x0 = 0.0

x1 = 0.2

x3 = 0.6

x4 = 0.8

x5 = 1.0

x2 = 0.4

Se aplica la ecuación 7.23 con y0 = 2 y con d f (x, y) ∂ f ( x, y ) ∂ f ( x, y ) –––––––––– = ––––––––––– + ––––––––––– (x – y) = 1 – x + y dx ∂x ∂y dy ya que ––– = x – y dx 545

Métodos Numéricos Aplicados a la Ingeniería

h2 y1 = y (0.2) = y0 + h (x0 – y0 ) + ––– (1 – x0 + y0) 2! 0.22 = 2 + 0.2 (0 – 2) + ––––– (1 – 0 + 2) = 1.66 2 h2 y2 = y (0.4) = y1 + h (x1 – y1) + ––– (1 – x1 + y1) 2! 0.22 = 1.66 + 0.2( 0.2 – 1.66 ) + ––––– (1 – 0.2 + 1.66) = 1.4172 2 al continuar este procedimiento se llega a y5 = y (1.0) = 1.11222 que da un error absoluto de 0.00858 y un error porcentual de 0.78. Nótese la mayor exactitud y el mayor número de cálculos.

La extensión de esta idea a cuatro, cinco o más términos de la serie de Taylor significaría obtener métodos con mayor exactitud, pero menos prácticos, ya que éstos incluirían diferenciaciones complicadas de f (x, y); por ejemplo, si se quisieran usar cuatro términos de la serie, se necesitaría la segunda derivada de f (x, y), la cual está dada por d2f (x, y) ∂2f (x, y) dy ∂2f (x, y) dy 2 ∂2f (x, y) –––––––––– = –––––––––– + 2 ––– –––––––––– + ––– –––––––––– dx2 ∂x2 dx ∂x ∂y dx ∂y2

( )

∂f (x, y) ∂f ( x, y) ∂f ( x, y) + ––––––––– –––––––––– + –––––––––– ∂x ∂y ∂y

(

) –––dxdy 2

Las derivadas totales de orden superior al segundo de f (x, y) son todavía más largas y complicadas. Ya que el uso de varios términos de la serie de Taylor presenta serias dificultades, los investigadores han buscado métodos comparables con ellos en exactitud aunque más fáciles. De hecho, el patrón para evaluarlos son los métodos derivados de la serie de Taylor; por ejemplo, dado un método se compara con el derivado de la serie de Taylor que proporcione la misma exactitud. La derivada de más alto orden en este último confiere el orden del primero. Un método que diera una exactitud comparable al método de Euler sería de primer orden; si proporcionara una exactitud comparativamente igual a usar tres términos de la serie de Taylor, sería de segundo orden, y así sucesivamente. A continuación se estudian métodos de orden dos, tres, ..., en los que no se requieren diferenciaciones de f (x, y).

7.4 Método de Euler modificado En el método de Euler se tomó como válida, para todo el primer subintervalo, la derivada encontrada en un extremo de éste (véase figura 7.4). Para obtener una exactitud razonable se utiliza un intervalo muy pequeño, a cambio de un error de redondeo mayor (ya que se realizarán más cálculos). 546

Ecuaciones diferenciales ordinarias

El método de Euler modificado trata de evitar este problema utilizando un valor promedio de la derivada tomada en los dos extremos del intervalo, en lugar de la derivada tomada en un solo extremo. Este método consta de dos pasos básicos:* 1. Se parte de (x0, y0) y se utiliza el método de Euler a fin de calcular el valor de y correspondiente a x1. Este valor de y se denotará aquí como – y1, ya que sólo es un valor transitorio para y1. Esta parte del proceso se conoce como paso predictor. 2. El segundo paso se llama corrector, pues trata de corregir la predicción. En el nuevo punto obtenido (x1, y1) se evalúa la derivada f (x1, y1) usando la ecuación diferencial ordinaria del PVI que se esté resolviendo; se obtiene la media aritmética de esta derivada y la derivada en el punto inicial (x0, y0) 1 — [ f (x0, y0) + f (x1, – y1)] = derivada promedio 2 Se usa la derivada promedio para calcular con la ecuación 7.17 un nuevo valor de y1, que deberá ser más exacto que y1 (x1 – x0) y1 = y0 + ––––––––– [ f (x0, y0) + f (x1, – y 1) ] 2 y que se tomará como valor definitivo de y1 (véase figura 7.8). Este procedimiento se repite hasta llegar a yn.

Corrector

y1

Error Euler modificado

Error Euler

f (x0, y0) + f (x1, y1)

f (x1, y1)

2

y1 Predictor f (x0, y0) y0 x0

h

x1

Figura 7.8 Primera iteración del método de Euler modificado. * Se omitió la subdivisión de [x0, xf] en n subintervalos para dar énfasis a los pasos fundamentales de predicción y corrección.

547

Métodos Numéricos Aplicados a la Ingeniería

El esquema iterativo para este método quedaría en general así: Primero, usando el paso de predicción resulta – y i+1 = yi + hf (xi, yi)

(7.24a)

Una vez obtenida – y i+1 se calcula f (xi+1, – y i+1), la derivada en el punto (xi+1, – y i+1) y se promedia con la derivada previa f (xi, yi) para encontrar la derivada promedio 1 — [ f (xi, yi) + f (xi+1, – y i+1)] 2 Se sustituye f (xi, yi) con este valor promedio en la ecuación de iteración de Euler y se obtiene h yi+1 = yi + — [ f (xi, yi) + f (xi+1, – y i+1)] 2

(7.24b)

,QLTWSV Resuelva el PVI del ejemplo 7.1 por el método de Euler modificado. :VS\JP}U Al utilizar nuevamente cinco intervalos, para que la comparación de los resultados obtenidos sea consistente con los anteriores, se tiene:

Primera iteración Primer paso: – y 1 = y0 + hf (x0, y0) = 2 + 0.2 (0 – 2) = 1.6 1 1 Segundo paso: — [ f (x0, y0) + f (x1, – y 1) ] = — [ (0 – 2 ) + (0.2 – 1.6 ) ] = –1.7 2 2 y (0.2) = y1 = 2 + 0.2(–1.7) = 1.66

Segunda iteración Primer paso: – y 2 = y1 + hf (x1, y1) = 1.66 + 0.2(0.2 – 1.66) = 1.368 1 1 Segundo paso: — [ f (x1, y1) + f (x2, – y 2) ] = — [ (0.2 – 1.66 ) + (0.4 – 1.368) ] = –1.214 2 2 y (0.4) = y2 = 1.66 + 0.2(–1.214) = 1.4172 Al continuar los cálculos, se llega a – y 5 = 1.08509 y5 = 1.11222 548

Ecuaciones diferenciales ordinarias

 os resultados obtenidos en este caso son idénticos a los del ejemplo 7.2, en el que se utilizó el métoL do de Taylor de segundo orden; por lo tanto, presumiblemente el método de Euler modificado es de segundo orden. Esto se demuestra en la siguiente sección. Algoritmo 7.2 Método de Euler modificado Para obtener la aproximación YF a la solución de un PVI, proporcionar la función F(X, Y) y los DATOS:

La condición inicial X0, Y0, el valor XF donde se desea conocer el valor de YF y el número N de subintervalos por emplear. RESULTADOS: Aproximación a YF: Y0. PASO 1. Hacer H = (XF – X0) / N. PASO 2. Hacer I = 1. PASO 3. Mientras I ≤ N, repetir los pasos 4 a 7. PASO 4. Hacer Y1 = Y0 + H* F(X0, Y0). PASO 5. Hacer Y0 = Y0 + H/2 * (F(X0, Y0) + F(X0+H,Y1)). PASO 6. Hacer X0 = X0 + H. PASO 7. Hacer I = I + 1. PASO 8. IMPRIMIR Y0 y TERMINAR.

7.5 Métodos de Runge-Kutta Los métodos asociados con los nombres Runge (1885), Kutta (1901), Heun (1900) y otros, para resolver el PVI (ecuación 7.11), consisten en obtener un resultado al que se podría llegar al utilizar un número finito de términos de una serie de Taylor de la forma h2 h3 yi+1 = yi + hf (xi, yi) + ––– f  (xi, yi ) + ––– f  (xi, yi) + … 2! 3!

(7.25)

con una aproximación en la cual se calcula yi+1 de una fórmula del tipo* yi+1 = yi + h [α0 f (xi, yi) + α1 f (xi + μ1 h, yi + b1h) + α2 f (xi + μ2h, yi + b2h) + … + αp f (xi + μph, yi + bph)]

(7.26)

donde las α, μ y b se determinan de modo que si se expandiera f (xi + μjh, yi + bj h), con j = 1, ..., p en series de Taylor alrededor de (xi, yi), se observaría que los coeficientes de h, h2, h3, …, coincidirían con los coeficientes correspondientes de la ecuación 7.25. A continuación se derivará sólo el caso más simple, cuando p = 1, para ilustrar el procedimiento del caso general, ya que los lineamientos son los mismos. A fin de simplificar y sistematizar la derivación, conviene expresar la ecuación 7.26 con p = 1 en la forma yi+1 = yi + h[α0 f (xi, yi) + α1 f (xi + μh, yi + bh)]

(7.27)

* Nótese que en la ecuación 7.26 ya no aparecen derivadas de la función f (x, y), sólo evaluaciones de f (x, y).

549

Métodos Numéricos Aplicados a la Ingeniería

Obsérvese que en esta expresión se evalúa f en (xi, yi) y en (xi + μh, yi + bh). El valor xi + μh es tal que xi < xi + μh ≤ xi+1, para mantener la abcisa del segundo punto dentro del intervalo de interés (véase figura 7.9), con lo que 0 < μ ≤ 1. Por otro lado, b puede manejarse más libremente y expresarse yi + bh, sin pérdida de generalidad, como una ordenada arriba o abajo de la ordenada que da el método de Euler simple yi + bh = yi + λhf (xi,yi) = yi + λk0

(7.28)

con k0 = h f (xi, yi)

yi + 1

(xi + m h, yi + L k0)

yi + hf (xi , yi ) (xi , yi )

xi + 1

xi

Figura 7.9 Deducción del método de Runge-Kutta.

Queda entonces por determinar α0, α1, μ y λ, tales que la ecuación 7.27 tenga una expansión en potencias de h, cuyos primeros términos, tantos como sea posible, coincidan con los primeros términos de la 7.25. Para obtener los parámetros desconocidos, se expande primero f (xi + μh, yi + λk0) en serie de Taylor (obviamente mediante el desarrrollo de Taylor de funciones de dos variables).* ∂f ∂f μ2h2 ∂2f f (xi+ μh, yi + λk0 ) = f (xi, yi) + μh ––– + λk0 ––– + ––––– ––––2 + ∂x ∂y 2! ∂x ∂ 2f λ2k02 ∂2 f + μhλk0 –––––– + –––––– –––– + O (h3) ∂x∂y 2! ∂y2 Todas las derivadas parciales son evaluadas en (xi, yi).

* M. R. Spiegel, Manual de fórmulas y tablas matemáticas, McGraw-Hill, Serie Schaum, México, 1970, p. 113.

550

(7.29)

Ecuaciones diferenciales ordinarias

Se sustituye en la ecuación 7.27 ∂f ∂f yi+1 = yi + α0hf (xi, yi) + α1h f (xi, yi) + μh ––– + λk0 ––– ∂x ∂y

[

μ2h2 ∂2f ∂2f λ2k20 ∂2f + ––––– –––– + μh λ k –––––– + –––––– ––––– + O (h3) 0 2! ∂x2 ∂x∂y 2! ∂∂y2

]

Esta última ecuación se arregla en potencias de h, y queda ∂f ∂f yi+1 = yi + h (α0 + α1) f (xi, yi) + h2 α1 μ –––– + λf (xi, yi ) –––– ∂x ∂y

(

) (7.30)

h3 ∂ 2f ∂2f ∂2f 2 2 + ––– α1 μ2 –––– + 2μ λ f (x , y ) –––––– + λ f (x , y ) –––– + O (h4) i i i i 2 ∂x2 ∂x ∂y ∂ y2

(

)

Para que los coeficientes correspondientes de h y h2 coincidan en las ecuaciones 7.25 y 7.30 se requiere

α0 + α1 = 1 (7.31) 1 1 μα1 = — λα1 = — 2 2 Hay cuatro incógnitas para sólo tres ecuaciones; por tanto, se tiene un grado de libertad en la solución de la ecuación 7.31. Podría pensarse en usar dicho grado de libertad para hacer coincidir los coeficientes de h3. Sin embargo, resulta obvio que esto es imposible para cualquier forma que tenga la función f (x, y). Existe por tanto un número infinito de soluciones de la ecuación 7.31, pero quizá la más simple sea 1 α0 = α1 = —; μ = λ = 1 2 Esta elección conduce al sustituir en la ecuación 7.27 a h yi+1 = yi + — [ f (xi, yi ) + f (xi + h, yi + hf (xi, yi))] 2 o bien

h yi+1 = yi + — (k0 + k1) 2 con

(7.32) k0 = f (xi, yi);

k1 = f (xi + h, yi + hk0)

conocida como algoritmo de Runge-Kutta de segundo orden (lo de segundo orden se debe a que coincide con los primeros tres términos de la serie de Taylor), que es la fórmula del método de Euler modificado, con dos pasos sintetizados en uno. 551

Métodos Numéricos Aplicados a la Ingeniería

Por ser orden superior al de Euler, este método proporciona mayor exactitud (véase el ejemplo 7.3); por tanto, es posible usar un valor de h no tan pequeño como en el primero. El precio es la evaluación de f (x, y) dos veces en cada subintervalo, contra una en el método de Euler. Las fórmulas de Runge-Kutta, de cualquier orden, se pueden derivar en la misma forma en que se llega a la ecuación 7.32. El método de Runge-Kutta de cuarto orden (igual que para orden dos, existen muchos métodos de cuarto orden) es una de las fórmulas más usadas de esta familia y está dado como: h yi+1 = yi + — (k1 + 2k2 + 2k3 + k4), 6

(7.33)

donde k1 = f (xi, yi) k2 = f (xi + h/2, yi + hk1/2) k3 = f (xi + h/2, yi + hk2/2) k4 = f (xi + h, yi + hk3) En la ecuación 7.33 hay coincidencia con los primeros cinco términos de la serie de Taylor, lo cual significa gran exactitud sin cálculo de derivadas; pero a cambio, hay que evaluar la función f (x, y) cuatro veces en cada subintervalo. Al igual que en el método de Euler modificado, puede verse a los métodos de Runge-Kutta como la ponderación de pendientes k1, k2, k3 y k4 con pesos 1, 2, 2, 1, respectivamente para el caso de cuarto orden, dando lugar a una recta de pendiente (k1 + 2k2 + 2k3 + k4)/6, la cual pasa por el punto (x0, y0), que es la que se usa para obtener y1 (véase figura 7.10).

y1

y

Error F (x1)

K4 K1 + 2K2 + 2K3 + K4 6 K3 Solución analítica y0

K2

K1 x0

x1

x

Figura 7.10 Interpretación gráfica del método de Runge-Kutta de cuarto orden.

552

Ecuaciones diferenciales ordinarias

,QLTWSV Resuelva el PVI del ejemplo 7. 1 por el método de Runge-Kutta de cuarto orden (RK-4). Se recomienda utilizar un pizarrón electrónico. :VS\JP}U Al tomar nuevamente cinco subintervalos y emplear la ecuación 7.33, se tiene:

Primera iteración Cálculo de las constantes k1, k2, k3, k4 k1 = f (x0, y0 ) = (0 – 2 ) = –2 k2 = f (x0 + h/2, y0+ hk1 /2) = [(0+0.2/2) – (2 + 0.2(–2)/2)] = –1.7 k3 = f (x0 + h/2, y0 + hk2/2) = [(0 + 0.2/2) – (2 + 0.2(–1.7)/2)] = –1.73 k4 = f (x0 + h, y0 + hk3) = [(0 + 0.2) – (2 + 0.2(–1.73)) ] = –1.454 Cálculo de y1 h y (0.2) = y1 = y0 + — (k1 + 2k2 + 2k3 + k4 ) 6 = 2 + (0.2/6) (–2 + 2 (–1.7 ) + 2 (–1.73) – 1.454) = 1.6562

Segunda iteración Cálculo de las constantes k1, k2, k3, k4 k1 = f (x1, y1) = (0.2 – 1.6562) = –1.4562 k2 = f (x1 + h/2, y1 + hk1/2) = [(0.2 + 0.2/2) – (1.6562 + 0.2(–1.4562/2)] = –1.21058 k3 = f (x1 + h/2, y + hk2/2 ) = [(0.2 + 0.2/2) – (1.6562 + 0.2(–1.21058)/2)] = –1.235142 k4 = f (x1 + h, y1 + hk3) = [(0.2 + 0.2) – (1.6562 + 0.2(–1.235142))] = –1.0091716 Cálculo de y2 h y (0.4) = y2 = y1 + — (k1 + 2k2 + 2k3 + k4) 6 = 1.6562 + (0.2/6)(–1.4562 + 2(–1.21058) + 2(–1.235142) –1.0091716) = 1.410972813 Con la continuación de este procedimiento se obtiene y (0.6) = y3 = 1.246450474 y (0.8) = y4 = 1.148003885 y (1.0) = y5 = 1.103655714 que da un error absoluto de 0.00001 y un error porcentual de 0.0009. 553

Métodos Numéricos Aplicados a la Ingeniería

Los cálculos pueden realizarse con la Voyage 200.

e7_4() Prgm Define f(x, y) = x–y 0¶x0: 2¶y0: 0.2¶h: ClrIO Disp “k x(k) y(k)” Disp “0 “&format (x0, “f1”)&” “&format(y0, “f9”) For i, 1, 5 f(x0, y0)¶k1 f(x0+h/2, y0+h/2*k1)¶k2 f(x0+h/2, y0+h/2*k2)¶k3 f(x0+h, y0+h*k3)¶k4 y0+h/6*(k1+2*k2+2*k3+k4)¶y0 x0+h¶x0 Disp format(i, “f0”)&” “&format(x0, “f1”)&” “&format(y0, “f9”) EndFor EndPrgm

Por su parte, Matlab proporciona un conjunto de funciones para resolver sistemas de ecuaciones diferenciales. A continuación se muestra cómo usar Matlab para resolver este ejemplo con una de dichas funciones. Se escribe una función con el vector de funciones (en este caso de un solo elemento) y se graba con el nombre E74.m, por ejemplo:

function f=E74(x,y) f(1)= x-y;

Después se usa el siguiente guión:

xx=0 : 0.2:1; y0=[2]; [T, Y]=ode45(@e74, xx, y0); Y

Algoritmo 7.3 Método de Runge-Kutta de cuarto orden Para obtener la aproximación YF a la solución de un PVI, proporcionar la función F(X,Y) y los DATOS:

La condición inicial X0, Y0, el valor XF donde se desea conocer el valor de YF y el número N de subintervalos a emplear. RESULTADOS: Aproximación a YF: Y0. PASO 1. PASO 2.

554

Hacer H = (XF – X0)/N. Hacer I = 1.

Ecuaciones diferenciales ordinarias

PASO 3.

PASO 11.

Mientras I ≤ N, repetir los pasos 4 a 10. PASO 4. Hacer K1 = F(X0 , Y0). PASO 5. Hacer K2 = F(X0+H/2 , Y0 + H * K1/2). PASO 6. Hacer K3 = F(X0 + H/2 , Y0 + H * K2/2). PASO 7. Hacer K4 = F(X0 + H , Y0 + H * K3). PASO 8. Hacer Y0 = Y0 + H/6 * (K1 + 2*K2 +2*K3 + K4). PASO 9. Hacer X0 = X0 + H. PASO 10. Hacer I = I + 1. IMPRIMIR Y0 y TERMINAR.

Los métodos descritos hasta aquí se conocen como métodos de un solo paso, porque se apoyan y usan el punto (xi, yi) para el cálculo de yi+1 (por ejemplo, los métodos de Taylor). Los métodos de RungeKutta se apoyan además en puntos entre xi y xi+1, pero nunca en puntos anteriores a xi. Sin embargo, si se usa información previa a xi para el cálculo de yi+1, es posible obtener otras familias de métodos con otras características distintas a las ya vistas. A estos métodos se les llama métodos de múltiples pasos o métodos de predicción-corrección.

7.6 Métodos de predicción-corrección En el esquema iterativo del método de Euler modificado (ver sección 7.4) se utiliza la fórmula h yi+1 = yi + — [f (xi, yi) + f (xi+1, – y i+1)] 2 El segundo término del miembro derecho de esta ecuación recuerda la integración trapezoidal compuesta del capítulo 6. Para ver mejor esta similitud, recuérdese que la solución analítica de la ecuación diferencial del PVI (ecuación 7.11) es y = F (x) y que F (x) = f (x, y) e integrando ambos miembros con respecto a x, se obtiene

 F (x) dx = F (x) =  f (x, y) dx A partir de que F (x) es la integral indefinida de f (x, y), se integra f (x, y) entre los límites de x : xi y xi+1, para obtener xi + 1



xi – 1

f (x, y) dx = F (x)

| xx

i+1

(7.34)

i

= F (xi+1) – F (xi ) ≈ yi+1 – yi donde yi y yi+1 son aproximaciones a F (xi) y F (xi+1), respectivamente. 555

Métodos Numéricos Aplicados a la Ingeniería

Por otro lado, es factible realizar la misma integración, pero con una aproximación trapezoidal entre los puntos (xi, yi) y ( xi+1, yi+1), donde yi+1 se obtuvo en el paso de predicción. xi + 1



xi

h f (x, y) dx ≈ — [ f (xi, yi) + f (xi+1, – y i+1)] 2

(7.35)

donde h es la altura del trapezoide h = xi+1 – xi Al igualar las integrales 7.34 y 7.35, se tiene h yi+1 – yi = — [ f (xi, yi) + f (xi+1, – y i+1)] 2 o bien h yi+1 = yi + — [ f (xi, yi) + f (xi+1, – y i+1)] 2 que da la ecuación de corrección del método de Euler modificado; de esta manera se establece la identificación de este algoritmo y la integración trapezoidal. Esto sugiere, a su vez, la obtención de esquemas iterativos de solución del PVI por medio de la regla de Simpson u otros métodos de integración numérica que usan mayor número de puntos. A continuación se derivará un corrector basado en el método de Simpson 1/3. La ecuación 7.34 toma ahora la forma xi + 1



xi – 1

f (x, y) dx = F (xi+1) – F (xi–1) ≈ yi+1 – yi–1

(7.36)

y la correspondiente a la ecuación 7.35 queda xi + 1



xi – 1

h f (x, y) dx ≈ — [ f (xi–1, yi–1) + 4f (xi, yi) + f (xi+1, – y i+1)] 3

(7.37)

Nótese que se está integrando de xi–1 a xi+1, ya que se utilizan dos subintervalos para cada integración. Al igualar las ecuaciones 7.36 y 7.37 se llega a la fórmula de corrección h y i+1)] yi+1 = yi–1 + — [ f (xi–1, yi–1 ) + 4 f (xi, yi) + f (xi+1, – 3

(7.38)

donde nuevamente hay que obtener – y i+1 con un predictor. Al partir de (x0, y0), la ecuación 7.38 tomaría la forma h y2 = y0 + — [ f (x0, y0) + 4 f (x1, y1) + f (x2, – y 2)] 3 556

(7.39)

Ecuaciones diferenciales ordinarias

para su primera aplicación. En la 7.39 – y 2 es estimada con un predictor, el cual a su vez requiere y1 y f (x1, y1). Así pues, antes de realizar la primera predicción deberán evaluarse ciertos valores iniciales [en este caso y1 y f (x1, y1)]. En esta evaluación se usa alguno de los métodos ya vistos (los de Runge-Kutta, por ejemplo). Este paso se utiliza sólo una vez en el proceso iterativo y se conoce como paso de inicialización. Es evidente que para la predicción también puede utilizarse algún método de los ya estudiados o, como se verá más adelante, puede derivarse un predictor usando las mismas ideas que condujeron a la ecuación 7.39.

,QLTWSV Resuelva el problema de valor inicial del ejemplo 7.1 haciendo uso del corrector dado por la ecuación 7.38 y el método de Euler modificado como inicializador y como predictor. :VS\JP}U El intervalo se divide otra vez en cinco subintervalos y se tiene:

Primera iteración Inicialización: (se toma el valor de y1 del ejemplo 7.3) y1 = 1.66 Predicción: (se toma el valor de y2 del ejemplo 7.3) – y 2= 1.4172 Correción: se utiliza la ecuación 7.39 (puede emplear un pizarrón electrónico) 0.2 y (0.4) = y2 = 2 + –––– [(0 – 2) + 4 (0.2 – 1.66) + (0.4 – 1.4172)] 3 = 1.40952

Segunda interación Predicción h – y 3 = y2 + — [ f (x2, y2) + f (x2 + h, y2 + h f (x2, y2))] 2 0.2 = 1.40952 + –––– [(0.4 – 1.40952) + [( 0.4 + 0.2) – (1.40952) 2 + 0.2 (0.4 – 1.40952)]] = 1.2478064 Corrección (con la ecuación 7.38) h y (0.6) = y3 = y1 + — [ f (x1, y1) + 4 f (x2, y2) + f (x3, – y 3)] 3 557

Métodos Numéricos Aplicados a la Ingeniería

0.2 = 1.66 + –––– [(0.2 – 1.66) + 4 (0.4 – 1.40952) 3 + (0.6 – 1.2478064)] = 1.25027424

Tercera iteración Predicción h – y 4 = y3 + — [ f (x3, y3) + f (x3 + h, y3 + h f (x3, y3))] 2 0.2 = 1.25027424 + –––– [(0.6 – 1.25027424) + [(0.6 + 0.2) 2 – (1.25027424 + 0.2 (0.6 – 1.25027424))]] = 1.153224877 Corrección (con la ecuación 7.38) h y 4)] y (0.8) = y4 = y2 + — [f (x2, y2) + 4 f (x3, y3) + f (x4, – 3 0.2 = 1.40952 + –––– [( 0.4 – 1.40952) + 4 (0.6 – 1.25027424) 3 + (0.8 – 1.153224877)] = 1.145263878

Cuarta iteración Predicción h – y 5 = y4 + — [ f (x4, y4) + f (x4 + h, y4 + h f (x4, y4 ))] 2 0.2 = 1.145263878 + –––– [(0.8 – 1.145263878 ) + [(0.8 + 0.2) 2 – (1.145263878 + 0.2 (0.8 – 1.145263878))]] = 1.10311638 Corrección (con la ecuación 7.38) h y (1) = y5 = y3 + — [ f (x3, y3) + 4 f (x4, y4) + f (x5, – y 5)] 3 0.2 = 1.25027424 + –––– [(0.6 – 1.25027424) + 4 (0.8 – 1.145263878) 3 + (1 – 1.10311638)] = 1.107977831 que da un error absoluto de 0.00434 y 0.0393 en porcentaje.

558

Ecuaciones diferenciales ordinarias

En general, puede obtenerse un corrector de cualquier orden utilizando la fórmula xi + 1



yi+1 = yi–k +

xi – k

f (x, y) dx,

k = 0, 1, 2,…

(7.40)

donde la integración se realiza sustituyendo f (x, y) con un polinomio de grado k + 1 que pasa por (xi+1, – y i+1), (xi, yi,),… , (xi–k, yi–k). En virtud de que se está utilizando xi+1 y las abcisas previas a ésta y a sus espaciamientos regulares, lo más indicado para interpolar f (x, y) es el polinomio de interpolación en su forma de diferencias hacia atrás, dado por la ecuación 5.38 del capítulo 5. La ecuación 7.40 queda entonces xi + 1

yi+1 = yi–k +



p (xi + sh) dx

xi – k

(7.41)

Para la obtención de p(xi + sh), dada por la ecuación 5.38, se empleó el cambio de variable x = xi + sh que permite escribir la ecuación 7.41 en términos de la nueva variable s, ya que dx = h ds xi+1 = xi + sh xi–k = xi + sh

de donde s = 1 de donde s = –k

(7.42)

Al sustituir se llega a 1

yi+1 = yi–k + h



p (xi + sh) ds

–k

o bien 1



yi+1 = yi–k + h

[ f (xi+1, – y i+1) + (s – 1) f ( xi+1, – y i+1) +

–k

(s – 1) s (s – 1) s (s + 1) ––––––––– 2 f (xi+1, – y i+1) + –––––––––––––––– 3 f (xi+1, – y i+1) 2! 3! (s – 1) s (s + 1)…(s + r – 2) y i+1)] ds + … + –––––––––––––––––––––––––––––– r f (xi+1, – r! La disimilitud de los coeficientes de las diferencias hacia atrás con los de la ecuación 5.38 se debe a que se está utilizando xi+1 como punto base. Si se denota por fj = f (xj, – y j) para j = i – k, i – k + 1,… , i + 1, la última ecuación queda 1

yi+1 = yi+k + h



–k

(s – 1) s [ fi+1 + (s – 1)  fi+1 + ––––––––– 2 fi+1 + 2!

559

Métodos Numéricos Aplicados a la Ingeniería

(s – 1) s (s + 1) (s – 1) s…(s + r – 2) + –––––––––––––––– (s – 1) s (s + 1) 3 fi+1 + … + –––––––––––––––––––––– r fi+1] ds 3! r!

(7.43)

y al integrar se llega a s 1 s2 — – — 3 2 s yi+1 = yi–k + h [sfi+1 + s –– – 1 fi+1 + –––––––––––––– 2 fi+1 2 2!

(

(

)

)

s2 1 s5 s4 s3 s2 — – — — + — – — – s2 4 2 5 2 3 + –––––––––––––– 3 fi+1 + –––––––––––––––––––––– 4 fi+1 + términos restantes] 3! 4!

(

)

(

)

|

1

(7.44)

–k

para k = 0, 1, 3 y 5, la ecuación 7.44 da k=0 1 1 1 yi+1 = yi+h [fi+1 – —  fi+1 – ––– 2 fi+1 – ––– 3 fi+1 + términos restantes] 2 12 24

(7.44a)

k=1 1 yi+1 = yi–1 + h [ 2 fi+1 – 2 fi+1 + — 2 fi+1 + 0 3 fi+1 3 (7.44b) 1 – ––– 4 fi+1 + términos restantes] 90 k=3 20 8 yi+1 = yi–3 + h [ 4 fi+1 – 8 fi+1 + ––– 2 fi+1 – — 3 fi+1 3 3 (7.44c) 14 + ––– 4 fi+1 + 0 5 fi+1 + términos restantes] 45 k=5 yi+1 = yi–5 + h [ 6 fi+1 – 18 fi+1 + 27 2 fi+1 – 24 3 fi+1 (7.44d) 123 33 + ––––– 4 fi+1 – ––– 5 fi+1 + términos restantes] 10 10 Independientemente del valor que se elija para k, se debe seleccionar también el orden del corrector, el cual está dado en estas fórmulas por el orden r más uno de la diferencia hacia atrás de más alto orden que se utilice. Por ejemplo, para correctores de cuarto orden cabe emplear, entre otras, las combinaciones: 560

Ecuaciones diferenciales ordinarias

k = 0, r = 3 1 1 1 yi+1 = yi + h [ fi+1 – —  fi+1 – ––– 2 fi+1 – ––– 3 fi+1] 2 12 24

(7.45a)

1 yi+1 = yi–1 + h [ 2 fi+1 – 2  fi+1 + — 2 fi+1 + 0 3 fi+1] 3

(7.45b)

k = 1, r = 3

Por ejemplo, para el orden sexto se usa k = 3, r = 5 20 8 14 yi+1 = yi–3 + h [ 4 fi+1 – 8  fi+1 + ––– 2 fi+1 – — 3 fi+1 + ––– 4 fi+1] 3 3 45

(7.45c)

Si se desarrollan las diferencias hacia atrás en estas fórmulas, se obtienen versiones de 7.45a, 7.45b y 7.45c más útiles para programar; es decir

k = 0, r = 3 h yi+1 = yi + ––– [ 9 fi+1 + 19 fi – 5 fi–1 + fi–2] 24

(7.46a)

k = 1, r = 3 h yi+1 = yi–1 + — [ fi+1 + 4 fi + fi–1] 3

(7.46b)

k = 3, r = 5 2h yi+1 = yi–3 + ––– [ 7 fi+1 + 32 fi + 12 fi–1 + 32 fi–2 + 7 fi–3] 45

(7.46c)

Esta familia de correctores se conoce como correctores de Adams-Moulton, y uno de los más usados es la ecuación 7.46a, la cual toma la forma h y3 = y2 + ––– [9f3 + 19f2 – 5 f1 + f0] 24 para su primera aplicación o, regresando a la notación original: h y3 = y2 + ––– [9 f (x3, – y 3) + 19 f (x2, y2) – 5 f (x1, y1) + f (x0, y0)] 24

(7.47)

561

Métodos Numéricos Aplicados a la Ingeniería

donde y1, f (x1, y1), y2, f (x2, y2) deben calcularse previamente por un inicializador y – y 3 por un predictor. No podría emplearse este corrector para calcular, por ejemplo, y2, ya que tomaría la forma h y2 = y1 + ––– [9 f (x2, – y 2) + 19 f (x1, y1) – 5 f (x0, y0) + f (x–1, y–1)] 24 que requiere información en la abscisa x–1, que está fuera del intervalo de interés. ,QLTWSV Resuelva el PVI del ejemplo 7.1 con el corrector de la ecuación 7.46a. :VS\JP}U El intervalo de interés [0, 1] se vuelve a dividir en cinco subintervalos y se usa el método de Runge-Kutta de cuarto orden, tanto de inicializador como de predictor. Es conveniente utilizar un inicializador y un predictor del mismo orden que el corrector.

Primera iteración Inicialización con RK-4 (se toman los valores del ejemplo 7.4) y (0.2) = 1.656200000 = y1 y (0.4) = 1.410972813 = y2 Predicción con RK-4 (se toma el valor del ejemplo 7.4) y (0.6) = 1.246450474 = – y3 Corrección con la ecuación 7.47 02 y3 = 1.410972813 + ––– [9 (0.6 – 1.246450474) + 24 19 (0.4 – 1.410972813) –5 (0.2 – 1.6562) + (0 – 2)] = 1.246426665

Segunda iteración Predicción con RK-4 Cálculo de las constantes k1, k2, k3 y k4 k1 = f (x3, y3) = (0.6 – 1.24642665) = –0.646426665 k2 = f (x3 + h/2, y3 + hk1/2) = [(0.6 + 0.2/2) – (1.246426665 + 0.2 (–0.646426665)/2)] = – 0.481783999 k3 = f (x3 + h/2, y3 + hk2/2) = [(0.6 + 0.2/2) – (1.246426665 562

Ecuaciones diferenciales ordinarias

+ 0.2 (–.481783999)/2)] = –0.498248265 k4 = f (x3 + h, y3 + hk3) = [(0.6 + 0.2) – (1.246426665 + 0.2 (–0.498248265))] = –0.346777012 Cálculo de – y4 h – y 4 = y3 + — (k1 + 2k2 + 2k3 + k4) 6 0.2 = 1.246426665 + –––– (–0.646426665 + 2 (–0.481783999) 6 +2 (–0.498248265) – 0.346777012 ) = 1.147984392 Corrección con la ecuación 7.46a h y4 = y3 + ––– [9 f (x4, – y 4) + 19 f (x3, y3 ) –5 f (x2, y2) + f (x1, y1) 24 0.2 = 1.246426665 + –––– [9(0.8 – 1.147984392 ) + 19(0.6 – 1.246426665) 24 –5 (0.4 – 1.410972813) + (0.2 – 1.6562)] = 1.147965814

Tercera iteración Predicción con RK-4 Corrección con (7.46a)

– y 5 = 1.103624544 y5 = 1.103609057

con un error absoluto de 0.0000292 y un error porcentual de 0.00265. Los cálculos pueden hacerse con la Voyage 200.

e7_6() Prgm Define f(x,y)= x-y Define rk4(h,i) = Prgm f(x[i],y[i])¶k1 f(x[i]+h/2,y[i]+h/2*k1)¶k2 f(x[i]+h/2,y[i]+h/2*k2)¶k3 f(x[i]+h,y[i]+h*k3)¶k4 y[i]+h/6*(k1+2*k2+2*k3+k4)¶y[i+1] x[i]+h¶x[i+1] EndPrgm 0¶x[1]: 2¶y[1] : 0.2¶h: ClrIO

563

Métodos Numéricos Aplicados a la Ingeniería

Disp “k x(k) y(k)” Disp “0 “&format(x[1], “f1”)&” “&format(y[1], “f9”) For i, 1, 2 rk4(h,i) Disp format(i,“f0”)&” “&format(x[i+1],“f1”)&” “&format(y[i+1],“f9”) End For For i, 3, 5 rk4(h,i) y[i] +h/24*(9*f(x[i+1],y[i+1]) + 19*f(x[i],y[i])–5*f(x[i–1],y[i–1]) + f(x[i–2],y[i–2]))¶y[i+1] disp format(i,“f0”)&” “&format(x[i+1],“f1”)&” “&format(y[i+1],“f9”) EndFor EndPrgm

Métodosdepredicción Anteriormente se habló de una familia de predictores obtenida a partir del mismo principio de integración que se empleó para los métodos de Adams-Moulton. A esta familia, que se deduce a continuación, se le llama métodos de Adams-Bashforth. En general, para obtener un predictor de cualquier orden se utiliza la fórmula 7.40 xi + 1



yi+1 = yi–k +

xi – k

f (x, y) dx

pero ahora la integración se realiza sustituyendo f (x, y) con un polinomio de grado k que pasa por (xi, yi),… ,(xi–k, yi–k); (véase figura 7.11). Obviamente, se utiliza el polinomio de interpolación en su forma de diferencias hacia atrás, pues xi,… , xi–k están regularmente espaciadas. Entonces, al aplicar la ecuación 5.38 se obtiene xi + 1

yi+1 = yi–k +



p (xi + sh) ds

xi – k

donde los límites de integración y dx, en términos de la nueva variable s, quedan como en la ecuación 7.42. Por lo tanto: 1

yi+1 = yi–k + h 1

yi+1 = yi–k + h



–k



p (xi + sh) ds

–k

(7.48)

2fi [ fi + s fi + s (s + 1) ––––– 2!

3 f r f + s (s + 1) (s + 2) –––––i + … + s (s + 1) (s + 2)…(s + k – 1) –––––i ] ds 3! r! Nótese que ahora el integrando es exactamente la ecuación 5.38, ya que en esta ocasión se está utilizando xi como punto base. Al integrar la ecuación 7.48, se obtiene:

564

Ecuaciones diferenciales ordinarias

y

yi–2 yi–1

pi(xi + a h) yi yi–1

y = F (x)

yi–r

xi–r

xi–2

–r

xi–1

–2

–1

xi

0

xi+1

x

1

Figura 7.11 Métodos de Adams-Bashforth.

s2 s 1 2 f yi+1 = yi-k + h [ sfi + ––  fi + s2 — + — –––––i + 2 3 2 2!

(

)

(7.49) s2 3 f s3 3s2 11s 4 f s2 ––– + s + 1 –––––i + s2 ––– + –––– + –––– + 3 –––––i + términos faltantes ] 4 3! 5 2 3 4!

(

)

(

)

|

1 –k

La ecuación 7.49 para k = 0, 1, 2 y 3 toma las formas k=0 1 5 3 yi+1 = yi + h [ fi + — fi + ––– 2 fi + — 3fi 2 12 8 (7.50a) 251 + ––––– 4fi + términos faltantes ] 720 k=1 1 1 yi+1 = yi–1 + h [2fi + 0 fi + — 2fi + — 3fi + 3 3

(7.50b)

29 ––– 4fi + términos faltantes] 90 k=2 3 3 3 yi+1 = yi–2 + h [3fi – — fi + — 2fi + — 3fi + 2 4 8 (7.50c) 27 ––– 4fi + términos faltantes ] 80 565

Métodos Numéricos Aplicados a la Ingeniería

k=3 8 14 yi+1 = yi–3 + h [4 fi – 4 fi + — –2 fi + 0 3fi + ––– 4fi + términos faltantes] 3 45

(7.50d)

La ecuación 7.50a significa la integración aproximada de una función que pasa por los puntos (xi–r, yi–r), (xi–r+1, yi–r+1) ,… , (xi, yi), donde el subíndice r representa el grado del polinomio que se toma y r+1 da el orden del predictor. El intervalo de integración es xi, xi+1 (véase figura 7.11). La ecuación 7.50b usa los mismos puntos que la 7.50a, pero con intervalo de integración [xi–1, xi+1]. Las fórmulas más usadas de esta familia son: k = 0, r = 3 1 5 3 yi+1 = yi + h [ fi + — fi + ––– 2 fi + — 3fi ] 2 12 8

(7.51)

k= 1, r = 1 yi+1 = yi–1 + h [ 2 fi + 0 fi ]

(7.52)

k = 3, r = 3 8 yi+1 = yi–3 + h [4fi–4 fi + — 2 fi + 0 3 fi ] 3

(7.53)

33 yi+1 = yi–5 + h [6 fi – 12 fi + 15 2 fi – 9 3 fi + ––– 4 fi + 0 5fi] 10

(7.54)

k = 5, r = 5

cuya apariencia al desarrollar los operadores en diferencias hacia atrás resulta ser: k = 0, r = 3 h yi+1 = yi + ––– [55fi – 59 fi–1 + 37 fi–2 – 9 fi–3] 24

(7.55)

k = 1, r = 1 yi+1 = yi–1 + 2hfi

(7.56)

k = 3, r = 3 4h yi+1 = yi–3 + ––– [2 fi – fi–1 + 2 fi–2] 3 k = 5, r = 5

566

(7.57)

Ecuaciones diferenciales ordinarias

3h yi+1 = yi–5 + ––– [11 fi – 14 fi–1 + 26 fi–2 – 14 fi–3 + 11 fi–4] 10

(7.58)

Es importante hacer notar que estas fórmulas son métodos para resolver el PVI (ecuación 7.11). La ecuación 7.55 toma la forma h y4 = y3 + ––– [55f (x3, y3) – 59f (x2, y2) + 37f (x1, y1) – 9 f (x0, y0)] 24

(7.59)

para su primera aplicación, y no sería posible determinar con ella un valor de y menor de y4 (y3, por ejemplo). Por otro lado, y1, f (x1, y1); y2, f (x2, y2), y y3, f (x3, y3) deberán determinarse con un inicializador. Con estos métodos y la familia de los Adams-Moulton pueden integrarse esquemas iterativos conocidos como métodos de predicción-corrección, que en general funcionan como sigue: 1. Inicialización* (se sugiere uno de la familia de Runge-Kutta). 2. Predictor (para corresponder con el inicializador se sugiere usar un predictor del mismo orden). 3. Corrección (se emplea un corrector del mismo orden que el predictor y el inicializador).

,QLTWSV Resuelva el PVI del ejemplo 7.1 usando como inicializador un RK-4, como predictor la ecuación 7.55 y como corrector la ecuación 7.46a. :VS\JP}U El intervalo de interés [ 0, 1 ] se divide nuevamente en cinco subintervalos y se tiene:

Primera iteración Inicialización (tómense nuevamente los valores del ejemplo 7.4) y1 = 1.656200000 y2 = 1.410972813 y3 = 1.246450474 Predicción 0.2 – y 4 = 1.246450474 + ––– [55 (0.6 – 1.246450474) – 59 (0.4 24 –1.410972813) + 37(0.2 – 1.6562) – 9(0 – 2)] = 1.148227306

* Recuérdese que este paso sólo se da en la primera iteración.

567

Métodos Numéricos Aplicados a la Ingeniería

Corrección (con la ecuación 7.46a) h y4 = y3 + ––– [9 f (x4, – y 4) + 19 f (x3, y3) – 5 f (x2, y2) + f (x1, y1)] 24 0.2 = 1.246450474 + –––– [9 (0.8 –1.148227306) + 19 (0.6 – 1.246450474) 24 –5 (0.4 – 1.410972813) + (0.2 – 1.6562)] = 1.147967635

Segunda iteración Predicción h – y 5 = y4 + ––– [55 f (x4, y4) – 59 f (x3 , y3) + 37 f (x2, y2) – 9 f (x1, y1)] 24 0.2 = 1.147967635 + –––– [55 (0.8 – 1.147967635) – 59 (0.6 – 1.246450474) 24 + 37 (0.4 – 1.410972813) – 9 (0.2 – 1.6562)] = 1.103819001 Corrección (con la ecuación 7.46a) h y5 = y4 + ––– [9 f (x5, – y 5) + 19 f (x4, y4) – 5 (x3, y3) + f (x2, y2)] 24 0.2 = 1.147967635 + ––– [ 9 (1 – 1.103819001) + 19 (0.8 – 1.147967635) 24 –5(06 – 1.246450474) + (0.4 – 1.410972813)] = 1.103596997 con un error absoluto de 0.00004 y un error porcentual de 0.0037.

Nótese que, aunque el corrector puede emplearse para mejorar y3 en su primera aplicación (véase el ejemplo 7.6), el predictor estima a y4 en su primera aplicación, y a partir de ahí se comienza a corregir. Ésta es sólo una de las muchas formas en que se utilizan estos métodos de predicción-corrección. Algoritmo 7.4 Método predictor-corrector (Inicialización con el método Runge-Kutta de cuarto orden, predicción con la ecuación 7.55 y corrección con la 7.46a). Para obtener la aproximación YF a la solución de un PVI, proporcionar la función F(X, Y) y los DATOS:

La condición inicial X0, Y0; el valor XF donde se desea conocer el valor de YF y el número N de subintervalos por emplear. RESULTADOS: Aproximación YF: Y(4).

568

Ecuaciones diferenciales ordinarias

PASO 1. PASO 2. PASO 3. PASO 4. PASO 5.

Hacer H = (XF – X0)/N. Hacer X(0) = X0. Hacer Y(0) = Y0. Hacer J = 1. Mientras J ≤ 3, repetir los pasos 6 a 9. PASO 6. Realizar los pasos 4 a 9 del algoritmo 7.3. PASO 7. Hacer X(J) = X0. PASO 8. Hacer Y(J) = Y0. PASO 9. Hacer J = J +1. PASO 10. Hacer I = 4. PASO 11. Mientras I ≤ N, repetir los pasos 12 a 20. PASO 12. Hacer Y(4) = Y(3) + H/24* (F(X(3), Y(3))– 59* F(X(2), Y(2)) + 37* F(X(1), Y(1))–9*F(X(0), Y(0))). PASO 13. Hacer X(4) = X(3) + H. PASO 14. Hacer Y(4) = Y(3) + H/24* (9*F(X(4), Y(4)) + 19*F(X(3), Y(3)) –5*F(X(2), Y(2)) + F(X(1), Y(1))). PASO 15. Hacer J = 0. PASO 16. Mientras J ≤ 3, repetir los pasos 17 a 19. PASO 17. Hacer X(J) = X(J +1). PASO 18. Hacer Y(J) = Y(J + 1). PASO 19. Hacer J = J +1. PASO 20. Hacer I = I +1. PASO 21. IMPRIMIR Y(4) y TERMINAR.

7.7 Ecuaciones diferenciales ordinarias de orden superior y sistemas de ecuaciones diferenciales ordinarias Cuando en el problema de valor inicial aparecen una ecuación diferencial de orden n, n condiciones especificadas en un punto x0 y un punto xf donde hay que encontrar el valor de y (xf), se tiene el problema de valor inicial general (PVIG)

PVIG

dny –––– = f (x, y, y, y ,… , y (n–1) ) dxn y (x0) = y0, y (x0) = y0,… , y (n–1) (x0) = y0(n–1) y (xf ) = ?

(7.60)

Para resolver la ecuación anterior no se desarrollan nuevos métodos, sino que se emplea una extensión de los estudiados en este capítulo. Para ello necesitaremos primero pasar la ecuación diferencial ordinaria o EDO de 7.60 a un sistema de n ecuaciones diferenciales simultáneas de primer orden cada una. Esto se logra de la siguiente manera: Sea dada dny –––– = f (x, y, y , y ,… , y (n–1) ) dxn Se realiza el siguiente cambio de variables: 569

Métodos Numéricos Aplicados a la Ingeniería

y1 = y y2 = y y3 = y y4 = y . . . yn = y (n–1) Se deriva miembro a miembro la primera y se sustituye en la segunda, con lo que se obtiene y1 = y2 Al derivar la segunda y sustituir en la tercera, resulta y2 = y3 El procedimiento se repite hasta llegar al sistema de n ecuaciones de primer orden siguiente: y1 = y2 y2 = y3 y3 = y4 . . . yn–1 = yn

dny yn = ––––– = f (x, y, y, y,… , y (n–1)) = f (x, y1, y2, y3,… , yn) dxn ,QLTWSV Convierta la ecuación diferencial ordinaria dy d 2y ––––2 + ––– = x2 + y 2 dx dx a un sistema de dos ecuaciones diferenciales ordinarias simultáneas de primer orden. :VS\JP}U Con el “despeje” de la derivada de segundo orden, se tiene d2y ––––– = –y + x2 + y2 dx2 El cambio de variables es y1 = y ; y2 = y 570

Ecuaciones diferenciales ordinarias

Al derivar la primera y sustituir en la segunda, queda y1 = y2 Se deriva la segunda y2 = y y las nuevas variables se sustituyen en la ecuación diferencial, con lo cual resulta y1 = y2 y2 = – y2 + x2 + y12 el sistema pedido.

,QLTWSV Una de las ecuaciones diferenciales ordinarias más empleadas en la matemática física es la ecuación de Bessel: x2 y + x y + (x2 – n2) y = 0 donde n puede tener cualquier valor, pero generalmente toma un valor entero. Escriba esta ecuación como un sistema de ecuaciones diferenciales ordinarias de primer orden. :VS\JP}U La ecuación se pone en la forma normal 1 n2 y = – — y + ( ––– –1) y x x2 Algunas veces, para los cálculos computacionales es más conveniente emplear y=y y = z como nuevas variables. Se deriva la segunda y se tiene y = z El sistema queda y = z 1 n2 z = – — z + ( ––– –1 ) y x x2 sistema que sólo podrá resolverse para valores de x distintos de cero. 571

Métodos Numéricos Aplicados a la Ingeniería

En general, una ecuación diferencial ordinaria de n-ésimo orden queda convertida en un sistema de n ecuaciones diferenciales ordinarias simultáneas de la forma general y1 = f1 (x, y1, y2,… , yn) y2 = f2 (x, y1, y2,… , yn) . . . yn = fn (x, y1, y2,… , yn) que puede resolverse aplicando, por ejemplo, alguno de los métodos de Runge-Kutta a cada ecuación e iterando cada ecuación en turno, tal como en los sistemas de ecuaciones no lineales del capítulo 4, a los métodos de predicción-corrección. Si se aplica, por ejemplo, el método de Runge-Kutta de cuarto orden a dos ecuaciones simultáneas de la forma y = f1 (x, y, z ) z = f2 (x, y, z ) donde sólo se emplea z como nueva variable a fin de no usar subíndices dobles en las ecuaciones h yi+1 = yi + — (k1 + 2k2 + 2k3 + k4) 6 (7.61a) h zi+1 = zi + — (c1 + 2c2 + 2c3 + c4) 6 las cuales se calculan alternadamente, y las k y c se obtienen de k1 = f1 (xi, yi, zi) c1 = f2 (xi, yi, zi) k2 = f1 (xi + h/2, yi + hk1/2, zi + hc1/2) c2 = f2 (xi + h/2, yi + hk1/2, zi + hc1/2) k3 = f1 (xi + h/2, yi + hk2/2, zi + hc2/2)

(7.71b)

c3 = f2 (xi + h/2, yi + hk2/2, zi + hc2/2) k4 = f1 (xi + h, yi + hk3, zi + hc3) c4 = f2 (xi + h, yi + hk3, zi + hc3) calculadas en ese orden. ,QLTWSV Resuelva el siguiente problema de valor inicial por el método de Runge-Kutta de cuarto orden. (Puede usar el CD o Mathcad.)

572

Ecuaciones diferenciales ordinarias

1 1 y = – — y + –––2 – 1 y x x y (1) = 1 y (1) = 2 y (3) = ?

(

PVI

)

Nótese que la EDO es la ecuación de Bessel con n = 1 (véase ejemplo 7.9). Al escribir la EDO como un sistema, el PVI queda y = z PVI

1 1 z = – — z + –––2 –1 y x x y (1) = 1 z (1) = 2 y (3) = ?

(

)

:VS\JP}U Al dividir el intervalo de interés [1, 3] en ocho subintervalos, el tamaño del paso de integración h es igual a 0.25.

Primera iteración (usando la ecuación 7.61a) Cálculo de las constantes k y c con 7.61b k1 = f1 (x0, y0, z0) = z0 = z (1) = 2 –1 1 ci = f2 (x0, y0, z0) = ––– z0 + ––– – 1 y0 x0 x02

(

)

–1 1 = ––– (2) + ( ––2 – 1)(1) = –2 1 1 k2 = f1 (x0 + h/2, y0 + hk1/2, z0 + hc1 /2) = z0 + hc1/2 = 2 + 0.25 (–2)/2 = 1.75 c2 = f2 (x0 + h/2, y0 + hk1/2, z0 + hc1/2) 1 1 = – ––––––––– (z0 + hc1/2) + –––––––––––2 –1 ( y0 + hk1/2) x0 + h/2 (x0 + h/2)

[

]

1 1 = –––––––––––– (2 + 0.25 (–2)/2) + ––––––––––––––– –1 ( 1 + 0.25 (2 ) /2) 1 + 0.25/2 (1 + 0.25/2)2

[

]

= –1.817901235

573

Métodos Numéricos Aplicados a la Ingeniería

k3 = f1 (x0 + h/2, y0 + hk2/2, z0 + hc2/2) = z0 + hc2/2 = 2 + 0.25 (–1.817901235)/2 = 1.772762346 c3 = f2 (x0 + h/2, y0 + hk2/2, z0 + hc2/2) 1 1 = – ––––––––– (z0 + hc2/2 ) + ––––––––––– –1 (y0 + hk2/2) x0 + h/2 (x0 + h/2)2

[

]

1 = – ––––––––––– (2 + 0.25 (–1.817901235) /2 ) + 1 + 0.25/2 1 – 1] (1 + 0.25 (1.75)/2) = –1.831575789 [ ––––––––––––––– (1 + 0.25/2) 2

k4 = f1 (x0 + h, y0 + hk3, z0 + hc3) = z0 + hc3 = 2 + 0.25 (–1.831575789) = 1.542106053 c4 = f2 (x0 + h, y0 + hk3, z0 + hc3) 1 1 = – ––––––– (z0 + hc3) + –––––––––– – 1 (y0 + hk3) x0 + h (x0 + h )2

[

]

1 = – ––––––––– (2 + 0.25 (–1.831575789)) 1 + 0.25 1 + –––––––––––– – 1 (1 + 0.25 (1.772762346)) = –1.753233454 (1 + 0.25)2

[

]

Cálculo de y1 = y (1.25 ) y z1 = z (1.25 ) con la ecuación 7.61a h y1 = y0 + — (k1 + 2k2 + 2k3 + k4) 6 0.25 = 1 + ––––– [2 + 2 (1.75) + 2 (1.772762346) + 1.542106053] 6 = 1.441151281 h z1 = z0 + — (c1 + 2c2 + 2c3 + c4) 6 0.25 = 2 + ––––– [– 2 + 2 (–1.817901235) + 2 (–1.831575789) 6 – 1.753233454] = 1.539492187 574

Ecuaciones diferenciales ordinarias

Segunda iteración Cálculo de las constantes k y c con la ecuación 7.61b k1 = f1 (x1, y1, z1) = z1 = 1.539492187 1 1 c1 = f2 (x1, y1, z1 ) = – ––– z1 + ––– –1 y1 2 x x12

(

)

1 1 = – ––––– (1.539492187) + ––––––––2 –1 (1.441151281) 1.25 (1.25)

(

)

= – 1.750408211 k2 = f1 (x1 + h/2, y1 + hk1/2, z1 + hc1/2) = z1 + hc1/2 = 1.539492187 + 0.25 (–1.750408211)/2 = 1.320691161 c2 = f2 (x1 + h/2, y1 + hk1/2, z1 + hc1/2) 1 1 = – ––––––––– (z1 + hc1/2) + –––––––––––– –1 (y1 + hk1/2) x1 + h/2 (x1 + h/2)2

[

]

1 = – ––––––––––––––– (1.539492187 + 0.25 (–1.750408211)/2) 1.25 + 0.25/2 1 + ––––––––––––––––––2 – 1 (1.441151281 + 0.25 (1.539492187)/2) (1.25 + 0.25/2)

[

]

= 1.730044025 k3 = f1 (x1 + h/2, y1 + hk2/2, z1 + hc2/2) = z1 + hc2/2 = 1.539492187 + 0.25 (–1.730044025)/2 = 1.323236684 c3 = f2 (x1 + h/2, y1 + hk2/2, z1 + hc2/2) 1 1 = – ––––––––– (z1 + hc2/2) + ––––––––––––2 – 1 (y1 + hk2/2) x1 + h/2 (x1 + h/2)

[

]

1 = – ––––––––––––––– (1.539492187 + 0.25 (–1.730044025)/2) 1.25 + 0.25/2 1 + –––––––––––––––––– – 1 (1.441151281 + 0.25 (1.320691161)/2) (1.25 + 0.25/2)2

[

]

575

Métodos Numéricos Aplicados a la Ingeniería

= –1.71901137 k4 = f1 (x1 + h, y1 + hk3, z1 + hc3) = z1 + hc3 = 1.539492187 + 0.25 (–1.71901137) = 1.109739345 c4 = f2 (x1 + h, y1 + hk3, z1 + hc3) 1 1 = – ––––––– (z1 + hc3) + –––––––––– – 1 (y1 + hk3) x1 + h (x1 + h )2

[

]

1 = – ––––––––––––– (1.539492187 + 0.25 (–1.71901137)) 1.25 + 0.25 1 + –––––––––––––––– –1 (1.441151281 + 0.25 (1.323236684)) (1.25 + 0.25)2

[

]

= –1.724248703 Cálculo de y2 = y (1.5) y z2 = z (1.5) con la ecuación 7.61a h y2 = y1 + — (k1 + 2k2 + 2k3 + k4) 6 0.25 = 1.441151281 + ––––– [1.539492187 + 2 (1.320691161) + 6 2 (1.323236684) + 1.109739345] = 1.771863249 h z2 = z1 + — (c1 + 2c2 + 2c3 + c4) 6 0.25 = 1.539492187 + ––––– [–1.750408211 + 2(–1.730044025) 6 + 2 (–1.71901137) – 1.724248703] = 1.107293533 Se continúa calculando en la misma forma, y se obtiene y (1.75) = y (2.00) = y (2.25) = y (2.50) = y (2.75) = y (3.00) =

1.994766280 2.109754328 2.118486566 2.026089844 1.841680320 1.578253875

El valor buscado es y (3) = 1.578253875 576

z(1.75) z(2.00) z(2.25) z(2.50) z(2.75) z(3.00)

= = = = = =

0.675599895 0.245291635 –0.172076357 –0.561053191 –0.905578495 –1.190934201

Ecuaciones diferenciales ordinarias

Este ejemplo se puede resolver también con Matlab (véase ejemplo 7.4).

function f=E7_10(x,y) f1=y(2); f2=–1/x.*y(2)+(1/x.ˆ2–1).*y(1); f=[f1;f2];

xx=1 : 0.25 : 3; [T,Y]=ode45(@e7_10, xx,[1;2]); Y

Si el problema es de inicio un sistema de EDO’s de primer orden, con sus correspondientes condiciones iniciales, el procedimiento será el mismo visto hasta ahora, pero ahorrándose el paso de convertir la EDO de orden n a un sistema de n ecuaciones diferenciales de primer orden (consúltense los ejercicios). A continuación se presenta un algoritmo para el método de Runge-Kutta de cuarto orden con objeto de resolver un sistema de dos ecuaciones diferenciales ordinarias. Algoritmo 7.5 Método de Runge-Kutta de cuarto orden para un sistema de dos ecuaciones diferenciales ordinarias Para aproximar la solución al PVI y = f1 (x, y, z) z = f2 (x, y, z) y (x0 ) = y0; y (xf) = ? z (x0 ) = z0; z (xf ) = ? proporcionar las funciones F1 (X, Y, Z) y F2 (X, Y, Z) y los DATOS: La condición inicial X0, Y0, Z0, el valor XF y el número de N de subintervalos por emplear. RESULTADOS: La aproximación a los valores Y(XF) y Z (XF)): Y0 y Z0. PASO 1. PASO 2. PASO 3.

Hacer H = (XF –X0 ) /N. Hacer I = 1. Mientras I ≤ N, repetir los pasos 4 al 15. PASO 4. Hacer K1 = F1 (X0, Y0, Z0). PASO 5. Hacer C1 = F2 (X0, Y0, Z0). PASO 6. Hacer K2 = F1 (X0 + H/2, Y0 + H/2*K1, Z0 + H/2*C1). PASO 7. Hacer C2 = F2 (X0 + H/2, Y0 + H/2*K1, Z0 + H/2*C1). PASO 8. Hacer K3 = F1 (X0 + H/2, Y0 + H/2*K2, Z0 + H/2*C2). PASO 9. Hacer C3 = F2 (X0 + H/2, Y0 + H/2*K2, Z0 + H/2*C2). PASO 10. Hacer K4 = F1 (X0 + H, Y0 + H*K3, Z0 + H*C3). PASO 11 Hacer C4 = F2 (X0 + H, Y0+H*K3, Z0 + H*C3). PASO 12. Hacer Y0 = Y0 + H/6* (K1 + 2*K2+2*K3+K4). PASO 13. Hacer Z0 = Z0 + H/6* (C1+2*C2+2*C3+C4). PASO 14 Hacer X0 = X0 + H. PASO 15. Hacer I = I +1. PASO 16. IMPRIMIR Y0, Z0 y TERMINAR.

577

Métodos Numéricos Aplicados a la Ingeniería

7.8 Formulación del problema de valores en la frontera Un problema de valores en la frontera (PVF), para ecuaciones diferenciales ordinarias, puede estar dado, por ejemplo, por una EDO de segundo orden y dos condiciones de frontera: CF1 y CF2

PVF

d 2y EDO –––– = f (x, y, y) dx2 CF1 y (x0) = y0 CF2 y (xf ) = yf y (x) = ? para x0 < x < xf

(7.62)

Obsérvese que la información que ahora se proporciona, considera dos puntos distintos por donde pasa la curva desconocida y, solución de la EDO; es decir, conocemos el valor de y correspondiente a dos abscisas distintas:* x0 y xf, y queremos conocer el valor de y en el intervalo (x0, xf). Esto se ilustra gráficamente en la figura 7.12.

y yf

y0 curva desconocida y = F(x)

x0

xf

x

Figura 7.12 Problema de valores en la frontera.

Desde luego, también contamos para encontrar a y con su segunda derivada, esto es f (x, y, y). Este tipo de problemas surge, por ejemplo, cuando se resuelven ecuaciones diferenciales parciales analíticamente. Así, si se tiene el problema

* A diferencia del PVI, donde la información está dada en un solo punto x0.

578

Ecuaciones diferenciales ordinarias

∂T ∂2T ––– = α ––––– ∂t ∂x2 T(0, t) = 0 T(L, t) = 0 T(x, 0) = f (x) T(x, t) = ? para 0 < x < L y t > 0

(7.63)

que describe la conducción de calor en una barra aislada longitudinalmente* (véase figura 7.13); T(0, t) y T(L, t) representan la temperatura T de la barra en los extremos izquierdo y derecho, respectivamente, sostenidos constantes e iguales a cero (en general son funciones del tiempo t).

T (x, y) z ? x T (0, t) z 0

T (L, t) z 0

Figura 7.13 Barra aislada longitudinalmente con extremos sujetos a temperaturas establecidas.

La aplicación del método de separación de variables a la ecuación 7.63 transforma el problema en un PVI y en el PVF siguiente ∂2 ø –––– = –λø ∂x2 ø(0) = 0 ø(L) = 0 ø(x) = ?

(7.64) para 0 < x < L

cuya solución conjuntamente con la del PVI mencionado permitirán resolver la ecuación 7.63. A continuación se describe un método para resolver problemas del tipo 7.62, conocido como método del “disparo”, por analogía al tiro o disparo contra un blanco fijo.

Métododeldisparo Consideremos el siguiente problema: y(x) = y y (0) = 0 y (1) = 2 y (x) = ?

(7.65) para 0 < x < 1

Para resolverlo podemos usar uno de los métodos de valor inicial discutidos en las secciones anteriores, para lo cual tendríamos que proponer, de consideraciones físicas o de otro tipo, una condición inicial, por ejemplo y(0) = α0. Siguiendo la metáfora del disparo, esto representaría una medida del ángulo * Ver capítulo 8.

579

Métodos Numéricos Aplicados a la Ingeniería

que forma el cañón con el piso. Contando con esta condición inicial, se puede formar a partir de la ecuación 7.66 el siguiente PVI: y(x) = x y (0) = 0 que convertido a sistema, queda: y(0) = α0 y (1) = ?

y = z z = y y (0) = 0 z (0) = α0 y (1) = ?

Al resolver este PVI se obtiene un valor de y (1) correspondiente a α0, o más fácilmente y (1; α0), que podremos comparar con el valor y (l) = 2, dado en el problema original, y así estimar la bondad de la α0 propuesta. Con esta información podremos proponer una “mejor” α (un nuevo ángulo de disparo): α1, con lo que se obtendría un nuevo PVI: y = z z = y y (0) = 0 z (0) = α1 y (1) = ? Al resolver obtenemos y (1; α1). En estas condiciones podemos plantear una nueva aproximación de y(0), pero considerando a y (1; α) como una función de α y de la cual se tienen ya dos puntos (α0, y (1; α0)) y (α1, y(1; α1)), como se ve en la figura 7.14.

y (1; α) y (1; α1)

y (1) = 2

y (1; α0) α

0

α

2

α

1

α

Figura 7.14 Interpolación lineal inversa.

Si unimos (α0, y (1; α0)) y (α1, y (1; α1)) con una línea recta podremos, con una interpolación (extrapolación) lineal inversa, obtener una nueva aproximación a α, α2, dada algebraicamente por y (1;α1) – y (2) α2 = α1 – (α1 – α0) –––––––––––––––––– y(1; α1) – y(1; α0) y con ella formular el PVI con y(0) = α2.

580

Ecuaciones diferenciales ordinarias

El proceso puede continuarse usando las últimas dos alfas αi–1 y αi, para la interpolación (extrapolación) lineal inversa, hasta que | y (l; αi+1) – y(l) | < ε o hasta que se haya realizado un número máximo de iteraciones. ,QLTWSV Resolver el PVF 7.65 con una ε = 10–5 y MAXIT = 10 iteraciones, con el método del disparo. :VS\JP}U x0 = 0, xf = 1 y0 = 0, y(0) = α0 = 1.5 (valor inicial propuesto) Al resolver el PVI y = z z = y y (0) = 0 z (0) = α0 = 1.5 y (1) = ? con el método de Runge-Kutta de cuarto orden y un tamaño de paso h = 0.1, se obtiene y (1; α0) = 1.76279998. Se propone ahora un valor de α1 = 2.5 y se resuelve nuevamente el PVI. Se obtiene así y (1; α1) = 2.93799996. Con estos valores se interpola para obtener α2 y (1; α1) – y (2) α2 = α1 – (α1 – α0) ––––––––––––––––––– y (1; α1) – y (1; α0) 2.93799996 – 2 = 2.5 – (2.5 – 1.5) –––––––––––––––––––––––––––––– = 1.701838 2.93799996 – 1.76279998

(

)

Se resuelve el PVI con α2 = 1.701838 y se obtiene y (1; α2) = 1.99999999183644. El proceso se detiene puesto que | y (1; α1) – y (2) | < ε, tomándose entonces como valor “verdadero” de y(0) a α2 = 1.701838. Los valores de y en el intervalo [0, l] son los que generó el método de Runge-Kutta de cuarto orden en la última iteración. x

y

0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0

0.00000 0.170467 0.342641 0.518244 0.699033 0.886819 1.083480 1.290985 1.511411 1.746963 1.999999 581

Métodos Numéricos Aplicados a la Ingeniería

Al analizar la tabla se encuentra que, por ejemplo, las diferencias finitas son crecientes en sus diferentes órdenes, lo cual sugiere que la solución y = F (x) tiene un término exponencial. Los cálculos pueden realizarse con Matlab adaptando el guión del ejercicio 7.12.

2

1.5

1

0.5

0

0

0.2

0.4

0.6

0.8

x 1

Figura 7.15 Solución gráfica del PVF.

7.9 Ecuaciones diferenciales rígidas Dado que no hay una definición técnica sencilla de rigidez, preferimos empezar analizando una ecuación conocida como ecuación de prueba, cuya solución numérica por cualquiera de los métodos vistos, permitirá apreciar ciertas características típicas de las ecuaciones diferenciales rígidas. Sea el problema de valor inicial

PVI

dy ––– = λy dt y (0) = 1 y (1) = ?

La solución analítica de la ecuación diferencial es y = eλ t dy ya que ––– = λeλt = λy; además, se cumple que y (0) = eλ(0) = 1, por lo que y = eλt es la solución del PVI. dt 582

Ecuaciones diferenciales ordinarias

Por otro lado, recurriendo al esquema iterativo del método de Euler yi+1 = yi + h f (xi, yi);

ti+1 = t0 + ih;

0≤i≤n

Aplicando a la ecuación de prueba yi + 1 = yi + hλyi;

ti + 1 = ti + h

yi+1 = yi (1 + hλ)

ti+1 = ti + h

Factorizando yi

Para i = 0

t0 = 0;

y0 = 1 (condición inicial) de modo que y1 = y0 (1 + h λ) = (1 + hλ) i1 = i0 + h = h

Para i = 1 y2 = y1 (1 + hλ) = (1 + hλ)2 t2 = t1 + h = 2h Continuando de esta manera, para i = n, se tiene yn = (1 + hλ)n tn = nh Si λ < 0, de la solución analítica vemos que y decae exponencialmente. Conforme t aumenta, la solución tiende a cero casi inmediatamente (este comportamiento se llama transitorio, debido a que su efecto es de corta duración). La solución numérica, sin embargo, tenderá a cero sólo si – 1 < 1 + hλ < 1. Dado que h > 0, siempre se cumple que 1 + hλ < 1 y lo que habrá de cuidarse es que se satisfaga –1 < 1 + hλ. Despejando h, de acuerdo con las reglas algebraicas de las desigualdades, queda 2 h 1. Lo anterior significa que el método implícito de Euler es estable para “cualquier” valor de h.

,QLTWSV Resolver el siguiente PVI rígido utilizando el método implícito de Euler.

PV1

dy ––– = 50(x2 – y) dx y(0) = 0 y(2) = ?

x 1 La solución analítica es y = x2 – ––– + –––– (1 – e–50x) 25 250 :VS\JP}U Con el fin de comparar las soluciones de un método numérico estándar y el método implícito visto (método rígido), se obtiene primero la solución numérica con el método de Runge-Kutta de cuarto orden, utilizando diferentes tamaños de paso. Los resultados se muestran en la siguiente tabla:

585

Métodos Numéricos Aplicados a la Ingeniería

Solución numérica con Runge-Kutta de cuarto orden x

Solución analítica

h = 0.2

h = 0.1

h = 0.05

h = 0.01

0.0

0

0

0

0

0

0.4

0.148

175.73

44.255

0.147

0.145

0.8

0.612

1.487  107

1.558  106

0.611

0.609

1.2

1.396

1.259  1012

5.501  1010

1.395

1.393

1.6

2.5

1.066  1017

1.943  10–15

2.499

2.497

2.0

3.924

9.029  1019

6.86  1019

3.923

3.921

Resolviendo con el método implícito de Euler para los mismos tamaños de paso h: Solución numérica con método implícito de Euler x

Solución analítica

h = 0.1

h = 0.2

h=1

h=2

0.0

0

0

0

0

0

2.0

3.924

3.931

3.925

3.941

3.96

Como puede observarse, el método es estable incluso si se utilizan tamaños de paso “grandes”. Podremos apreciar este tipo de técnicas si consideramos que el método implícito de Euler es de primer orden (mientras que el de Runge-Kutta empleado es de cuarto orden) y que, en algunos casos, el argumento final xf puede ser considerablemente mayor que el argumento inicial x0; por ejemplo, x0 = 0 y xf = 100.

Ejercicios 7.1

La ecuación de Ricatti dy ––– = P (x)y2 + Q(x)y + R(x) dx se emplea en el estudio de sistemas de control lineal. En los cursos básicos de ecuaciones diferenciales ordinarias se enseñan técnicas analíticas para resolverlas; dichas técnicas, sin embargo, resultan muy sofisticadas y de origen inexplicable. Por ejemplo, una de tales técnicas parte de que se conoce una solución particular y1(x), solución que normalmente es dada por el autor del texto, pero sin explicar cómo se obtuvo. El empleo de las técnicas numéricas permite resolver este tipo de ecuaciones sin necesidad de soluciones particulares, como se ve en seguida:

586

Ecuaciones diferenciales ordinarias

PV1

dy ––– = xy2 – 2y + 4 – 4x dx y (0) = 1 y (2) = ?

Con el método de Runge-Kutta de segundo orden y un paso de integración h de 0.1, se obtiene:

7.2

x

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1.0

y

1

1.167

1.284

1.362

1.412

1.438

1.444

1.431

1.398

1.343

1.264

Calcule el tiempo necesario para que el nivel del líquido dentro del tanque esférico con radio r = 5 m, mostrado en la figura 7.16, pase de 4 m a 3 m. La velocidad de salida por el orificio del fondo es v = 4.895 a m/s, y el diámetro de dicho orificio es de 10 cm.

:VS\JP}U Balance de materia en el tanque Acumulación = – Entrada

– Salida

dV ρ ––– dt

– Avρ

=0

donde V es el volumen del líquido en el tanque, que en función de la altura, está dado por a3 V = π (5 a2 – ––– ) m3 3

5m

a

10 cm v  4.895 a

Figura 7.16 Vaciado de un tanque esférico.

A es el área del orificio de salida π A = — (0.1)2 m2 4

587

Métodos Numéricos Aplicados a la Ingeniería

y v = 4.895

a m/s

Estas cantidades se sustituyen en la primera ecuación y se tiene a3 d ( 5 a2 – –––) 3 π π –––––––––––––––– = – — (0.1)2 4.895 dt 4

a

Se deriva da 3a2 da (0.1)2 10 a ––– – ––– ––– = – –––––– 4.895 a dt 3 dt 4 y al despejar se tiene da –4.895 (0.1)2 a ––– = –––––––––––––––––– dt 4 ( 10 a – a2) que con la condición inicial y la pregunta forman el siguiente

PVI

da 0.012375 a ––– = – ––––––––––––––– dt (10 a – a2) a (0) = 4 m a (?) = 3 m

Con el método de Euler modificado y un paso de integración h de 100 segundos, se tiene:

tiempo (s)

altura a (m)

0

4.0000

100

3.8982

200

3.7968

300

3.6957

400

3.5948

500

3.4941

600

3.3935

700

3.2939

800

3.1924

900

3.0917

1 000

2.9908

El último valor de altura puede considerarse como 3 m, por lo que el tiempo necesario para que el nivel del líquido dentro del tanque esférico pase de 4 a 3 m, es aproximadamente 100 segundos.

588

Ecuaciones diferenciales ordinarias

7.3

Un tanque perfectamente agitado contiene 400 L de una salmuera en la cual están disueltos 25 kg de sal común (NaCl), en cierto momento se hace llegar al tanque un gasto de 80 L/min de una salmuera que contiene 0.5 kg de sal común por litro. Si se tiene un gasto de salida de 80 L/min, determine: a) ¿Qué cantidad de sal hay en el tanque transcurridos 10 minutos? b) ¿Qué cantidad de sal hay en el tanque transcurrido un tiempo muy grande?

:VS\JP}U a) Si se llaman x los kg de sal en el tanque después de t minutos, la acumulación de sal en el tanque está dada por dx/dt y por la expresión dx ––– = masa de sal que entra – masa de sal que sale dt los valores conocidos se sustituyen y se llega a la ecuación dx x ––– = 80 (0.5) – 80 ( –––– ) dt 400 o dx ––– = 40 – 0.2x dt que, con la condición inicial de que hay 25 kg de sal al tiempo cero, da el siguiente

PVI

dx ––– = 40 – 0.2x dt x (0 ) = 25 x (10) = ?

Como vía de ilustración se utilizará un método de Runge-Kutta de tercer orden, cuyo algoritmo está dado por h yi+1 = yi + — (k1 + 4k2 + k3) 6 con k1 = f (xi, yi) k2 = f (xi + h/2, yi + hk1/2) k3 = f (xi + h, yi + 2hk2 – hk1) En el CD se encuentra el PROGRAMA 7.1 para resolver este problema de valor inicial con el algoritmo anotado arriba. El resultado obtenido es x (10) = 176.3 con un paso de integración h de 1 min. b) La solución se obtiene dejando correr el programa hasta que la cantidad de sal en el tanque no cambie con el tiempo; esto es, hasta que se alcance régimen permanente. Al dejar correr el programa se obtuvieron los siguientes resultados:

589

Métodos Numéricos Aplicados a la Ingeniería

CONDICIÓN INICIAL: Y( .00) = 25.0000 PASO DE INTEGRACIÓN H = 1.000 VALOR FINAL DE X = 50.000 SE IMPRIME CADA 2 ITERACIONES

7.4

X

Y

2.0000

82.7124

4.0000

121.3920

6.0000

147.3158

8.0000

164.6902

10.0000

176.3348

12.0000

184.1393

14.0000

189.3699

16.0000

192.8755

18.0000

195.2251

20.0000

196.7998

22.0000

197.8552

24.0000

198.5625

26.0000

199.0366

28.0000

199.3543

30.0000

199.5673

32.0000

199.7100

34.0000

199.8056

36.0000

199.8698

38.0000

199.9127

40.0000

199.9415

42.0000

199.9608

44.0000

199.9738

46.0000

199.9824

48.0000

199.9883

50.0000

199.9921

Se hacen reaccionar isotérmicamente 260 g de acetato de etilo (CH3 COOC2 H5) con 175 g de hidróxido de sodio (NaOH) en solución acuosa (ajustando el volumen total a 5 litros), para obtener acetato de sodio (CH3COONa) y alcohol etílico (C2H5OH), de acuerdo con la siguiente ecuación estequiométrica: CH3COOC2H5 + Na OH

590

k

CH3COONa + C2H5OH

Ecuaciones diferenciales ordinarias

Si la constante de velocidad de reacción k está dada por L k = 1.44  10–2 ––––––––––– mol min determine la cantidad de acetato de sodio y alcohol etílico presentes 30 minutos después de iniciada la reacción.

:VS\JP}U Si x denota el número de moles por litro de acetato de etilo que han reaccionado al tiempo t, entonces la velocidad de reacción dx/dt está dada por la ley de acción de masas, así: dx ––– = k C1A C1B dt donde CA y CB denotan las concentraciones molares de los reactantes: acetato de etilo e hidróxido de sodio, respectivamente, al tiempo t, y los exponentes son sus coeficientes estequiométricos en la reacción. Entonces 260 g mol CA = ––––––––––––––––– – x ––––– L PMCH COOC H 5L 3

2

5

175 g mol CB = –––––––––––– – x ––––– L PMNaOH 5L Al sustituir valores y añadir la condición inicial y la pregunta a la ecuación diferencial resultante, se tiene

PVI

dx ––– = 1.44  10–2 (0.59 – x)(0.875 – x) dt x (0 ) = 0.0 x (30) = ?

Al correr el PROGRAMA 7.2, se obtiene x (30) = 0.169, con un paso de integración h de 1 min. de donde Cantidad de acetato de sodio = 0.169  5  82 = 69.29 g 7.5

Se conecta un inductor (inductancia) de 0.4 henries en serie con una resistencia de 8 ohms, un capacitor de 0.015 farads y un generador de corriente alterna, dada por la función 30 sen 5t volts para t ≥ 0 (véase figura 7.17). a) Establezca una ecuación diferencial para la carga instantánea en el capacitor. b) Encuentre la carga a distintos tiempos.

:VS\JP}U  a) La caída de voltaje en la resistencia es 8 I, en la inductancia es 0.4 dI/dt y en la capacitancia Q/0.015 = 66.6666 Q. Según las leyes de Kirchhoff: dI 8 I + 0.4 ––– + 66.6666 Q = 30 sen 5t dt o d2Q dQ 0.4 ––––– + 8 –––– + 66.6666 Q = 30 sen 5t dt dt2

591

Métodos Numéricos Aplicados a la Ingeniería

ya que dQ –––– = I dt y finalmente dQ d 2Q –––– + 20 –––– + 166.6666 Q = 75 sen 5t 2 dt dt con las condiciones dQ Q = 0, I = –––– = 0 a t = 0 dt

0.4 henries + 30 sen 5t volts

0.015 farads – 8 ohms

Figura 7.17 Fi 7 17 Circuito Ci i eléctrico. lé i

dQ Al pasar a un sistema con el cambio de variable z = –––– dt

PVI

dQ –––– = z dt dz ––– = 75 sen 5t – 20z – 166.6666 Q dt Q(0)=0 z(0)=0

b) Al resolver por el método de Runge-Kutta de cuarto orden y usando h = 0.1, se tiene:

592

t

Q

0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10

0.03093 0.16949 0.33066 0.42549 0.41473 0.29996 0.11080 –0.10561 –0.29609 –0.41404

dQ ––– dt 0.96008 1.67198 1.33585 0.38455 –0.71114 –1.62002 –2.11960 –2.09630 –1.55950 –0.64128

t

Q

1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2.0

–0.43060 –0.34174 –0.16921 –0.04475 0.24775 0.39010 0.43693 0.37679 0.22440 0.01706

dQ ––– dt –0.43375 1.40254 2.02794 2.15684 1.75767 0.92817 –0.12859 –1.15386 –1.89662 –2.17503

Ecuaciones diferenciales ordinarias

7.6

Un proyectil de masa m = 0.11 kg se lanza verticalmente hacia arriba con una velocidad inicial v0 = 80 m/s y se va frenando debido a la fuerza de gravedad Fg = –mg y a la resistencia del aire Fr = –kv2, donde g = 9.8 m/s y k = 0.002 kg/m. La ecuación diferencial para la velocidad v está dada por mv = –mg – kv2 Encuentre la velocidad del proyectil a diferentes tiempos en su ascenso y el tiempo que tarda en llegar a su altura máxima.

:VS\JP}U Al emplear el método de Runge-Kutta de cuarto orden con h = 0.01, se tiene:

t (s )

v (m/s )

0

80

0.3

53.55

0.6

39.11

0.9

29.76

1.2

23.04

1.5

17.83

1.8

13.55

2.1

9.86

2.4

6.54

2.7

3.46

3.00

0.49

3.01

0.39

3.02

0.30

3.03

0.20

3.04

0.10

3.05 3.06

0.002 –0.10

Dado que al llegar a t = 3.06 s, la velocidad es negativa, se toma 3.05 como el lapso que tarda en llegar a su altura máxima. 7.7

La mayoría de los problemas que pueden modelarse con ecuaciones diferenciales, dan lugar a ecuaciones y sistemas diferenciales no lineales que normalmente no pueden resolverse con técnicas analíticas. Debido a ello, es común sobresimplificar la modelación y así obtener ecuaciones que puedan resolverse analíticamente. Uno de los ejemplos más conocidos es la ecuación de movimiento del péndulo simple, donde se desprecian los efectos de fricción y de resistencia del aire (véase figura 7.18). Si el péndulo tiene longitud L y g es la aceleración de la gravedad, la ecuación que describe el desplazamiento angular θ del péndulo es d 2θ g –––– + — sen θ = 0 L dt2

593

Métodos Numéricos Aplicados a la Ingeniería

θ L

mg sen θ mg

Figura 7.18 Movimiento de péndulo simple.

No obstante las simplificaciones, la ecuación no puede resolverse sin recurrir a funciones especiales. Por tanto, el modelo se simplifica aún más asumiendo oscilaciones de amplitud pequeña. Esto implica que pueda remplazarse sen θ por θ, dándose con ello la ecuación lineal d2θ –––– = –gθ dt2 Esta última expresión puede resolverse analíticamente con todas las restricciones de uso de la solución que se obtiene. Por otro lado, las técnicas numéricas permiten abordar la primera ecuación sin necesidad de las funciones especiales ni de sobresimplificar el modelo. Resolver entonces el siguiente d2θ g –––– = – — sen θ dt2 L PVIG

θ (0) = π/6 dθ –––– = 0 dtt=0

θ (0 ≤ t ≤ 60s) = ? con L = 2 pies y g = 32.17 pies/s2.

:VS\JP}U dθ dφ g Primero se hace el cambio de variable: ––– = φ, de donde ––– = — senθ y el PVI a resolver ahora es: L dt dφ dθ ––– = φ dt

PV1G

g dφ ––– = – — θ dt L

θ (0) = π/6 φ (0) = 0 θ (0 ≤ t ≤ 60s) = ? Usando h = 0.1 s con el método de Runge-Kutta de cuarto orden, se obtienen los siguientes resultados (sólo se muestran los primeros diez pasos):

594

Ecuaciones diferenciales ordinarias

t(s)

q

dθ ––– dt

0.0

0.524

0

0.1

0.484

–0.785

0.2

0.370

–1.459

0.3

0.199

–1.916

0.4

–0.003

–2.076

0.5

–0.205

–1.907

0.6

–0.374

–1.442

0.7

–0.486

–0.764

0.8

–0.523

–0.023

0.9

–0.481

0.807

1.0

–0.366

1.476

Para observar el comportamiento se grafican los primeros 20 segundos del desplazamiento angular (véase figura 7.19).

0.6

θ rad 0.4

0.2 0 –0.2

–0.4

–0.6

0

2

4

6

8

10

12

14

16

18

t (s)

20

Figura 7.19 Gráfica de desplazamiento angular.

Como puede observarse, el desplazamiento angular se mantiene prácticamente igual debido a que el modelo ignora la resistencia del aire y la fricción, factores que harían que eventualmente el péndulo se detuviera dando lugar a una gráfica cuya oscilación tendería a cero.

595

Métodos Numéricos Aplicados a la Ingeniería

7.8

El mezclado imperfecto en un reactor continuo de tanque agitado se puede modelar como dos o más reactores con recirculación entre ellos, como se muestra en la figura 7.20.

F

CA0

FR

CA1

CA2 V1  80 L

F

V2  20 L

F FR

Figura 7.20 Modelación de un reactor con mezclado imperfecto.

k B de orden 1.8 con En este sistema se lleva a cabo una reacción isotérmica irreversible del tipo A respecto al reactante A. Con los datos que se dan abajo, calcule la concentración del reactante A en los reactores (1) y (2) (CA1 y CA2, respectivamente) durante el tiempo necesario para alcanzar el régimen permanente. Ensaye varios tamaños de paso de integración y compare los resultados obtenidos en el ejercicio 4.5. Datos: F = 25 L/min

CA0 = 1 mol/L

FR = 100 L/min

CA1 (0) = 0.0 mol/L L k = 0.2 ( –––– )0.8 min–1 mol

CA2 (0) = 0.0 mol/L

:VS\JP}U Un balance del componente A en cada uno de los reactores da Acumulación = Entrada Reactor 1 dV1CA1 –––––––– = FCA0 + FRCA2 dt Reactor 2 dV2CA2 –––––––– = (F + FR) CA1 dt



Salida



Reacción



(F + FR)CA1



V1k CnA1



(F + FR) CA2

+

V2k CnA2

Como V1 y V2 son constantes, mediante la sustitución de valores y con las condiciones de operación a tiempo cero, se llega a dCA1 25 125 1.8 –––––– = 1.25 CA2 + ––– – –––– CA1 – 0.2 C A1 dt 80 80 dCA2 125 1.8 –––––– = –––– (CA1 – CA2) – 0.2 C A2 dt 20 PVI

CA1 (0) = 0.0 CA2 (0) = 0.0 CA1 (0 a r p) = ? CA2 (0 a r p) = ?

596

Ecuaciones diferenciales ordinarias

donde CA1(0 a rp) significa la concentración del reactante A en el reactor 1, desde el tiempo 0 hasta alcanzar el régimen permanente. Con el PROGRAMA 7.3 y con un paso de integración de 0.4 minutos, el valor de CA2 en la primera iteración resulta negativo (lo cual es imposible) y al efectuar la segunda iteración e intentar calcular el término C1.8A2 (véase segunda ecuación del PVI) el programa aborta. Se ensaya ahora un tamaño de paso menor, ya que la constante de velocidad de reacción es alta, y es de esperarse que la reacción sea muy rápida y que un paso de 0.4 minutos resulte muy grande. A continuación se dan los resultados para h = 0.3 minutos. CONDICIONES INICIALES: YI ( .00) Y2 ( 00) PASO DE INTEGRACIÓN H VALOR FINAL DE X SE IMPRIME CADA 5 INTERACCIONES

= .000 = .000 = .300 = 20.000

X

Y1

Y2

1.5000

.3143

.2796

3.0000

.4839

.4635

4.5000

.5706

.5528

6.0000

.6123

.5966

7.5000

.6321

.6172

9.0000

.6413

.6268

10.5000

.6456

.6313

12.0000

.6476

.6334

13.5000

.6485

.6343

15.0000

.6489

.6348

16.5000

.6491

.6350

18.0000

.6492

.6351

19.5000

.6493

.6351

Puede observarse que el régimen permanente se alcanza a los 18 minutos. Los valores de las concentraciones a régimen permanente coinciden con los obtenidos en el ejercicio 4.5. Se probaron, además, los tamaños de paso 0.25, 0.2 y 0.1 minutos; en cada caso se obtuvieron los mismos resultados que para 0.3 minutos. 7.9

En un reactor de laboratorio continuo, tipo tanque perfectamente agitado, se lleva a cabo una reacción química exotérmica, cuya temperatura se controla por medio de un líquido que circula por una chaqueta que se mantiene a una temperatura uniforme Tj. Calcule la temperatura T y la concentración CA de la corriente de salida cuando el reactor trabaja a régimen transitorio y hasta alcanzar el régimen permanente para el caso de una reacción de primer orden. Aplique la siguiente información referida a la figura 7.21. Condiciones iniciales: CA (0) = 5 gmol/L y T(0) = 300 K F = Gasto de alimentación al reactor = 10 ml/s V = Volumen del reactor = 2 000 ml

597

Métodos Numéricos Aplicados a la Ingeniería

gmol CA0 = Concentración del reactante A en el flujo de alimentación = 5 –––––– L T0 = Temperatura del flujo de alimentación = 300 K ΔH = Calor de reacción = – 10000 cal/gmol cal U = Coeficiente global de transmisión de calor = 100 ––––––––– o C s m2 A = Área de transmisión de calor = 0.02 m2 k = Constante de velocidad de reacción = 8  1012 exp (–22500/1.987 T) s–1 Tj = Temperatura del líquido que circula por la chaqueta = 330 K Cp = Calor específico de la masa reaccionante = 1 Kcal/kg oC ρ = Peso específico de la masa reaccionante = 1 kg/L

T0, F CA0 A

TJ0

k

P

TJ

T

CA

TJ

TJ

F CA, T

Figura 7.21 Reactor tipo tanque agitado con chaqueta.

:VS\JP}U Balance de materia para el reactante A Acumulación = Entrada dVCA ––––––– = FCA0 dt



Salida

– Reacciona



FCA



Salida-generado

– Eliminado



ΔHkVC nA

– UA ( T – Tj )



k VC nA

Balance de calor Acumulación = Entrada dVρCpT ––––––––– = FρCp ( T0 – T ) dt

Como V, ρ y Cp se consideran constantes, al sustituir valores se tiene:

598

Ecuaciones diferenciales ordinarias

dC –––––A = 0.005 (5 – CA) – 8 1012 exp (– 22500/1.98T) CA dt PVI

dT ––– = 0.005 (300 – T) + 8 1013 exp (–22500/1.98T) CA – 0.001 (T – 330) dt CA ( 0 ) = 5 gmol/L T ( 0 ) = 300 K

Al resolver con el PROGRAMA 7.3, que utiliza el método de Runge-Kutta de tercer orden para un sistema de ecuaciones, se obtienen los resultados: SOLUCIÓN DE UN PVI CON UN SISTEMA DE N ECUACIONES DIFERENCIALES ORDINARIAS DE PRIMER ORDEN POR EL MÉTODO DE RUNGE-KUTTA DE TERCER ORDEN CONDICIONES INICIALES: Y1 ( .00) Y2 ( .00) PASO DE INTEGRACIÓN H VALOR FINAL DE X SE IMPRIME CADA 10 ITERACIONES

X

= = = =

5.000 300.000 20.000 3000.000

Y1

Y2

.0000

5.0000

300.0000

200.0000

4.6623

306.6382

400.0000

4.3180

310.6624

600.0000

3.9803

313.8187

800.0000

3.6243

316.9112

1000.0000

2.1727

320.8165

1200.0000

2.3743

327.8928

1400.0000

.7730

342.0851

1600.0000

.6438

341.9108

1800.0000

.7104

340.8714

2000.0000

.7314

340.5911

2200.0000

.7359

340.5366

2400.0000

.7366

340.5287

2600.0000

.7367

340.5278

2800.0000

.7367

340.5278

3000.0000

.7367

340.5278

7.10 Encuentre la curva elástica de una viga uniforme con un extremo libre, de longitud L = 5 m y peso constante de w = 300 kg. Determine también la deflexión del extremo libre. Tome EI = 150 000.

599

Métodos Numéricos Aplicados a la Ingeniería

L (L  X)

X

X Y

O P

B

Y

W (L  X)

Figura 7.22 Viga empotrada con un extremo libre.

:VS\JP}U La figura 7.22 muestra la viga y su curva elástica (línea punteada). Se toma el origen O de un sistema coordenado en el extremo empotrado de la viga y la dirección positiva del eje y hacia abajo. Sea x un punto cualquiera de la viga. Para calcular el momento de flexión en el punto x, M(x), considere la parte de la viga a la derecha de P y que sólo una fuerza hacia abajo actúa en esa porción, w (L – x), produciendo el momento positivo M(x) = w (L–x) [ (L–x)/2] = w (L–x)2/2 En la teoría de vigas se demuestra que M(x) está relacionado con el radio de curvatura de la curva elástica calculado en x así: y EI ––––––––––––– = M (x) [1 + (y)2]1/2

(1)

donde E es el módulo de elasticidad de Young y depende del material con el que se construyó la viga e I es el momento de inercia de la sección transversal de la viga en x. Si se asume que la viga se flexiona muy poco, que es el caso general, la pendiente y de la curva elástica es tan pequeña que 1 + (y)2 ≈ 1 y la ecuación 4 puede aproximarse por EI y = M(x) = w(L – x)2/2 Al cambiar de variable en la forma y = dy/dx = z, se obtiene el siguiente

600

Ecuaciones diferenciales ordinarias

dy –––– = z dx dz w (L – x)2 –––– = ––––––––––– dx 2 EI

PVIG

y (0) = 0 z (0) = 0 y (5) = ? Con el PROGRAMA 7.3 del CD y con h = 0.5 m, se obtiene:

x(m)

y(m)

0

0

0.5

0.003

1.0

0.011

1.5

0.023

2.0

0.038

2.5

0.055

3.0

0.074

3.5

0.094

4.0

0.115

4.5

0.135

5.0

0.156

7.11 En la industria del transporte terrestre y aéreo surgen problemas de choque y vibración a partir de muy diferentes tipos de fuentes de excitación. La eliminación del choque y de la vibración es de vital importancia para aislar instrumentos y controles, así como para la protección de los ocupantes de los vehículos o aeronaves. La solución usual a los problemas que involucran transmisión de vibraciones excesivas incluye el uso de soportes flexibles levemente amortiguados. Estos soportes suaves causan que la frecuencia natural de un sistema de suspensión quede por debajo de la frecuencia de disturbio. Esta solución es efectiva para aislar la vibración en estado estacionario; sin embargo, cuando estas suspensiones se encuentran en situaciones de choque, a menudo su suavidad lleva a deflexiones grandes dañinas. Se ha señalado que estas características no deseables están ausentes en los sistemas de suspensión que utilizan resortes simétricamente no lineales que se rigidizan. Estos resortes son progresivamente más rígidos al sujetarse a deflexiones grandes a partir del “punto de operación”. El dispositivo mostrado en la figura 7.23 está integrado por un objeto de masa m conectado a una pared por medio de un resorte lineal con coeficiente k, un amortiguador con coeficiente c y un resorte no lineal que ejerce una fuerza de recuperación proporcional a una constante k veces la tercera potencia del desplazamiento. Este resorte “cúbico” provee un comportamiento no lineal simétrico que satisface la necesidad de aislar el choque y la vibración. Debido a que la ecuación diferencial que describe el movimiento de este sistema es no lineal: d2x dx m ––––– + c –––– + kx + kx3 = 0 dt dt2

601

Métodos Numéricos Aplicados a la Ingeniería

x k c

m k

Figura 7.23 Un objeto amortiguado conectado a una pared.

el desplazamiento de x en función del tiempo no puede encontrarse con los métodos analíticos tradicionales. Por esta razón, se usa una solución numérica a esta ecuación diferencial. Si los parámetros físicos del sistema de suspensión son k = 2.0 N/cm; k = 0.2 N/cm3; c = 0.15 Ns/cm; m = 0.01 kg y las condiciones iniciales son: x (0) = 10 cm desplazamiento del objeto en la dirección positiva del eje x, x(0) = 0 cm/s velocidad inicial que se imprime al objeto, elabore y ejecute un programa que simule el movimiento de este sistema desde un tiempo cero hasta un segundo.

:VS\JP}U Pasando la ecuación diferencial a un sistema de ecuaciones diferenciales de primer orden y las condiciones iniciales a términos de las nuevas variables, se tiene: dx ––– = z dt

PVI

dz –cz – kx – kx3 ––– = ––––––––––––––– dt m x (0) = 10 z (0) = 0 x (t) = ?

para

0
View more...

Comments

Copyright © 2017 DOCIT Inc.