MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de...

113
FACULTAD DE CIENCIAS EN FÍSICA Y MATEMÁTICAS UNIVERSIDAD AUTÓNOMA DE CHIAPAS TRADUCCIÓN DEL LIBRO “NUMERICAL METHODS FOR ENGINEERS BY STEVEN C. CHAPRA” EMPLEADO EN EL CURSO DE MÉTODOS NUMÉRICOS Agosto – Diciembre 2018 DR. ROBERTO ARCEO REYES

Transcript of MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de...

Page 1: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

FACULTAD DE CIENCIAS EN FÍSICA Y MATEMÁTICAS

UNIVERSIDAD AUTÓNOMA DE CHIAPAS

TRADUCCIÓN DEL LIBRO “NUMERICAL METHODS FOR ENGINEERS

BY STEVEN C. CHAPRA” EMPLEADO EN EL CURSO DE

MÉTODOS NUMÉRICOS

Agosto – Diciembre 2018

DR. ROBERTO ARCEO REYES

Page 2: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

2

OBJETIVO

El objetivo de esta traducción de los primeros cuatro capítulos del

texto Numerical Methods for Engineers by Steven C. Chapra es

para cubrir la mitad del programa del curso de Métodos

Numéricos impartido en el ciclo escolar agosto – diciembre 2018.

En este libro de texto de la segunda edición la cual no esta

presente en la biblioteca y en donde el docente que imparte este

curso tiene que enseñar los códigos en el lenguaje Fortran por

que el enfoque es para estudiantes de la Licenciatura en Física.

Esta edición esta enfocada en el uso de los códigos en lenguaje

Fortran y la cual tenemos en formato electrónico y por lo cual

hacemos esta traducción para que se encuentre disponible para

los estudiantes que actualmente cursan este programa de

estudios.

PROPOSITO

El propósito es enseñar al estudiante los conceptos de error,

aproximación, diferencias finitas, programación en lenguaje en

Fortran. Una vez comprendidos estos conceptos se analizarán

Los Métodos Cerrados.

Page 3: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

3

CONTENIDO

1. MODELACIÓN MATEMÁTICA Y SOLUCIÓN DE PROBLEMAS DE INGENIERÍA …………...………….......... 4

2. COMPUTADORAS Y SOFTWARE .................................. 19

3. APROXIMACIONES Y ERRORES ................................... 48

4. MÉTODOS CERRADOS ………………............................. 96

Page 4: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

4

CAPÍTULO 1 Modelación Matemática y solución de problemas de ingeniería Conocimiento y comprensión son prerrequisitos para la correcta implementación de cualquier herramienta.

Esto es cierto cuando se utilizan computadoras para resolver problemas de ingeniería. Aunque tienen un gran potencial de utilidad, las computadoras son prácticamente inútiles sin una comprensión fundamental de cómo funcionan los sistemas de ingeniería.

Esta comprensión se obtiene inicialmente por métodos empíricos. No obstante, aunque esta información empírica es esencial, es solo la mitad de la historia. Con el paso de años y años de observación y experimentación, ingenieros y científicos han notado que ciertos aspectos de sus estudios empíricos ocurren de forma repetida. Tal comportamiento de forma general puede expresarse como leyes fundamentales que esencialmente expresan el saber acumulado de experiencias pasadas. Así, las solución de muchos problemas en la ingeniería emplean un enfoque de dos perspectivas de análisis teórico y empírico. (Figura1.1).

Se debe notar que ambos enfoques están estrechamente relacionados. Conforme se realizan nuevas mediciones, las generalizaciones se pueden modificar o pueden desarrollarse otras nuevas. De forma similar, las generalizaciones pueden tener una gran influencia en los experimentos y en las observaciones. En particular, las generalizaciones sirven como principios que pueden ser empleados para sintetizar observaciones y resultados experimentales dentro de un marco de referencia coherente y comprensivo desde el cual se pueden obtener conclusiones. Desde la perspectiva de la solución de un

Page 5: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

5

problema en ingeniería, tal marco de referencia es las útil cuando se expresa en la forma de un modelo matemático.

El objetivo principal del presente capítulo es el de introducir al lector a la modelación matemática y su rol en la solución de problemas en la ingeniería. También se ilustrará cómo los métodos numéricos Figuran en el proceso. 1.1 Un simple modelo matemático Un modelo matemático puede describirse de forma general como una formulación o ecuación que expresa las características esenciales o el sistema físico o procesos en términos matemáticos. En un sentido muy general, se puede expresar como una relación funcional de la forma

Page 6: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

6

(1.1 )

donde la variable dependiente es una característica que refleja el comportamiento o el estado del sistema; las variables independientes son usualmente dimensiones, tales como tiempo y espacio, con las cuales se determina el comportamiento del sistema; los parámetros son un reflejo de las propiedades del sistema o composición; y las funciones de fuerza son las influencias externas actuando sobre él.

La verdadera expresión matemática de la ecuación 1.1 puede variar de una simple relación algebraica a un conjunto de ecuaciones diferenciales complicado. Por ejemplo, en base de sus observaciones, Newton formuló sus segunda ley de movimiento la cual establece que la razón de cambio del momento de un cuerpo con respecto al tiempo es igual a la fuerza resultante actuando sobre él. La expresión matemática, o modelo, de la segunda ley de Newton es la muy bien conocida ecuación

F = ma (1.2) donde F es la fuerza neta actuando sobre el cuerpo (en newtons, o kilogramos-metros por segundo cuadrado), m es la masa del objeto (en kilogramos), y a es su aceleración (en metros sobre segundo al cuadrado).

La segunda ley se puede reescribir en el la forma de la ecuación 1.1 simplemente dividiendo ambos lados de la igualdad entre m para obtener

a = F/m (1.3)

donde a es la variable independiente que refleja el comportamiento del sistema , F es la función de fuerza y m es el

Page 7: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

7

parámetro que representa la propiedad del sistema. Notemos que para este caso simple no hay variable independiente porque no se ha establecido como la aceleración cambia en el tiempo o en el espacio. La ecuación 1.2 tiene un número de características que son típicas de los modelos matemáticos el mundo físico. 1. Describe un proceso natural o sistema en términos

matemáticos. 2. Representa una idealización y simplificación de la realidad.

Esto es, el modelo ignora detalles despreciables de los procesos naturales y se enfoca en sus manifestaciones esenciales. Así, la segunda ley no incluye los efectos de la relatividad que son de mínima importancia cuando se aplican objetos y fuerzas que interactúan en la superficie de la Tierra a velocidades y escalas visibles para los humanos.

3. Finalmente, genera resultados reproductivos y, consecuentemente, puede ser usado para propósitos predictivos. Por ejemplo, si la fuerza de un objeto es pequeña y su masa es conocida, la ecuación 1.3 se puede usar para calcular su aceleración.

Debido a su forma simple, la solución de la ecuación 1.2

podría ser obtenida fácilmente. No obstante, otros modelos matemáticos de fenómenos físicos pueden ser muy complejos, y tampoco pueden ser resueltos de forma exacta o requieren técnicas matemáticas sofisticadas en lugar de simple álgebra para sus soluciones. Para ilustrar un modelo matemático más complejo de este tipo, la segunda ley de Newton puede utilizarse para determinar la velocidad terminal de un cuerpo en caída libre cerca de la superficie de la Tierra. El cuerpo cayendo será un paracaidista como se muestra en la Figura 1.2 . Un modelo para este caso puede ser derivado expresando la aceleración como la

Page 8: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

8

razón de cambio con respecto al tiempo de la velocidad (dv/dt) y sustituyéndola en la ecuación en la ecuación 1.2 para obtener

(1.4)

donde v es la velocidad (en metros por segundo). Así, la masa multiplicada por la razón de cambio de la velocidad es igual a la fuerza neta actuando sobre el cuerpo. Si la fuerza neta es positiva, el objeto acelerará. Si es negativa, desacelerará. Si la fuerza neta es cero, la velocidad del objeto permanecerá a nivel constante.

Después, se expresará la fuerza neta en términos de

variables medibles y parámetros. Para un cuerpo cayendo dentro de la vecindad de la Tierra (Figura 1.2), la fuerza neta está compuesta de dos fuerzas opuestas: la fuerza de atracción de la gravedad FD y la fuerza de resistencia del aire FU

F = FD + FU (1.5)

Page 9: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

9

Si la fuerza de atracción se asigna con un signo positivo, la segunda ley se puede usar para formular la fuerza debido a la gravedad como

FD = mg (1.6)

donde g es la constante gravitacional, de la aceleración de la gravedad, la cual es aproximadamente igual a 9.81m/s2.

La resistencia del aire puede formularse en una variedad de formas. Una simple aproximación es asumir que está es linealmente proporcional a la velocidad y actúa en dirección hacia arriba, esto es

FU = -cv (1.7) donde c es la constante de proporcionalidad llamada coeficiente de arrastre (en kilogramos por segundo). Así, a mayor velocidad de caída, mayor será la fuerza hacia arriba debido a la resistencia del aire. El parámetro c considera las propiedades del objeto cayendo, tales como la forma o la aspereza de la superficie, que afectan la resistencia del aire. Para este caso, c debe ser una función de la orientación usada por el paracaidista durante la caída libre.

La fuerza neta es la diferencia entre la velocidad de caída. Entonces las ecuaciones 1.4 a la 1.7 pueden combinarse para formar

(1.8)

o dividiendo cada lado por m

(1.9)

Page 10: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

10

La ecuación 1.9 es el modelo que relaciona la aceleración de un objeto cayendo por las fuerzas actuando sobre él. Esta es una ecuación diferencial porque está escrita en términos de la razón de cambio diferencial (dv/dt) de la variable en que se está interesado en predecir. Más bien, técnicas más avanzadas como el cálculo deben aplicarse para obtener una solución analítica. Por ejemplo, si el paracaidista está originalmente en el reposo (v=0 en t=0), el cálculo puede ser usado para resolver la ecuación 1.9, para

(1.10)

Notemos que la ecuación 1.10 es la forma general de la ecuación 1.1 donde v(t) es la variable dependiente, t es la variable independiente, c y m son parámetros y g es la función de fuerza. Ejemplo 1.1: Solución analítica del problema del paracaidista. Enunciado: Un paracaidista con una masa de 68.1 kg salta desde un globo aerostático en reposo. Use la ecuación 1.10 para calcular la velocidad antes de abrir el paracaídas. El coeficiente de arrastre es igual a 12.5 kg/s. Solución: Insertando los parámetros en la ecuación 1.10 se obtiene

De acuerdo con el modelo, el paracaidista acelera rápidamente (Figura1.3). La velocidad de 44.87 m/s (100.4 mi/h) se alcanza después de 10 s. Notemos también que después de un largo tiempo se alcanza una velocidad

Page 11: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

11

constante, llamada velocidad terminal, de 53.39 m/s (119.4 mi/h). Esta velocidad es constante porque eventualmente, la fuerza de gravedad se balanceará con la resistencia del air. Así, la fuerza neta es cero y la aceleración ha cesado.

La ecuación 1.10 es llamada la solución analítica exacta

porque satisface exactamente la ecuación diferencial original. Desafortunadamente, hay muchos problemas matemáticos que no pueden ser resueltos analíticamente. En muchos de estos casos, la única alternativa es desarrollar una solución numérica que se aproxime a la solución exacta.

Como se mencionó anteriormente, los métodos numéricos son aquellos en los cuales el problema matemático es reformado para que pueda ser resuelto con operaciones aritméticas. Esto se puede ilustrar para la segunda ley de Newton notando que la razón de cambio de la velocidad puede aproximarse por (Figura 1.4):

(1.11)

donde 𝛥 v y 𝛥 t son las diferencias de velocidad y tiempo calculados sobre intervalos finitos de tiempo, v(ti) es la velocidad inicial en el tiempo inicial ti y v(ti+1) es la velocidad a un tiempo después ti+1. La ecuación 1.11 es llamada una aproximación de

Page 12: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

12

diferencias divididas finitas de la derivada en el tiempo ti. Esto se puede sustituir en la ecuación 1.9 para obtener

Esta ecuación se puede reescribir para obtener

(1.12) Notemos que el término entre corchetes es el lado derecho de la igualdad en la ecuación 1.9. Esto es, proporciona un medio para calcular la razón de cambio de la pendiente de v. Así, la ecuación diferencial ha sido transformada en una ecuación que puede ser utilizada para determinar la velocidad algebraicamente en ti+1 utilizando la pendiente se puede calcular fácilmente la pendiente y valores previos de v y t. Si se da una velocidad inicial en un tiempo ti fácilmente se puede calcular la velocidad en un instante después ti+1. Este nuevo valor de velocidad en ti+1 puede extenderse para calcular de la velocidad en ti+2 y así sucesivamente. Así, para cada tiempo a lo largo de la trayectoria,

valor nuevo = valor antiguo + tamaño del paso

Page 13: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

13

Ejemplo 1.2: Solución numérica del problema del paracaidista. Enunciado: Realice el mismo cálculo que en el ejemplo 1.1 pero utilice la ecuación 1.12 para calcular la velocidad. Emplee un salto de 2s para el cálculo. Solución: En el inicio del calculo (ti=0), la velocidad del paracaidista es cero. Usando la información y los valores del parámetro del ejemplo 1.1 la ecuación 1.12 puede usarse para calcular la velocidad en ti+1 = 2 s.

Para el siguiente intervalo (de t=2 s a 4 s), se repite el cálculo con el resultado

El cálculo se continua de forma similar para obtener valores adicionales:

Los resultados se grafican en la Figura 1.5 junto con la solución exacta. Se puede notar que el método numérico tiene las características esenciales de la solución exacta. Aunque dado que se han usado segmentos de recta para aproximar una

Page 14: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

14

función de curva continua, hay discrepancia entre ambos resultados. Una forma para minimizar tales discrepancias es utilizar un salto más pequeño. Por ejemplo, aplicando la ecuación 1.12 para un salto de intervalos de 1-s resulta en un error mucho más pequeño, conforme los segmentos de línea recta se acercan más a la solución real. Haciendo cálculos a mano y utilizando saltos cada vez más pequeños hacen estas soluciones numéricas poco prácticas. No obstante, con la ayuda de las computadoras, se pueden realizar un gran número de cálculos fácilmente. Así podemos notar que hay un balance entre precisión y esfuerzo computacional. Estos balances Figuran prominentemente en los métodos numéricos y constituyen un importante tema en este libro. Consecuentemente, se ha dedicado al Epílogo de la primera parte como una introducción a más de estos balances.

1.2 Leyes de conservación e ingeniería Además de la segunda ley de Newton, hay otros principios de organización fundamentales en ingeniería. Entre los más

Page 15: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

15

importantes están las leyes de conservación. Aunque forman la base de una variedad de complicados y poderosos modelos matemáticos, las grandes leyes de conservación de la ciencia y la ingeniería son conceptualmente fáciles de entender. Todas se reducen a

Cambio = incremento – decremento (1.13) Esta es precisamente el formato que se emplea cuando se usó la segunda ley de Newton para desarrollar la fuerza de equilibrio para el paracaidista. [Ecuación 1.8].

Aunque simple, la ecuación 1.13 expresa una de las formas más fundamentales en que las leyes de conservación son utilizadas en ingeniería, esto es, predecir cambios con respecto al tiempo. Se le da un nombre especial, cálculo de variable de tiempo.

Además de predecir cambios, el incremento y decremento debe ser balanceado. Este caso, el cual recibe un nombre especial, (cálculo en estado estable), tiene muchas aplicaciones en ingeniería. Por ejemplo, el flujo de un fluido a través de un tubo, el flujo dentro de una unión debe ser balanceado con el flujo que sale, como en

Cambio = 0 = incremento – decremento o

Incremento = decremento (1.14) Así, para la unión de la Figura 1.6, el balance puede usarse para calcular que el flujo fuera del tubo debe ser 60.

Para el paracaidista en caída libre, el estado estable corresponde al caso en que la fuerza neta es cero (Ecuación 1.8 con m(dv/dt)=0)

mg = cv (1.15)

Page 16: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

16

Así, en estado estable, la fuerza hacia arriba y hacia abajo están en balance y la ecuación 1.15 puede resolverse para la velocidad terminal

v = mg/c

Aunque las ecuaciones 1.13 y 1.14 pueden parecer triviales, ambas representan dos formas fundamentales en que las leyes de conservación son empleadas en ingeniería. Como tal, formarán parte importante del desarrollo en los siguientes capítulos para ilustrar la conexión entre los métodos numéricos y la ingeniería. El principal método para realizar esta conexión son los casos de estudio que aparecen al final de cada capítulo del libro.

La tabla 1.1 resume algunos de los modelos simples de

ingeniería y las leyes de conservación asociadas que formarán la base de para muchos de este caso de estudio. Muchos de los casos de estudio en ingeniería química se enfocarán en el balance de masas para reactores. El balance de masas se deriva de la conservación de masa. Esta especifica que el cambio de la masa en un químico en un reactor depende del conjunto de masa fluyendo menos el que va saliendo.

Tanto los casos de estudio de ingeniería civil y química se enfocarán en modelos desarrollados de la conservación de momento. Para ingeniería civil, los balances de fuerza son utilizados para analizar estructuras tales como uniones en la tabla

Page 17: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

17

1.1. Los mismos principios son usados en los casos de estudio de ingeniería mecánica que analizan el movimiento transitorio o las vibraciones de un automóvil.

Finalmente, los casos de estudio de la ingeniería eléctrica

emplean tanto balances de corriente como de energía para modelar circuitos eléctricos. El balance de corriente, el cual resulta en la conservación de la carga, es similar en esencia al de balance de flujo en la Figura 1.6. Así como el flujo debe equilibrarse en la unión de los tubos, la corriente eléctrica debe equilibrarse en la unión de los cables eléctricos. El balance de

Page 18: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

18

energía especifica que los cambios de voltaje alrededor de cualquier lazo de circuito sumados deben dar cero.

Estos casos de estudio son diseñados para ilustrar cómo los métodos numéricos son realmente empleados en usos prácticos (Tabla 1.2) que se plantean en aplicaciones del mundo real. Con estas conexiones entre matemáticas técnicas matemáticas y métodos numéricos e ingeniería es importante aprovechar su máximo potencial.

Page 19: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

19

CAPÍTULO 2

Computadoras y software 2.1 Entorno informático Una perspectiva histórica es muy útil para apreciar los avances recientes en diseño de software. Como en la Figura 2.1, la era de las computadoras modernas se puede conceptualizar con el paso de generaciones. Antes de la década de 1970, la informática era monolítica en el sentido en que los sistemas de ordenadores centrales eran la única opción disponible. Dado que eran muy caros para poseer, operar y mantener, las computadoras solo podían ser adquiridas por grandes corporaciones, universidades, agencias de gobierno, y la milicia. Como se puede esperar, la forma centralizada en la que la informática fue conFigurada tuvo un profundo impacto en la manera en que los ingenieros y científicos interactuaban con las máquinas. En particular, una separación distinta existía entre el usuario y las computadoras.

A finales de la década de 1960, la introducción de circuitos integrados tuvo como resultado máquinas que eran más rápidas, baratas y pequeñas. Este progreso tecnológico generó un pequeño número de nuevos desarrollos que han llevado a una divergencia en la previa evolución unidireccional de la industria computacional (Figura 2.1).

Mientras que las primeras computadoras habían sido desarrolladas específicamente para grandes instituciones, la cuenta generación de computadoras fueron máquinas que fueron diseñadas para safisfacer las necesidades de las personas. Por consiguiente, los ingenieros en la actualidad tienen una amplia gama de herramientas con las cuales implementar la informática. En términos de tamaño, costo y número de usuarios, estas herramientas pueden dividirse generalmente en tres grandes

Page 20: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

20

categorías: microcomputadoras, minicomputadoras y computadoras centrales.

Las microcomputadoras (Figura 2.2a) fueron originalmente definidas como aquellas cuyas funciones principales estaban contenidas en un chip de circuito integrado. Son compactos, puede caber en un escritorio y cuesta alrededor de $1000 a $5000.

Minicomputadoras (Figura 2.2b) es un término algo impreciso para referirse a computadoras que son más poderosas que las micros pero aun continuan dentro de algunas pequeñas y medianas empresas. Pueden soportar múltiples usuarios pero no requieren el nivel de soporte requerido por las máquinas grandes. Su costo está en el orden de $10,000 a $100,000.

Las computadoras centrales (Figura 2.2c) están en el orden de millones de dólares y son utilizadas por grandes organizaciones. Requieren un grupo especial de personal de soporte y regularmente sirven para cientos de usuarios a la vez.

Antes de proceder, se debe notar que las clasificaciones anteriores no son rígidas. Por ejemplo, una nueva clase de computadora central más avanzada llamada supercomputadora esta emergiendo como una poderosa herramienta en ingeniería e investigación en el entorno científico (Figura 2.3). De forma similar, la distinción entre micros y minis se está borrando debido a las llamadas supermicros las cuales pueden caber en un escritorio y servir a varios usuarios. Adicionalmente, la forma en la que las computadoras se desarrollan o con tendencias vinculadas a borrar las distinciones entre categorías. Por ejemplo, una estación de trabajo para un ingeniero puede consistir de una terminal enlazada a una computadora central, una minicomputadora con muchas terminales, o una minicomputadora independiente.

Page 21: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

21

2.2 Proceso de desarrollo de software No importa qué tipo de computadora se esté usando, solo tiene utilidad solo si el usuario está provisto de instrucciones claras. Estas instrucciones son el software. Las siguiente secciones tratarán del proceso de componer de forma personal software de alta calidad para implementar métodos numéricos. La Figura 2.4 indica los cinco pasos que constituyen el proceso. Cada uno de estos pasos se discutirán a detalle en las siguientes secciones. Aunque, primero hay que mencionar algunos cambios cualitativos que han ocurrido en el desarrollo de software y los cuales han tenido una gran relevancia al implementar métodos numéricos en las computadoras. 2.2.1 Estilo de programación Así como el hardware ha evolucionado de forma dramática, el desarrollo de software también ha sufrido una radical transformación en años recientes. En los primeros años de la informática, programar era algo más un arte que una ciencia. Aunque todos los lenguajes tienen vocabularios muy preciosos y gramática, no hay una definición estándar para un buen estilo de programación. En consecuencia, las personas han desarrollado sus propios criterios sobre qué constituye una excelente pieza de software.

En años recientes, estos criterios tuvieron una gran influencia del hardware disponible. Las primeras computadoras eran caras, lentas y tenían pequeña memoria. Como consecuencia, un indicio de que un programa era bueno era que utilizara poca memoria como fuera posible. Otro podía ser que el programa se ejecutara de manera rápida. Otra era qué tan rápido podía escribirse el programa la primera vez.

El resultado fue que los programas fueron altamente no uniformes. En particular, porque fueron fuertemente influenciados por las limitaciones de hardware, los programadores pusieron

Page 22: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

22

poca importancia en la facilidad con los programas que podían ser utilizados y mantenidos. Esto es, si alguien deseaba utilizar y mantener de manera efectiva un programa largo por largos periodos, usualmente se tenía que mantener cerca al programador original.

Hoy día muchas de las limitaciones del hardware no existen o están desapareciendo rápidamente. En adición, como el costo del software constituye una gran fracción del total del presupuesto de una computadora (Figura 2.5), hay gran ganancia en desarrollar software que es fácil de utilizar y modificar. En particular hay un gran énfasis en la claridad y legibilidad en lugar de que sea un código breve no comunicativo. Este énfasis tiene gran significancia en la ingeniería en donde el trabajo se lleva a cabo en equipos, y los programas deben ser compartidos y modificados por varias personas.

Los científicos en computación han estudiado sistemáticamente los factores y procedimientos necesarios para desarrollar software de alta calidad. Aunque el resultado de los métodos están un poco orientados a esfuerzos de programación a gran escala, gran parte de las técnicas generales son de gran utilidad para los tipos de programas que los ingenieros desarrollan de forma rutinaria en el transcurso de su trabajo. Colectivamente, se llamará a este tipo de técnicas programación y diseño de estructuras. En la presente sección se discuten tres de estos enfoques. 2.2.2 Diseño modular Los programas de computadora pueden ser divididos en pequeños subprogramas o módulos, que pueden ser desarrollados y ejecutados por separado. Este enfoque es llamado diseño modular.

Page 23: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

23

El atributo más importante de los módulos es que son independientes y autónomos como sea posible. En adición, son típicamente diseñados para realizar una función específica y solo tienen un punto de entrada y un punto de salida. Como tal, son usualmente cortos (menos de 50 líneas de código) y muy enfocados.

Uno de los principales elementos de programación utilizados para representar cada módulo es la subrutina o procedimiento. Una subrutina es una serie de instrucciones a la computadora que juntas realizan una función dada. Un programado llamada o programa principal genera estos módulos conforme se necesitan. Así, el programa principal arma cada una de las partes en una sola forma.

El diseño modula tiene un gran número de ventajas. El uso de unidades pequeñas e independientes hace que la lógica fundamental más fácil para crear y entender tanto para el desarrollador como para el usuario. El desarrollo se facilita porque cada módulo puede perfeccionarse de forma aislada. De hecho, para grandes proyectos, diferentes programadores pueden trabajar en partes individuales. En el mismo contexto, uno puede mantener su propia biblioteca de modelos útiles para después usarlos en otros programas. Los diseños modulares también incrementan la facilidad con la que un programa puede ser depurado y ejecutado debido a que los errores pueden ser aislados más fácilmente. Esto se debe principalmente a que el hecho de que nuevos módulos puedan ser desarrollados para realizar tareas adicionales y así fácilmente incorporarlos dentro del programa ya organizado de forma coherente. 2.2.3 Diseño de arriba hacia abajo Aunque en las secciones previas la noción de diseño modular, no especifica cómo el módulo real es identificado. El diseño de arriba hacia abajo es un enfoque particularmente efectivo para cumplir este objetivo.

Page 24: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

24

El diseño arriba-abajo es desarrollo sistemático que comienza con el enunciado más general de los objetivos del programa y sucesivamente se divide en más segmentos detallados. Así el diseño procede de lo general a lo particular. Muchos diseños de arriba hacia abajo comienzan con una descripción en Inglés del programa en su forma más general. Esta descripción es entonces desglosada en pocos elementos que definen las funciones principales del programa. Entonces cada elemento principal es dividido en subelementos. Este proceso continúa hasta que los módulos bien definidos han sido identificados.

Además de proveer un método para dividir el algoritmo en unidades bien definidas, el diseño arriba-abajo tiene otros beneficios. En particular, se asegura de que el producto finalizado es comprensivo. Iniciando con una definición general y progresivamente añadiendo detalles, es menos probable que el programador pase por alto operaciones importantes. 2.2.3 Programación estructurada Las dos secciones previas han tratado con formas efectivas de organizar un programa. En ambos casos, se hizo énfasis en lo que debe hacer el programa. Aunque esto usualmente garantiza que el programa será coherente y bien organizado, no garantiza que las instrucciones del programa real o el código de cada módulo, mostrará claridad y orden. La programación estructurada, por otra parte, trata de cómo el código del programa real es desarrollado tal que sea fácil de comprender corregir y modificar.

En esencia, la programación estructurada son un conjunto de reglas que establecen un buen estilo de hábitos para el programador. Aunque la programación estructurada es suficientemente flexible para permitir una creatividad considerable y expresión personal, sus reglas imponen suficientes restricciones para realizar códigos resultantes mucho

Page 25: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

25

muy superiores a las versiones no estructuradas. En particular, el producto terminado es más elegante y fácil de entender.

Las reglas que constituyen la programación estructurada serán descritas en las subsiguiente sección (2.4.2). Antes de hacerlo, se dará el primer paso del proceso del desarrollo del programa, designando la lógica subyacente o el algoritmo del programa. 2.3 Diseño de algoritmos El problema más común con el que se encuentran los programadores inexpertos usualmente puede ser debido a su prematura preparación de un programa que no abarca una estrategia general o un plan. En los primeros días de la computación, esto era un problema molesto porque el diseño y los componentes de programación no estaban claramente separados. Los programadores de forma constante iniciaban un proyecto de informática sin un diseño claro y formulado. Esto guió a todo tipo de problemas e ineficiencias. Por ejemplo, un programador podía ir bien en un trabajo solo para descubrir que algún importante factor preliminar había sido pasado por alto. En adición, la lógica subyacente improvisaba programas que eran invariablemente confusos. Esto significó que era usualmente difícil para alguien modificar el programa de otra persona. Hoy día, debido a los altos costos del desarrollo de software, se ha puesto gran énfasis en aspectos tales como planeación preliminar que llevan a un producto más coherente y eficiente. El centro de esto es el diseño de algoritmos.

Un algoritmo es una secuencia de pasos lógicos requeridos para realizar una tarea específica tal como resolver un problema. Además de cumplir sus objetivos, un buen algoritmo debe tener un número de atributos:

Page 26: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

26

1. Cada paso debe ser determinista: esto es, nada debe ser dejado a la suerte. El resultado final no puede depender de quién esté siguiendo el algoritmo. En este caso, un algoritmo es análogo a un receta. Dos chefs trabajando de forma independiente en una receta deben terminar con los mismos platillos idénticos.

2. El proceso siempre debe terminar después de un número finito de pasos. Un algoritmo no puede tener un final abierto.

3. El algoritmo debe ser suficientemente general para lidiar con cualquier contingencia.

La Figura 2.6a muestra un algoritmo para la solución de un

problema sencillo de suma de dos números. Dos programadores independientes trabajando en este algoritmo pueden desarrollar programas que exhiban estilos diferentes. No obstante, dados los mismos datos, sus programas deben mostrar los mismos resultados.

Las descripciones paso a paso en Inglés mostradas en la Figura 2.6a por lo regular son una forma de expresar el algoritmo. Son particularmente útiles para pequeños problemas o para especificar tareas generales de un producto de programación más grande. No obstante, para representaciones detalladas de programas complicados, se vuelven inadecuados. Por esta razón, se han desarrollado alternativas visuales más versátiles llamados diagramas de flujo. 2.3.1 Diagramas de flujo Un diagrama de flujo es una representación visual o gráfica de un algoritmo. El diagrama de flujo emplea una serie de bloques y flechas, donde cada unos representa una operación particular o paso en el algoritmo. Las flechas representan la secuencia en la

Page 27: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

27

cual se implementan las operaciones. La Figura 2.6b muestra un diagrama de flujo del problema de la suma de dos números.

No todos los involucrados en la programación de computadoras está de acuerdo en que los diagramas de flujo son un esfuerzo productivo. De hecho, algunos programadores experimentados no abogan por los diagramas de flujo.

No obstante, hay tres razones para estudiarlos. Primero, siguen siendo utilizados para expresar y comunicar algoritmos. Segundo, incluso si no son empleados de forma rutinaria, habrán ocasiones en que demostrarán ser útiles en la planeación, desciframiento o comunicar la lógica del programa. Finalmente, y más importante para el propósito del curso, son una excelente herramienta pedagógica. Desde la perspectiva de la enseñanza, son medios ideales para visualizar algunos de las estructuras de control fundamentales en la programación de computadoras.

Símbolos de diagramas de flujo: Notemos que en la Figura 2.6b los bloques tienen diferentes formas para distinguir diferentes tipos de operaciones. En los primeros años de la computación, los símbolos de los diagramas de flujo no estaban estandarizados. Esto llevó a la confusión, dado que los programadores utilizaban diferentes símbolos para representar la misma operación. Hoy día se ha desarrollado un número de sistemas estandarizados para facilitar la comunicación. En este libro, se utiliza el conjunto de símbolos mostrados en la Figura 2.7.

Un diagrama de flujo se lee desde el principio en la terminal de inicio y siguiendo las lineas de flujo para seguir la lógica del algoritmo. Así como se muestra en la Figura 2.6b, se debe iniciar en el bloque 1 y entonces seguir la flecha de forma secuencia hasta que se llega al bloque terminal 6. Si la línea de flujo está escrita de forma apropiada, no debería haber ninguna duda respecto al camino correcto.

Aunque las lineas de flujo en la Figura 2.7 muestran jorobas para representar las líneas que pasan una sobre la otra sin tocarse, generalmente es mejor evitar lineas cruzadas.

Page 28: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

28

Las conexiones circulares permiten al flujo desconectarse de una sección del diagrama de flujo e iniciar de nuevo en otra locación. Se coloca un número dentro los puntos de entrada y salida de los conectores para especificar que cada par usado en un página dada (Figura 2.8). Algunos diagramas de flujo son tan grandes que se extienden sobre varias páginas. Los símbolos con forma de pala en las Figuras 2.7 y 2.8 son utilizadas para transferir el flujo entre páginas al igual que los conectores circulares en la página.

La construcción de diagramas de flujo se facilita mediante el uso de plantillas de plástico (Figura 2.9). La plantilla incluye los símbolos estándar para construir diagramas de flujo. Las plantillas están disponibles en muchas tiendas de artículos de oficina y tiendas de libros.

Niveles de complejidad de diagramas de flujo. No hay un conjunto estándar sobre qué tan detallado debe ser un diagrama de flujo. Durante el desarrollo de algoritmos más grandes, uno tendrá que bosquejar diagramas de flujo de varios niveles de complejidad. Como por ejemplo, la Figura 2.10 representa la jerarquía de tres cuadros que pueden ser usados en el desarrollo de un algoritmo para determinar el promedio de calificaciones o el índice cumulativo de un estudiante de ingeniería. El diagrama de flujo del sistema (Figura 2.10a) representa la gran imagen. Identifica las tareas principales, o módulos, y la secuencia que se requiere para resolver el problema entero. Tal repaso del diagrama de flujo es invaluable para asegurar que todo el esquema es suficientemente comprensivo para ser exitoso. Después las tareas principales se desglosan y se trazan en gran detalle (Figura 2.10b). Finalmente, a veces es ventajoso desglosar los módulos principales en unidades aún más manejables, como en la Figura 2.10c. Esto es un ejemplo del proceso de diseño arriba-abajo que fue introducido en la sección 2.2.3.

Page 29: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

29

En las siguientes secciones se estudiarán y se mejorará el diagrama de flujo de la Figura 2.10c . Esto se hará para ilustrar cómo los símbolos en la Figura 2.7 pueden acomodarse para desarrollar un algoritmo eficiente y efectivo. En el proceso, se demostrará cómo el poder de las computadoras se puede reducir a tres tipos de operaciones fundamentales. La primera, la cual debería ser aparente, es que la lógica de la computadora puede proceder en una secuencia definida. Como se muestra en la Figura 2.10a y c, esto se representa por el flujo de lógica de caja a caja. Las otras dos operaciones fundamentales son selección y repetición.

Selección y repetición en diagramas flujo: Notemos que las operaciones en la Figura 2.10a y c especifican un simple flujo secuencial. Esto es, la operación sigue uno después de otro. Sin embargo, hay que notar el primer símbolo de decisión con forma de diamante en la Figura 2.10b permite que el flujo se desvíe y siga uno de los dos posibles caminos, dependiendo de la respuesta de la pregunta. Para este caso, si las calificaciones finales están siendo determinadas, el flujo sigue el desvío a la derecha, mientras que si el examen se está aplicando, el flujo irá hacia la izquierda. Este tipo de diagrama se llama selección.

Además de representar una rama condicional, la Figura 2.10b demuestra otra operación de diagrama de flujo que incrementa enormemente el poder de un programa de computadora (repetición). Notemos que la rama “true” del símbolo de segunda decisión permite al flujo regresar al inicio del módulo y repetir los procesos de cálculo para otro curso. Esta habilidad de realizar tareas repetitivas está entre una de las fortalezas más grandes de las computadoras. La operación de repetir un conjunto de operaciones recibe el nombre de “bucle”.

Las operaciones de selección y repetición pueden emplearse con gran ventaja cuando se derivan algoritmos. Esto puede demostrarse desarrollando una versión improvisada de la Figura 2.10c.

Page 30: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

30

En la Figura 2.10c, se especifica una caja de procesos del total de calificaciones de exámenes y tener en cuenta el número de exámenes. Un diagrama de flujo más detallado para cumplir esos objetivos se muestra en la Figura 2.11. Notemos que el algoritmo consiste en un constructos de bucle y una decisión. La entrada del bucle cuenta y suma las calificaciones. Estas operaciones se repiten hasta que una calificación negativa activa la salida del bucle. En este punto, el constructo de selección se utiliza para calcular la calificación promedio. Un constructo selección se emplea para este propósito para evitar la división por cero en la eventualidad de que ninguna calificación positiva haya ingresado.

Diagramas de flujo estructurados: Los símbolos de los diagramas de flujo se puede utilizar para construir patrones lógicos de extrema complejidad. Sin embargo, programadores expertos han reconocido que, sin reglas, los diagramas de flujo se vuelven tan complicados que impiden aclarar las cosas más que facilitarlas.

Uno de los principales culpables que han contribuido a la complejidad de los algoritmos es la transferencia incondicional, también conocida como “GO TO”. Como el nombre implica, esta estructura de control permite que uno “vaya” a cualquier otra locación en el algoritmo. Para los diagramas de flujo, se representa simplemente por una flecha. El uso indiscriminado de de transferencias incondicionales puede hacer que los algoritmos, a la distancia, parezcan un plato de spaghetti.

En un esfuerzo por evitar este dilema, se aboga por la programación estructurada que ha demostrado que cualquier programa puede construirse con tres estructuras de control representadas en la Figura 2.12. Como se puede ver, corresponden a las tres operaciones (secuencia, selección y repetición) de las que se había discutido.

Todos los diagramas flujo deben estar compuestos de tres estructuras de control mostradas en la Figura 2.12. Si uno se

Page 31: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

31

limita a estas estructuras y se evitan los “GO TO”s, el algoritmo resultante será mucho más fácil de entender. 2.3.2 Pseudocódigos El objetivo de los diagramas de flujo es obviamente el de desarrollar un programa de computadora de calidad consistente con un conjunto de instrucciones paso a paso llamado código. Las Figuras 2.10 y 2.11 ilustran cómo los diagramas de flujo arriba-abajo se mueven en la dirección del programa de computadora. Recordando que en el diseño arriba-abajo, se desarrollan diagramas de flujo más desarrollados conforme de avanza desde el punto de vista original (Figura 2.10a) para especificar módulos (Figura 2.10c). En su nivel más detallado, el módulo del diagrama de flojo es casi de la forma de un programa de computadora. Esto es, como se ven en la Figura 2.11, cada compartimento del diagrama de flujo representa una instrucción individual bien definida para la computadora.

Una forma alternativa de expresar un algoritmo que cierra la brecha entre los diagramas de flujo y y el código de computadora es llamado pseudocódigo. Esta técnica usa declaraciones en Inglés en lugar de símbolos gráficos del diagrama de flujo. La Figura 2.13 muestra la representación del pseudocódigo para estructuras del control fundamentales.

Palabras clave como “BEGIN, DO, WHILE, etc” están en mayúsculas, mientras que las condiciones, pasos del procesamiento y tareas están en minúsculas. Adicionalmente, notemos que los pasos de procesamiento tienen sangría. Así las palabras clave forman un “sandwich” alrededor de los pasos para visualmente definir el grado de cada estructura de control.

La Figura 2.14 muestra la representación de un pseudocódigo del diagrama de flujo de la Figura 2.11. Esta versión se parece mucho más a un programa de computadora que a un diagrama de flujo. El pseudocódigo también es fácil de

Page 32: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

32

modificar. Aunque, dado a su forma gráfica, los diagramas de flujo a veces son más adecuados para visualizar algoritmos complejos. En el presente texto, el pseudocódigo será usado para algoritmos comunicativos relacionados con métodos numéricos. 2.4 Composición del programa Después de crear el algoritmo, el siguiente paso es expresarlo como código. Antes de discutir cómo se hará, primero se revisará el lenguaje de computadora utilizado en este libro. 2.4.1 Lenguajes de alto nivel Cientos de lenguajes de computadora se han desarrollado desde que la era de la computadora empezó. La cuestión de qué lenguaje es “mejor” ha sido un tema de un acalorado debate. Desafortunadamente, muchos programadores tienen un apego emocional a “su” lenguaje y han ido tan lejos para afirmar que todos los otros son inferiores. Estas actitudes parroquiales pueden ser contraproducentes. Aunque todos los lenguajes tienen sus limitaciones, cada uno puede ser usado como ventaja en el contexto de un problema particular.

En el presente texto, se ha hecho énfasis en BASIC, FORTRAN y Pascal. Estos lenguajes fueron elegidos dado que la principal audiencia no son desarrolladores de software profesionales, pero más bien el ingeniero quien está principalmente interesado en utilizar lenguajes de programación y métodos numéricos como herramientas para la solución de problemas.

FORTRAN. FORTRAN, la cual se expresa como fórmula de traducción, fue introducido comercialmente por IBM en 1957. Como su nombre implica, una de sus características distintivas es

Page 33: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

33

que utiliza una notación que facilita la escritura de fórmulas matemáticas. Por tales características, FORTRAN es el lenguaje innato de muchos ingenieros y científicos que alcanzaron la fluidez de las computadoras en una gran unidad central a comienzos de las décadas de 1960 y 1970. Aunque muchas computadoras personales utilizan BASIC, los compiladores de FORTRAN están disponibles para muchas de estás máquinas.

Además de fórmulas matemáticas, FORTRAN tiene otras características que son relevantes para los métodos numéricos. Por ejemplo, tiene capacidad estándar de manejar con gran precisión funciones matemáticas especiales incluyendo variables complejas. De forma adicional es muy conductivo a la programación modular debido a que sus subrutinas permiten escanear variables locales y la transferencia de valores entre subprogramas y el programa principal como argumentos. Así, bibliotecas de programas numéricamente orientados pueden desarrollarse u obtenerse comercialmente para usarse en un código de FORTRAN.

Muchas de las desventajas de FORTRAN están relacionadas con el hecho de que está implementada como un lenguaje compilado por lotes. Así, el desarrollo del programa es más lento que para un lenguajes interpretados como BASIC que son implementados con ambientes interactivos. FORTRAN también sufre debido a que las gráficas no son una parte intrínseca del lenguaje. Por consiguiente, FORTRAN requiere una librería especial de funciones para implementar gráficos.

BASIC. Así como los ingenieros y científicos tienen necesidades informáticas únicas, también los estudiantes las tienen. BASIC, que representa al código de instrucción simbólica multipropósito para principiantes, fue desarrollado expresamente como un lenguaje instructivo en Dartmouth College a mediados de los 60’s. Sus creadores, John Kemeny y Thomas Kurtz, reconocieron que, aunque FORTRAN era ampliamente utilizado, tenía ciertas características que planteaban problemas a programadores principiantes. Kemeny y Kurtz crearon BASIC

Page 34: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

34

como una alternativa que será más sencilla de aprender y usar. Aunque, conservaba muchas de las características esenciales de FORTRAN y agregaba algunas nuevas propias, era más que adecuado para muchos cálculos científicos y de ingeniería. Como consecuencia, está entre uno de los lenguajes de programación más populares en el mundo. En adición, es incuestionable el lenguaje más usado en las computadoras personales.

La mayor ventaja de BASIC es la facilidad con la que se puede aprender y aplicar, particularmente para el desarrollo de programas de tamaño pequeño y mediano. Esto se debe al hecho de que es un lenguaje interpretado. Aunque esto signifique que los programas corran lento, la retroalimentación obtenida por el usuario facilita en gran medida el aprendizaje y de depuración de códigos. En adición, una vez que el programa en BASIC ha sido depurado y ejecutado, los compiladores están listos para acelerar el tiempo de ejecución por un orden de magnitud.

BASIC comparte muchas ventajas computacionales que FORTRAN. En particular, dialectos actuales tales como Microsoft BASIC permiten largos nombres para las variables, doble precisión y bibliotecas adecuadas de funciones matemáticas. También las gráficas son una parte más intrínseca del lenguaje que en FORTRAN y, por lo tanto, son más fáciles de implementar.

Aunque BASIC es generalmente bien diseñado para implementar cálculos, tiene desventajas significativas en este aspecto. Por ejemplo, no manipula explícitamente o incluye funciones de variables complejas. Más importante, sin embargo, es el hecho de que muchos de los BASICs más populares no permiten no permiten argumentos ni variables locales en subrutinas (esto es, escaneo de variables). Así, BASIC es mucho menos adecuado para una aproximación modular que lenguajes como FORTRAN o Pascal. Este defecto representa serios impedimentos para que BASIC sea utilizado en trabajos de programación a gran escala.

Page 35: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

35

Pascal. Como se ve en la Figura 2.5, el desarrollo de software constituye la parte dominante del los costos de la informática. En consecuencia, las innovaciones que incrementan la productividad del programador y su eficiencia han llevado a significantes ahorros. Pascal es uno de los lenguajes estructurados que han sido desarrollados para facilitar la programación a gran escala. Desarrollado por Nicklaus Wirth y nombrado en honor a Blaise Pascal, el lenguaje utiliza un restringido conjunto de estructuras de diseño y otros principios organizativos. Pero esencialmente impone buenos hábitos de estilo en el usuario, Pascal desarrolla programas que son fáciles de usar y mantener. Estas ventajas lo hacen más apropiado para grandes programas.

Además de su estructura, muchos de los puntos fuertes de Pascal están relacionados con su capacidad de manipular datos estructurales lo hace más adecuado para usarse en capacidades de una avanzada computadora personal tales como ventanas, entradas de mouse y menús de operaciones.

La principal desventaja de Pascal se relaciona con los cálculos. Por ejemplo, carece de variables de doble precisión y no tiene un arsenal en la biblioteca de funciones como FORTRAN o BASIC. Además, el hecho de que es relativamente un lenguaje verboso los hace inapropiado para pequeños programas.

Dialectos. Conforme pasa el tiempo, nuevas versiones o “dialectos” de cada lenguaje son desarrollados. No es una sorpresa, que las versiones recientes de cada lenguaje incorporen algunas de las ventajas de los otros. Por ejemplo, dialectos recientes de BASIC han mejorado las capacidades de entrada-salida qué están más cerca del poder que los de FORTRAN. También, están disponibles versiones estructuradas de de BASIC y FORTRAN que incorporan algunas de las fortalezas de Pascal.

Los dialectos específicos usados en este libro (Microsoft BASIC, FORTRAN 77 y Turbo Pascal), fueron elegidos por su viabilidad, facilidad de uso y compatibilidad con un enfoque de

Page 36: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

36

programa estructurado. Así, todos los códigos en el libro están escritos en un estilo altamente estructurado derivado del pseudocódigo. En consecuencia, estos se pueden traducir en lenguajes más avanzados como C o Ada. En la siguiente sección, se elaborará este enfoque estructurado. 2.4.2 Programación estructurada No todos están de acuerdo con la definición estándar de programación estructurada. En general, la idea principal se centra en lo que se puede llamar Estructura Principal. La Estructura Principal: La estructura estática (esto es, la extensión de la página) del programa debería corresponder de forma simple con la estructura dinámica (esto es, la extensión en el tiempo) del cálculo correspondiente.

Así, “saltando” debido a ramificaciones indiscriminadas y otros hábitos de programación pobres serán evitados como consecuencia natural de la naturaleza ordenada de cálculos bien concebidos.

En adición a la estructura principal, hay muchas otras reglas que pueden ser consideradas como parte de una filosofía de programación estructurada. Las siguientes reglas se encuentran entre las más aceptadas generalmente: 1. Los programas deben consistir únicamente de tres

estructuras de control fundamentales de secuencia, selección y repetición (Figura 2.12). Los científicos de la computación han demostrado que cualquier programa puede estructurarse desde estas estructuras básicas.

2. Cada ánade estás estructuras debe tener solo una entrada una salida.

3. Deben evitarse transferencias incondicionales (GO TO’s).

Page 37: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

37

4. Las estructuras deben ser claramente identificadas con comentarios y medios visuales como sangrías, lineas en blanco y espacios en blanco. Aunque parezcan engañosamente simples, adherirse a estas

reglas evitará los cólicos en forma de spaghetti que son característicos de las derivaciones indiscriminadas. Debido a sus beneficios, estas reglas y otras prácticas de estructura programada serán analizadas en los subsecuentes capítulos de este libro.

Las Figuras 2.15 y 2.16 muestran cómo los contractos de selección y repetición son programados en tres dialectos empleados en este libro. Adicionalmente, la Figura 2.17 ilustra un tipo alternativo del método de repetición que será usado en subsecuentes programas.

La Figura 2.18 es un dramático ejemplo del contraste entre un enfoque estructurado y uno que no lo es. Ambos programas están diseñados para determinar la calificación promedio, el algoritmo que fue hecho en la imagen 2.14. Aunque los programas calculan valores idénticos, sus diseños se contrastan claramente. El propósito, la lógica y la organización del programa sin estructurar en la Figura 2.18a no es obvio. El usuario debe ahondar dentro del código línea por línea para descifrar el programa. En contraste, las partes principales de la Figura 2.18b son aparentes inmediatamente. El título, el módulo de identificación de variables, están localizadas al principio para orientar al usuario. La ejecución del programa, progresa de forma ordenada del inicio al final sin dar grandes saltos. Cada segmento tiene una entrada y una salida, cada uno está demarcado con comentarios, espacios y sangrías. En esencia, el programa es distinguible con claridad que es sinónimo de un diagrama de flujo bien diseñado. Adicionalmente, el programa es la evolución natural del pseudocódigo mostrado en la Figura 2.14.

No hay duda de que el programa en la Figura 2.18b toma más tiempo de desarrollar que el programa en la Figura 2.18a.

Page 38: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

38

Dado que muchos ingenieros pragmáticos están acostumbrados a “hacer el trabajo” de forma eficiente y de forma oportuna, el esfuerzo extra puede no estar justificado. Tal puede ser el caso para un pequeño programa que uno pueda desarrollar “para usarse una vez”. No obstante, para programas más importantes que cuyo propósito es usarlo uno mismo o por otros, no hay duda de que un enfoque estructurado es necesario. 2.5 Control de calidad Con las herramientas descritas hasta este punto, uno debería ser capaz de desarrollar un programa para implementar un cálculo en una computadora. Aunque, el hecho de que el programa muestre un resultado no garantiza que ese resultado sea correcto. Consecuentemente, ahora se enfocará hacia algunas cuestiones sobre la confiabilidad de un programa. Se enfatiza este tema en este punto para destacar la importancia en proceso del desarrollo de un programa. Dado que se está estudiando solución de problemas de ingeniería, gran parte del trabajo será usado por clientes. Por esta razón, es esencial que los programas sean confiables, es decir, que hagan lo que se supone que deben hacer. En el mejor de los casos, la ausencia de confiabilidad puede ser vergonzoso. En el peor, para problemas de ingeniería que involucran seguridad pública, pueden ser trágicos. 2.5.1 Errores o “bugs” Durante el curso de preparación y ejecución de programas de cualquier tamaño, es probable que ocurran errores. Estos errores a veces son llamados bugs.

Cuando se desarrolla y corre un programa, pueden ocurrir tres tipos de errores. 1. Los error de sintaxis violan las reglas del lenguaje tal como

deletrear, formación de números, numeración de líneas y otra

Page 39: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

39

cosas. Estos errores regularmente son el resultado de errores tales como escribir “REED” en lugar de “READ”. Usualmente resultan en que la computadora imprima un mensaje de error. Tales mensaje son llamados diagnósticos porque la computadora ayuda a “diagnosticar” el problema.

2. Los errores de tiempo de ejecución son aquellos que ocurren durante la ejecución del programa. Un ejemplo es cuando hay datos insuficientes para el número de variables en una declaración de entrada. Para tales situaciones el diagnóstico aparecerá en pantalla y después de deberán introducir los datos correctamente. Para otros errores de tiempo de ejecución la computadora simplemente puede terminar de correr el programa o imprimir un mensaje proporcionando información relacionada con el error.

3. Los errores lógicos, como el nombre lo dice, son debidos a una falla en la lógica del programa. Estos son los peores tipos de errores porque pueden ocurrir sin diagnósticos. Así, parecerá que el programa está trabajando adecuadamente en el sentido que compila, se ejecuta y genera una salida, pero el resultado es incorrecto. Todos los tipos de error arriba mencionados deben ser

eliminados antes de que el programa se pueda emplear para aplicaciones de ingeniería. Se divide el proceso de control de calidad en dos categorías: depuración y pruebas. Como se mencionó arriba, el proceso de depuración implica corregir los errores conocidos, el de prueba es un proceso más amplio cuyo fin es detectar errores que no son conocidos. Adicionalmente, la prueba debería también determinar si el programa cumple las necesidades para las que fue diseñado. 2.5.2 Depuración Como se dijo anteriormente, la depuración se encarga de corregir los errores conocidos. Hay tres formas en las cuales uno puede

Page 40: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

40

consciente de los errores. Primero, un diagnóstico explícito puede proveerle de la localización exacta y la naturaleza del error. Segundo, puede ocurrir un diagnóstico, pero la localización exacta del error es desconocida. Por ejemplo, la computadora puede indicar que hay un error en una línea que representa una larga ecuación. Este error puede ser debido a un error de sintaxis o también pudieron haber errores al momento de definir las funciones. Tercero, puede que no ocurran diagnósticos pero el programa no funciona adecuadamente. Estos son usualmente errores lógicos tales como bucles infinitos o errores matemáticos que no se encuentran en los errores de sintaxis. Corregir los primeros tipos de error es sencillo. Pero, pero para los segundos y terceros se requiere un análisis exhaustivo para identificar los errores.

Primero, se debe notar que interpretar BASIC en una computadora personal es un herramienta útil para depurar. Ya que su modo de operación interactiva, permite al usuario realizar ejecuciones repetidas del programa que a veces son innecesarias para la localización de errores. Aunque es complicado, el eficiente modo de ejecución de Turbo Pascal ofrece ventajas similares.

Un truco para identificar bugs es imprimir los resultados intermedios. Con este enfoque, a veces es posible determinar en que punto los cálculos divergieron. De forma similar, el uso de un enfoque modular obviamente ayudará a localizar errores en el camino. Uno puede poner una declaración diferente de salida al inicio de cada módulo y de este modo enfocar el módulo en que el error ocurrió. De forma adicional, en una buena práctica depurar (y ejecutar) cada módulo de forma separada antes de integrarlo con el resto del programa.

Una manera más formal de determinar la localización de un error es con una huella. Activando tal comando antes de correr el programa hace que la computadora muestre cada número de línea como si fuera un programa individual. Aunque para grandes

Page 41: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

41

programas esto puede resultar en una gran cantidad de salidas, es la forma más eficiente de encontrar un error.

Aunque los procedimientos anteriores pueden ser de utilidad, hay ocasiones en que la única opción es analizar el código línea por línea y hacer los cálculos a mano. 2.5.3. Ejecución Una de las ideas erróneas del programadores principiantes es la creencia de que si un programa ejecuta e imprime un resultado, es correcto. El peligro particular son aquellos casos en los que los resultados parecen ser “razonables” pero en realidad son incorrectos. Para asegurarse de que esos caso no ocurran, el programa debe estar sujeto a una serie de pruebas para las cuales las respuesta correcta es conocida de antemano.

Como se mencionó en la sección anterior, es una buena práctica la de depurar y probar los módulos antes de integrarlos al programa original. Así las pruebas proceden en fases. Estos son pruebas de módulos, pruebas de desarrollo, prueba de todo el sistema y pruebas operacionales.

Las pruebas de módulos, como el nombre lo dice, verifican la confiabilidad de los módulos individuales. Debido a que cada uno es diseñado para realizar una tarea en específico, éstos pueden ser ejecutados de forma aislada para verificar que se estén ejecutando correctamente. Una muestra con datos de entrada puede desarrollarse para la cual ya se conoce el resultado de salida. Estos datos pueden ser utilizados para ejecutar el módulo y el resultado de salida para compararlo con el resultado conocido para verificar su correcto funcionamiento.

Las pruebas de desarrollo son implementados conforme se integran los módulos al programa principal. Esto es, se realiza una prueba después de integrar cada módulo. Una forma efectiva de realizar esto en con un enfoque arriba-abajo que inicia con el primer módulo y continua con toda la secuencia de ejecución del

Page 42: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

42

programa. Al efectuar pruebas después de cada agregar un módulo nuevo, es más fácil aislar los problemas porque se deduce que los nuevos errores pueden atribuirse al último módulo que ha sido añadido.

Después de que todo el programa se ha juntado se puede hacer una prueba de todo el sistema. Estas deberían ser designadas para exponer el programa a 1. Datos típicos. 2. Datos inusuales pero válidos. 3. Datos incorrectos para medir la capacidad del programa de

manejar los errores. Finalmente, las pruebas operacionales son designadas para

analizar cómo se trabaja el programa un ajuste realista. Una forma común de hacer esto es asignar personas independiente (incluido el cliente) para que implementen el programa. Estas pruebas operacionales a veces revelan bugs. En adición, proveen una retroalimentación al desarrollador en cuanto a maneras de mejorar el programa tal que pronto pueda satisfacer las necesidades del usuario.

Aunque el objetivo final de los procesos de ejecución es elle asegurar que los programas se encuentran libres de errores, habrá casos en los que es imposible asignar al programa cada tipo de contingencia. También debería mencionarse de que el nivel de pruebas depende de la importancia y la magnitud del contexto del programa o para el que el programa ha sido desarrollado. Habrá diferentes niveles de rigor aplicados a un programa para determinar el promedio de un equipo de softbol así como un programa para regular la operación de un reactor nuclear. En cada caso, deben hacerse pruebas adecuadas que sean consistentes con las responsabilidades conectadas con el contexto del problema.

Page 43: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

43

2.6 Documentación Después que el programa ha sido depurado y ejecutado, debe ser documentado. La documentación es la adición de descripciones en inglés que permiten al usuario implementar el programa de forma más sencilla. Hay que recordar que entre otras personas que pueden emplear el software, uno mismo también es un “usuario”. Aunque el programa pueda parecer claro y simple cuando se compone por primera vez, con el tiempo el mismo código puede parecer misterioso. Por lo tanto, se debe incluir suficiente documentación para permitir que otros usuarios inmediatamente comprendan su programa y cómo se implementa. Esta tarea tiene aspectos internos y externos. 2.6.1 Documentación interna. La documentación interna de un código de computadora permite al usuario mejorar la comprensión el programa y cómo trabaja.

A continuación se presentan algunas sugerencias generales para documentar programas internamente. 1. Incluir un módulo al inicio del programa en donde aparezca el

nombre del programa, del desarrollador y una dirección. Esta es su firma e indica al programa como su trabajo.

2. Incluir un segundo módulo para definir cada una de las variables clave.

3. Seleccionar el nombre de las variables que son un reflejo del tipo de información que las variables van a usar.

4. Insertar espacios dentro de las declaraciones para que sean más fáciles de leer.

5. Utilizar comentarios de forma libre a lo largo del programa para agregar una explicación y saltar líneas con el propósito de clasificar, resaltar y separar los módulos.

6. En particular, utilice comentarios para clasificar y resaltar todos los módulos.

Page 44: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

44

7. Utilice sangría para resaltar las estructuras del programa. En particular, la sangría puede ser utilizada para resultas bucles y decisiones.

2.6.2 Documentación externa. La documentación externa se refiere a instrucciones en la forma de mensajes de salida y material impreso suplementario. Los mensajes ocurren cuando el programa corre y se intenta hacer el resultado atractivo y “amigable con el usuario”. Esto involucra el uso efectivo de espacios, lineas en blanco y caracteres especiales para indicar la secuencia lógica y la estructura del programa. Una salida atractiva simplifica la detección de errores y mejora la comunicación de los resultados del programa.

El material suplementario impreso puede abarcar desde una simple hoja hasta un manual de usuario comprensivo. La Figura 2.19 es un ejemplo de una formato de documentación simple que se recomienda que prepare para cada programa que desarrolle. Estos formatos pueden ser mantenidos en una libreta para proporcionar una rápida referencia a la biblioteca de su programa. El manual de usuario de su computadora es un ejemplo de documentación exhaustiva. Este manual le dice cómo ejecutar el sistema de su computadora y los programas del disco operativo. Note que para programas bien documentados, la información del título en la Figura 2.19 es innecesaria dado que el módulo está incluido en el programa. 2.7 Almacenamiento y mantenimiento Recordemos que cuando uno apaga la computadora, el archivo activo será destruido. Con el propósito de conservar el programa para un uso posterior, se puede transferir a una unidad de

Page 45: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

45

almacenamiento secundaria tal como un disco o una cinta después de apagar la máquina.

Además de esté método físico para conservar el programa, el almacenamiento y mantenimiento consisten en dos tareas principales: actualizar el programa cuando se tenga más experiencia y asegurarse de que el programa está almacenado de forma segura. El primero es en materia de comunicación con usuarios para retroalimentar respecto a mejoras de su diseño. 2.8 Estrategia de software Uno de los principales objetivos en utilizar este libro debería ser el de desarrollar su propia biblioteca de métodos numéricos. Tal biblioteca será de un inmenso valor en su futuro académico y profesional. Se ha proporcionado un diversa gama de medios computacionales para ayudarlo a lograr este objetivo. Estos incluyen programas de computadora, pseudocódigos y software.

Los programas incluidos en el libro son resumidos en la tabla 2.2. Las versiones han sido escritas en Microsoft BASIC, FORTRAN 77 y Turbo Pascal. Todos los programas de BASIC están escritos con un estilo interactivo que es compatible con personal del ambiente de las computadoras. En contraste, las versiones de FORTRAN y Pascal se presentan subrutinas en orden de jerarquizar la modularidad de estos lenguajes. Por supuesto, las subrutinas de FORTRAN y Pascal pueden ser incorporadas en programas interactivos para implementaciones en microcomputadoras.

Debe notarse que todos los códigos de computadora están escasamente documentados. Esto fue hecho intencionalmente. Una de sus tareas será documentar y mejorar utilizando sus propios recursos. Entre otras cosas, esto lo animará a entender la organización fundamental de cada programa y la lógica.

Page 46: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

46

Además de estos programas, pseudocódigos y otras descripciones de algoritmos son proporcionados para los siguientes métodos en el libro. Estos pueden formar la base para sus propios programas. Junto con los códigos de la tabla 2.2, estos programas constituirán una gran capacidad comprensiva de métodos numéricos.

Por encima de su propia colección, también se ha desarrollado un producto de software genérico llamado Electronic TOOLKIT que puede ser usado en conjunto con el libro. Esta paquetería incluye hojas de cálculo, estadística y programas gráficos junto con seis de los más fundamentales métodos numéricos (tabla 2.3). Cada uno de estos programas de métodos numéricos es ilustrado completamente con un problema de ejemplo en un capítulo del libro. Los ejemplos le pueden proporcionar modelos para diseñar pantallas de entrada o salida incluyendo una gráfica de los resultados. Se incluyen problemas de tarea en los capítulos relevantes para reforzar sus capacidades al usar el disco en su propia microcomputadora. Adicionalmente, el software puede emplearse para analizar la exactitud de sus propios programas.

Además de métodos numéricos, otras capacidades de Electronic TOOLKIT pueden ser usadas en conjunción con el texto. Los programas de estadística tienen una aplicación directa en el repaso de un tema en la introducción del capítulo 4. En adición, cada parte del libro incluye un conjunto de problemas de tarea que pueden ser resueltos directamente con el programa de la hoja de cálculo. 2.8.1 Hojas de cálculo e ingeniería Las hojas de cálculo electrónicas son un tipo especial de software que permiten al usuario realizar cálculos en filas y columnas de datos mostrados en el monitor de la computadora. Es una versión

Page 47: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

47

computarizada de una gran hoja de cálculo en la cual un calculo involucrado puede ser mostrado o extendido. Las hojas de cálculo tiene un número de ventajas que han contribuido a su inmensa popularidad. Primero, son extremadamente fáciles de usar y entender. Segundo, proporcionan un registro organizado de sus cálculos. Tercero, dado que todo el cálculo puede ser actualizado cuando cualquier número de la hoja es modificado, las hojas de cálculo son ideales para los análisis del tipo “¿y si?” (Figura 2.21). Esta es la último aspecto que agrega una poderosa dimensión nueva a la solución de problemas de ingeniería. (ver Chapra y Canale 1986).

Aunque han hecho su impacto más significante en el campo de los negocios, las hojas de cálculo aseguran un futuro prominente en los trabajo de ingeniería. Por esta razón, se han incluido el estudio y tareas de hojas de cálculo en cada parte principal del libro.

Page 48: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

48

CAPÍTULO 3

Aproximaciones y errores 3.1 Cifras significativas Este libro trabaja extensivamente con aproximaciones relacionadas con la manipulación de números. En consecuencia, antes de discutir los errores asociados con los métodos numéricos, es útil repasar conceptos básicos relacionados con la representación apropiada de los números.

Siempre que se emplean números en algún cálculo, se debe estar seguro que se van a usar con confianza. Por ejemplo, en la Figura 3.1 se representa un velocímetro y un cuentakilómetros de un automóvil. Analizando el velocímetro indica que que el carro está viajando entre 48 y 49 km/h. Dado que el indicador es mayor que el punto medio entre los marcadores del medidor, se puede decir con seguridad, que el automóvil está viajando a una velocidad de 49 km/h. Se tiene confianza es este resultado porque dos o más personas razonables leyendo este medidor llegarían a la misma conclusión. No obstante, digamos que la velocidad debe estar estimada con una cifra decimal. Entonces una persona podría decir 48.7 mientras que otra puede decir 48.8 km/h. Así, debido a los límites de este instrumento, solo los primeros dos dígitos pueden ser utilizados con seguridad. Estimar el tercero (o superiores) puede ser visto como una aproximación. Sería ridículo decir que, en base a este velocímetro, el automóvil está viajando a 487642138 km/h. En contraste, el cuentakilómetros proporciona seis cifras significativas. De la Figura 3.1 se puede concluir que el vehículo ha viajado menos de 87,324.5 km durante su vida. En este caso el séptimo dígito (y superiores) son desconocidos.

Page 49: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

49

El concepto de cifra significativa ha sido desarrollado para designar la confiabilidad de un valor numérico. Las cifras significativas de un número son aquellas que pueden utilizarse con confianza. Corresponden a los dígitos seguros más un dígito estimado. Por ejemplo, en el velocímetro y el cuentakilómetros en la Figura 3.1 manejan lecturas de tres y siete cifras significativas, respectivamente. Para el velocímetro, las dos cifras exactas son 48. Es conveniente colocar el dígito estimado como la mitad de la mínima unidad de medida. Por lo tanto la lectura que mostraría el velocímetro es 48.5. De forma similar, el cuenta kilómetros mostraría una lectura de siete cifras significativas 87,324.45.

Aunque es usualmente sencillo proceder a comprobar las cifras significativas de un número, en algunos casos pueden llevar a confusiones. Por ejemplo, los ceros no siempre son cifras significativas porque puede ser necesario localizar el punto decimal. Los números 0.00001845, 0.0001845 y 0.001845 tienen cuatro cifras significativas. De forma similar, cuando se utilizan ceros en grandes números, no es claro cuántos o si alguno de los ceros es significativo. Por ejemplo, el valor nominal de 45,300 puede tener tres, cuatro o cinco cifras significativas, dependiendo de cuántos ceros ce conocen con seguridad. Tal incertidumbre puede resolverse con utilizando notación científica donde

Page 50: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

50

4.53x104, 4.530x104 y 4.5300x104 designan que se conoce para tres, cuatro y cinco cifras significativas, respectivamente.

El concepto de cifras significativas tiene dos implicaciones importantes para estudiar métodos numéricos. 1. Tal como se introdujo en el problema del paracaidista, los

métodos numéricos llevan a resultados aproximados. Entonces se debe desarrollar un criterio para especificar qué tan confiable resulta la aproximación. Una manera de lograr esto es en términos de cifras significativas. Por ejemplo, se puede decidir que la aproximación es aceptable si es correcta para cuatro cifras significativas.

2. Aunque cantidades tales como 𝜋, 𝑒 ó 7 , representa cantidades específicas, no pueden ser expresadas por un número finito de dígitos. Por ejemplo, el número 𝜋 es igual a

3.141592653589793238462643… hasta el infinito. Debido a que las computadoras solo pueden trabajar con números finitos, tales números nunca se pueden representar de manera exacta. La omisión de tales cifras se llama, redondeo del error.

El redondeo del error y el uso de cifras significativas para expresar la confiabilidad de un resultado numérico se explorará en detalle en las subsiguientes secciones. Adicionalmente, el concepto de cifras significativas tendrá relevancia en la definición de exactitud y precisión en la siguiente sección. 3.2 Exactitud y precisión Los errores asociados con ambos cálculos y medidas pueden caracterizarse con la consideración de su exactitud y precisión. La exactitud se refiere a qué tan cerca está un valor medido o calculado con el valor real. La precisión se refiere a qué tan cerca el cálculo individual y el valor de la medición uno el otro. Así, la

Page 51: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

51

precisión significa el número de números significativos representan una cantidad y la precisión la dispersión de cálculos repetidos o medidas de un valor particular.

Estos conceptos pueden ilustrarse gráficamente utilizando una analogía de prácticas de tiro. Los hoyos de bala en cada objetivo en la Figura 3.2 pueden pensarse como las predicciones de la técnica numérica, mientras que el centro representa el resultado verdadero. La inexactitud (también llamada parcialidad) es definida como la derivación sistemática del resultado verdadero. Así, aunque algunos tiros en la Figura 3.2c están concentrado que en la Figura 3.2a, ambos casos son igualmente parciales dado que ambos están concentrados en el cuadrante superior izquierdo. La precisión (también llamada incertidumbre), por otro lado, se refiere a la magnitud de la dispersión. Por lo tanto, aunque la Figura 3.2b y d son igualmente exactas (esto es, centradas en el blanco), la segunda es más precisa porque todos los tiros están agrupados.

Los métodos numéricos deberían ser suficientemente

precisos para satisfacer las necesidades de un problema de

Page 52: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

52

ingeniería en particular. También deberían ser suficientemente precisos para un diseño de ingeniería adecuado. En este libro, se usará el término colectivo de error para representar tanto la inexactitud y la imprecisión. Con estos conceptos como antecedentes, ahora se discutirán los factores que contribuyen al error de los cálculos numéricos. 3.3 Definiciones de error. Los errores numéricos aparecen del uso de aproximaciones para representar operaciones y cantidades matemáticas exactas. Estos incluyen errores de truncamiento, que resultan cuando se usan aproximaciones para representar procedimientos matemáticos exactos y errores de redondeo. Para ambos casos, la relación entre el valor exacto, el resultado y la aproximación puede formularse como

Valor verdadero = aproximación + error (3.1) Reacomodando la ecuación 3.1 se descubre que el error numérico es igual a la discrepancia entre el verdadero y la aproximación, como en

Et = valor verdadero - aproximación (3.2) donde Et es utilizado para designar el valor exacto del error. El subíndice t se incluye para indicar que este es el “verdadero” (true, en inglés) error. Esto contrasta con otros casos, como se describe dentro de poco, donde una estimación “aproximada” del error debe emplearse.

Un defecto de esta definición es que no toma en cuenta en el orden de magnitud del valor que se examina. Por ejemplo, un error de un centímetro es mucho más significativo si estamos midiendo un río en lugar de un puente. Una manera de

Page 53: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

53

considerar las magnitudes de las cantidades que se evalúan es normalizar el error con el verdadero valor, como en

Error relativo fraccional verdadero = error verdadero

valor verdadero donde, como se especifica por la ecuación 3.2, error = valor verdadero - aproximación. El error relativo también puede ser multiplicado por 100 portento con el propósito de expresarlo como

(3.3)

donde 𝜖! representa el error relativo porcentual verdadero.

Page 54: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

54

Notemos que las ecuaciones 3.2 y 3.3, E y 𝜖 llevan un subíndice t que significa que el error está normalizado con el valor verdadero. En el ejemplo, se proporciona este valor. Aunque en situaciones reales tal información está raramente disponible. Mediante métodos numéricos, el valor verdadero solo podrá conocerse cuando se esté trabajando con funciones que pueden ser resueltas analíticamente. Tales casos pueden ser cuando se investiga el comportamiento teórico de una técnica particular para un sistema simple. Aunque en las aplicaciones en el mundo real, obviamente no se conocerá la respuesta verdadera a priori. Para estas situaciones, la alternativa es normalizar el error utilizando el mejor valor verdadero disponible, esto es, una aproximación de la forma

(3.4)

donde el subíndice a significa que el error está normalizado con el valor aproximado. Notemos también que para aplicaciones del mundo real, la ecuación 3.2 no puede ser utilizada para calcular el término de error de la ecuación 3.4. Uno de los retos de los métodos numéricos es determinar la estimación del error en ausencia del conocimiento del valor verdadero. Por ejemplo, ciertos métodos numéricos utilizan una aproximación iterativa para calcular resultados. En tales enfoques, la aproximación presente está basada en información previa. Este proceso se realiza repetidamente, o iterativamente, con el propósito de calcular exitosamente una mejor y mejor aproximación. Para tales casos, el error normalmente se estima, como la diferencia entre la aproximación previa y la presente. Este porcentaje de error relativo se determina de acuerdo a

(3.5)

Page 55: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

55

Este y otros enfoques para expresar errores se elaborarán en los subsiguientes capítulos.

Los signos en las ecuaciones 3.2 a la 3.5 pueden ser positivos o negativos. Si la aproximación es mayor que el valor verdadero (o la aproximación previa es mayor que la aproximación actual), el error es negativo; si la aproximación es menor que el valor verdadero, el error es positivo. También, para las ecuaciones 3.3 a la 3.5, el denominador puede ser menor que cero, lo cual lleva a errores negativos. Seguidamente, cuando se realizan cálculos, no se está interesado en el signo del error sino se está interesado en si el valor absoluto es menor que una tolerancia especificada 𝜖!. Así, es útil utilizar valores absolutos en las ecuaciones 3.2 a la 3.5. Para tales casos los cálculos se repiten hasta

(3.6) Si esta relación se mantiene, nuestro resultado se asume que se encuentra entre un nivel aceptable 𝜖! previamente especificado.

Es conveniente relacionar estos errores con el número de cifras significativas en la aproximación. Se puede demostrar (Scarborough, 1966) que si el siguiente criterio se conoce, se puede asumir que el resultado es correcto por lo menos hasta n cifras significativas.

(3.7)

Con las siguientes definiciones como antecedentes, ahora se puede proceder a los dos tipos de errores conectados directamente con los métodos numéricos. Estos son los errores de redondeo y los errores de truncamiento.

Page 56: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

56

3.4 Errores de redondeo Como se mencionó anteriormente los errores de redondeo se original por el hecho de que las computadoras solo pueden manejar un número finito de números durante un cálculo. Números tales como 𝜋, 𝑒 ó 7 no pueden expresarse como un número fijo de cifras significativas. Por lo tanto, no pueden ser representadas exactamente en la computadora. Las discrepancias introducidas por esta omisión de cifras significativas recibe el nombre de error de redondeo. 3.4.1 Representación de los números en las computadoras. Los errores de redondeo están directamente relacionados con la forma en que los números se almacenan en la computadora. La unidad fundamental por la cual la información se representa en una computadora se llama “palabra” (word, en inglés). Esta entidad consiste en una línea de dígitos binarios o bits. Los números típicamente se almacenan en una o más palabras. Para entender cómo se logra esto, primero se debe repasar algo de material relacionado con sistemas numéricos. Sistemas numéricos: Un sistema numérico es meramente una forma de representar números. Dado que tenemos 10 dedos en las manos y 10 en los pies, el sistema numérico, que nos es más familiar es el sistema decimal, o de base 10. Una base es el número utilizado como referencia para construir el sistema. El sistema de base 10 utiliza 10 dígitos, 0,1,2,3,4,5,6,7,8,9 para representar números. Por si solos, estos números se cuentan desde el 0 al 9. Para grandes cantidades, se utilizan las combinaciones de estos dígitos básicos, con la posición o valor de posición especificando la magnitud. El término de la derecha en todo el numero representa un número entre el 0 y 9. El segundo dígito desde la derecha representa un múltiplo de 10. El tercer dígito representa un múltiplo de 100 y así sucesivamente. Por ejemplo, si se tiene el número 86,409 entonces se tienen

Page 57: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

57

ocho grupos de 10,000, seis grupos de 1000, cuatro grupos de 100, cero grupos de 10 y 9 grupos de 1, o

La Figura 3.3a da una representación visual de cómo un número se crea en el sistema de base 10.

Ahora dado de el sistema de base 10 es muy familiar, no es común notar que hay otras alternativas. Por ejemplo, si los humanos tuvieran 8 dedos, indudablemente se habría desarrollado un sistema octal, o de base 8. En el mismo sentido, la computadoras como un animal de dos dedos que está limitada a dos estados, 0 ó 1. Esto se relaciona con el hecho de que las primeras unidades lógicas de las computadoras con componentes electrónicos que están apagados (correspondiente al 0) o encendidos (correspondiente al 1). Así, los números de la computadora está están representados en un código binario, o de base 2. Solo como ejemplo con el sistema de base 10, cada posición representa una potencia superior de la base del número.

Page 58: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

58

Por ejemplo, el número 11 en código binario es equivalente a (1𝑥2!) + (1𝑥2!) = 2 + 1 = 3 en el sistema de base 10. La Figura 3.3b muestra un ejemplo más complicado. Representación entera. Ahora que se ha repasado cómo el sistema base 10 puede representarse en forma binaria, es simple darse cuenta cómo están formados los enteros en una computadora. El enfoque más sencillo, llamado método de magnitudes de signo, emplea el primer bit de la palabra para indicar el signo, con 0 para positivo y 1 para el negativo. Los bits restantes se utilizan para almacenar el número. Por ejemplo, el valor entero de -173 puede estar almacenado en en una computadora de 16 bits como en la Figura 3.4.

Notemos que el método de magnitudes de signo descrito

arriba no se utiliza para representar a los enteros en computadoras convencionales. El enfoque preferido llamado técnica de complemento de 2 incorpora directamente el signo dentro de la magnitud del número más que proporcionar un bit separado para representar más o menos. Aunque el ejemplo 3,3 sigue siendo muy útil para ilustrar cómo las computadoras están limitadas a su capacidad para representar enteros. Esto es, números arriba o debajo del rango que no pueden ser representados. Se encuentra una limitación seria en el almacenamiento y manipulación de cantidades fraccionarias como se describe a continuación.

Page 59: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

59

Representación de puntos flotantes. Una cantidad fraccionaria es típicamente representada en las computadoras usando puntos flotantes. En este enfoque, el número es representado como una parte fraccional, llamada mantisa, y una parte entera llamada exponente, así,

m*be

donde m es la mantisa y b es la base del sistema numérico utilizado y e es el exponente. Por ejemplo, el número 156.78 puede ser representado como 0.15678 ⋅ 10! con un punto flotante en el sistema de base 10.

La Figura 3.5 muestra una forma en que el punto flotante puede acomodarse en un palabra. El primer bit se reserva para el signo, la siguiente serie de bits para el exponente indicado, y los últimos bits para la mantisa.

Notemos que la mantisa está normalizada si la primer dígito

es cero. Por ejemplo, suponga la cantidad 1/34 = 0.029411765… fue almacenada en punto flotante de base 10 que permite cuatro decimales para almacenar. Así 1/34 puede ser almacenado como

0.0294*100

No obstante, en el proceso, a inclusión de un cero innecesario a la derecha del decimal obliga a colocar el dígito 1 en el quinto lugar decimal. El número puede ser normalizado para remover el primer cero multiplicando la mantisa por 10 y bajando el exponente 1 para tener

0.2941*10-1

Page 60: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

60

Así, se conserva una cifra significativa adicional cuando el número se almacena. Esto es

(3.8)

donde b es la base. Por ejemplo, para un sistema de base 10, m puede estar entre 0.1 y 1, para un sistema de base 2, entre 0.5 y 1.

La representación de puntos flotantes permite que las fracciones y números muy grandes sean expresados en la computadora. No obstante, tiene algunas desventajas. Por ejemplo, los puntos flotantes utilizan más tiempo en el procedimiento que números enteros. Mas aún, su utilización introduce una especie de error debido a que la mantisa solo puede operar con un número finito de cifras. Así, se introduce el error de redondeo.

La Figura 3.7 manifiesta, el número de aspectos de representación de puntos flotantes que tienen importancia respecto al error de redondeo.

Page 61: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

61

1. Hay un rango limitado de número que pueden ser

representados. Para el caso de números enteros, hay una gran cantidad de números positivos y negativos que no pueden representarse. Intentar utilizar estos números resultara en lo que se llama error de “desbordamiento”. Aunque además de grandes números, la representación de puntos flotantes también tiene la limitación de que números pequeños tampoco pueden ser representados. Esto se ilustra en el “hoyo” de desbordamiento entre cero y el primer número positivo en la Figura 3.7. Se debe notar que este hoyo se hace más grande debido a la condición de normalización.

2. Solo hay un número pequeño de de cantidades que pueden representarse dentro del rango. Así, los grados de libertad son limitados. Obviamente los números irracionales no pueden ser representados. Más aún, los números racionales que no coincidan con alguno de los valores del conjunto tampoco puede ser representado precisamente. Los errores introducidos, por las aproximaciones de estos casos se refieren como errores de cuantización. La aproximación real se lleva a cabo de dos formas: cortando o redondeando. Por ejemplo, suponga que el valor de 𝜋 = 3.14159265358…es almacenado en un sistema de base 10 con 7 cifras significativas. Un método, de aproximación sería únicamente omitir el octavo término y los de orden superior como 𝜋 = 3.141592, con la introducción del error asociado de la ecuación 3.2.

Esta técnica de conservar solo los términos significativos fue originalmente llamado “truncamiento”. Se prefiere llamar “corte” para distinguirlo de los errores de truncamiento en la sección 3.5. Notemos que para el sistema de base 2 en la Figura 3.7, el corte significa que cualquier cantidad que se encuentre dentro de un intervalo 𝛥𝑥 será almacenada como la cantidad en el extremo inferior del intervalo. Así, el error acotado por arriba es 𝛥𝑥 .

Page 62: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

62

Adicionalmente, se introduce una parcialidad, debido a que todos los errores son positivos. El fallo del corte se atribuye al hecho de que los grandes términos en la representación decimal completa no tienen impacto en la versión reducida. Por ejemplo, en nuestro ejemplo de 𝜋, el primer termino despreciado es 6. Así, el último dígito conservado debería se redondeado para tener 3.141593. tal redondeo reduce el error a

Et = 0.00000035 … En consecuencia, el redondeo lleva a un error menor que el corte. Notemos que para el sistema de base 2 en la Figura 3.7, redondear significa que cualquier cantidad dentro del intervalo de longitud será representado como el número más cercano disponible. Así, el error acotado por arriba es 𝛥𝑥 /2. Adicionalmente, no se introducen parcialidades debido a que algunos errores son positivos y negativos. Algunas computadoras emplean redondeos. No obstante, esto incrementa los gastos generales de computadora, y en consecuencia, muchas computadoras utilizan simplemente el corte. Este enfoque se justifica bajo la suposición de que el número de cifras significativas es suficientemente grande tal que el error de redondeo es usualmente despreciable. 3. El intervalo entre números 𝛥𝑥, incrementa conforme el número crece en magnitud. Es esta característica, por supuesto, la que permite que la representación de punto flotante conserve cifras significativas. Aunque esto permite que los errores cuantizados sean proporcionales a la magnitud sean proporcionales a la magnitud del número que se está representando. Para números de punto flotante normalizados, esta proporcionalidad puede expresarse por casos donde el es

(3.9)

Page 63: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

63

y, por casos donde se emplea redondeo, como

(3.10) donde 𝜀 se llama como machine épsilon el cual puede calcularse como

(3.11)

donde b es la número base y t es el número de cifras significativas en la mantisa. Noten que las desigualdades en las ecuaciones 3.9 y 3.10 significan que estos errores están enlazado . Esto es, especifican el peor de los casos.

La magnitud depende de que los errores de cuantización tienen un número de aplicaciones prácticas en los métodos numéricos. Muchos de estos están relacionados con el empleo de operaciones de prueba en donde dos números son iguales. Esto ocurre cuando se estudia la convergencia de cantidades así como el mecanismo de frenado de un proceso iterativo. Para estos casos, debe ser claro que, en lugar de probar que dos cantidades son iguales, es aconsejable que probar que su diferencia es menor que la tolerancia mínima aceptable. Más allá, también debería ser evidente que la diferencia absoluta más que la normalizada debe ser comparada, particularmente cuando se trabaja con números de gran magnitud. Adicionalmente, el machine epsilon puede utilizarse en formular criterios de convergencia o de detención. Esto asegura que los programas son portátiles (esto es, no dependen en la computadora que son implementados). La Figura 3.9 enlista los pseudocódigos para determinar automáticamente el machine épsilon de una computadora binaria.

Page 64: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

64

Precisión extendida. Se debe notar a este punto que, aunque los errores de redondeo pueden ser importantes en contextos tales como la prueba de convergencia, el número de cifras significativas en muchas computadoras permiten que se hagan muchos cálculos en ingeniería con una precisión más que aceptable. Por ejemplo, el sistema numérico hipotético en la Figura 3.7 es una gran exageración que fue empleada para propósito ilustrativos. Las computadoras usan palabras más grandes y en consecuencia, permiten que los números sean expresados con una precisión más adecuada. Por ejemplo, la PC familiar de IBM permite 24 bits para utilizarse en la mantisa la cual trabaja con una precisión de siete dígitos de base 10.

Con este conocimiento, hay casos en que los errores de redondeo son críticos. Por esta razón muchas computadoras permiten la especificación de la precisión. Es muy común es la doble precisión, en la cual una palabra extra se emplea para almacenar una cifra significativa de la mantisa. Hay que notar que algunas computadoras permiten una precisión triple o superior en el exponente como en la mantisa del número del punto flotante.

Para ilustrar la mejora debido a la doble precisión estándar, se utilizará un caso hipotético de la cual emplea 32 bits de almacenamiento números de punto flotante. Para la precisión simple 1 bit sería usado para el signo, 7 para el signo del

Page 65: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

65

exponente y 24 para la mantisa. Como se expuso arriba, esta trabaja con 7 cifras significativas de base 10. Para doble precisión, un extra de 22 bits serían utilizados para crear una mantisa de 56 bits la cual permite 17 cifras significativas de base 10. Por lo tanto, a pesar de que el uso “doble”, el incremento sería una cantidad de más del doble de precisión en términos de cifras significativas.

En muchos casos, el uso de números de doble precisión puede mitigar en gran medida el efecto de los errores de redondeo. Aunque, el precio a pagar es que estos también requieren más memoria y tiempo de ejecución.

La diferencia en el tiempo de ejecución para el ejemplo anterior puede parecer insignificante. Aunque, conforme los programas se vuelven cada vez más y más grandes y complicados, el tiempo de ejecución añadido, debería volverse considerable y tener un impacto negativo en la efectividad como solucionador de problemas. No obstante, la precisión extendida no debería se utilizada de manera despreocupada. Más bien, debería ser empleada de forma selectiva cuando se obtenga el máximo beneficio en términos de tiempo de ejecución. En las siguientes secciones se dará una visión detallada de cómo los errores de redondeo afectan los cálculos y con eso se proporciona una base para el conocimiento que lo guía al uso de la capacidad de doble precisión. 3.4.2 Manipulaciones aritméticas de números de computadora Además de las limitaciones de los sistemas numéricos de la computadora, las verdaderas manipulaciones aritméticas que involucran estos números pueden resultar en errores de redondeo . En las siguientes secciones se pueden ilustrar cómo las operaciones aritméticas pueden afectar los errores de

Page 66: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

66

redondeo. Entonces se investigará el número de manipulaciones particulares a las que son propensas los errores de redondeo. Operaciones aritméticas comunes. Debido a su familiaridad los número de base 10 se emplearán para ilustrar los efectos de los errores del redondeo en una simple suma, resta, multiplicación y división. Otras bases numérica pueden comportarse de forma similar. Para simplificar esta discusión, se empleará una hipotética computadora decimal con una mantisa de 4 dígitos y un exponente de 1 dígito. Adicionalmente se utiliza el método de corte. Redondeando se podría guiar a lo mismo aunque con errores menos dramáticos.

Cuando se añaden dos números con puntos flotantes, se modifica la mantisa del número son el exponente más pequeño tal que los exponentes son los mismos. Esto tiene el efecto de alinear los puntos decimales. Por ejemplo, suponga que se quiere añadir 0.1557 ⋅ 10! + 0.4381 ⋅ 10!! . El punto decimal de la mantisa del segundo número se cambia a la izquierda un número de veces igual a la diferencia de los exponentes [1-(-1)=2] como en

Ahora los números se pueden sumar

y el resultado cortado es 0.1600 ⋅ 10!. Notemos cómo los últimos dos dígitos del segundo número que fueron cortados a la derecha se han perdido del cálculo.

Page 67: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

67

La resta se desarrolla de forma similar que la suma excepto que el signo del sustraendo se cambia. Por ejemplo, suponga que se resta 26.86 de 36.41. Esto es

Para este caso el resultado no está normalizado, entonces se debe cambiar el decimal un lugar a la derecha para que dé 0.9550 ⋅ 10!. Notemos que el cero añadido al final de la mantisa no es significante pero está meramente ligado a ocupar el espacio vacío creado por el cambio. Incluso resultados más dramáticos pueden obtenerse cuando los números están muy cercanos como en

el cual puede convertirse en 0.1000 ⋅ 10!. Así, para este caso, tres ceros insignificantes son agregados. Esto introduce un error computacional substancial debido a una manipulación subsecuente pueden actuar como si estos ceros fueran significantes. Como se verá en la siguiente sección, la pérdida de significancia durante la sustracción de números casi iguales es el mayor fuerte del error del redondeo en métodos numéricos.

La multiplicación y la división son un poco más sencillos que la suma o la resta. Los exponentes se suman y las mantisas se multiplican. Dado que la multiplicación de de dos mantisas de n dígitos lleva a un resultado de 2n dígitos, muchas computadoras conservan resultados intermedios en un registro de doble longitud. Por ejemplo

Page 68: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

68

Si, como en este caso, hay un cero inicial, el resultado está normalizado, y cortado para obtener

La división se realiza de forma similar, pero las mantisas se dividen y los exponentes se restan. Entonces el resultado está normalizado y cortado. Cálculos largos. Ciertos métodos requieren manipulaciones aritméticas de números extremadamente grandes para llegar a su resultado final. Adicionalmente, estos cálculos interdependientes. Esto es, los resultados recientes son dependientes de los primeros resultados. En consecuencia, incluso un error de redondeo original que podría ser pequeño, el efecto acumulado sobre el transcurso de un largo cálculo puede ser significativo.

Notemos que el tipo de error ilustrado en el ejemplo previo es muy atípico en que todos los errores en la operación repetida tienen el mismo signo. En muchos casos, los errores de largos cálculos alternan de signo de forma aleatoria y, así, de forma usual se cancelan. No obstante, hay instancias en que tales errores no se cancelan más bien llevan a un resultado final incorrecto. Las siguientes secciones están destinadas a proporcionar una visión de las maneras en las cuáles esto puede ocurrir. Agregar un número grande y uno pequeño. Supongamos que agregamos un número pequeño , 0.0010 a un número grande, 4000, utilizando nuestra computadora hipotética con la mantisa de 4 dígitos y el exponente de 1 dígito. Después de modificar el número más pequeño tal que el exponente se iguala al del mayor

Page 69: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

69

el cual es cortado como 0.4000 ⋅ 10!. Así, se pudo haber omitido la suma.

Este tipo de error puede ocurrir en el cálculo de series infinitas. Los términos iniciales es tales series son relativamente largos en comparación con los últimos términos. Así, después de que unos pocos términos se han añadido, se tiene la situación de agregar una pequeña cantidad, se llega a la situación de agregar una pequeña cantidad a una cantidad enorme.

Una forma de mitigar este tipo de error es sumar las series en orden inverso, esto es, en orden ascendente en lugar de orden descendente. De esta forma, cada término nuevo será mayor que la magnitud comparable de la suma acumulada. Cancelación substantiva. Este término se refiere al redondeo inducido cuando se sustrae dos términos de punto flotante con valores casi iguales.

Notemos que en el ejemplo anterior, hay ocasiones donde la cancelación sustantiva puede ser evitada mediante una transformación. No obstante, el único remedio general es emplear esta precisión extendida. Opacación. La opacación ocurre cuando un término individual de una sumatoria es más grande que la propia suma. 3.5 Errores de truncamiento Los errores de truncamiento son aquellos que resultan al usar una aproximación en lugar de un procedimiento matemático exacto. Por ejemplo, en el capítulo 1 aproximamos la derivada de

Page 70: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

70

la velocidad de caída de un paracaidista mediante una ecuación en diferencia finita dividida de la forma [ecuación (1.11)]:

(3.12)

Se presentó un error de truncamiento en la solución numérica, ya que la ecuación en diferencia sólo aproxima el valor verdadero de la derivada (véase Figura 1.4). Para obtener un conocimiento sobre las características de estos errores, debe considerar una formulación matemática que se utiliza ampliamente en los métodos numéricos para expresar funciones de manera aproximada: la serie de Taylor. 3.5.1 La serie de Taylor El teorema de Taylor (véase cuadro 4.1) y su fórmula, la serie de Taylor, es de gran valor en el estudio de los métodos numéricos. En esencia, la serie de Taylor proporciona un medio para predecir el valor de una función en un punto en términos del valor de la función y sus derivadas en otro punto. En particular, el teorema establece que cualquier función suave puede aproximarse por un polinomio.

Page 71: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

71

Una buena manera de comprender la serie de Taylor consiste en construirla término por término. Por ejemplo, el primer término de la serie es:

(3.13)

Esta relación, llamada la aproximación de orden cero, indica que el valor de f en el nuevo punto es el mismo que su valor en el punto anterior. Tal resultado tiene un sentido intuitivo, ya que si xi y xi+1 están muy próximas entre sí, entonces es muy probable que el nuevo valor sea similar al anterior.

Page 72: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

72

La ecuación (3.13) ofrece una estimación perfecta si la función que se va a aproximar es, de hecho, una constante. Sin embargo, si la función cambia en el intervalo, entonces se requieren los términos adicionales de la serie de Taylor, para obtener una mejor aproximación. Por ejemplo, la aproximación de primer orden se obtiene sumando otro término para obtener:

(3.14)

El término adicional de primer orden consiste en una pendiente f´(xi) multiplicada por la distancia entre xi y xi+l. Por lo tanto, la expresión representa ahora una línea recta y es posible predecir un incremento o un decremento de la función entre xi y xi+l.

Aunque la ecuación (3.14) puede predecir un cambio, sólo es exacta para una línea recta o una tendencia lineal. Por lo tanto, se le agrega a la serie un término de segundo orden para obtener algo de la curvatura, que pudiera presentar la función:

(3.15) De manera similar, se agregan términos adicionales para desarrollar la expansión completa de la serie de Taylor:

(3.16) Observe que debido a que la ecuación (3.16) es una serie infinita, el signo igual reemplaza al signo de aproximación que se utiliza en las ecuaciones (3.13) a (3.15). Se incluye un término residual para considerar todos los términos desde el (n + 1) hasta infinito:

(3.17)

Page 73: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

73

donde el subíndice n indica que éste es el residuo de la aproximación de n-ésimo orden y x es un valor de x que se encuentra en algún punto entre xi y xi+l. La x es tan importante que se dedica una sección completa (sección 3.5.2) para su estudio. Por ahora es suficiente darse cuenta de que existe este valor que da una estimación exacta del error. Con frecuencia es conveniente simplificar la serie de Taylor definiendo un tamaño de paso o incremento h = xi+1 – xi y expresando la ecuación (3.16) como

(3.18)

donde el termino residual es

(3.19)

En general, la expansión de la serie de Taylor de n-ésimo

orden será exacta para un polinomio de n-ésimo orden. Para otras funciones continuas y diferenciables, como las exponenciales y las senoidales, no se obtiene una estimación exacta con un número finito de términos. Cada uno de los términos adicionales contribuye, aunque sea con poco, al mejoramiento de la aproximación. Esto se muestra en el ejemplo 3.11, donde se obtendría un resultado exacto únicamente si se le agrega un número infinito de términos.

Aunque lo anterior es cierto, el valor práctico de las expansiones de la serie de Taylor estriba, en la mayoría de los

Page 74: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

74

casos, en el uso de pocos términos que darán una aproximación lo suficientemente cercana a la solución verdadera para propósitos prácticos. La determinación de cuántos términos se requieren para obtener una “aproximación razonable” se basa en el término residual de la expansión. Recuerde que el término residual es de la forma general de la ecuación (3.19). Dicha fórmula tiene dos grandes inconvenientes. Primero, x no se conoce con exactitud, sino que sólo se sabe que está entre xi y xi+1. Segundo, para la evaluación de la ecuación (3.19) se requiere determinar la (n + 1) ésima derivada de f(x). Para hacerlo, se necesita conocer f(x). Pero si ya se conoce f(x), entonces no hay razón para realizar la expansión de la serie de Taylor.

A pesar de este dilema, la ecuación (3.19) aún resulta útil para la evaluación de errores de truncamiento. Esto se debe a que se tiene control sobre el término h de la ecuación. En otras palabras, es posible decidir qué tan lejos de x se desea evaluar f(x) y controlar el número de términos que queremos tener en la expansión. Por esto, la ecuación (3.19) se expresa usualmente como

donde la nomenclatura O(hn+1) significa que el error de truncamiento es de orden hn+1. Es decir, el error es proporcional al incremento h elevado a la (n + 1) ésima potencia. Aunque esta aproximación no implica nada en relación con la magnitud de las derivadas que multiplican hn+1, es extremadamente útil para evaluar el error comparativo de los métodos numéricos que se basan en expansiones de la serie de Taylor. Por ejemplo, si el error es O(h) y el incremento se reduce

Page 75: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

75

a la mitad, entonces el error también se reducirá a la mitad. Por otro lado, si el error es O(h2) y el incremento se reduce a la mitad, entonces el error se reducirá a una cuarta parte.

En general, se considera que el error de truncamiento disminuye agregando términos a la serie de Taylor. En muchos casos, si h es suficientemente pequeño, entonces el término de primer orden y otros términos de orden inferior causan un porcentaje desproporcionadamente alto del error. Esta propiedad se ilustra en el ejemplo siguiente. 3.5.2 El residuo en la expansión de la serie de Taylor Antes de mostrar cómo se utiliza la serie de Taylor en la estimación de errores numéricos, se debe explicar por qué se incluye el argumento x en la ecuación (3.19). Un desarrollo matemático se presenta en el cuadro 3.1. Ahora se expondrá una interpretación más visual. Después se extiende este caso específico a una formulación más general.

Suponga que se trunca la expansión de la serie de Taylor [ecuación (3.18)] después del término de orden cero para obtener

En la Figura 3.15 se muestra una representación gráfica de esta predicción de orden cero. El residuo o error de esta predicción, que se indica también en la Figura, consiste de la serie infinita de términos que fueron truncados:

Page 76: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

76

Obviamente no resulta conveniente manipular el residuo en este formato de serie infinita. Se obtiene una simplificación truncando el residuo mismo de la siguiente manera:

(3.20)

Aunque como se mencionó en la sección previa, por lo común las derivadas de orden inferior cuentan mucho más en el residuo que los términos de las derivadas de orden superior; este resultado todavía es inexacto, ya que se han despreciado los términos de segundo orden y de órdenes superiores. Esta “inexactitud” se denota mediante el símbolo de aproximación a la igualdad empleado en la ecuación (3.20).

Una simplificación alternativa que transforma la aproximación en una equivalencia está basada en un esquema gráfico. Como se muestra en la Figura 3.15 el teorema del valor medio para la derivada establece que si una función f(x) y su primera derivada son continuas en el intervalo de xi a xi+1, entonces existe al menos un punto en la función que tiene una pendiente, denotada por f ′(x), que es paralela a la línea que une f(xi) y f(xi+1). El parámetro x marca el valor x donde se presenta la pendiente (Figura 3.16). Una ilustración física de este teorema es la siguiente: si usted viaja entre dos puntos a una velocidad promedio, habrá al menos un momento durante el curso del viaje en que usted se mueve a esa velocidad promedio.

Page 77: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

77

Figura 3.15:

Figura 3.16:

Al utilizar este teorema resulta fácil darse cuenta, como se muestra en la Figura (3.16), de que la pendiente f ′(x) es igual al cociente de la elevación R0 entre el recorrido h, o:

Page 78: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

78

que se puede reordenar para obtener

(3.21)

Por lo tanto, se ha obtenido la versión de orden cero de la ecuación (3.19). Las versiones de orden superior son tan sólo una extensión lógica del razonamiento usado para encontrar la ecuación (3.21). La versión de primer orden es

(3.22)

En este caso, el valor de x será el valor de x que corresponde a la derivada de segundo orden que hace exacta a la ecuación (3.22). Es posible obtener versiones similares de orden superior a partir de la ecuación (3.19). 3.5.3 Uso de la serie de Taylor para estimar los errors de truncamiento Aunque la serie de Taylor será muy útil en la estimación de los errores de truncamiento a lo largo de este libro, quizá no resulte claro cómo la expansión se aplica a los métodos numéricos. De hecho, esto ya se hizo en el ejemplo de la caída del paracaidista. Recuerde que el objetivo de los ejemplos 1.1 y 1.2 fue predecir la velocidad como una function del tiempo. Es decir, se deseaba determinar v(t). Como se especificó en la ecuación (3.16), v(t) se puede expandir en una serie de Taylor del siguiente modo:

(3.23)

Page 79: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

79

Ahora, truncando la serie después del término con la primera derivada, se obtiene:

(3.24)

En la ecuación (3.24) se despeja obteniendo:

(3.25)

La primera parte de la ecuación (3.25) es exactamente la misma relación que se usó para aproximar la derivada del ejemplo 1.2 [ecuación (1.11)]. Sin embargo, con el método de la serie de Taylor se ha obtenido una estimación del error de truncamiento asociado con esta aproximación de la derivada. Utilizando las ecuaciones (3.17) y (3.25) se tiene:

(3.26) o

(3.27)

Por lo tanto, la estimación de la derivada [ecuación (1.11) o la primera parte de la ecuación (3.25)] tiene un error de truncamiento de orden ti+1 – ti. En otras palabras, el error en nuestra aproximación de la derivada debería ser proporcional al tamaño del incremento. Entonces, si éste se divide a la mitad, se esperaría que el error de la derivada se reduzca a la mitad.

Page 80: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

80

3.5.4 Diferenciación numérica A la ecuación (3.25) se le conoce con un nombre especial en el análisis numérico: diferencia finita dividida y generalmente se representa como

(3.28)

(3.29)

donde a Δfi se le conoce como la primera diferencia hacia adelante y a h se le llama el tamaño del paso o incremento; esto es, la longitud del intervalo sobre el cual se realiza la aproximación. Se le llama diferencia “hacia delante”, porque usa los datos en i e i +1 para estimar la derivada (Figura 3.19a). Al término completo Δfi/h se le conoce como primer diferencia finita dividida.

Page 81: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

81

Figura 3.19

Esta diferencia dividida hacia adelante es sólo una de tantas

que pueden desarrollarse a partir de la serie de Taylor para la aproximación de derivadas numéricas. Por ejemplo, las aproximaciones de la primera derivada utilizando diferencias hacia atrás o diferencias centradas se pueden desarrollar de una manera similar a la de la ecuación (3.25). Las primeras usan valores en xi–1 y xi (Figura 3.19b); mientras que las segundas utilizan valores igualmente espaciados alrededor del punto donde la derivada está estimada (Figura 3.19c). Es posible desarrollar aproximaciones más exactas de la primera derivada incluyendo

Page 82: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

82

términos de orden más alto de la serie de Taylor. Finalmente, todas las versiones anteriores se pueden desarrollar para derivadas de segundo orden, de tercer orden y de órdenes superiores. En las siguientes secciones se dan resúmenes breves que ilustran cómo se obtienen algunos de estos casos. Aproximación a la primera derivada con diferencia hacia atrás. La serie de Taylor se expande hacia atrás para calcular un valor anterior sobre la base del valor actual,

(3.30) Truncando la ecuación después de la primera derivada y reordenando los términos se obtiene

(3.31)

donde el error es O(h), y a Δfi se le conoce como primera diferencia dividida hacia atrás. Véase la Figura 3.19b para una representación gráfica. Aproximación a la primera derivada con diferencias centradas. Una tercera forma de aproximar la primera derivada consiste en restar la ecuación (3.30) de la expansión de la serie de Taylor hacia adelante:

(3.32)

para obtener

Page 83: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

83

de donde se despeja

(3.33) La ecuación (3.33) es una representación de las diferencias centradas de la primera derivada. Observe que el error de truncamiento es del orden de h2 en contraste con las aproximaciones hacia adelante y hacia atrás, que fueron del orden de h. Por lo tanto, el análisis de la serie de Taylor ofrece la información práctica de que la diferencia centrada es una representación más exacta de la derivada (Figura 3.19c). Por ejemplo, si disminuimos el tamaño del incremento a la mitad, usando diferencias hacia atrás o hacia adelante, el error de truncamiento se reducirá aproximadamente a la mitad; mientras que con diferencias centradas el error se reduciría a la cuarta parte. Aproximaciones por diferencias finitas para derivadas de orden superior. Además de las primeras derivadas, la expansión en serie de Taylor sirve para obtener estimaciones numéricas de las derivadas de orden superior. Para esto, se escribe la expansión en serie de Taylor hacia adelante para f(xi+2) en términos de f(xi):

(3.34)

Page 84: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

84

La ecuación (3.32) se multiplica por 2 y se resta de la ecuación (3.34) para obtener:

de donde se despeja

(3.35)

Esta relación se llama la segunda diferencia finita dividida hacia adelante. Manipulaciones similares se emplean para obtener la versión hacia atrás

y la versión centrada

Como fue el caso con las aproximaciones de la primer

derivada, el caso centrado es más exacto. Observe también que la versión centrada puede ser expresada en forma alternativa como

Así, como la segunda derivada es una derivada de la derivada, la aproximación de la segunda diferencia finita dividida es una diferencia de dos primeras diferencias divididas.

Se volverá al tema de la diferenciación numérica en el capítulo 23. Aquí hemos presentado este tema porque es un muy buen ejemplo de por qué la serie de Taylor es importante en los métodos numéricos. Además, varias de las fórmulas vistas en esta sección se emplearán antes del capítulo 17.

Page 85: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

85

3.6 Propagación del error El propósito de esta sección consiste en estudiar cómo los errores en los números pueden propagarse a través de las funciones matemáticas. Por ejemplo, si se multiplican dos números que tienen errores, nos gustaría estimar el error de este producto. 3.6.1 Funciones de una sola variable Suponga que se tiene la función f(x) que es dependiente de una sola variable independiente x. Considere que x~ es una aproximación de x. Por lo tanto, se desearía evaluar el efecto de la discrepancia entre x y x~ en el valor de la función. Esto es, se desearía estimar

El problema para evaluar Δf(x~) es que se desconoce f(x) porque se desconoce x. Se supera esta dificultad si x~ está cercana a x y f (x~) es continua y diferenciable. Si se satisfacen estas condiciones se utiliza una serie de Taylor para calcular f(x) cerca de f(x~), como en

Quitando el segundo término, los de orden superior, y reordenando, se obtiene

(3.36)

Page 86: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

86

donde Δf(𝑥) = |f(x) – f(𝑥)| representa una estimación del error de la función y Δ𝑥 = |x – 𝑥| representa una estimación del error de x. La ecuación (3.26) proporciona la capacidad de aproximar el error en f(x) dando la derivada de una función y una estimación del error en la variable independiente. La Figura 3.20 es una gráfica que representa esta operación. Figura 3.20

3.6.2 Funciones de más de una variable El enfoque anterior puede generalizarse a funciones que sean dependientes de más de una variable independiente, lo cual se realiza con una versión para varias variables de la serie de Taylor. Por ejemplo, si se tiene una función de dos variables independientes, u y v, la serie de Taylor se escribe como

Page 87: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

87

(3.37)

donde todas las derivadas parciales se evalúan en el punto base i. Si no se consideran todos los términos de segundo orden y de orden superior, de la ecuación (3.37) puede despejarse

donde Δ 𝑢 y Δ 𝑣 son estimaciones del error en u y v, respectivamente.

Para n variables independientes 𝑥 1, 𝑥 2,…, 𝑥 n teniendo errores Δ 𝑥1, Δ 𝑥2,…, Δ 𝑥n se satisface la siguiente relación general

(3.38)

La ecuación (3.38) se utiliza para definir relaciones en la propagación de errores con las operaciones matemáticas comunes. Los resultados se resumen en la tabla 3.3. Se deja el desarrollo de estas fórmulas como un ejercicio de tarea. 3.6.3 Estabilidad y condición La condición de un problema matemático relaciona su sensibilidad con los cambios en los datos de entrada. Se dice que un cálculo es numéricamente inestable si la inexactitud de los

Page 88: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

88

valores de entrada se aumenta considerablemente por el método numérico.

Estas ideas pueden estudiarse usando una serie de Taylor de primer orden

Esta relación se emplea para estimar el error relativo de f(x) como en

El error relativo de x está dado por

Un número de condición puede definirse como la razón entre estos errores relativos

(3.39)

El número de condición proporciona una medida de qué tanto una inexactitud de x se aumenta por f(x). Un valor de 1 nos indica que el error relativo de la función es idéntico al error relativo de x. Un valor mayor que 1 nos señala que el error relativo se amplifica; mientras que para un valor menor que 1 nos dice que se atenúa. En funciones con valores muy grandes se dice que están mal condicionadas. Cualquier combinación de los factores en la ecuación (3.39), que aumente el valor numérico del número de condición, tendería a aumentar inexactitudes al calcular f(x).

Page 89: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

89

3.7 Error numérico total El error numérico total es la suma de los errores de truncamiento y de redondeo. En general, la única forma para minimizar los errores de redondeo consiste en incrementar el número de cifras significativas en la computadora. Adicionalmente, hemos notado que el error de redondeo aumentará debido a la cancelación por resta o debido a que en el análisis aumente el número de cálculos. En contraste, el ejemplo 3.13 demuestra que el error de truncamiento se reduce disminuyendo el tamaño del incremento. Como una disminución al tamaño del incremento puede llevar a una cancelación por resta o a un incremento de los cálculos, los errores de truncamiento disminuyen conforme los errores de redondeo se incrementan. En consecuencia, se debe afrontar el siguiente dilema: la estrategia para disminuir un componente del error total conduce a un incremento en el otro componente. En un cálculo, se podría disminuir el tamaño del incremento para minimizar los errores de truncamiento únicamente para descubrir que el error de redondeo empieza a dominar la solución y ¡el error total crece! Así, el remedio empieza a ser un problema (Figura 3.21). Es un reto determinar el tamaño del incremento apropiado para un cálculo en particular. Se deberá seleccionar un tamaño de incremento grande con la finalidad de disminuir la cantidad de cálculos y errores de redondeo para no tener como consecuencia grandes errores de truncamiento. Si el error total es como se muestra en la Figura 3.21, el reto es identificar un punto llamado de regreso disminuido donde los errores de redondeo no muestran los beneficios de la reducción del tamaño del incremento.

Page 90: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

90

Figura 3.21

En casos reales, sin embargo, tales situaciones son

relativamente poco comunes, porque muchas computadoras utilizan suficientes cifras significativas para que los errores de redondeo no predominen. Aunque, algunas veces estos errores ocurren y surge una clase de “principio numérico de incertidumbre” que da un límite absoluto sobre la exactitud que puede obtenerse usando ciertos métodos numéricos computarizados. 3.7.1 Control de errores numéricos En la mayoría de los casos prácticos, no se conoce el error exacto asociado con el método numérico. Con excepción, claro está, de cuando obtenemos la solución exacta que vuelve innecesaria la aproximación numérica. Por lo tanto, en la mayoría de las aplicaciones en ingeniería debe tenerse algún estimado del error en los cálculos.

No hay una forma sistemática ni general para evaluar el error numérico en todos los problemas. En muchos casos, la

Page 91: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

91

estimación del error se basa en la experiencia y en el buen juicio del ingeniero.

Aunque el análisis de error es hasta cierto punto un arte, se sugieren varios lineamientos prácticos de cálculo: lo primero, y principal, implica tratar de evitar la resta de dos números casi iguales. Cuando esto ocurre, casi siempre se pierden cifras significativas.

Algunas veces puede reordenarse o reformularse el problema para evitar la cancelación por resta. Y si esto no es posible, se utiliza la aritmética de precisión extendida.

Además, cuando se suman o se restan números, es mejor ordenarlos y trabajar primero con los números más pequeños, lo cual evita perder cifras significativas. Más allá de estas sugerencias de cálculo, se puede intentar predecir el error numérico total usando formulaciones teóricas. La serie de Taylor es la primera herramienta de análisis tanto para el error de truncamiento como para el error de redondeo. Varios ejemplos se han presentado en este capítulo. La predicción del error numérico total es muy complicada para, incluso, un problema de tamaño moderado, y tiende a resultar pesimista. Por lo tanto, únicamente se utiliza para tareas a pequeña escala.

La tendencia es avanzar con los cálculos numéricos e intentar estimar la exactitud de sus resultados. Esto algunas veces se puede hacer observando si los resultados satisfacen alguna condición o ecuación de prueba. O se pueden sustituir los resultados en la ecuación original para verificar si se satisface dicha ecuación.

Por último, usted debería estar preparado para realizar experimentos numéricos que aumenten su conocimiento de los errores de cálculo y de posibles problemas mal condicionados.

Page 92: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

92

Tales experimentos pueden consistir en repetir los cálculos con diferentes tamaños de incremento o método, y comparar los resultados. Llega a emplearse un análisis sensitivo para observar cómo la solución cambia cuando se modifican los parámetros del modelo o los valores de entrada. Es factible probar distintos algoritmos numéricos que tengan diferente fundamento matemático, que se basan en distintas estrategias de cálculo o que tengan diferentes características de convergencia y de estabilidad.

Cuando los resultados del cálculo numérico son extremadamente críticos y pueden implicar la pérdida de vidas humanas o tener severas repercusiones económicas, es apropiado tomar precauciones especiales. Esto implicaría el uso de dos o más técnicas independientes para resolver el mismo problema y luego comparar los resultados.

El papel de los errores será un tópico de preocupación y análisis en todas las secciones de este libro. Se dejan estas investigaciones en secciones específicas. 3.8 Equivocaciones, errores de formulación e incertidumbre en los datos Aunque las siguientes fuentes de error no están directamente relacionadas con la mayor parte de los métodos numéricos de este libro, en algunas ocasiones llegan a tener un gran impacto en el éxito al realizar un modelado. Por lo tanto, se deben tener siempre en cuenta cuando se apliquen técnicas numéricas en el contexto de los problemas del mundo real.

Page 93: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

93

3.8.1 Errores por equivocación A todos nos son familiares los errores por negligencia o por equivocación. En los primeros años de las computadoras, los resultados numéricos erróneos algunas veces se atribuían a las fallas de la propia computadora. En la actualidad esta fuente de error es muy improbable y la mayor parte de las equivocaciones se atribuyen a fallas humanas.

Las equivocaciones llegan a ocurrir a cualquier nivel del proceso de modelación matemática y pueden contribuir con todas las otras componentes del error. Es posible evitarlos únicamente con un sólido conocimiento de los principios fundamentales y mediante el cuidado con el que se enfoque y diseñe la solución del problema.

Las equivocaciones por lo general se pasan por alto en el estudio de un método numérico. Esto se debe sin duda al hecho de que los errores son, hasta cierto punto, inevitables. No obstante, recuerde que hay varias formas con las cuales se puede minimizar su aparición. En particular, los buenos hábitos de programación que se esbozaron en el capítulo 2 son muy útiles para disminuir las equivocaciones. Además, hay formas simples de verificar si un método numérico funciona correctamente. A lo largo del texto, se estudian algunas formas de verificar los resultados de un cálculo numérico. 3.8.2 Errores de formulación Los errores de formulación o de modelo pueden atribuirse al sesgo que implica un modelo matemático incompleto. Un ejemplo de un error de formulación insignificante es el hecho de que la

Page 94: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

94

segunda ley de Newton no toma en cuenta los efectos relativísticos. Esto no desvirtúa la validez de la solución del ejemplo 1.1, ya que estos errores son mínimos en las escalas de tiempo y espacio asociadas con el problema de la caída del paracaidista.

Sin embargo, suponga que la resistencia del aire no es linealmente proporcional a la velocidad de caída, como en la ecuación (1.7), sino que está en función del cuadrado de la velocidad. Si éste fuera el caso, las soluciones analíticas y numéricas obtenidas en el primer capítulo serían falsas debido al error en la formulación. En algunas aplicaciones de ingeniería del libro se presentan consideraciones adicionales a los errores de formulación. Se debe estar consciente de estos problemas y darse cuenta de que, si se está usando un modelo deficiente, ningún método numérico generará los resultados adecuados. 3.8.3 Incertidumbre en los datos Algunas veces se introducen errores en un análisis debido a la incertidumbre en los datos físicos obtenidos, sobre los que se basa el modelo. Por ejemplo, suponga que se desea probar el modelo de la caída del paracaidista, haciendo que un individuo salte repetidas veces, midiendo su velocidad después de un intervalo de tiempo específico. Sin duda, se asociaría cada medición con una incertidumbre, ya que el paracaidista caerá con más rapidez en unos saltos que en otros. Estos errores pueden mostrar inexactitud e imprecisión. Si los instrumentos constantemente subevalúan o sobrevalúan las mediciones de la velocidad, se estará tratando con un instrumento inexacto o desviado. Por otro lado, si las medidas

Page 95: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

95

son aleatoriamente grandes y pequeñas, entonces se trata de una cuestión de precisión.

Los errores de medición se pueden cuantificar resumiendo los datos con uno o más estadísticos, que den tanta información como sea posible, respecto a características específicas de los datos. Tales estadísticos descriptivos a menudo se seleccionan para obtener 1. la posición del centro de la distribución de los datos y 2. el grado de dispersión de los datos. Como tales, estos estadísticos ofrecen una medida de la desviación e imprecisión, respectivamente. En la parte cinco se regresa el tema de caracterización de incertidumbre de datos.

Aunque se debe estar consciente de los errores por equivocación, de los errores de formulación y de la incertidumbre en los datos, los métodos numéricos utilizados para construir modelos pueden estudiarse, en la mayoría de los casos, en forma independiente de estos errores. Por consiguiente, en la mayor parte de este libro se supondrá que no hay errores por equivocaciones, que el modelo es adecuado y que se está trabajando sin errores en las mediciones de los datos. En estas condiciones es posible estudiar los métodos numéricos sin complicaciones.

Page 96: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

96

CAPÍTULO 4

Métodos cerrados Este capítulo sobre raíces de ecuaciones se ocupa de métodos que aprovechan el hecho de que una función cambia de signo en la vecindad de una raíz. A estas técnicas se les llama métodos cerrados, o de intervalos, porque se necesita de dos valores iniciales para la raíz. Como su nombre lo indica, dichos valores iniciales deben “encerrar”, o estar a ambos lados de la raíz. Los métodos particulares descritos aquí emplean diferentes estrategias para reducir sistemáticamente el tamaño del intervalo y así converger a la respuesta correcta.

Como preámbulo de estas técnicas se analizarán los métodos gráficos para representar tanto las funciones como sus raíces. Además de la utilidad de los métodos gráficos para determinar valores iniciales, también son útiles para visualizar las propiedades de las funciones y el comportamiento de los diversos métodos numéricos. 4.1 Métodos gráficos Un método simple para obtener una aproximación a la raíz de la ecuación f (x) = 0 consiste en graficar la función y observar dónde cruza el eje x. Este punto, que representa el valor de x para el cual f(x) = 0, ofrece una aproximación inicial de la raíz.

Las técnicas gráficas tienen un valor práctico limitado, ya que no son precisas. Sin embargo, los métodos gráficos se utilizan para obtener aproximaciones de la raíz. Dichas

Page 97: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

97

aproximaciones se pueden usar como valores iniciales en los métodos numéricos analizados en este capítulo y en el siguiente.

Las interpretaciones gráficas, además de proporcionar estimaciones de la raíz, son herramientas importantes en la comprensión de las propiedades de las funciones y en la prevención de las fallas de los métodos numéricos. Por ejemplo, la Figura 4.2 muestra algunas de las formas en las que la raíz puede encontrarse (o no encontrarse) en un intervalo definido por un límite inferior xl y un límite superior xu. La Figura 4.2b representa el caso en que una sola raíz está acotada por los valores positivo y negativo de f(x). Sin embargo, la Figura 4.2d, donde f(xl) y f(xu) están también en lados opuestos del eje x, muestra tres raíces que se presentan en ese intervalo. En general, si f(xl) y f(xu) tienen signos opuestos, existe un número impar de raíces en el intervalo. Como se indica en las Figuras 4.2a y c, si f(xl) y f(xu) tienen el mismo signo, no hay raíces o hay un número par de ellas entre los valores.

Aunque dichas generalizaciones son usualmente verdaderas, existen casos en que no se cumplen. Por ejemplo, las funciones tangenciales al eje x (Figura 4.3a) y las funciones discontinuas (Figura 4.3b) pueden violar estos principios. Un ejemplo de una función que es tangencial al eje x es la ecuación cúbica f(x) = (x – 2)(x – 2)(x – 4). Observe que cuando x = 2, dos términos en este polinomio son iguales a cero. Matemáticamente, x = 2 se llama una raíz múltiple. Al final del capítulo 5 se presentan técnicas que están diseñadas expresamente para localizar raíces múltiples.

La existencia de casos del tipo mostrado en la Figura 4.3 dificulta el desarrollo de algoritmos generales para computadoras que garanticen la ubicación de todas las raíces

Page 98: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

98

en el intervalo. Sin embargo, cuando se usan los métodos expuestos en las siguientes secciones en conjunción con los métodos gráficos, resultan de gran utilidad para buscar muchas raíces en problemas de ecuaciones que se presentan rutinariamente en la ingeniería y en las matemáticas aplicadas. Figura 4.1

Page 99: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

99

Figura 4.2

Page 100: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

100

Figura 4.3

4.2 El método de bisección Cuando se aplicaron las técnicas gráficas en el ejemplo 4.1, se observó (Figura 4.1) que f(x) cambió de signo a ambos lados de la raíz. En general, si f(x) es real y continúa en el intervalo que va desde xl hasta xu y f(xl) y f(xu) tienen signos opuestos, es decir,

(4.1) entonces hay al menos una raíz real entre xl y xu.

Los métodos de búsqueda incremental aprovechan esta característica localizando un intervalo en el que la función cambie de signo. Entonces, la localización del cambio de signo (y, en consecuencia, de la raíz) se logra con más exactitud al dividir el intervalo en varios subintervalos. Se investiga cada uno de estos

Page 101: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

101

subintervalos para encontrar el cambio de signo. El proceso se repite y la aproximación a la raíz mejora cada vez más en la medida que los subintervalos se dividen en intervalos cada vez más pequeños. Volveremos al tema de búsquedas incrementales en la sección 4.4.

En el ejemplo anterior, se observa que el error verdadero no disminuye con cada iteración. Sin embargo, el intervalo donde se localiza la raíz se divide a la mitad en cada paso del proceso. Como se estudiará en la siguiente sección, el ancho del intervalo proporciona una estimación exacta del límite superior del error en el método de bisección. 4.2.1 Criterios de paro y estimaciones de errores Terminamos el ejemplo 4.3 diciendo que el método se repite para obtener una aproximación más exacta de la raíz. Ahora se debe desarrollar un criterio objetivo para decidir cuándo debe terminar el método.

Una sugerencia inicial sería finalizar el cálculo cuando el error verdadero se encuentre por debajo de algún nivel prefijado. En el ejemplo 4.3 se observa que el error relativo baja de 5.3 a 1.9% durante el procedimiento de cálculo. Puede decidirse que el método termina cuando se alcance un error más bajo, por ejemplo, al 0.1%. Dicha estrategia es inconveniente, ya que la estimación del error en el ejemplo anterior se basó en el conocimiento del valor verdadero de la raíz de la función. Éste no es el caso de una situación real, ya que no habría motivo para utilizar el método si se conoce la raíz.

Page 102: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

102

Por lo tanto, se requiere estimar el error de forma tal que no se necesite el conocimiento previo de la raíz. Como se vio previamente en la sección 3.3, se puede calcular el error relativo porcentual εa de la siguiente manera (recuerde la ecuación 3.5)

(4.2) donde xr

nuevo es la raíz en la iteración actual y xranterior es el valor

de la raíz en la iteración anterior. Se utiliza el valor absoluto, ya que por lo general importa sólo la magnitud de εa sin considerar su signo. Cuando εa es menor que un valor previamente fijado εs, termina el cálculo.

Aunque el error aproximado no proporciona una estimación exacta del error verdadero, la Figura 4.7 sugiere que ea toma la tendencia general descendente de εt. Además, la gráfica muestra una característica muy interesante: que ea siempre es mayor que εt. Por lo tanto, cuando εa es menor que εs los cálculos se pueden terminar, con la confianza de saber que la raíz es al menos tan exacta como el nivel aceptable predeterminado. Aunque no es conveniente aventurar conclusiones generales a partir de un solo ejemplo, es posible demostrar que εa siempre será mayor que εt en el método de bisección.

Page 103: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

103

Figura 4.7

Esto se debe a que cada vez que se encuentra una

aproximación a la raíz cuando se usan bisecciones como xr = (xl + xu)/2, se sabe que la raíz verdadera se halla en algún lugar dentro del intervalo de (xu – xl)/2 = Δx/2. Por lo tanto, la raíz debe situarse dentro de ±Δx/2 de la aproximación (Figura 4.8). Así, cuando se terminó el ejemplo 4.3 se pudo afirmar definitivamente que

Page 104: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

104

Figura 4.8

Debido a que Δx/2 = xr

nuevo - xranterior (Figura 4.9), la ecuación

(4.2) proporciona un límite superior exacto del error verdadero. Para que se rebase este límite, la raíz verdadera tendría que estar fuera del intervalo que la contiene, lo cual, por definición, jamás ocurrirá en el método de bisección. El ejemplo 4.7 muestra otras técnicas de localización de raíces que no siempre resultan tan eficientes. Aunque el método de bisección por lo general es más lento que otros métodos, la claridad del análisis de error ciertamente es un aspecto positivo que puede volverlo atractivo para ciertas aplicaciones en ingeniería.

Antes de utilizar el programa de computadora para la bisección, debemos observar que las siguientes relaciones (Figura 4.9)

Page 105: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

105

puede sustituirse en la ecuación (4.5) para desarrollar una formulación alternativa en la aproximación del error relativo porcentual

(4.3)

Figura 4.9

Esta ecuación resulta idéntica a la ecuación (4.2) para la bisección. Además, permite calcular el error basándose en nuestros valores iniciales; es decir, en la primera iteración. Por ejemplo, en la primera iteración del ejemplo 4.2, el error aproximado se calcula como

Otro beneficio del método de bisección es que el número de iteraciones requerido para obtener un error absoluto se calcula a priori; esto es, antes de empezar las iteraciones, donde se observa que antes de empezar esta técnica, el error absoluto es:

Page 106: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

106

donde los superíndices definen la iteración. Por lo tanto, antes de empezar el método se tiene la “iteración cero”. Después de la primera iteración el error será:

Debido a que en cada iteración se reduce el error a la mitad, la fórmula general que relaciona el error y el número de iteraciones, n, es:

Si Ea

n es el error deseado, en esta ecuación se despeja:

Probemos la fórmula. En el ejemplo 4.4, el intervalo inicial fue Δx0 = 16 – 12 = 4. Después de seis iteraciones, el error absoluto era:

Si se sustituyen esos valores en la ecuación (4.5) resulta:

Entonces, si se sabe de antemano que un error menor a 0.0625 es aceptable, la fórmula indica que con seis iteraciones se consigue el resultado deseado.

Page 107: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

107

Aunque se ha puesto énfasis en el uso del error relativo por obvias razones, habrá casos (usualmente a través del conocimiento del contexto del problema) donde se podrá especificar el error absoluto. En esos casos, la bisección junto con la ecuación (4.5) ofrece un útil algoritmo de localización de raíces. Se explorarán tales aplicaciones con los problemas al final del capítulo. 4.2.2 Algoritmo de bisección El algoritmo en la Figura 4.5 se extiende para incluir verificación del error (Figura 4.10). El algoritmo emplea funciones definidas por el usuario para volver más eficientes la localización de las raíces y la evaluación de las funciones. Además, se le pone un límite superior al número de iteraciones. Por último, se incluye la verificación de errores para evitar la división entre cero durante la evaluación del error. Éste podría ser el caso cuando el intervalo está centrado en cero. En dicha situación la ecuación (4.2) tiende al infinito. Si esto ocurre, el programa saltará la evaluación de error en esa iteración.

El algoritmo en la Figura 4.10 no es amigable al usuario; más bien está diseñado estrictamente para dar la respuesta. En el problema 4.14 al final del capítulo, se tendrá una tarea para volverlo fácil de usar y de entender.

Page 108: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

108

Figura 4.10

4.2.3 Minimización de las evaluaciones de una función El algoritmo de bisección de la Figura 4.10 es adecuado si se quiere realizar la evaluación de una sola raíz de una función que es fácil de evaluar. Sin embargo, hay muchos casos en ingeniería que no son así. Por ejemplo, suponga que se quiere desarrollar un programa computacional que localice varias raíces. En tales casos, se tendría que llamar al algoritmo de la Figura 5.10 miles o aun millones de veces en el transcurso de una sola ejecución.

Además, en un sentido más general, la función de una variable es tan sólo una entidad que regresa un solo valor para un solo valor que se le da. Visto de esta manera, las funciones no son simples fórmulas como las ecuaciones de una sola línea de código resueltas en los ejemplos anteriores de este capítulo. Por ejemplo, una función puede consistir de muchas líneas de código y su evaluación llega a tomar un tiempo importante de ejecución.

Page 109: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

109

En algunos casos, esta función incluso representaría un programa de computadora independiente. Debido a ambos factores es imperativo que los algoritmos numéricos minimicen las evaluaciones de una función. A la luz de estas consideraciones, el algoritmo de la Figura 4.10 es deficiente. En particular, observe que al hacer dos evaluaciones de una función por iteración, vuelve a calcular una de las funciones que se determinó en la iteración anterior.

La Figura 4.11 proporciona un algoritmo modificado que no tiene esta deficiencia. Se han resaltado las líneas que difieren de la Figura 4.10. En este caso, únicamente se calcula el valor de la nueva función para aproximar la raíz. Los valores calculados previamente son guardados y simplemente reasignados conforme el intervalo se reduce. Así, las 2n evaluaciones de la función se reducen a (n + 1). Figura 4.11

Page 110: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

110

4.3 Método de la falsa posición Aun cuando la bisección es una técnica perfectamente válida para determinar raíces, su método de aproximación por “fuerza bruta” es relativamente ineficiente. La falsa posición es una alternativa basada en una visualización gráfica.

Un inconveniente del método de bisección es que al dividir el intervalo de xl a xu en mitades iguales, no se toman en consideración las magnitudes de f(xl) y f(xu). Por ejemplo, si f(xl) está mucho más cercana a cero que f(xu), es lógico que la raíz se encuentre más cerca de xl que de xu (Figura 4.13). Un método alternativo que aprovecha esta visualización gráfica consiste en unir f(xl) y f(xu) con una línea recta. La intersección de esta línea con el eje de las x representa una mejor aproximación de la raíz. El hecho de que se reemplace la curva por una línea recta da una “falsa posición” de la raíz; de aquí el nombre de método de la falsa posición, o en latín, regula falsi. También se le conoce como método de interpolación lineal.

Usando triángulos semejantes (Figura 4.13), la intersección de la línea recta con el eje de las x se estima mediante

(4.4) en la cual se despeja xr (véase cuadro 4.1 para los detalles):

(4.5)

Page 111: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

111

Ésta es la fórmula de la falsa posición. El valor de xr calculado con la ecuación (4.7), reemplazará, después, a cualquiera de los dos valores iniciales, xl o xu, y da un valor de la función con el mismo signo de f(xr). De esta manera, los valores xl y xu siempre encierran la verdadera raíz. El proceso se repite hasta que la aproximación a la raíz sea adecuada. El algoritmo es idéntico al de la bisección (Figura 5.5), excepto en que la ecuación (4.7) se usa en el paso 2. Además, se usa el mismo criterio de terminación [ecuación (4.2)] para concluir los cálculos. Figura 4.13

Se obtiene una idea más completa de la eficiencia de los métodos de bisección y de falsa posición al observar la Figura 4.14, donde se muestra el error relativo porcentual verdadero de los ejemplos 4.4 y 4.5. Observe cómo el error decrece mucho

Page 112: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

112

más rápidamente en el método de la falsa posición que en el de la bisección, debido a un esquema más eficiente en el método de la falsa posición para la localización de raíces.

Recuerde que en el método de bisección el intervalo entre xl y xu se va haciendo más pequeño durante los cálculos. Por lo tanto, el intervalo, como se definió por Δx/2 =|xu – xl|/2 para la primera iteración, proporciona una medida del error en este método. Éste no es el caso con el método de la falsa posición, ya que uno de los valores iniciales puede permanecer fijo durante los cálculos, mientras que el otro converge hacia la raíz.

Como en el caso del ejemplo 4.6, el extremo inferior xl permanece en 12, mientras que xu converge a la raíz. En tales casos, el intervalo no se acorta, sino que se aproxima a un valor constante. Figura 4.14

Page 113: MÉTODOS NUMÉRICOS - curso.unach.mxrarceo/docs/TraduccionMetodosNumericosChapra.pdf · facultad de ciencias en fÍsica y matemÁticas universidad autÓnoma de chiapas traducciÓn

113

El ejemplo 4.6 sugiere que la ecuación (4.2) representa un criterio de error muy conservador. De hecho, la ecuación (4.2) constituye una aproximación de la discrepancia en la iteración previa. Esto se debe a que para un caso, tal como el del ejemplo 4.6, donde el método converge rápidamente (por ejemplo, el error se va reduciendo casi un 100% de magnitud por cada iteración), la raíz para la iteración actual xr

nuevo (es una mejor aproximación al valor real de la raíz, que el resultado de la iteración previa xr

anterior). Así, el numerador de la ecuación (4.2) representa la discrepancia de la iteración previa. En consecuencia, se nos asegura que al satisfacer la ecuación (4.2), la raíz se conocerá con mayor exactitud que la tolerancia preestablecida. Sin embargo, como se ve en la siguiente sección, existen casos donde el método de la falsa posición converge lentamente. En tales casos la ecuación (4.2) no es confiable y se debe desarrollar un criterio diferente de terminación.