2. MÉTODOS NUMÉRICOS PARA
INGENIEROS
Con aplicaciones en
computadoras personales
Steven C. Chapra, Ph.D.
Professor of Civil Engineering
Texas A&M University
Raymond P. Canale, Ph.D.
Professor of Ci.vil Engineering
The University of Michigan
Traducción:
Carlos Zapata S.
Ingeniero Electricista, UDLA
Diplomado en Ciencias de la Computación,
Fundaci6n Arturo Rosenblueth
Alfredo Cortés Anaya
Licenciado en Ciencias Físico-Matemiticas, UMSNH
Maestro en Ciencias de la Computaci6n,
IIMAS, UNAM
Revisión técnica:
Fernando Vera Badillo
Ingeniero Civil, Universidad La Salle
Jefe del Departamento de Matemlticas Aplicadas,
Universidad La Salle
McGRAW-HILL
MÉXICO BOGOTA BUENOS AIRES CARACAS GUATEMALA LISBOA MADRID
NUEVA YORK PANAMA SAN JUAN SANTIAGO SÁ0 PAUL0
AUCKLAND HAMBURG0 LONDRES MONTREAL
NUEVA DELHI PARíS SAN FRANCISCO SINGAPUR
ST. LOUIS SIDNEY TOKIO TORONTO
3. METODOS NUMÉRICOS PARA INGENIEROS
Con aplicaciones en computadoras personales
Prohibida la reproducción total o parcial de esta obra,
por cualquier medlo, sin autorizactón escrita del editor
DERECHOS RESERVADOS (9 1987, respecto a la primera edición en español por
LIBROS McGRAW-HILL DE MCXICO. S. A. DE C. V.
Atlacomulco 499-501, Fracc. Industrial San Andrés Atoto
53500 Naucalpan de Juárez, Edo. de México
Miembro de la Cámara Nacional de la lndustrla Editorial, Reg. Núm. 465
ISBN 968-451-847-1
Traducido de la primera edlclon en Inglés de
Numerical Methods for Engineers with Personal Computer Applications
Copyright @ MCMLXXXV, by McGraw-Hill, Inc., U. S. A
ISBN 0-07-010664-9
Impreso en Mexico Punted In Mexico
Esta obra se terminó de
imprimir en febrero de 1988
en Talleres Gráficos Continental, S. R. de C. V.
Calz. Tlalpan No. 4620
col. Niño Jesús
Delegación Tlalpan
1408 México, D.F.
Se tiraron 2 600 ejemplares
4. C O N T E N I D O
PREFACIO
PARTE I LOS METODOS NUMERICOS Y LAS COMPUTADORAS
PERSONALES
I. 1 Motivación
1.2 Fundamentos matemáticos
1.3 Orientación
Capítulo 1 Modelos matemáticos
Problemas
Capítulo 2 La programación en las computadoras
personales
2.1 Antecedentes históricos
2.2 Desarrollo de programas
2.3 Desarrollo de un programa para el problema del paracaidista
2.4 Estrategias de programación
Problemas
Capítulo 3 Aproximaciones y errores
3.1 Cifras significativas
3.2 Exactitud y precisión
3.3 Definiciones derror
3.4 Errores de redondeo
3.5 Errores de truncamiento
3.6 Error numérico total
3.7 Errores por equivocación, de planteamiento
e incertidumbre en los datos
Problemas
xi
1
4
7
11
19
21
22
24
46
52
56
63
64
66
67
72
77
95
96
98
5. Vi CONTENI-DO
EPILOG0 PARTE I
1.4 Elementos de Juicio
1.5 Relaciones y fórmulas importantes
1.6 Métodos avanzados y algunas referencias adicionales
PARTE II RAíCES DE ECUACIONES
I I. 1 Motivación
11.2 Fundamentos matemáticos
11.3 Orientación
Capítulo 4 Métodos que usan intervalos
4.1 Métodos gráficos
4.2 Método de bisección
4.3 Método de la regla falsa
4.4 Búsquedas con incrementos determinando una
aproximación inicial
Problemas
Capitulo 5 Métodos abiertos
5.1 Iteración de punto fijo
5.2 Método de Newton-Raphson
5.3 Método de la secante
5.4 Raíces múltiples
Problemas
EPiLOGO PARTE II
11.4 Elementos ¿e juicio
11.5 Relaciones y fórmulas importantes
11.6 Métodos avanzados y algunas referencias adicionales
PARTE 111 SISTEMAS DE ECUACIONES ALGEBRAICAS LINEALES
I I I. 1 Motivación
111.2 Fundamentos matemáticos
111.3 Orientación
Capítulo 7 Eliminación gaussiana
7.1 Solución de pocas ecuaciones
7.2 Eliminación gaussiana simple
1 o1
106
107
109
112
114
119
119
123
132
139
140
145
146
152
158
163
167
171
172
177
180
183
1 86
1 89
197
199
199
203
206
21 5
219
219
227
6. EPILOG0
PARTE IV
7.3 Desventajas de los métodos de eliminación
7.4 Técnicas de mejoramiento en las soluciones
7.5 Resumen
Problemas
Capítulo 8 Gauss-Jordan, inversión de matrices y
Gauss-Seidel
8.1 Método de Gauss-Jordan
8.2 Inversión de matrices
8.3 Método de Gauss-Seidel
Problemas
Capítulo 9 Casos de la parte 111: Sistemas de ecuaciones
Caso 9.1 Distribución de recursos (Ingeniería en general) ,
Caso 9.2 Cálculo de distribución de temperaturas
Caso 9.3 Análisis de una armadura estáticamente determinada
Caso 9.4 Corrientes y voltajes en circuitos resistivos
Caso 9.5 , Dinámica de partículas y cuerpos rígidos
Problemas
algebraicas lineales
(Ingeniería química)
(Ingeniería civil)
(Ingeniería eléctrica)
(Ingeniería mecánica)
PARTE 111
111.4 Elementos de juicio
111.5 Relaciones y fórmulas importantes
111.6 Métodos avanzados y algunas referencias adicionales
AJUSTE DE CURVAS
IV. 1 Motivación
IV.2 Fundamentos matemáticos
lV.3 Orientación
Capítulo 1 O Regresión con mínimos cuadrados
10.1 Regresión lineal
10.2 Regresión polinomial
10.3 Regresión lineal múltiple
Problemas
Capitulo 1 1 lnterpolación
1 l. 1 Polinomios de interpolación con diferencias
divididas de Newton
11.2 Polinomios de interpolación de Lagrange
11.3 Comentarios adicionales
11.4 lnterpolación segmentaria (spline)
Problemas
236
244
252
254
259
259
262
268
276
279
280
283
287
29 1
293
295
30 1
304
304
307
310
315
319
32 1
336
342
345
349
350
363
368
370
383
7. vi¡¡ CONTENIDO
EPiLOGO
PARTE V
Capítulo 12 Casos de la parte IV: Ajuste de curvas 387
Caso 12.1 Modelo de ingeniería de venta de productos
387
Caso 12.2 Regresión lineal y modelos demográficos
(Ingeniería 39 1
Caso 12.3 Ajuste de curvas en el diseño de un mástil para barco
395
Caso 12.4 Ajuste de curvas en la estimación de la corriente RMS
399
Caso 12.5 Regresión lineal múltiple en el análisis de datos
experimentales (Ingeniería mecánica) 402
Problemas 404
PARTE IV
IV.4 Elementos de juicio
IV.5 Relaciones y fórmulas importantes
IV.6 Métodos avanzados y algunas referencias adicionales
INTEGRACION
V. 1 Motivación
V.2 Fundamentos matemáticos
V.3 Orientación
409
41 1
41 1
41 5
422
424
Capítulo 13 Fórmulas de integración de Newton-Cotes 429
13.1 43 1
13.2 443
s con Inte gración 13.3 455
órmulas 13.4 458
Problemas 46 1
Capítulo 14 Integración de Romberg y cuadratura gaussiana 465
14.1 465
Cuadratura 14.2 474
Problemas 484
Capítulo 15 Casos de la parte V: Integración 487
Caso 15.1 Análisis de movimiento de efectivos (Ingeniería en general) 488
Caso 15.2 El uso de integrales para determinar la cantidad total
de calor en los materiales (Ingeniería química) 490
Caso 15.3 Fuerza efectiva sobre el mástil de un velero de carreras
492
Caso 15.4 Determinación de la corriente RMS mediante integración
numérica 496
Caso 15.5 Integración numérica en el cálculo del trabajo
499
Problemas 503
8. CONTENIDO iX
EPiLOGO PARTE V
V.4 Elementos de iuicio
V.5 Relaciones y fórmulas importantes
V.6 Métodos avanzados y algunas referencias adicionales
PARTE VI ECUACIONES DIFERENCIALES ORDINARIAS
VI. 1 Motivación
V1.2 Fundamentos matemáticos
V1.3 Orientación
Capítulo 16 Métodos de un paso
16.1 Método de Euler
16.2 Modificaciones y meioras al método de Euler
16.3 Métodos de Runge-Kuttc
16.4 Sistemas de ecuaciones
Problemas
Capítulo 17 Métodos de pasos múltiples
17.1 Un enfoque simple de pasos múltiples: Método de
Heun sin principio
17.2 Fórmulas de integración
17.3 Métodos de pasos múltiples de orden superior
Problemas
Capítulo 18 Casos de la parte VI: Ecuaciones diferenciales ordinarias
Caso 18.1 Modelos matemáticos para proyectos de venta de
computadoras (Ingenieria en general)
Caso 18.2 Diseño de un reactor para producción farmacéutica
(Ingeniería química)
Caso 18.3 Deflexión del mástil de un velero (Ingeniería civil)
Caso 18.4 Simulación de una corriente transitoria en un circuito eléctrico
(Ingeniería eléctrica)
Caso 18.5 El péndulo oscilante (Ingeniería mecánica)
Problemas
EPiLOGO PARTE VI
V1.4 Elementos de juicio
V1.5 Relaciones y fórmulas importantes
V1.6 Métodos avanzados y algunas referencias adicionales
BlBUOGRAFiA
iNDlCE
509
51 1
51 1
51 5
51 9
522
527
528
54 1
550
564
570
573
574
588
594
600
603
604
608
61 3
61 5
61 8
622
625
627
627
63 1
635
9.
10. P R E F A C I O
Para el ingeniero moderno el hecho de “ir a la par con su profesión” im-plica
inevitablemente el uso de las computadoras. Hay pocas disciplinas,
o dicho sea de otra forma, pocas actividades cotidianas que de alguna
manera no tienen contacto con estas máquinas tan poderosas y rápidas.
Ciertamente, las computadoras han sido por años un aliado de la inge-niería
al desempeñar millares de tareas, tanto analíticas como prácticas,
en el desarrollo de proyectos y la solución de problemas en forma más
eficiente. En consecuencia, cuanto más a fondo y más temprano se fami-liarice
el estudiante de ingeniería con su terminal o su computadora pel.
sonal, mejor será su formación.
Pero, ¿desde cuándo?, y ¿qué tan a fondo debe ser este contacto?
Los profesores de ingeniería reconocen desde hace mucho tiempo la im-portancia
del entrenamiento en los primeros semestres en la tecnología
de las computadoras. Tradicionalmente este entrenamiento abarcaba com-putadoras
grandes (mainframes) y un lenguaje de programación de alto
nivel como el FORTRAN. Desafortunadamente, es frecuente que a los
estudiantes les resulte difícil aplicar sus nuevas habilidades a proble-mas
de otras materias. Esto se debe a una variedad de factores, de entre
los cuales no carece de importancia la preparación necesaria para usar
sistemas con máquinas grandes. Como resultado, muchos estudiantes de
ingeniería no explotan bien la capacidad de solución de problemas que
tienen las computadoras hasta que están adentrados en su educación.
Creemos que la revolución de la microelectrónica nos dala oportuni-dad
de integrar la computación de una manera más efectiva en el salón
de clases. Debido a su bajo costo y conveniencia, las computadoras per-sonales
pueden aumentar la capacidad del estudiante de ingeniería para
resolver problemas durante sus añose scolares. Sin embargo, para explo-tar
esta oportunidad al máximo es necesaria una innovación de los cursos
de introducción a la computación. Por ejemplo, a través de los años se
ha desarrollado en las universidades’deT exas A&M y Michigan una rees-tructuración
en dos etapas. Hay un “primer curso de computación” dedi-cado
a orientar al estudiante al equipo computacional disponible y al
11. Xii PREFACIO
desarrollo de habilidades firmes dentro de la programación. El “segundo
curso de computación” está planeado para reafirmar estas habilidades y
mostrar el empleo de la solu&n de problemas en ingeniería.
El presente libro emanó del segundo curso. Se eligió el tema de los
métodos numéricos como punto principal por sus muchas aplicaciones
a la ingeniería. Ya sea que los ingenieros utilicen software comercial o
propio, creemos que es esencial una base sólida en los métodos numéri-cos
para la aplicación efectiva de las computadoras en la solución de pro-blemas
de ingeniería. Desafortunadamente, los métodos numéricos se
presentan durante el último año de licenciatura o a nivel de posgradua-dos,
años después del punto donde pudieron habsiedro herramientas úti-les,
instructivas y creativas para el futuro ingeniero.
Por consigu.iente, hemos elaborado este libro de tal forma que pueda
enseñarse en los extremos inferior o superior de la carrera de ingeniería
a nivel de licenciatura. Un aspecto de este plan se hace notar en la orga-nización
y en el alcance del libro, que está dividido en seis partes. La parte
I trata del material introductorio e incluye información sobre programación
y análisis de aproximación y error. Las cinco partes restantes están dedica-das
a las áreas de métodos numéricos, que tienen importancia directa para
el candidato a ingeniero: raíces de ecuaciones no lineales, ecuaciones alge-braicas
lineales, ajuste de curvas (regresión e interpolación), integración y
ecuaciones diferenciales ordinarias. Excluimos temas como los valores ca-racterísticos
y las ecuaciones diferenciales parciales, que tiene mayor impor-tancia
para los estudiantes de posgrado.
Junto con este material hemos incorporado ciertas características adi-cionales
en la elaboración de este libro, para hacerlo más accesible a lec-tores
tanto de los primeros como de los últimos niveles de licenciatura.
Incluyen:
1. Recuadros. Nos hemos empeñado en incluir derivaciones importan-tes
y análisis de error, con el fin de enriquecer la presentación. Sin
embargo, algunas veces tal material representa un escollo para el es-tudiante
novato. En consecuencia, hemos apartado en recuadros el
material matemático más complicado. Muchos estudiantees ncontra-rán
que pueden aplicar los métodos numéricos sin tener que domi-nar
completamente el material contenido en los recuadros.
2. Material introductorio y fundamentos matemáticos. Cada parte del li-bro
incluye una sección de introducción. Después de una breve ex-posición
al problema matemático general que va a estudiarse, se
suministra una motivación describiendo cómo podría enfocarse el pro-blema
en ausencia de computadoras, y dónde se plantea este proble-ma
en la práctica de la ingeniería. En seguida se efectúa una revisión
de los conceptos matemáticos necesarios para comprender el tema
por estudiar. Por ejemplo, se revisa álgebra matricial antes del estu-dio
de ecuaciones algebraicas lineales, y estadística antes del estudio
12. PREFACIO xiil
de regresión. Por último, se presentan un esquema y los objetivos de
estudio de cada parte, como orientación para el lector.
3. Epilogos. Así como la introduccih está planeada para dar una mo-tivación
y una orientación, incluimos un epílogo al final de cada
parte del libro para consolidar ios conceptos recién adquiridos. Un
detalle importante de este epílogo es una sección dedicada a los
elementos de juicio necesarios para la elección de los métodos
numéricos apropiados para un problema en particular. Además, se
resumen algunas fórmulas importantes y se citan referencias para
métodos avanzados.
4. Presentaciones secuenciales y gráficas. Cada parte principal del libro
consta de tres capítulos: dos dedicados a la teoría y uno al estudio
de casos. Siempre que es posible, los capítulos de teoría se estructu-ran
en forma secuencial, esto es, primero se presentan los plantea-mientos
más directos y elementales. Dado que muchos de los métodos
más avanzados se construyen sobre los más simples, la intención de
este desarrollo es proporcionar un sentido de evolución de las técni-cas.
Adicionalmente hemos desarrollado representaciones gráficas para
complementar las descripciones matemáticas en la mayor parte de los
planteamientos contenidos en el libro. Hemos encontrado que esta
orientación visual es particularmente efectiva para proporcionar una
mayor comprensión a los estudiantes de los primeros niveles de licen-ciatura.
5. Estudio de casos. En cada parte del libro se incluyen casos para de-mostrar
la utilidad práctica de los métodos numéricos. Se realizó un
gran esfuerzo para dar ejemplos de los cursos iniciales de las carreras
de ingeniería. Cuando esto no es posible, se han suministrado bases
teóricas y motivación para los problemas.
6. Software. Se dispone de un paquete de software denominado NU-MERICOMP
que muestra algunos métodos numéricosq ue se cubren
en el texto: bisección, eliminación gaussiana, interpolación de Lagrange,
regresión lineal, la regla trapezoidal y el método de Euler. Estos pro-gramas
proporcionan al estudiante los criterios de programación nece-sarios
para cada una de las partes del libro. El software está diseñado
para utilizarse con facilidad. Los estudiantes también pueden emplear-lo
para verificar los resultados de sus propios esfuerzos de programa-ción.
Aunque el paquete es opcional, pensamos que puede lograrse
un progreso más rápido cuando se emplean el libro y el software con-juntamente;
se puede conseguir a través de McGraw-Hill para lasc om-putadoras
personales IBM-PC y APPLE 11. Una versión profesional
de NUMERICOMP puede adquirirse directamente de EnginComSpo ft-ware,
Inc., 15 Research Dr., Ann Arbor, MI 48103.
13. Finalmente, nos hemos esforzado conscientemente en hacer este li-bro
tan sencillo al usuario como sea posible, por lo que nos empefiamos
en mantener nuestras explicaciones con una orientación directa y prácti-ca.
Aunque nuestrai ntención primaria es presentar a los estudiantes una
sólida introducción a los métodos numéricos, un objetivo subordinado ha
sido hacer de esta introducción una experiencia agradable. Creemos que
los estudiantes que disfruten los métodos numéricos, las computadoras
y las matemáticas, serán al final mejores ingenieros. Si nuestro libro alienta
el entusiasmo por estas materias, consideraremos nuestro esfuerzo como
un éxito.
AGRADECIMIENTOS
Queremos agradecer las revisiones hechas por los profesores Ted Cad-man
(University of Maryland), Lee W. Johnson (Virginia Polytechnic and
State University), Richard Noble (University of Colorado), Satish Ramadh-yani
(Purdue University), Howard Wicke (Ohio University) y Thomas C.
Young (Clarkson University). Extendemos nuestra gratitud a la Texas
A&M University y a la University of Michigan por proporcionarnos apoyo
secretarial y gráfico y el tiempo necesario para preparar este libro. En par-ticular,
Donald McDonald y Roy Hann de Texas A&M apoyaron cons-tantemente
este esfuerzo. Obtuvimos sugerencias y buenas ideas de
nuestros colegas Bill Batchelor, Harry Jones, Bill Ledbetter, James Mar-tin
y Ralph Wurbs. Jeanne Castro ideó la organización gráfica de los capí-tulos.
También Vanessa Stipp, con la ayuda de Kathy Childers, Cindy
Denton y Frances Kahlich, hicieron una excelente labor al mecanografiar
el manuscrito.
Este libro se experimentó en clase durante cuatro semestres, princi-palmente
con alumnos de segundo año en Texas A&M y durante dos
semestres con alumnos de todos los niveles de licenciatura en Michigan.
Durante este tiempo, muchos de los alumnos nos ayudaron a comprobar
la exactitud matemática y a enriquecer la comprensión de este libro. Lisa
Olson leyó el texto completo varias veces y preparó los programas en FOR-TRAN.
Tad Slawecki proporcionó una ayuda excelente en cuantoa l soft-ware
complementario. Además, Marla lsenstein, Luis Garcia, Sijin “Tom”
Lee y Rick Thurman hicieron contribuciones notables.
También debemos agradecer a Kiran Verma, Dave Damstra y a B.
J. Clark de McGraw-Hill su supervisión y aliento. Ursula Smith efectuó
un trabajo impecable en la edición de pruebas del libro. Finalmente, nos
gustaría agradecer a nuestras familias, amigos y colegas, quienes sopor-taron
comprensivamente la gran cantidad de horas “robadas”, necesa-rias
para completar esta obra.
Steven C. Chapra
Raymond P. Canale
14. PARTE U N O
LOS MÉTODOS
NUMÉRICOS Y LAS
COMPUTADORAS
PERSONALES
'),
7,
I. 1 MOTIVACI~N
Los métodos numéricos son técnicas mediante las
cuales es posible formular problemas de tal for-ma
que puedan resolverse usando operaciones
aritméticas. Aunque hay muchos tipos de métodos
numéricos, todos comparten una característica co-mún:
Invariablemente los métodos numéricos Ile-van
a cabo un buen número de tediosos cálculos
aritméticos. No es raro que con el desarrollo de
computadoras digitales eficientes y rápidas, el pa-pel
de los métodos numéricos en la solución de pro-blemas
de ingeniería haya aumentado considera-blemente
en los últimos años.
I . 1 . l Métodos anteriores a la aparición
de la computadora
Más allá de sólo proporcionar un aumento en la
potencia de cálculo, la disponibilidad general de
las computadoras (especialmente de las compu-tadoras
personales) y su asociación con los méto-dos
numéricos, ha tenido una influencia muy
significativa en el proceso de solución de proble-mas
de ingeniería. Antes del uso de la computa-dora
había tres métodos diferentes que los inge-nieros
aplicaban a la solución de problemas:
1. Primero, se encontraban las soluciones de al-gunos
problemas usando métodos exactos o
analíticos. Con frecuencia estas soluciones re-sultaban
útiles y proporcionaban una compren-sión
excelente del comportamiento de algunos
sistemas. Sin embargo, las soluciones analiti-cas
pueden encontrarse sólo para una clase Ii-mitada
de problemas. Estos problemas incluyen
aquellos que pueden aproximarse mediante
modelos lineales y también aquellos quet ienen
una geometría simple y pocas dimensiones. En
consecuencia, las soluciones anabjticas tienen
valor práctico limitado, porque la mayor par-te
de los problemas reales no son lineales, e
implican formas y procesos complejos.
15. 2 MÉTODOS NUMÉRICOS PARA INGENIEROS
2.Para analizar el comportamiento de los sistemas se usaban solu-ciones
gráficas. Éstas tomaban la forma de grafoso nomogramas.
Aunque las técnicas gráficas a menudo pueden emplearse para re-solver
problemas complejos, IQS resultados no son muy precisos. Es
más, las soluciones gráficas (sin la ayuda de una computadora)s on
tediosas en extremo y difíciles de implementar. Finalmente, las técni-cas
gráficas están limitadas a aquellos problemas que puedan des-cribirse
usando tres dimensiones o menos.
3. Para implementar los métodos numéricos se utilizaban calculado-ras
manuales y reglas de cálculo. Aunque en teoría estas aproxi-maciones
deberían ser perfectamente adecuadas para resolver
problemas complicados, en la práctica se presentan algunas difi-cultades.
Los cálculos manuales son lentos y tediosos. Además no
existen resultados consistentes debido a que surgen equivocacio-nes
cuando se efectúan las tareas manualmente.
Antes del uso de la computadora, se gastaba mucha energía en la
técnica misma de solución, en vez de aplicarla sobre la definición del
problema y su interpretación (Fig. 1.1~)E. sta situación desafortunada
existía debido al tiempo y trabajo monótono que se requerían pa-ra
obtener resultados numéricos con técnicas que no utilizaban a la
computadora.
Hoy en día, las computadoras y los métodos numéricos proporcionan
una alternativa para cálculos tan complicados. AI usar la compu-tadora
para obtener soluciones directamente, se pueden aproximar
los cálculos sin tener que recurrir a suposiciones de simplificación o
técnicas deficientes. Aunque dichas suposiciones son aún extremada-mente
valiosas tanto para resolver problemas como para proporcionar
una mayor comprensión, los métodos numéricos representan alternati-vas
que amplían considerablemente la capacidad para confrontar
y resolver los problemas; como resultado, se dispone de más tiempo
para aprovechar las habilidades creativas personales. Por consiguiente,
es posible dar más importancia a la formulación de un problema, a
la interpretación de la solución y a su incorporación al sistema total,
o conciencia “holística” (Fig. 1 . 1 b).
1.1.2 Los métodos numéricos y la práctica de la ingeniería
Desde finales de la década de 1940, la multiplicación y disponibilidad
de las computadoras digitales ha llevado a una verdadera explosión
en cuanto al uso y desarrollo de los métodos numéricos. Al principio,
este crecimiento estaba algo limitado por el costo de acceso a com-putadoras
grandes (rnainfiames), por lo que muchos ingenieros conti-nuaban
usando simples planteamientos analíticos en una buena parte
16. LOS METODOS NUMÉRICOS Y LAS COMPUTADORAS PERSONALES ..___ 3
Formulac4dn
Exposici6n a fondo de
1. rdaci6n del
problema con las leyes
fundamentales
fundamentales
Metodos muy elaborados Mdtodo num6rico
y frecuentemente complcador
para hacer manelable
el problema
lnterpretacidn
Anll~oma fonda
lhmitado por una
permite pensar
holisticamente y
desarrollar la intulmdn:
se puede estudtar la
FIGUR A 1 . 1 Las tres fases en la solución de problemas de ingeniería en a) la era anterior a las
computadoras y b) la era de las cornputadoras. Los tamaños de los recuadros indi-can
el nivel de importancia que se dirige a cada fase en el salón de clases. Las corn-putadoras
facilitan la implementación de técnicas de solucion y así permiten un mayor
cuidado sobre los aspectos creativos de la formulación de problemas y la interpreta-ción
de resultados.
de su trabaio. No es necesario mencionar que la reciente evolución
de computadoras personales de baio costo, ha dado a mucha gente
un fácil acceso a poderosas capacidades de cómputo.
Además existe un buen número de razones por las cuales se deben
estudiar los métodos numéricos:
1. Los métodos numéricos son herramientas extremadamente pode-rosas
para la solución de problemas. Son capaces de manejar sis-temas
de ecuaciones grandes, no linealidades y geometrías
complicadas que son comunes en la práctica de la ingeniería y que,
a menudo, son imposibles de resolver analíticamente. Por l o tan-to,
amplían la habilidad de quien los estudia para resolver pro-blemas.
2. En el transcurso de su carrera, es posible que el lector tenga la
ocasión de usar software disponible comercialmente que conten-
17. 4 MÉTODOS NUMÉRICOS PARA INGENIEROS
ga métodos numéricos. El uso inteligente de estos programas de-pende
del conocimiento de la teoría básica en la que se basan estos
métodos.
3. Hay muchos problemas que no pueden plantearse al emplear pro-gramas
“hechos”. Si se está versado en los métodos numéricos
y se es un adepto de la programación de computadoras, enton-ces
se tiene la capacidad de diseñar programas propios para re-solver
los problemas, sin tener que comprar un software costoso.
4. Los métodos numéricos son un vehículo eficiente para aprender
a servirse de las computadoras personales. Es bien sabido que una
manera efectiva de aprender a programar las computadoras es
al escribir los programas. Como los métodos numéricos, en su ma-yor
parte están elaborados para implementarse en computado-ras,
resultan ideales para este propósito. Aún más, están especial-mente
adaptados para ilustrar la potencia así como las limitaciones
de las computadoras. Cuando el lector implemente con buen re-sultado
los métodos numéricos en una computadora personal y
los aplique para resolver problemas que de otro modo resultan
intratables, entonces tendrá una demostración tangible de cómo
pueden ayudarle las computadoras para su desarrollo profesional.
AI mismo tiempo, aprenderá a reconocer y controlar los errores
de aproximación que son inesperables de los cálculos numéricos
a gran escala.
5. Los métodos numéricos son un medio para reforzar su compren-sión
de las matemáticas. Porque una función de los métodos nu-méricos
es la de reducir las matemáticas superiores a operaciones
aritméticas básicas, ya que profundizan en los temas que de otro
modo resultan oscuros. Esta alternativa aumenta su capacidad de
comprensión y entendimiento en la materia.
1.2 FUNDAMENTOS MATEMÁTICOS
Cada parte de este libro requiere de algunos antecedentes matemá-ticos.
En consecuencia, el material introductorio de cada parte inclu-ye
una sección, como la que el lector está leyendo en este momento,
de fundamentos matemáticos. Debido Q que la parte I en sí está dedi-cada
al material básico sobre las matemáticas y la computación, la
presente sección no abarca la revisión de algún tema matemático
específico. En su lugar, se presentan los temas del contenido ma-temático
que se cubre en este libro. Estos se resumen en la figura 1.2,
y son:
18. LOS MÉPCTEOORDMSOOPS UNTA AN LDEUSMO ÉRRLAAISCSO S Y 5
FIGURA 1.2 Resumen de los métodos numéricos que se cubren en este libro.
19. 6 MÉTODOS NUMÉRICOS PARA INGENIEROS
1. Rakes de ecuaciones (Fig. 1.24. Estos problemas están re-lacionados
con el valor de una variable o de un parámetro que
satisface una ecuación. Son especialmente valiosos en proyectos
de ingeniería donde con frecuencia resulta imposible despejar ana-líticamente
parámetros de ecuaciones de diseño.
2. Sistemas de ecuaciones algebraicas lineales (Fig. 1.2b).
En esencia, estos problemas son similares a los de raíces de ecua-ciones
en el sentido de que están relacionados con valores que
satisfacen ecuaciones. Sin embargo, a diferencia de satisfacer una
sola ecuación, se busca un conjunto de valores que satisfaga
simultáneamente a un conjunto de ecuaciones algebraicas. Las
ecuaciones lineales simultáneas surgen en el contexto de una
variedad de problemas y en todas las disciplinas de la ingeniería.
En particular, se originan a partir de modelos matemáticos de sis-temas
grandes de elementos interconectados, como: estructuras,
circuitos eléctricos y redes de fluio de fluidos, aunque también
pueden encontrarse en otras áreas de los métodos numéricos
como el aiuste de curvas.
3. Ajuste de curvas (Fig. 1.24. Con frecuencia se presentará la
oportunidad de ajustar curvas a un conjunto de datos representados
por puntos. Las técnicas que se han desarrollado para este fin pue-den
dividirse en dos categorías generales: regresión e interpolacion.
La regresión se emplea cuando hay un grado significativo de error
asociado a los datos; frecuentemente los resultados experimentales
son de esta clase. Para estas situaciones, la estrategia es encontrar
una curva que represente la tendencia general de los datos sin ne-cesidad
de tocar los puntos individuales. En contraste, la interpola-ción
se maneja cuando el objetivo es determinar valores intermedios
entre datos que estén relativamente libres de error. Tal es el caso
de la información tabulada. Para estas situaciones, la estrategia es
ajustar una curva directamente a través de los puntos y usar esta
curva para predecir valores intermedios.
4. Integración (Fig.l.2d). Tal como se representa, una interpre-tación
física de la integración numérica es la determinación del
área bajo la curva. La integraciónt iene muchas aplicaciones pa-ra
el ingeniero práctico, empezando por la determinación de los
centroides de objetos con formas extravagantes hasta el cálculo
de cantidades totales basadas en conjuntos de medidas discretas.
Adicionalmente las fórmulas de integración numérica juegan un
papel importante en la solución de las ecuaciones en diferencias.
5. Ecuaciones diferenciales ordinarias. (Fig. 1.2e). Las
ecuaciones diferenciales ordinarias tienen un enorme significado
20. NUMERLOMICS E OTSOP CEDOROMSSOP NUAT AL EDSO RLAASS Y 7
en la práctica de la ingeniería. Esto se debe a que muchas leyes
físicas están expresadas en tefminos de la razón de cambio de una
cantidad más que en términos de su magnitud. Entre los ejemplos
se observan desde los modelos de predicción demográfica (razón
de cambio de la población) hasta la aceleración deu n cuerpo en
descenso (razón de cambio de la velocidad).
1.3 ORIENTACI~N
Resulta útil esta orientación antes de proceder a la introducción de
los métodos numéricos. Lo que sigue está pensado como una vista pa-norámica
del material contenido en la parte l. Se incluyen además
algunos objetivos como ayuda para concentrar el esfuerzo del lector
al estudiar el material.
1.3.1 Alcance y contenido
La figura 1.3 es una representación esquemática del material conteni-do
en la parte I. Se ha elaborado este diagrama para darle un pano-rama
global de esta parte del libro. Se considera que un sentido de
"imagen global" resulta importante para desarrollar una verdadera
comprensión de los métodos numéricos. AI leer un texto, es posible
que frecuentemente se pierda uno en los detalles técnicos. Siempre que
el lector perciba que está perdiendo la "imagen global" regrésese
a la figura 1.3 para orientarse nuevamente. Cada parte de este libro
incluye una figura similar.
Esta figura sirve también como una breve revisión previa del mate-rial
que se cubre en la parte I. El capítulo 1 está diseñado para orien-tarle
a los métodos numéricos y para darleu na motivación mostrándole
cómo pueden usarse estas técnicas en el proceso de elaborar mode-los
matemáticos aplicados a la ingeniería. El capítulo 2 es una intro-ducción
y una revisión de los aspectos de computación que están
relacionados con los métodos numéricos y presenta las habilidades
de programación que se deben adquirir para explotar eficientemen-te
la computadora. El capítulo 3 se ocupa del importante tema del
análisis de error, que debe entenderse bien para el uso efectivo de
los métodos numéricos.
1.3.2 Metas y objetivos
Estúdiese los objetivos. AI terminm la parte I el lector deberá estar
preparado para aventurarse en los métodos numéricos. En general,
21. 8 MÉTODOS NUMÉRICOS PARA INGENIEROS
FIGURA 1.3 Representación de la organización del material en la parte I: Los métodos numéricos
y las computadoras personales.
habrá adquirido una noción fundamental de la importancia de las com-putadoras
y el papel de las aproximaciones y los errores en la imple-mentación
y desarrollo de los métodos numéricos. Adicionalmente a
estas metas generales, deberá dominar cada uno delo s objetivos es-pecíficos
de estudio que se enuncian en la tabla 1 . 1 .
22. LOS MhODOS NUMERICOS Y LAS COMPUTADORAS PERSONALES 9
TABLA 1.1 Obietivos de estudio especificos para la parte I
1.
2.
3.
4.
5.
6.
7.
8.
9.
1 o.
11.
Entender la diferencia entre error de truncamiento y de redondeo
Entender el concepto de cifras significativas
Conocer la diferencia entre exactitud y precisión
Apreciar la utilidad del error relativo
Conocer la diferencia entre el error relativo verdadero E" y el error
relativo aproximado eo; darse cuenta de cómo este último puede
emplearse en conjunci6n con un error aceptable especificado con
anterioridad E , para terminar un cálculo
Ser capaz de relacionar el error relativo con cifras significativas
Ser capaz de aplicar las reglas de redondeo explicadas en el recuadro 3.1
Comprender cómo se usa la serie de Taylor para aproximar funciones
Comprender la naturaleza de la aproximación y los términos residuales de
la serie de Taylor
Conocer la relación que existe entre las diferencias finitas y las derivadas
Familiarizarse con los elementos de juicio que se describen en el epílogo de
la parte I
Objetivos en computación. AI completar la parte I el lector se habrá
familiarizado con el software (NUMERICOMP) disponible para este
libro. Deberá saber qué programas contiene y algunas de sus capa-cidades
de graficación. También deberáte ner las habilidades de pro-gramación
necesarias para desarrollar software propio con los
métodos numéricos de este libro. Deberá ser capaz de desarrollar pro-gramas
en términos de los algoritmos o diagramas de fluio dados.
Podrá guardar su software en dispositivos de almacenamiento, como
discos flexibles o cinta magnbtica. Finalmente, el lector habrá desa-rrollado
la capacidad de documentasru s programas de tal forma que
los usuarios puedan emplearlos eficientemente.
23.
24. C A P í T U L O UNO
MODELOS
MATEMÁTICOS
¿Por qué se deben dominar los métodos numéricos y la programación
de computadoras para resolver los problemas? Adem6s del hecho qduee
a diario se observa que las computadoras intervienen en las actividades
m6s comunes de la vida diaria, dhabr6 alguna contribución esencial que
estas mAquinas, con sus capacidades decididamente sobrehumanas, pue-dan
hacer a las tareas y retos de los ingenieros? Es totalmente factible,
y con el material contenido en este capítulo, se tratar6 de orientar al lec-tor
y motivarlo hacia una posibilidad cuando menos.
Primero se aplica el concepto de modelos matemáticos para ayudar
a definir lo que se entiende por métodos numéricos y para ilustrar cómo
pueden facilitar la solución de problemas en ingeniería. Para esto, se des-arrolla
aquí el modelo matemático de un proceso físico y se resuelve con
un método numérico sencillo.
El mundo físico, con toda su complejidad, puede parecer abrumador
e impredecible, Tradicionalmente, la tarea del científico ha sido la de iden-tificar
los patrones reproducibles y las leyes que gobiernan este caos. Por
ejemplo, sobre la base de sus observaciones, Newton formuló su segun-da
ley del movimiento, que afirma que la velocidad de cambio de la can-tidad
de movimiento de un cuerpo con respecto al tiempo es igual a la
fuerza resultante que actúa sobre él. Considerando las maneras excesiva-mente
complejas en que las fuerzas y los objetos interactúan en la tierra,
esta ley ha probado ser una generalización válida.
Además de que estas leyes proveen de discernimiento, los ingenieros
pueden aplicarlas para formular solucioneas problemas prácticos. Pore jem-plo,
los conocimientos científicos se usan rutinariamente por los ingenie-ros
en el diseño de, elementos tales como estructuras, mhquinas, circuitos
eléctricos y sustancias químicas sintéticas. Desde la perspectiva del dise-ño
de ingeniería, estos conocimientos son muy útiles cuando se expresan
en forma de un modelo matem6tico.
Un modelo matemático puede definirse, de una manerag eneral, co-mo
una formulación o ecuación que expresal as características fundamen-tales
de un sistema o proceso fisico en términos matemáti'cos. Los modelos
25. 12 MÉTODOS NUMÉRICOS PARA.INGENIEROS
se clasifican desde simples relaciones algebraicas hasta grandesy compli-cados
sistemas de ecuaciones diferenciales. Recordando nuevamente a
Newton para este ejemplo, la expresión matemática, o modelo, de su se-gunda
ley es la bien conocida ecuación
F = ma [1.11
donde F es la fuerza neta que actúa sobre el cuerpo (en dinas, o gramo-centímetro
por segundo cuadrado), m es la masa del objeto (en gramos),
y a es su aceleración (en centímetros por segundo cuadrado).
La ecuación (1.1) tiene varias características habituales de los mode-los
matemáticos del mundo físico.
1. Describe un sistema o proceso natural en términos matemáticos.
2. Representa una idealización y una simplificación de la realidad. Es decir,
ignora los detalles insignificantes del proceso natural y se concentra
en sus manifestaciones elementales. Es por esto que la segunda ley
no incluye los efectos de la relatividad, que tienen una importan-cia
mínima cuando se aplican a objetos y fuerzas que interactúan
sobre o alrededor de la tierra a escalas visibles a los seres huma-nos.
3. Finalmente, conduce a resultados predecibles y, en consecuencia, pue-de
emplearse para propósitos de predicción. Por ejemplo, si se cono-cen
la fuerza aplicada sobre un objeto y su masa, entonces puede usarse
la ecuación (l.1 )p ara predecir la aceleración. Como tiene unaf orma
algebraica sencilla, puede despejarse directamente
F
m
a=-
De este modo, la aceleración puede calcularse fácilmente. Sin em-bargo,
los modelos matemáticos de otros fenómenos físicos pueden ser
mucho más complejos y no pueden resolverse exactamente o requieren
de técnicas matemáticas más complejas que la simple álgebra para su so-luci6n.
Para ilustrar un modelo de este tipo pero más complicado, se puede
usar la segunda ley de Newton para determinar la velocidad final de un
cuerpo en caída libre cerca de la superficie terrestre. El cuerpo en descen-so
será un paracaidista como se muestra en la figura 1.1. Para este caso
puede crearse un modelo al expresar la aceleración como la razón de
cambio de la velocidad con respecto al tiempo (dv/dtj y sustituir en la
26. MODELOS MATEMÁTICOS 13
FIGURA 1.1 Representación de las fuerzas que actúan sobre un paracaidista en des-censo.
FD es la fuerza hacia abaio debido a la atracción de la grave-dad.
Fu. es la fuerza hacia arriba debido a la resistencia del aire.
ecuación (l. 1) para dar
dv
dt
m - = F u31
donde u es la velocidad en centímetros por segundo). Así, la masa multi-plicada
por la razón de cambio de la velocidad es igual a la suma de fuer-zas
que actúan sobre el cuerpo. Si la fuerza total es positiva, el objeto
acelera. Si es negativa, el objeto sufre una desaceleración. Si la fuerza
neta es cero, la velocidad del objeto permanecerá a un nivel constante.
Para un cuerpo que cae dentro del perímetro de la tierra (Fig. l. 1) ,
la fuerza total está compuesta por dos fuerzas contrarias: la atracción ha-cia
abajo debida a la gravedad FD y la fuerza hacia arriba debida a la re-sistencia
del aire Fu.
Si a la fuerza hacia abajo se le asigna un signo positivo, se puede usar
la segunda ley para formular la fuerza debida a la gravedad como
donde g es la constante de gravitación, o la aceleración debida a la gra-vedad,
que es aproximadamente igual a 980 cm/s2.
27. 14 INGENIEROS PARA MÉTODOS NUMÉRICOS
La resistencia del aire puede formularse de diferentes maneras. Una
aproximación sencilla es suponer que es linealmente proporcionaa ll a ve-locidad,
como en
donde c es una constante de proporcionalidad llamada el coeficiente de
arrastre (en gramos por segundo). Así, a mayor velocidad de caída, ma-yor
es la fuerza hacia arriba debida a la resistencia del aire. El parámetro
c toma en cuenta las propiedades del objeto descendente, tales como
la forma o la aspereza de su superficie, que afectan la resistencia del aire.
Para este caso, c podría ser una función del tipo de traje o la orientación
usada por el paracaidista durante la caída libre.
La fuerza total es la diferencia entre las fuerzas hacia abajo y hacia
arriba. Por tanto, las ecuaciones (1.3) a (1.6) pueden combinarse para dar
dv
dt
m- = mg - cv
o, dividiendo cada lado entre m,
dv C
dt m
”- 9 - - v
La ecuación (1.8) es un modelo que relaciona la aceleración de un cuer-po
que cae a las fuerzas que actúan sobre él. Es una ecuación diferencia[
porque está escrita en términos de la razón de cambio diferencial (dv/dt)
de la variable que nos interesa predecir. Por esta razón a veces se deno-mina
ecuación en diferencias. Sin embargo, en contraste con la solución
dada por la segunda ley de Newton en la ecuación (1.2), la solución exacta
de la ecuación (1.8) para la velocidad del paracaidista que cae, no puede
obtenerse usando simples manipulaciones algebraicasy operaciones arit-méticas.
En vez de eso, deberán aplicarse las técnicas del cálculo para
obtener una solución exacta. Por ejemplo, si el paracaidista inicialmente
está en reposo (u = O en t = O), se puede usar el cálculo para resolver
la ecuación (1.8), así
EJEMPLO 1.1
Solución analítica al problema del paracaidista que cae
Enunciado del problema: un paracaidista con una masa de 68 100 g sal-ta
de un aeroplano. Aplíquese la ecuación (1.9) para calcular la veloci-
28. MÉTODOS MATEMATICOS 15
FIGURA 1.2 Solución analítica al problema del paracaidista que cae según se
calcula en el ejemplo l. l. La velocidad aumenta con el tiempo y
se aproxima asintóticamente o una velocidad final.
dad antes de abrir el paracaídas. El coeficiente de arrastre c es
aproximadamente igual a 12 500 g / s .
Solución: al sustituir los valores de los parámetros en la ecuación (1.9)
se obtiene I 980(68,100) v (t) = [I - e-t12.500/68.1001f 12,500 1
= 5339.0 (1 - e-0 18355t )
al dar varios valores de t se obtienen las velocidades para dicho tiempo:
los resultados se presentan a continuación
t, S v, cm/s
O O
2 1640.5
4 2776.9
a 6 3564.2
4 109.5
10 4487.3
12 4749.0
X 5339.0
29. 16 MÉTODOS NUMERICOS PARA INGENIEROS
De acuerdo al modelo, el paracaidista acelera rápidamente (Fig. 1.2). Se
llega a una velocidad de 4 487.3 cm/s (161.5 km/h) despu6s de 10 s.
Nótese también que después de un tiempo suficientemente grande se al-canza
una velocidad constante (llamada velocidad final) de 5 339.0 cm/s
(192.2 km/h). Esta velocidad es constante porque después de un tiem-po
suficiente, la fuerza de gravedad estará en equilibrio con la resistencia
del aire. Por lo tanto, la fuerza total es cero y cesa la aceleración.
A la ecuación (1.9) se le llama una solución analítica o exacta porque
satisface exactamente la ecuación diferencial original. Desafortunadamen-te,
hay muchos modelos matemáticos que no pueden resolverse exacta-mente.
En muchos de estos casos, la única alternativa es la de desarrollar
una solución numérica que se aproxime a la solución exacta. Como se
mencionó con anterioridad, los métodos numéricos son aquellos en los
que se reformula el problema matemático para que se puedare solver me-diante
operaciones aritméticas. Esto puede ilustrarse para la segunda ley
de Newton notándose que se puede aproximar la razón de cambio de
la velocidad con respecto al tiempo mediante (Fig. 1.3)
[1.10]
FIGURA 1.3 USO de una diferencia finita para aproximar la primera derivada de
v con respecto a t.
30. METODOS MATEMATICOS 17
donde Au y At son diferencias en la velocidad y el tiempo calculadas so-bre
intervalos finitos, u(t,) es la velocidad en el tiempo inicial t,, y u(t,+I)
es la velocidada lgúnt iempo más tarde t,, La ecuación ( l .1 0) es una
diferencia finita diuida en el tiempo ti. Puede sustituirse en la ecuación
(1.8) para dar
Esta ecuación puede ordenarse otra vez para dar
u(t1+1) = U@¡) + [9 -: - u ( t iI) & +I - ti) [1.12]
Y así, la ecuación diferencial (1.8) se transforma en una ecuación qGe
puede resolverse algebraicamente para u(ti+ J . Si se da un valor inicial
para la velocidad en un tiempo ti, se puede calcular fácilmente u en t!,
Este nuevo valor de u en ti+l puede emplearse para extender el cálculo
de u en ti+2 y así sucesivamente. Por lo tanto, en cualquier tiempor de
la trayectoria,
Nuevo valor -
valor anterior valor estimulado incremento
de u + de u dep le an diente x dtiee lm po
EJEMPLO 1.2
Solución numérica al problema del paracaidista que cae
Enunciado del problema: efectuar el mismo cálculo que en el ejemplo l. 1
pero usando la ecuación (1.12) para calcular u(t) con un incremento de
tiempo igual a 2 s.
Solución: al principio de los cSlculos (tl = O ) , la velocidad del paracai-dista
uft,) es igual a cero. Con esta información y los valores de los pa-rámetros
del ejemplo l.l , la ecuación (l .1 2) se puede usar para estimar
v (ti+1e) n ti+l = 2 s.
Para el siguiente intervalo (de t = 2 a 4 S), se repite el cálculo con el re-sultado,
~ ( 4=) 1960 + [9 80 - ___ 6l28 5 10000 (1960+
= 3200.5 cmis
31. 20 MÉTODOS NUMÉRICOS PARA INGENIEROS
significat~vo asociado con los puntos de los datos.
i) Los sistemas grandes de ecuaciones. las no linealidades 51 las geometrías com-plicadas
son comunes en la práctica de la ingeniería y fáciles de resolver analí-ticamente
j) Los modelos matemáticos no se pueden usar nunca con propósitos de pre-dicción.
1.2 Léanse las siguientes descripciones de problemas e identifíquese qué área de los
métodos numéricos (según lo señalado en la Fig. 1.2) se relaciona con su solución.
Una persona pertenece a una cuadrilla de reconocimiento topográfico y debe
determinar el área de un terreno limitado por dos caminos y una corriente que
serpentea
Un ingeniero es responsable de la determinación de los flujos en una gran red
de tuberías interconectadas entre sí para distribuir gas natural a una serie de
comunidades diseminadas en un área de 20 km2
Para el problema del paracaidista que cae. se debe decidir el valor del coefi-ciente
de arrastre para que un paracaidista de 90 kg de masa no exceda los
160 km/h en los primeros 10 S después de haber saltado. Deberá hacer esta
evaluación sobre la base. de la solución analítica [Ec. (1.9)].
La información se empleará para diseñar un tra~ed e salto.
Un investigador efectúa experimentos para encontrar la caída de voltaje a tra-vés
de una resistencia como una función de la corriente. Hace las mediciones
de la caída de voltaje para diferentes valores de la corriente Aunque hay al-gún
error asociado con sus datos, al 91-aficar los puntos. éstos le sugieren una
relación curvilínea. Debe derwar una ecuación que caracterice esta relación.
Un ingeniero mecánico tiene que desarrollar un sistema de amortiguamiento para
un auto de carreras. Puede usar la segunda ley de Newton para tener una ecua-ción
para predecir la razón de cambio en la posición de la rueda delantera en
respuesta a fuerzas externas. Debe calcular el movimiento de la rueda. como
una función del tiempo después de golpear contra un tope de 15 cm a 240
km/h.
Un administrador tiene que calcular el ingreso anual requerido en un periodo
de 20 años para un centro de entretenimientos que se va a construir para un
cliente. El préstamo puede hacerse a una tasa de interés del 17.6"; Aunque
para hacer este estimado. la información está contenida en tablas de econo-mía,
sólo aparecen listados los valores para tasas de interés del 15 y 20%
1.3 Proporciónese un ejemplo de un problema de ingeniería donde sea oportuno cada
uno de los siguientes tipos de métodos numéricos. En IO posible. remitasr el ejem-plo
de las experiencias del lector en cursos y en conferencias u otras experiencias
profesionales que haya acumulado hasta la fecha.
a) Raíces decuaciones
b) Ecuaciones algebraicas lineales
c) Ajuste de curvas: regresión
d) Ajuste de curvas: interpotación
el Integración
fi Ecuaciones diferenciales ordinaria5
32. CAPITULO DOS
LA PROGRAMACION
EN LAS COMPUTADORAS
PERSONALES
Los métodos numéricos combinan dos en las herramientas más impor-tantes
en el repertorio de la ingeniería: matemáticas y computadoras. Los
métodos numéricos se pueden definir (sin ser muy exacto) como las ma-temáticas
por computadora. Las buenas técnicas de programación aumen-tan
la habilidad para aplicar los conocimientos de los métodos numéricos.
En particular, las potencialidades y limitaciones de las técnicas nu-méricas
se aprecian mejor cuando se usan estos métodos para resolver
los problemas de ingeniería utilizando como herramienta una compu-tadora.
Al usar este libro se obtiene la posiblidad de desarrollar los propios
programas. Debido a la gran disponibilidad de computadoras personales
y dispositivos de memoria magnética, los programas se pueden conser-var
y usar durante toda la carrera. Por lo tanto, uno de los principales
objetivos de este texto es que el lector obtenga programas útiles y de alta
calidad.
Este texto contiene características especiales que maximizan esta po-sibilidad.
Todas las técnicas numéricasv an acompañadas de material pa-ra
una implementación efectiva en la computadora. Además, se dispone
de programas suplementarios para seis de los métodos más elementales
discutidos en el libro. Estos programas, desarrollados para computadoras
personales (IBM-PC y Apple 11), pueden servir como base para una bi-blioteca
de programas propios.
Este capítulo presenta una información preliminar que tiene utilidad
siempre y cuando se desee usar este texto como base para el desarrollo
de programas. Está escrito bajo la suposición de que ya se ha tenido una
experiencia previa en la programación de computadoras. Debido a que
el libro no está enfocado hacia un curso de programación, se estudian
únicamente aquellos aspectos que definen el desarrollo de programas de
análisis numérico. También se propone proporcionarc riterios específicos
para la evaluación de los esfuerzos del lector.
33. 22 METODOS NUMÉRICOS PARA INGENIEROS
2.1 ANTECEDENTES HISTóRICOS
En el sentido más amplio, una computadora se puede definir como un
dispositivo que ayuda a calcular. Con base en esta definición, una de las
computadoras más antiguas es el ábaco. Descubierto en el antiguo Egip-to
y en China, se compone de cuentahsi ladas sobre alambrese n un marco
rectangular (Fig. 2. la).
Las cuentas se usan para guardar potencias 1d0e (unidades, decenas,
centenas, etc.) durante un cálculo. Cuando se emplea con destreza, el
ábaco puede competir en velocidad con una calculadora de bolsillo.
Aunque los dispositivos manuales tales comoe l ábaco aceleran la ve-locidad
en los cálculos, las máquinas extienden aún más las capacidades
humanas para estos cálculos. Estimulados por la revolución industrial,
los científicos del siglo XVII desarrollaron la primera de tales computadoras
mecánicas. Blas Pascal inventó, en 1642, una máquina para sumar (Fig.
2. lb). AI final de ese siglo, Gottfried Leibnitz desarrolló una calculadora
mecánica que podía multiplicar y dividir.
Aunque en los siglos siguientes se desarrollaron otros instrumentos
de cálculo, no fue sino hasta la década de 1940 cuando surgieron las com-putadoras
electrónicas. Se originaron, inicialmente para proyectos milita-res
en la segunda guerra mundial, eran dispositivos de investigación para
un solo propósito. Estas máquinas, con nombres como ENIAC Y EDSAC,
usaron tubos al vacío como componentes electrónicos básicos. Aunque
eran caras, lentas y a menudo desconfiables, estas computadoras de la
primera generación auguraban un procesamiento de datos ag ran escala.
Aunque algunas máquinas de la primera generación, en especial la
UNIVAC, se vendieron a nivel comercial, no fue sino hasta la década de
1960 que las computadoras estuvieron disponibles para una gran canti-dad
de científicos e ingenieros. Esto se debió al desarrollo de los transis-tores
y de algunos dispositivos electrónicos de estado sólido que suplieron
a los tubos al vacío creando computadoras que, entre otras cosas, eran
más confiables. Aunque el uso de estas computadoras se extendió, su
acceso era algunas veces limitado ya que las máquinas seguían siendo
muy caras para que la mayoría de los profesionistas las obtuvieran indivi-dualmente.
Por lo tanto, los ingenieros debían asociarse con grandes
organizaciones tales como universidades, oficinas gubernamentales, cor-poraciones
o firmas consultoras para tener acceso a las computadoras.
Sin embargo, a la mitad de la década de 1960 y principios de la dé-cada
de 1970 un adelanto en la técnica alteró dramáticamente esta situa-ción.
En particular, el reemplazo de los transistores por circuitos integrados
ha producido un gran poder computacional en el medio profesional de
los ingenieros. Un circuito integrado, o CI, consiste en una pastilla delga-da
de silicón donde se han colocado miles de transistores. El resultado
práctico de esta innovación ha sido en dos aspectos. Primero, en el nú-cleo
de la máquina o la parte central de las computadoras, las velocida-
34. LA PROGRAMAC16N EN LAS COMPUTADORAS PERSONALES 23
FIGURA 2.1 Evolución de los dispositivos de cálculo: a) ábuco; b) calculadora de Pas-cal;
c) supercomputadora y d) microcomputadora o computadora per-sonal
(los incisos b y c con permiso de IBM; el inciso d con permiso de
Apple Computer, Inc.).
des y la capacidad de memoria son muy grandes. Segundo, y más
importante en el contextoa ctual, las computadoras personales que socno n-venientes,
pequeñas, rápidas y confiables se están produciendo en masa
y a precios razonables. Como se expresó en un artículo de la revista Scien-tific
American: “Las microcornputadoras de hoy día a un costo tal vez de
$300 dólares, tienen más capacidad de cómputo que las primeras com-putadoras
electrónicas gigantescas ENIAC. Son 20 veces más rápidas,
35. 24 MÉTODOS NUMÉRICOS PARA INGENIEROS
CUADRO 2.1 Comparación de sistemas comunes de cómputo*
Longitud significa- palabra Costo de cálculo, almacena-
Sistema tivas bits (dólares) ciclosls miento (K)
25-350 O
prograrnable
Microcomputadora 7-1 O 7-1 6 100-5000 1 06-1 o7 16-256
Minicornputadora 7-1 O 16-32 15,000-1 20,000 1 06-1 o7 128-51 2
Cornputadoras 7-1 4 32 100,000-1 o,ooo,ooo+ 106-1 o* 8000-32,000
grandes
* Condensodo de Auerboch Computer Technology Reports, Agosto 1983.
tienen una memoria mayor, son miles de veces más confiables, consu-men
la energía de un bulbo en vez de la de una locomotora, ocupan
1/30 O00 de volumen y cuestan 1/10 O00 parte. Se pueden obtener por
una orden postal o en cualquier tienda especializada” (Noyce, 1977).
Las computadoras personales se agrupan, por lo general en una de
dos categorías que a veces no están bien delimitadas: micro y minicom-putadoras.
Las rnicrocornputadoras son aquellas cuya función principal
está contenida en una sola pastilla de circuito integrado. Comúnmente
cuestan unos miles de dólares. Las minicomputadoras son un término más
impreciso que se refiere a computadoras que son más potentes que
las micros pero caen aún dentro de las posibilidades de compra de algunas
personas y pequeñas compañías. Ambos tipos de computadoras están
en contraste con computadoras grandes, o supercornputadoras, que se
manejan en intervalos de millones de dólares y sus propietarios son, por
lo general, organizaciones o compañías muy grandes. El cuadro 2.1 re-sume
la información general sobre varios tipos de computadoras.
La revolución en el campo del estado sólido ha abierto las puertas
en el área computacional a cada ingeniero. Sin ernhnrgo, no importa qué
tipo de computadora se use, ésta sólo tiene utilidad si se le proporcionan
instrucciones precisas. A estas instrucciones se les conoce como progra-mas.
Las siguientes secciones contienen información que será útil para
el desarrollo de programas de alta calidad para utilizar los métodos nu-méricos.
2.2 DESARROLLO DE PROGRAMAS
El material de este capítulo está organizado alrededor de cinco temas, es-quematizados
en la figura 2.2, requeridos para la elaboración y cuidado
de programas de alta calidad. Este caljitulo contiene secciones que cu-bren
cada uno de estos pasos. Este material incluye un caso de estudio
donde cada uno de los pasos se aplica para desarrollar un programa y
resolver el problema del paracaidista. Después de asimilar este material,
36. PROGR ALMAA CldN PERLSACOSON MALPE UST ADORAS 25
el estudiante debe estar mejor preparado para desarrollar programas de
alta calidad para los métodos del resto del libro.
2.2.1 Diseño de algoritmos
Se puede ahora empezar con el proceso de desarrollar programas para
una computadora. Un programa es simplemente un conjunto de instruc-ciones
para la computadora. Todos los programas que se necesitan co-rrer
en una computadora particular, en conjunto se les llama software.
FIGURA 2.2 Cinco pasos necesarios para producir y dar soporte a programas de al-ta
calidad . Las flechas hacia atrás indican que los primeros cuatro pasos
se pueden ir meiorando conforme se gane experiencia.
37. PARA2 6 NUMERICOS MÉTODOS
Un algoritmo es una secuencia l6gica de pasos necesarios parae jecu-tar
una tarea específica tal como la solución de un problema. Los buenos
algoritmos tienen ciertas características. Siempre deben terminard espuk
de una cantidad finita de pasos y deben ser lo más general posible para
tratar cualquier caso particular. Los buenos algoritmos deben ser deter-minísticos;
esto es, no deben dejar nada al azar. Los resultados finales
no pueden ser dependientes de quién esté usando el algoritmo. En este
sentido, un algoritmo es análogo a una receta. Dos cocineros que prepa-ran
independientemente una buena receta deben obtener dos platillos
idénticos.
La figura 2 . 3 m~u estra un algoritmo para la solución de un problema
simple que suma dos números. Dos programadores que partan de este
algoritmo pueden desarrollar dos programas con estilos diferentes. Sin
FIGURA 2.3 a) Algoritmo y b) diagrama de fluio para la solución del problema de
una suma simple.
38. PROGR AMLAA CldN PERLSACOSON MALPEU ST ADORAS 27
embargo, dados los mismos datos, los programas deben arrojar los mis-mos
resultados.
Una forma alternativa de representar un algoritmo es mediante un dia-grama
de flujo. Esta es una representación visual o gráfica del algoritmo
que emplea una serie de bloques y flechas. Cada bloque en el diagrama
representa una operación particular o un paso en el algoritmo. Las fle-chas
indican la secuencia en que se implementan las operaciones. La fi-gura
2.4 ilustra ocho tipos de bloques y flechas que conforman la mayor
parte de las operaciones que se requieren en la programación de una
computadora personal. Laf igura 2.3b muestra un diagrama de flujo para el
problema simple de sumar dos números. Los diagramas de flujo tienen
una utilidad particular para bosquejar algoritmos complicados. En estos
casos, un bosquejo gráfico puede ser útil para visualizar el flujo lógico del
algoritmo. En este texto, se han incluido diagramas de flujo para la ma-yor
parte de los métodos importantes. Se pueden usar estos diagramas
como base para el desarrollo de sus propios programas.
2.2.2 Composición de un programa
Después de confeccionaru n algoritmo, el paso siguiente es expresarloc omo
una secuencia de declaraciones de programación llamado código. Es im-portante
resistir la tentación de escribir el código antes de que el proble-ma
en su totalidad esté claramente definido y la técnica de solución y el
algoritmo hayan sido cuidadosamente diseñados. Las dificultades que más
comúnmente encuentran los programadores sin experiencia se deben por
lo general a la preparación prematura de un código que no abarque un
plan o una estrategia total, para la solución del problema.
Después que se ha diseñado un buen algoritmo, el código se escribe
en un lenguaje de alto nivel para una computadora. Se han desarrollado
cientos de lenguajes de programación de alto nivel desde que la era de
las computadoras empezó. Entre ellos, hay tres que tienen importancia
para computadoras personales: BASIC, FORTRAN y PASCAL.
FORTRAN, es la construcción de fórmula translation (traducción de
fórmulas), y se desarrolló en la década de 1950. Debido a que fue expre-samente
diseñado para cálculos, ha sido el lenguaje más usado en la in-geniería
y la ciencia.
BASIC, es la contracción de beginner’s all-purpose symbolic instruc-tion
code (clave de instrucciones simbólicas de propósito general para prin-cipiantes),
fue desarrollado en la década de 1960. Requiere una cantidad
pequeña de memoria y es relativamente simple de implementar. En con-secuencia
es uno de los lenguajes más usados en las computadoras per-sonales;
sin embargo, el BASIC no es tan flexible como el FORTRAN
y a veces no es conveniente para programas grandes o complejos.
El PASCAL, que debe su nombre al científico francés Blas Pascal, es un
lenguaje estructurado que se desarrolló en la década de 1970. Los pro-gramas
escritos en Pascal para una computadora determinada pueden
39. 28 METODOS NUMERICOS PARA INGENIEROS
FIGURA 2.4 Símbolos utilizados en diagramas de fluio.
40. PERSCOONMALPE UST AD ORALAS PLRAOS GRAMACldN EN 29
ser corridos fácilmente en otra. Aunque el Pascal es más difícil de apren-der
que el BASIC y el FORTRAN, su fuerza sugiere que su importancia
crecerá en el futuro. Esto es verdad para la programación avanzadaa gran
escala.
BASIC y FORTRAN son convenientes para programas simpleys c ortos
que son suficientes para la implementación de los métodos numéricos de
este libro. Por lo tanto, se ha optado por limitar las presentaciones del
texto, a programas en estos lenguajes. BASIC es una alternativa obvia
por su amplia disponibilidad. Se ha incluido el FORTRAN por su signifi-cado
continuo en el trabajo de ingeniería. Aunque este libro hace énfasis
en las computadoras personales, puede usarse por aquéllos que tienen
acceso a máquinas más grandes y en conjunción con cualquier lenguaje
de alto nivel. Con este espíritu, los programas y diagramas de flujo son
lo suficientemente simples como para que puedan servir de base en el
desarrollo de programas para aquéllos que son expertos en Pascal.
Una descripción completa del BASIC y el FORTRAN, obviamente va
más allá del alcance de este libro. Además, el número de dialectos dispo-nibles
en cada lenguaje complica aún más su descripción. Por ejemplo,
existen más de 10 dialectos derivados del BASIC. Sin embargo, limitan-do
la discusión a lo fundamental, se puede cubrir información suficiente
de forma tal que se pueda entender e implementar efectivamente el ma-terial
relacionado con la computadora en el resto del libro.
En la figura 2.5 SF! presentan los códigos en FORTRAN y BASIC pa-ra
sumar dos números, mostrando las diferencias estructurales principales
entre los dos lenguajes, el etiquetado y el espaciamiento de código. En
BASIC, cada instrucción se escribe con un número. En contraste, en FOR-TRAN
se etiquetan con un número sólo aquéllas instrucciones que re-quieren
identificación. Por ejemplo, la instrucción que tiene la etiqueta
número 1 en la versión FORTRAN de la figura 2.5 se llama una declara-
SIC
c
I
FIGURA 2.5 Programa de computadora en FORTRAN y BASIC para el problema de
la suma simple.
41. PAR3A0 NUMERICOS METODOS
ción FORMAT. Especifica la forma en que se va a introducir o a imprimir
una línea particular. Por lo tanto, se debe etiquetar con un número para
que la computadora pueda distinguirla de otras declaraciones FORMAT.
Las declaraciones FORTRAN se deben numerar para otros casos pero
la mayor parte, por lo general van sin numerar.
Otra diferencia entre los dos lenguajes es el espaciamiento de cada
línea; en BASIC, por lo general el espaciamiento no tiene importancia.
Por ejemplo, la línea 10 se pudo haber escrito de las siguientes formas
10 A = 25
1 OA=25
10 A = 25
y la computadora debe interpretar todas las formas como equivalentes.
En contraste, los términos en FORTRAN se deben alinear en columnas
específicas. Las reglas sobre la alineación provienen del hecho de que el
FORTRAN se introducía originalmente en una computadora usando lec-tora
de tarjetas. Aunque las tarjetas se emplean menos frecuentemente
hoy en día, las reglas de espaciamiento por lo general se han conservado.
A las 80 columnas de la tarjeta perforada se les llama campos de la
tarjeta. Los campos de la tarjeta se agrupan por partes para diferentes
propósitos. Estos se ilustran en la forma de codificación de la figura 2.6.
Una forma de codificación es un pedazo de papel donde se puede escri-bir
y verificar un programa para revisarlo de errores antes de introducirlo
a la computadora. Nótese que también contiene 80 columnas al igual que
una tarjeta perforada. También obsérvese que cada una de las partes de
los campos se usa para propósitos particulares.
Aparte de la estructura, los dos lenguajes tienen otras diferencias así
como fuertes similitudes. En el cuadro 2.2 se delinean éstas. Este cuadro
muestra comparaciones en paralelo dsee is elementos principales de pro-gramacióc
que tienen importancia directa en el uso de los métodos nu-méricos.
Estos son:
1. Constantes y variables. Se deben seguir ciertas reglas para expresar
números y nombres simbólicos en los dos lenguajes. Como se puede
ver en el cuadro 2.2 ésta es un área en donde el BASIC y el FOR-TRAN
son muy diferentes.
2. Entrada-salida. Éstas son instrucciones mediante las cuales se trans-mite
información de y hacia la computadora. He aquí otra área donde
los lenguajes muestran diferencias considerables. Aunque la mayor parte
de los lenguajes modernos mejoran esta situación, históricamente las
capacidades de entrada-salida del BASIC, han sido muy limitadas. En
constraste, las declaraciones FORMAT del FORTRAN son herramientas
muy potentes para etiquetar y espaciar la salida. Sin embargo, son de
las declaraciones de programación más difíciles para un novato y aun
para un experto.
42.
43. 32 METODOS NUMÉRICOS PARA INGENIEROS
CUADRO 2.2 Referencia rápida: comparación de FORTRAN y BASIC. FORTRAN
y BASIC son lenguajes de computadora fáciles de aprender y de
practicar, en general son los primeros lenguajes de
programación que se les enseña a los estudiantes de ingeniería.
Como sucede con muchos lenguajes de programación, existen
varios aspectos que hacen dificil entender su uso. La siguiente
comparación resulta del intento de bosquejar las diferencias
generales y las similitudes entre FORTRAN y BASIC y a la vez
servir de referencia rápida y como recordatorio. Se pueden
consultar otras fuentes para los detalles referentes Q cada uno
de los lenguajes. Este resumen se limita y se enfoca a la vez al
material que tiene importancia directa con los metodos
numéricos y con los programas descritos en el texto.
FORTRAN BASIC
CONSTANTES Y VARIABLES
(Representan los números y caracteres
usados a lo largo del programa)
Constantes
Son valores positivos o negativos, (excluyendo las comas o los símbolos
especiales) que se mantienen inalterados a lo largo del programa.
Enteros Constantes numéricas
son constantes que no contienen punto son números enteros o reales con punto
decimal: decimal:
1, -2, 100 1, -2.0, 0.001, 100
Constantes reales:
contienen punto decimal:
1 .o, -2., 0.001
Exponenciales
son constantes escritas en notación científica. Por ejemplo, los números:
-12 000, 0.000 006 8, 386 O00 O00
se expresan en notación científica como:
-12 x lo3, 6.8 x 3.86 x 10’
y se pueden escribir en FORTRAN y BASIC como:
- 12E3, 6.8E-6, 3.86E8
Constantes alfanuméricas y cadenas de caracteres
representan letras, números y símbolos que se usan en este texto para etiquetar.
Las cadenas de caracteres tienen otras aplicaciones, incluyendo el USO de
expresiones de relación.
En FORTRAN se encierran como: En BASIC se encierran como:
‘JOHN DOE’, ’INTRODUCE B’ “VALOR DE A =”, “8/5/48”
44. PROG RAMLAAC ldN PERLSACOSON MALPE UST ADORAS 33
CUADRO 2.2 Referencia rápida: comparación de FORTRAN y BASIC. (cont.)
FORTRAN
Variables numéricas
representan cantidades que pueden cambiar de valor. Se usan para estas
variables los nombres simbólicos, que deben empezar con una letra y no
pueden contener símbolos especiales.
Nombres de variables Nombres de variables
consisten de uno a seis caracteres, desde constan de dos caracteres (mós en algu-la
A a la Z y del O a 9: nos dialectos) de la A a la Z y del O al 9:
Variables enteras AA, X, N1
representan valores enteros y empiezan representan valores reales o enteros.
con las letras I a la N:
N, KOUNT, lNDl
Variables reales
representan valores reales y empiezan
con las letras A a la H y O a la Z:
X, COUNT, VEL1
Variables de caracteres o cadenas
representan cadenas alfanuméricas y de caracteres. Se usan nombres simbólicos.
. El tratamiento de las cadenas de caracteres varía considerablemente entre
diferentes versiones
Declaración CHARACTER Cadenas variables
son de la forma: terminan con $. La longitud de la varia-
CHARACTER * n vorl,vor2 ble es limitada.
A$, N1$
donde n es la longitud específica de la
cadena de caracteres seguida por una
lista de variables. Por ejemplo,
CHARACTER * 4 NOMBRE1, NOMBRE2
Arreglos
son variables con subíndice que almacenan un conjunto de valores en vectores
de una dimensión y en matrices multidimensionales. El espacio de
almacenamiento suficiente para un número dado de elementos se especifica
mediante
~~
Declaración DlMENSldN Declaración DIM
DIMENSION A(n), ISUM(n,,n2) DIM A(n), IS(nl,n2)
Se permiten hasta siete subindices que La declaración DIM, en general se limita a
deben ser enteros positivos. arreglos bidimensionales; las n pueden
Los arreglos no dimensionados generan ser variables.
un error. Los arreglos no dimensionados suponen
un valor de n = 10.
45. 34 M~TODONSUM ÉRICOS PARA INGENIEROS
CUADRO 2.2. Referencia rápida: comparación de FORTRAN y BASIC. (cant.)
FORTRAN BAS IC
La declaración DIG-ENSION se debe co- La declaración DIM se debe colocar antes
locar antes de cualquier declaración de la primera línea donde la variable
ejecutable. dimensionada se va a usar. En caso de
no ir, supone el valor n = 10. El redi-mensionamiento
genera a un mensaje
de error.
Las variables definidas en la declaración
DIMENSION (esto es, A o ISUM) tienen
la misma regla de las variables numéri-cas
"esto es, el arreglo A debe conte-ner
valores reales, mientras que el
arreglo ISUM debe contener valores
enteros.
ENTRADAlSALlDA
qué medios se transmite información a y desde un programa),
Declaraciones de formato
especifican la longitud y la posición de cada uno de los datos, que se van a leer
o a imprimir.
Aunque en la entrada y salida de da- Aunque existe Io declaración de formato
tos existe formato libre, el FORTRAN para lectura o impresión de datos, las
estándar, en general impone un for- versiones recientes de BASIC no lo em-mato
de lectura o impresión. pleon.
Entrada
especifica los medios por los cuales se transmiten datos al programa
Declaración READ
permiten introducir datos al programa
durante su ejecución:
READ f varl,vur2, . . . , vur,
donde f es un código de formato que
especifica el tipo, disposición y, en algu-nos
casos, el dispositivo usado para leer
los valores de var], var2, . . ., varn. Por
ejemplo:
READ (5,2)A ,B
donde el 2 es la etiqueta donde está la
declaración FORMAT correspondiente
y el 5 especifica que los datos se obten-drán
de una lectora de tarjetas.
Declaración DATA
son declaraciones no ejecutables que defi-nen
el valor inicial de una variable.
Tienen la forma general.
Declaración INPUT
Permiten introducir datos at programa
durante su ejecución:
In INPUT varl,vur2, . . . , var,
donde In es el número de líneas donde
está la declaración INPUT y var,, var2,
. . ., var, son los nombres de las varia-bles
cuyos valores se van a leer. Por
ejemplo:
10 INPUT A,B
Cuando se ejecuta esta instrucción se
deben introducir los valores de A y B en
un dispositivo, tal como el teclado.
Declaraciones REDlDATA
consiste de una declaración READ asocia-da
a una declaración DATA que contie-ne
los valores que se van a leer, como:
46. UST AD ORALAS PLRASO GRAMACldN EN 35
CUADRQ 2.2 Referencia rápida: comparación de FORTRAN y BASIC. (cont.).
FORTRAN BASIC
DATA var,, , . ., var,,lvalor,, 10 READ A,B,C,Z
. . .,valor,,/
donde var es el nombre de la variable
y valor es una constante. Por ejemplo: 90 DATA 5,0.001,88,1 E-6
DATA A,B,C,Z/5.,0.001,88.,1.E-6/
Salida
es el medio por el cual se transmiten datos del programa.
Declaración WRITE Declaración PRINT
se usa comúnmente para imprimir datos. se usa comúnmente para imprimir datos.
Su forma general es: Su forma general es:
WRITE fvarl, . . . , vur, In PRINT varl, . . . , var,
Por ejemplo:
Por ejemplo:
WRITE (6,2) A,B
10 PRINT A,B
donde (6,2) es el código de formato, el En el momento que esta declaración
2 es la etiqueta de la declaración FORMAT se ejecuta, los valores de A y B se impri-correspondiente
y el 6 especifica que los men en un dispositivo tal como la panta-datos
se imprimirán en una impresora. lla o una impresora.
IcA1cu10s
(Operaciones que usan expresiones matemáticas) 1
Declaraciones de asignación
se usan para asignar un valor a una variable:
XM=3.281
indica a la computrdora que asigne el valor 3.281 a la variable XM;
A=XM+5
indica a la computadora que sume 5 a XM y le asigne el resultado (en este caso,
8.281) a la variable A;
A=A+40
indica a la computadora que sume 40 a A y le asigne el resultado (en este caso,
48.281) a la variable A. El valor anterior de A se destruye en el proceso.
Nótese que, aunque A = A + 40 no es una expresión matemática válida, tiene
un significado especial dentro de la computadora. AI signo de igual en la
declaración de asignación se le puede dar un significado de "se reemplaza
por", como en:
A se remplaza por A+40
+
-
Operadores aritméticos
son símbolos usados para representar operaciones matemáticas:
Suma
Resta
+
-
. ..
47. 36 MÉTODOS NUMÉRICOS PARA INGENIEROS
CUADRO 2.2 Referencia rápida: comparación de FORTRAN y BASIC. (cont.).
FORTRAN BASIC
* Multiplicación *
i División i
** Exponenciación **, ?,A
(El signo de exponenciación
depende del tipo de BASIC)
Si una expresión aritmética tuviera todos los operadores, el orden en que se
efectuarían sería: primero, todas las exponenciaciones de izquierda a derecha
en BASIC, Applesoft y Microsoft, y de derecha a izquierda en FORTRAN; a
continuacidn todas las multiplicaciones y divisiones de izquierda a derecha, y
finalmente todas las sumas y restas de izquierda a derecha. Cuando una
expresión presenta paréntesis, la forma de efectuarlos es del más interno al más
externo.
x = $0 + 3": - " y4
45
X=(((A+B)-R**3)/33-Y**4/45)**.5 X=(((A+B)-RA3)/33-YA4/45)A.5
CONTROL
(Dirigen el flujo del programa mediante saltos,
transferencias y reasignacianes)
Dedaración GO TO
especifica un salto incondicional a un número de línea específico:
GO TO 200
.EQ.
.NE.
.IT.
.LE.
.GT.
.GE.
.AND.
.OR.
Operadores lógicos
se usan para comparar los valores de
, . Igual a
diferente de
menor que
menor o igual que
mayor que
mayor o igual que
lógica
dos expresiones:
-
<>
<
<=
>
>=
AND
OR
Declaración lógica If
se utilizan para la toma de decisiones, de acuerdo al valor verdadero a falso
que tenga una expresión lógica
IF(N.GT.l .OR.N.LT.3)N=2
IF(N.GE.l) GO TO 10
IF(N>l)OR(N<3)THEN N=2
IF N>=l THEN 10
En los ejemplos anteriores, si la expresión lógica se cumple, se ejecuta la
transferencia o la asignación. En el primer ejemplo, si N es mayor que 1 a
48. PROGR ALMAA CldN PERLSACOSON MALPEU ST ADORAS 37
CUADRO 2.2 Referencia rápida: comparación de FORTRAN y BASIC. (cont.).
FORTRAN BASIC
menor que 3, entonces N se iguala a 2 y el control pasa a la siguiente línea. En
el segundo, si N es mayor o igual a 1, el programo se transfiere a la línea 1 O.
En cualquier caso, si la expresión es falsa, no se ejecuto la transferencia o
reasignación y el control se pasa a la siguiente línea.
Ciclos
permiten repetir cálculos con una cantidad mínima de declaraciones
Ciclos con IF lógico
repiten calculos que se controlan con base en la declaración IF:
10 X=Y(I)*Z(I-1)
IF(X.LT.O)GO TO 50
1=1+1
GO TO 10
50 X=-X
10 X=Y(I)*Z(I-1)
20 IF X<O THEN 50
30 I=!+l
40 GO T O 10
50 X=-X
Ciclos controlados por un indice
Ciclos DO Ciclos FORlNEXT
DO In I=j,n,k FOR I = i T O n STEP k
In CONTINUE In NEXT I
donde In es el número de línea de la ú h a declaración del ciclo, i es el valor
inicial del contador, n es el valor final o terminal y k es el incremento dado a la
variable I para que.varíe desde j hasta n. Después de terminar el ciclo,
valor de n + k siempre y cuando I sea múltiplo de n.
SUBPROGRAMAS: FUNCIONES Y SUBRUTINAS
(ejecutan una proposición o un conjunto de proposiciones
que se repiten varias veces a lo largo de un programa)
, I tiene el
Funciones intrínsecas
operaciones matemáticas o trigonométricas que se emplean comúnmente.
~~ ~
son funciones construidas internamente o funciones de biblioteca que realizan
SIN Seno cos
TAN
Coseno
ALOG o LOG
Tangente
Logaritmo natural o de base e
ALOG o LOGIO
EXP
Logoritmo común o de base 10
Exponencial
SQRT Raíz cuadrada
ABS Valor absoluto
I NT El entero más grande que
Es menor o igu:?! a x
SIN
cos
TAN
L O G
EXP
SQR
ABS
INT
49. 38 INGENIEROS PARA METODOS NUMÉRICOS
CUADRO 2.2 Referencia rápida: comparación de FORTRAN y BASIC. (cont.).
FORTRAN SOL.
donde x es el argumento de la función. Nótese que la lista anterior no está
completa. Dependiendo de la versión del compilador pueden existir más funcio-nes
intrínsecas.
Funciones definidas por el usuario
son funciones definidas por el programador.
Declaración de funciones
son de la forma:
narnbre(xl, . . . ,xn) = f
donde nombre es el nombre de la fun-ción
(se puede dar cualquier nombre);
x , , . . .,x,, son variables numéricas que
no tienen subíndice y f es una expre-sión
aritmética que depende de
x , , . . . , x,,.
Las declaraciones de funciones van antes
de la primera proposición de ejecutable.
Se pueden pasar varios argumentos en
una declaración de una función. Las
otras variables dentro de la función tie-nen
el mismo valor que en el programa
principal en el punto donde se llama la
función.
TRIG(X,Y)=SIN(X)-LOG(Y)
A=5 )'&&
B=10
S=TRIG(A,B)
Declaración DEF
son de la forma general:
in DEF FNa(x) = f
donde In es el número de línea, a es
cualquier letra del alfabeto, x es una
variable numérica (sin subíndice) y f es
una expresión aritmética que es función
de x.
La declaración DEF va antes de ejecutar
dicha función.
Se puede pasar sólo argumentos en una
declaración DEF. Las otras variables
dentro de la función tienen el mismo va-lor
que en el programa principal en el
punto donde se llama a la función.
10 DEF FNT(X)=SIN(X)-LOG(B) r
8700 AE== 510 9 90 S=FNT(AJ
Subprogramas Function
se parecen a las declaraciones de funcio-nes
en la ejecución pero, como su nom-bre
lo indica, son programas, esto es,
consisten de varias líneas. Los subpro-gramas
tipo function son de lo forma
general:
FUNCTION name(xl, . . . x2j
nombre = f
RETURN
donde todos los valores que toma la
función son aquellos que se definen a1
llamar a dicha Función.
50. LA PROGRAMACldN EPNE RLASCSOO NMAPLEU ST ADORAS 39
CUADRO 2.2 Referencia rápida: comparación de FORTRAN y BASIC. (cont.).
FORTRAN BASIC
A= 5
B=10
S=TRIG (A.B)
FUNCTION TRIG(X,Y)
RETURN
TRIG=SIN(X)-LOG(Y)
Nótese que las constantes y las variables
que no se pasan como argumentos de-ben
definirse dentro dela función o pa-sarse
por una declaración COMMON.
Subrutinas
son subprogramas que consisten de un conjunto de proposiciones que realizan
una tarea en particular. Contienen una declaración RETURN que regresa al
punto donde se llamó a la subrutina.
Las subrutinas se llaman con una decla-ración
CALL de la forma:
Call nombre (arg,,org,,. . .,arg,)
donde nombre es el nombre de la subru-tina
y org,,. . ., org, son los n argu-mentos
(variables o constantes) que se
pasan a la subrutina.
La subrutina va después del programa
principal y empieza con una declaración
SUBROUTINE, de la forma:
Las subrutinas se llaman con una decla-ración
GOSUB de la forma:
In, GOSUB Inn
donde In, es el número de línea de la
declaración GOSUB y In2 es el número
de línea donde empieza la subrutina.
La primera línea de la subrutina puede ir
en cualquier lugar dentro del programa.
donde nombre debe ser el mismo al Ila-mar
dicha subrutina con la proposición
CALL.
Una vez dentro de la subrutina, las proposiciones se ejecutan en secuencia hasta
que se encuentra una declaración RETURN, después de lo cual regresa a la si-guiente
línea de donde está la subrutina.
Se pasan a y desde la subrutino única- Todos los valores se pasan a y desde la
mente los valores que aparecen como subrutina.
argumentos de la misma:
51. 40 MÉTODOS NUMÉRICOS PARA INGENIEROS
CUADRO 2.2. Referencia rápida: comparación de FORTRAN y BASIC. (cont.)
FORTRAN IC
CALL SUM (X.Y,Z)
-
200 GOSUB 800
END 500 END
SUBROUTINE SUM (A,B,C) 800 Z=X+Y
C=A+B 850 RETURN
RETURN
Nótese que las constantes y las varia-bles
que no se pasan como argumentos
se deben definir dentro de la subru-tina
o pasarse con una declaración
COMMON.
DOCUMENTACI~N
(le permite incluir información para el usuario de los programas)
las declaraciones de documentación son instrucciones no ejecutables.
Declaración de comentario Declaración REM
Consiste del carácter C o del símbolo * en Consiste de la declaración REM seguida
la columna 1 seguido por un mensaje: por un mensaje:
C aquí se puede teclear cualquier 1 O REM aquí se puede teclear cualquier
mensaje. mensaje.
3. Cálculos. Las operaciones matemáticas son muy similares en ambos
lenguajes. Aunque la nomenclatura es un poco diferente, las ecuacio-nes
escritas en los dos lenguajes casi son idénticas.
4. Control. Estas declaraciones se usan para dirigir la secuencia lógica
de las instrucciones en el programa. Para los m6todos numéricos, es
suficiente con tres tipos: la declaración GO TO, el IF lógico y los ci-clos.
Aunque hay pequeñas diferencias en la nomenclatura de ambos
lenguajes, las declaraciones son muy similares en operación.
5. Subprogramas. Como lo indica el nombre, son miniprogramas dentro
del programa principal. Se diseñan para ejecutar declaraciones que
se repiten muchas veces a lo largo del programa. En vez de reescribir
los miniprogramas muchas veces dentro del programa, se pueden es-cribir
sólo una vez e invocarse con una declaración simple cuando sea
necesario. Estos .subprogramas, que incluyen las subrutinas, funcio-nes
definidas por el usuario y funciones predefinidas, son otro caso
52. 0 7 8 f q
LA PROGRAMACIóN EN LAS COMPUTADORAS PERSONALES
donde FORTRAN y BASIC difieren significativamente. Las diferen-cias
estriban en la manera en que se pasain formación entre el cuerpo
principal del programa y los subprogramas. Como se muestra en el
cuadro 2.2. los argumentos de los subprogramas FORTRAN actúan
como ventanas para controlar el paso de informacih. Este es un ejem-plo
que muestra al FORTRAN como un lenguaje más complicado y.
en consecuencia. más potente que el BASIC.
6. Documentación. Estas declaraciones permiten incluir información en-focada
al usuario dentro del programa.
En resumen, el FORTRAN es un poco más flexible y más poderoso
aunque también es más difícil de aprender que el BASIC. Sin embargo.
ya que éste se desarrolló originalmente como una versión simplificada del
FORTRAN. los dos lenguajes muestran varias similitudes. Aunque cada
uno de ellos tiene sus reglas que deben respetarse en cuanto a estilo. su
vocabulario y gramática son lo suficientemente similares como para per-mitir
una traducción fácil de la mayor parte de los programas de un len-guaje
a otro. Por 10 tanto, en este libro todo el código para computadora
se presenta en formato doble como el de la figura 2.5. Aunque algunas
veces signifique que se olvidarán características peculiares de uno u otro
lenguaje, esto permitirá alcanzar un conocimiento de los dos lenguajes
FORTRAN y BASIC.
2.2.3 Rastreo y prueba
Después de escribir el código del programa. se debe probar para buscar
los errores, a los que se les llama bugs. AI proceso de localizar y corregir los
errores se les conoce como rastreo. Pueden ocurrir varios tipos de erro-res
cuando se programa enc ualquier lenguaje. Los errores de sin taxis violan
las reglas del lenguaje como la ortografía. la formación de los números.
los números de línea y otras reglas específicas a cada lenguaje. Estos errores
a menudo resultan al teclear cosas raras. Por ejemplo. la declaración en
BASIC
30 A = 5/(0.2 + 4 * SIN (2 * Y1
generaría un error de sintaxis inmediato porque los paréntesis no se en-cuentran
por parejas.
Los errores más difíciles de detectar están asociados con la lógica y
con la construcción de los programas y pueden ocurrir sin interrupciones
de sintaxis. Por lo tanto, se debe tener especial cuidado y asegurarse de
que el programa hace lo que se le pide. Por ejemplo. supóngase que.
se desean sumar los enteros entre 1 y 10 y luego dividirlos entre 10
(es decir. calcular su promedio). Los códigos en FORTRAN y BASIC de-ben
ser
53. 42 MÉTODOS NUMÉRICOS PARA INGENIEROS
FORTRAN
s = o
DO40 I = 1 , 10
S = S + I
40 CONTINUE
A = S/I
WRITE (6, 1 )A
BASIC
1 o s = o
20 FOR I = 1 TO 10
3 O S = S + I
40 NEXT I
5C A = S/l
60 PRINT A
obteniendo como resultado A = 5. mientras que el resultado esperado
era A = 5.5. La sintaxis está perfecta. pero hay un error de lógica que
la computadora jamás podrá detectar porque no hay forma de observar-lo.
Una manera de eliminar este tipo de error es la de imprimir durante
el programa los valores de las variables que no se requieran en la forma
final del programa. Por ejemplo. si se ha escrito
WRITE f V O ~ I. , . . , vorn in PRINT vorl, . . . , V O ~ ,
con los resultados A = 5 e I = 11, probablemente se notará que el error
estriba en que el valor de I se incrementa al salir del ciclo.
Los errores de este tipo a menudo son muy dificiles de detectar
en programas muy grandes o muy complejos. Por lo tanto, es una buena
práctica verificar manualmente si es posible, los resultados dados por
' el programa y probarlos en casos especiales. Esto puede hacerse con lápiz,
papel y una calculadora. Los errores asociados con la lógica o con la fi-nalidad
de un programa. no con la gramática, se les conoce como erro-res
de semántica. Estos ocurren. por lo general durante la ejecución del
programa y se les conoce también como errores en el momento de /a co-rrida
(run time errors). Es absolutamente necesaria la técnica de impri-mir
los valores de las variables intermedias para verificar la lógica de un
programa y evitar errores de semántica en programas muy grandes.
El rastreo y la prueba de los programas se facilita empleando un buen
estilo de codificación, Esto puede implicar que el disefio de los programas
consista de varias partes pequeñas. A este tipo de estilo de programa-ción
se le conoce como programación modular. Cada parte es especifica
e identifica fácilmente las tareas a ejecutar. Las subrutinas son medios apro-piados
para tal modularización. El programa principal (o el programa que
las llama) puede, entonces ser simplemente un director que guía cada una
de las partes en un esquema lógico. De esta manera. si los programas
no funcionan perfectamente, se puede aislar y localizar el problema más
rápidamente. Por ejemplo. se pueden escribir subrutinas para c,ada una
de las siguientes tareas:
1. Leer datos. 4. Ejecutar algoritmos numéricos.
2. Mostrar datos. 5. Mostrar los resultados en una tabla.
3. Mostrar un carácter para 6. Mostrar los resultados en una gráfica.
información.
54. -LA P ROGRAMACIóN PEENR SLACOSON MALPE UST ADORAS 43
Cada una de estas subrutinas realiza una tarea limitada y aislada que se
puede programar y rastrear separadamente. Esto simplifica mucho el tra-bajo
total. comparado con el rastreo de todo el programa simultáneamente.
Después de probar los módulos, todo el programa se debe sujetar a
una prueba total del sistema. Para un programa de métodos numéricos,
se debe realizar una serie de cálculos y debe compararse con casos donde se
conozca previamente la solución exacta. Algunas veces se dispone de
la solución analítica la cual es aceptable para estos propósitos. Tal fue
el caso del paracaidista (recuérdense los ejemplos 1.1. y 1.2). En otros
casos, el programador debe realizar cálculos manuales con una calcula-dora
de bolsillo para comprobar que el programa lleva a resultados con-fiables.
En cualquier caso, el programa se sujetará a una gran variedad
de pruebas para asegurarse de que funcionará confiablemente bajo todas
las condiciones de operación posibles. Unicamente hasta entonces el pro-grama
estará listo para ser usado en la solución de problemas de ingeniería.
2.2.4 Documentación
Después de que el programa ha sido rastreado y probado, se debe docu-mentar.
La documentación es la inclusión de comentarios que le permi-ten
al usuario implementar el programa más fácilmente. Recuérdese que
junto con otras personas que pueden usar sus programas, el programa-dor
mismo es un “usuario”. Aunque un programa parezca simple y claro
cuando está recién hecho y se guarda en la mente, después de pasar cierto
tiempo el mismo código puede parecer inaccesible. Por lo tanto, se debe
incluir suficiente información para permitirlae los usuariose ntender e im-plementar
inmediatamente tales programas.
Esta tarea exhibe aspectos internos y externos. La documentación in-terna
consiste de algún análisis o explicación que se inserta a lo largo del
código del programa para la descripción de cómo trabaja cada una de
las secciones del mismo. Es importante en casos donde se va a modificar
el programa. Esta documentación se debe incluir tan pronto como se ter-mine
una parte del programa, en lugar de hacerlo hasta el final, para evi-tar
la pérdida del concepto en el diseño original que se tuvo en el desarrollo
del programa. La documentación interna se mejora considerablemente
con el uso de nombres mnemónicos apropiados para las variables. Estos
nombres pueden ser más difíciles de codificar que los nombres peque-ños,
pero la ventaja de ser más informativos, por lo general hace que
valga la pena el esfuerzo adicional. Utilizar nombres mnemónicos conve-nientes,
incluye en esencia el uso de nombres convencionales o est6n-dares
o abreviaciones comunes para variables.
La documentación externa explica las instrucciones como mensajes
e información impresa suplementaria diseñada para auxiliaarl usuario en
la implementación de los programas. Los mensajes impresos se supone
que ayudan a que los resultados estén bien presentados y accesibles al
usuario. Esto implica el uso correcto de espacios, líneas en blanco o ca-
55. 44 MÉTODOS NUMÉRICOS PARA INGENIEROS
racteres especiales que ilustren la secuencia lógica y la estructura de los
resultados de un programa. Los resultados bien presentados simplifican
la detección de errores y aumentan la comprensión de los mismos.
La información suplementaria puede variar desde una hoja hasta un
manual para el usuario. La figura 2.7 muestra un ejemplo de una forma
FIGURA 2.7 Formato simple de una página para la documentación de un programa.
Esta página se debe guardar en una carpeta con un listado del programa.
56. LA PROGRAMACI~ENN LAS COMPUTADORASP ERSONALES 45
de documentación simple que se recomienda para preparar cada uno de
los programas a desarrollar. Estas formas se pueden mantener en un cua-derno
den otas para tener unar eferencia rápida para la biblioteca de pro-gramas.
El manual del usuario para una computadora es un ejemplo de
una documentación accesible. Este manual indica cómo correr el sistema
y los programas de operación en disco de la computadora.
2.2.5 Almacenamiento y mantenimiento
Los pasos finales en el desarrollo de un programa son el almacenamiento
y mantenimiento del mismo. El mantenimiento involucra acondicionar el
programa e incluso hacerle cambios que lo hagan accesible a problemas
reales. Después de varias corridas, estos cambios pueden hacer al pro-grama
más fácil de usar y más aplicable a mayor cantidad de problemas.
El mantenimiento se facilita con una buena documentación.
El almacenamiento se refiere a la manera en que los programas se
guardan para uso posterior. Antes del advenimiento de las computado-ras
personales, no había formas simples de almacenar copias de trabajo
de programas realizados. Los listados de código, de hecho se guardaban,
pero tenían que teclearse de nuevo para usos posteriores. Las cajasd e tarjetas
FIGURA 2.8 Disco flexible.
57. 46 INGENIEROS PARA NUMERICOS MÉTODOS -
perforadas se podían guardar, pero parau n programa de cualquier mag-nitud
resultaban difíciles de manejar y susceptibles a deteriorarse.
Como se menciona al principio de este capítulo, los dispositivos de
almacenamiento magnético han mejorado sustancialmente la habilidad
de retener programas. Un dispositivo común de almacenamiento es el disco
flexible. mostrado en la figura 2.8. Los discos flexibles son un medio ba-rato
para almacenar programas y datos. Aunque los discos flexibles tie-nen
una granu tilidad. también tienen algunas desventajas. Por unap arte,
su tiempo de acceso es muy lento; por otra, se deben manejar y se deben
guardar con mucho cuidado. Dado que pueden borrarse muy fácilmen-te,
siempre se debe teneru na copia de cada uno de ellos. Ademásc, uando
se termina un programa de computadora, se debe imprimir inmediata-mente
y almacenarlo con la documentación correspondiente. Estas im-presiones
pueden ser útiles en el caso no deseado, pero posible, de que
el disco y su copia se destruyan.
2.3 DESARROLLO DE UN PROGRAMA PARA
EL PROBLEMA DEL PARACAIDISTA
Ahora se usará el material de las secciones previas para escribir un pro-grama
en BASIC y en FORTRAN para el problema del paracaidista. Es-tos
programas son un ejemplo ideal porque contienen todos los elementos
-entrada-salida, ciclos, decisiones, cálculos y subprogramas- que con-forman
al programa en el resto del capítulo.
Recuérdese que el problema del paracaidista es equivalente a la solu-ción
de la ecuación (l. 12):
r -7
donde v es la velocidad en un tiempo posterior v(tJ es la velo-cidad
en el tiempo actual ti, g es la aceleración de la gravedad (igual a)
980 cms/s2, c es el coeficiente de rozamiento, m es la masa del para-caidista
y At = ti+l - ti. El término entre corchetes es el valor actual del
promedio de cambio de velocidad respecto al tiempo [Ec. (1.8)]S. i se
conoce la velocidad inicial del paracaidista v (ti) la ecuación (2.1) se pue-de
resolver repetidamente para valores de v(ti+J, como se hizo en el
ejemplo l. 2.
Con esta información como antecedente, ahora se puede desarrollar
un algoritmo para el problema. En este punto, se podría desarrollar un
algoritmo bien detallado. Sin embargo, con la práctica que se tiene, difí-cilmente
se podría. En lugar de ello, se empezará con una versión gene-ral
simple, agregándole detalles poco a poco en forma secuencia1 para
expandir la definición. Entonces, cuando se haya obtenido una versión
58. LA PROGRAMACldN EN LAS COMPUTADORAS PERSONALES 47
FIGURA 2.9 Diagrama de fluio de un programa simple para el problema del
paracaidista.
59. 48 MÉTODOS NUMÉRICOS PARA INGENIEROS
final. se puede proceder a escribir el programa. En programación. este
método de iniciar en general e ir avanzando hacia lo específico se le co-noce
como esquema de análisis descendente. Entre otras cosas. es efi-ciente
porque, en general es mucho más fácil eliminar errores si los
algoritmos y los programas se escriben en pasos simples y se van verifi-cando
conforme se avanza.
Un algoritmo muy simple para realizar los cálculos del ejemplo 1.2
puede escribirse con palabras de la siguiente manera: introducir los da-tos.
calcular la velocidad, imprimir la respuesta y repetir hasta que se
hayan calculado tantos valores como sea necesario. Este algoritmo se puede
expresar de manera más formal con un diagrama de flujo. La figura 2.9
muestra un procedimiento detallado de la implementación de los cálculos.
El diagrama de flujo consiste de tres conjuntos de declaraciones:
1. Introducir variables y constantes
2. Inicializar todas las variables
3. Hacer un ciclo iterativo que calcule e imprima las respuestas
Con base al diagrama de flujo, se puede escribir ahora un programa.
Las versiones en FORTRAN y BASIC se muestran en la figura 2.10. NÓ-tese
que para la versicin en BASIC, se usan incrementos de 10 para eti-quetar
los números de línea. Esto se hace para prever la posibilidad de
T0=0
v0=0
H=Z
t4=t 0
C = t 2 5 0 0 I
M1681 O 0
T=TO
'V = v o
URITE<6, I > T , V
FORMAT(2( ' ' , F 1 0 . 3 > )
I=O
T=T+H
W R I T E ( 6 , l ) T , V
I=I+t
I F ! I . L T . H j C O T O 2 0 0
STOP
E ti C)
2 0 O 'V=V+C 98 O-C*V,'l'l >*H
FIGURA 2.1 O Programas FORTRAN y BASIC para el problema del paracaidista. Estos
programas duplican los cálculos manuales del ejemplo 1.2.
. " . .