SlideShare una empresa de Scribd logo
1 de 650
Descargar para leer sin conexión
MÉTODOS NUMÉRICOS PARA 
INGENIEROS 
Con aplicaciones en 
computadoras personales
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
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
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
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
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
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
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
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
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
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.
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
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.
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
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-
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:
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.
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
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,
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 .
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.
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
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
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.
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-
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
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.
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
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
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.
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-
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,
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,
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.
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.
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
28 METODOS NUMERICOS PARA INGENIEROS 
FIGURA 2.4 Símbolos utilizados en diagramas de fluio.
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.
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.
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”
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.
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:
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 
+ 
- 
. ..
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
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
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.
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:
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
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
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.
-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-
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.
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.
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
LA PROGRAMACldN EN LAS COMPUTADORAS PERSONALES 47 
FIGURA 2.9 Diagrama de fluio de un programa simple para el problema del 
paracaidista.
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. 
. " . .
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros

Más contenido relacionado

La actualidad más candente

Ecuaciones Diferenciales - La Transformada de Laplace
Ecuaciones Diferenciales - La Transformada de LaplaceEcuaciones Diferenciales - La Transformada de Laplace
Ecuaciones Diferenciales - La Transformada de Laplace
Kike Prieto
 
Trabajo series de taylor
Trabajo series de taylorTrabajo series de taylor
Trabajo series de taylor
Fredy
 
1.5 metodos iterativos
1.5 metodos iterativos1.5 metodos iterativos
1.5 metodos iterativos
morenito9001
 
11 Transformada De Laplace
11 Transformada De Laplace11 Transformada De Laplace
11 Transformada De Laplace
kahtya
 
4.metodo de la biseccion
4.metodo de la biseccion4.metodo de la biseccion
4.metodo de la biseccion
rjvillon
 
Ecuaciones diferenciales demostracion laplace cos(t)
Ecuaciones diferenciales demostracion laplace cos(t)Ecuaciones diferenciales demostracion laplace cos(t)
Ecuaciones diferenciales demostracion laplace cos(t)
Velmuz Buzz
 
Solucionario ecuaciones diferenciales dennis zill[7a edicion]
Solucionario ecuaciones diferenciales dennis zill[7a edicion]Solucionario ecuaciones diferenciales dennis zill[7a edicion]
Solucionario ecuaciones diferenciales dennis zill[7a edicion]
Laura Cortes
 
Solucionario ecuaciones2
Solucionario ecuaciones2Solucionario ecuaciones2
Solucionario ecuaciones2
ERICK CONDE
 
10 transformada fourier
10 transformada fourier10 transformada fourier
10 transformada fourier
Alex Jjavier
 

La actualidad más candente (20)

Ejercicios unidad 5
Ejercicios unidad 5Ejercicios unidad 5
Ejercicios unidad 5
 
Independencia Lineal y Wronskiano
Independencia Lineal y Wronskiano Independencia Lineal y Wronskiano
Independencia Lineal y Wronskiano
 
Metodo adams bashforth
Metodo adams bashforthMetodo adams bashforth
Metodo adams bashforth
 
EJERCICIOS RESUELTOS SOBRE EL MÉTODO DE NEWTON Y EL MÉTODO DE LA SECANTE
EJERCICIOS RESUELTOS SOBRE EL MÉTODO DE NEWTON Y EL MÉTODO DE LA SECANTEEJERCICIOS RESUELTOS SOBRE EL MÉTODO DE NEWTON Y EL MÉTODO DE LA SECANTE
EJERCICIOS RESUELTOS SOBRE EL MÉTODO DE NEWTON Y EL MÉTODO DE LA SECANTE
 
El método de la secante y secante modificado
El método de la secante y secante modificadoEl método de la secante y secante modificado
El método de la secante y secante modificado
 
Series de fourier 22 Ejercicios Resueltos
Series de fourier 22 Ejercicios ResueltosSeries de fourier 22 Ejercicios Resueltos
Series de fourier 22 Ejercicios Resueltos
 
Ecuaciones Diferenciales - La Transformada de Laplace
Ecuaciones Diferenciales - La Transformada de LaplaceEcuaciones Diferenciales - La Transformada de Laplace
Ecuaciones Diferenciales - La Transformada de Laplace
 
Trabajo series de taylor
Trabajo series de taylorTrabajo series de taylor
Trabajo series de taylor
 
1.5 metodos iterativos
1.5 metodos iterativos1.5 metodos iterativos
1.5 metodos iterativos
 
11 Transformada De Laplace
11 Transformada De Laplace11 Transformada De Laplace
11 Transformada De Laplace
 
4.metodo de la biseccion
4.metodo de la biseccion4.metodo de la biseccion
4.metodo de la biseccion
 
Ecuaciones diferenciales demostracion laplace cos(t)
Ecuaciones diferenciales demostracion laplace cos(t)Ecuaciones diferenciales demostracion laplace cos(t)
Ecuaciones diferenciales demostracion laplace cos(t)
 
Tema 2 ECUACIONES DIFERENCIALES LINEALES DE ORDEN SUPERIOR
Tema 2 	ECUACIONES DIFERENCIALES LINEALES DE ORDEN SUPERIORTema 2 	ECUACIONES DIFERENCIALES LINEALES DE ORDEN SUPERIOR
Tema 2 ECUACIONES DIFERENCIALES LINEALES DE ORDEN SUPERIOR
 
Solucionario ecuaciones diferenciales dennis zill[7a edicion]
Solucionario ecuaciones diferenciales dennis zill[7a edicion]Solucionario ecuaciones diferenciales dennis zill[7a edicion]
Solucionario ecuaciones diferenciales dennis zill[7a edicion]
 
Solucionario ecuaciones2
Solucionario ecuaciones2Solucionario ecuaciones2
Solucionario ecuaciones2
 
serie de taylor
 serie de taylor serie de taylor
serie de taylor
 
Serie de fourier. Funciones periodicas, funciones pares e impares.
Serie de fourier. Funciones periodicas, funciones pares e impares.Serie de fourier. Funciones periodicas, funciones pares e impares.
Serie de fourier. Funciones periodicas, funciones pares e impares.
 
328912819-Cap-10-Secc-10-3-Ec-Parametricas-y-Calculo.pdf
328912819-Cap-10-Secc-10-3-Ec-Parametricas-y-Calculo.pdf328912819-Cap-10-Secc-10-3-Ec-Parametricas-y-Calculo.pdf
328912819-Cap-10-Secc-10-3-Ec-Parametricas-y-Calculo.pdf
 
Ecuacion cauchy euler
Ecuacion cauchy eulerEcuacion cauchy euler
Ecuacion cauchy euler
 
10 transformada fourier
10 transformada fourier10 transformada fourier
10 transformada fourier
 

Destacado

Métodos numéricos
Métodos numéricosMétodos numéricos
Métodos numéricos
Adrian210
 
Tema 11 expresiones regulares en java por gio
Tema 11   expresiones regulares en java por gioTema 11   expresiones regulares en java por gio
Tema 11 expresiones regulares en java por gio
Robert Wolf
 
Medicina legal. exposicion.
Medicina legal. exposicion.Medicina legal. exposicion.
Medicina legal. exposicion.
Neyber Sanchez
 
Integración numérica muy bueno
Integración numérica muy buenoIntegración numérica muy bueno
Integración numérica muy bueno
Luis Elias
 

Destacado (20)

Métodos numéricos aplicados a la ingeniería civil estructuras
Métodos numéricos aplicados a la ingeniería civil estructurasMétodos numéricos aplicados a la ingeniería civil estructuras
Métodos numéricos aplicados a la ingeniería civil estructuras
 
METODOS NUMERICOS para ingenieria -Chapra
METODOS NUMERICOS para ingenieria -ChapraMETODOS NUMERICOS para ingenieria -Chapra
METODOS NUMERICOS para ingenieria -Chapra
 
Métodos numéricos
Métodos numéricosMétodos numéricos
Métodos numéricos
 
APLICACIÓN DEL MÉTODO DE NEWTON RAPHSON
APLICACIÓN DEL MÉTODO DE NEWTON RAPHSONAPLICACIÓN DEL MÉTODO DE NEWTON RAPHSON
APLICACIÓN DEL MÉTODO DE NEWTON RAPHSON
 
Aplicacion
AplicacionAplicacion
Aplicacion
 
Ejercicios resueltos- de metodos
Ejercicios resueltos- de metodosEjercicios resueltos- de metodos
Ejercicios resueltos- de metodos
 
Ensayo unidad 1
Ensayo unidad 1Ensayo unidad 1
Ensayo unidad 1
 
Integración numérica parte II
Integración numérica parte IIIntegración numérica parte II
Integración numérica parte II
 
Tema 11 expresiones regulares en java por gio
Tema 11   expresiones regulares en java por gioTema 11   expresiones regulares en java por gio
Tema 11 expresiones regulares en java por gio
 
Medicina legal. exposicion.
Medicina legal. exposicion.Medicina legal. exposicion.
Medicina legal. exposicion.
 
Informe sobre Práctica virtual de laboratorio: Gases ideales
Informe sobre Práctica virtual de laboratorio: Gases idealesInforme sobre Práctica virtual de laboratorio: Gases ideales
Informe sobre Práctica virtual de laboratorio: Gases ideales
 
Métodos numéricos aplicados a la mecanica
Métodos numéricos aplicados a la mecanicaMétodos numéricos aplicados a la mecanica
Métodos numéricos aplicados a la mecanica
 
Integración numérica muy bueno
Integración numérica muy buenoIntegración numérica muy bueno
Integración numérica muy bueno
 
Método de newton raphson Metodos Numericos
Método de newton raphson Metodos NumericosMétodo de newton raphson Metodos Numericos
Método de newton raphson Metodos Numericos
 
Matematica computacional
Matematica computacionalMatematica computacional
Matematica computacional
 
Aplicacion Libre 2. Metodos de Trapecio y Metodos de Simpson
Aplicacion Libre 2. Metodos de Trapecio y Metodos de SimpsonAplicacion Libre 2. Metodos de Trapecio y Metodos de Simpson
Aplicacion Libre 2. Metodos de Trapecio y Metodos de Simpson
 
Optimización. Métodos numéricos
Optimización. Métodos numéricosOptimización. Métodos numéricos
Optimización. Métodos numéricos
 
Método de Newton-Raphson para hallar la Temperatura Adiabática de la Flama
Método de Newton-Raphson para hallar la Temperatura Adiabática de la FlamaMétodo de Newton-Raphson para hallar la Temperatura Adiabática de la Flama
Método de Newton-Raphson para hallar la Temperatura Adiabática de la Flama
 
Proyecto de Ecuaciones Diferenciales
Proyecto de Ecuaciones DiferencialesProyecto de Ecuaciones Diferenciales
Proyecto de Ecuaciones Diferenciales
 
Qué es visual basic
Qué es visual basicQué es visual basic
Qué es visual basic
 

Similar a Metodos numericos para ingenieros

Thomas_Calculo_Varias_Variables_(Thomas)_-_11o_Edicion.pdf
Thomas_Calculo_Varias_Variables_(Thomas)_-_11o_Edicion.pdfThomas_Calculo_Varias_Variables_(Thomas)_-_11o_Edicion.pdf
Thomas_Calculo_Varias_Variables_(Thomas)_-_11o_Edicion.pdf
Juan Estevez
 

Similar a Metodos numericos para ingenieros (20)

Chapra.pdf
Chapra.pdfChapra.pdf
Chapra.pdf
 
Chapra(2007)_MetNumParIng.pdf
Chapra(2007)_MetNumParIng.pdfChapra(2007)_MetNumParIng.pdf
Chapra(2007)_MetNumParIng.pdf
 
CHAPRA Metodos_numericos_para_ingenieros_5e_140.pdf
CHAPRA Metodos_numericos_para_ingenieros_5e_140.pdfCHAPRA Metodos_numericos_para_ingenieros_5e_140.pdf
CHAPRA Metodos_numericos_para_ingenieros_5e_140.pdf
 
Calculo numerico chappra
Calculo numerico chappraCalculo numerico chappra
Calculo numerico chappra
 
Metodos numericos para ingenieros
Metodos numericos para ingenierosMetodos numericos para ingenieros
Metodos numericos para ingenieros
 
Cálculo diferencial e integral Vol. 1 y 2 9na Edición Ron Larson y Bruce H. E...
Cálculo diferencial e integral Vol. 1 y 2 9na Edición Ron Larson y Bruce H. E...Cálculo diferencial e integral Vol. 1 y 2 9na Edición Ron Larson y Bruce H. E...
Cálculo diferencial e integral Vol. 1 y 2 9na Edición Ron Larson y Bruce H. E...
 
Silabos electronica inf (1)
Silabos electronica inf (1)Silabos electronica inf (1)
Silabos electronica inf (1)
 
Silabos electronica inf (1) - copia
Silabos electronica inf (1) - copiaSilabos electronica inf (1) - copia
Silabos electronica inf (1) - copia
 
Calificacion final 1 a
Calificacion final 1 aCalificacion final 1 a
Calificacion final 1 a
 
Matlab para Ingenieros.pdf
Matlab para Ingenieros.pdfMatlab para Ingenieros.pdf
Matlab para Ingenieros.pdf
 
Matlab para Ingenieros.pdf
Matlab para Ingenieros.pdfMatlab para Ingenieros.pdf
Matlab para Ingenieros.pdf
 
Metodos_Numericos_Aplicados_a_la_ingenie (1).pdf
Metodos_Numericos_Aplicados_a_la_ingenie (1).pdfMetodos_Numericos_Aplicados_a_la_ingenie (1).pdf
Metodos_Numericos_Aplicados_a_la_ingenie (1).pdf
 
libro-simulación-y-análisis-de-sistemas-2da-edición.pdf
libro-simulación-y-análisis-de-sistemas-2da-edición.pdflibro-simulación-y-análisis-de-sistemas-2da-edición.pdf
libro-simulación-y-análisis-de-sistemas-2da-edición.pdf
 
Simulación y análisis 2013.pdf
Simulación y análisis 2013.pdfSimulación y análisis 2013.pdf
Simulación y análisis 2013.pdf
 
metodos_matematicos_ingenieria.pdf
metodos_matematicos_ingenieria.pdfmetodos_matematicos_ingenieria.pdf
metodos_matematicos_ingenieria.pdf
 
Thomas_Calculo_Varias_Variables_(Thomas)_-_11o_Edicion.pdf
Thomas_Calculo_Varias_Variables_(Thomas)_-_11o_Edicion.pdfThomas_Calculo_Varias_Variables_(Thomas)_-_11o_Edicion.pdf
Thomas_Calculo_Varias_Variables_(Thomas)_-_11o_Edicion.pdf
 
Ing en sistema Manual de UML Kimmel.pdf
Ing en sistema Manual de UML Kimmel.pdfIng en sistema Manual de UML Kimmel.pdf
Ing en sistema Manual de UML Kimmel.pdf
 
Capitulo 1 me4canismo
Capitulo 1 me4canismoCapitulo 1 me4canismo
Capitulo 1 me4canismo
 
1020148252.PDF
1020148252.PDF1020148252.PDF
1020148252.PDF
 
Clase 1_Microprocesadores y microcontroladores.pptx
Clase 1_Microprocesadores y microcontroladores.pptxClase 1_Microprocesadores y microcontroladores.pptx
Clase 1_Microprocesadores y microcontroladores.pptx
 

Último

analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
Ricardo705519
 
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONALSESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
EdwinC23
 

Último (20)

CALCULO DE ENGRANAJES RECTOS SB-2024.pptx
CALCULO DE ENGRANAJES RECTOS SB-2024.pptxCALCULO DE ENGRANAJES RECTOS SB-2024.pptx
CALCULO DE ENGRANAJES RECTOS SB-2024.pptx
 
CONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.pdf
CONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.pdfCONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.pdf
CONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.pdf
 
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
 
Análisis_y_Diseño_de_Estructuras_con_SAP_2000,_5ta_Edición_ICG.pdf
Análisis_y_Diseño_de_Estructuras_con_SAP_2000,_5ta_Edición_ICG.pdfAnálisis_y_Diseño_de_Estructuras_con_SAP_2000,_5ta_Edición_ICG.pdf
Análisis_y_Diseño_de_Estructuras_con_SAP_2000,_5ta_Edición_ICG.pdf
 
Suelo, tratamiento saneamiento y mejoramiento
Suelo, tratamiento saneamiento y mejoramientoSuelo, tratamiento saneamiento y mejoramiento
Suelo, tratamiento saneamiento y mejoramiento
 
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
 
EFICIENCIA ENERGETICA-ISO50001_INTEC_2.pptx
EFICIENCIA ENERGETICA-ISO50001_INTEC_2.pptxEFICIENCIA ENERGETICA-ISO50001_INTEC_2.pptx
EFICIENCIA ENERGETICA-ISO50001_INTEC_2.pptx
 
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHTAPORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
 
Libro de ingeniería sobre Tecnología Eléctrica.pdf
Libro de ingeniería sobre Tecnología Eléctrica.pdfLibro de ingeniería sobre Tecnología Eléctrica.pdf
Libro de ingeniería sobre Tecnología Eléctrica.pdf
 
Minería convencional: datos importantes y conceptos
Minería convencional: datos importantes y conceptosMinería convencional: datos importantes y conceptos
Minería convencional: datos importantes y conceptos
 
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONALSESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
 
Sistemas de Ecuaciones no lineales-1.pptx
Sistemas de Ecuaciones no lineales-1.pptxSistemas de Ecuaciones no lineales-1.pptx
Sistemas de Ecuaciones no lineales-1.pptx
 
Propuesta para la creación de un Centro de Innovación para la Refundación ...
Propuesta para la creación de un Centro de Innovación para la Refundación ...Propuesta para la creación de un Centro de Innovación para la Refundación ...
Propuesta para la creación de un Centro de Innovación para la Refundación ...
 
ELASTICIDAD PRECIO DE LA DEMaaanANDA.ppt
ELASTICIDAD PRECIO DE LA DEMaaanANDA.pptELASTICIDAD PRECIO DE LA DEMaaanANDA.ppt
ELASTICIDAD PRECIO DE LA DEMaaanANDA.ppt
 
2024 GUIA PRACTICAS MICROBIOLOGIA- UNA 2017 (1).pdf
2024 GUIA PRACTICAS MICROBIOLOGIA- UNA 2017 (1).pdf2024 GUIA PRACTICAS MICROBIOLOGIA- UNA 2017 (1).pdf
2024 GUIA PRACTICAS MICROBIOLOGIA- UNA 2017 (1).pdf
 
Cereales tecnología de los alimentos. Cereales
Cereales tecnología de los alimentos. CerealesCereales tecnología de los alimentos. Cereales
Cereales tecnología de los alimentos. Cereales
 
PRESENTACION DE LAS PLAGAS Y ENFERMEDADES DEL PALTO
PRESENTACION DE LAS PLAGAS Y ENFERMEDADES DEL PALTOPRESENTACION DE LAS PLAGAS Y ENFERMEDADES DEL PALTO
PRESENTACION DE LAS PLAGAS Y ENFERMEDADES DEL PALTO
 
Trazos paileros para realizar trazos, cortes y calculos.pptx
Trazos paileros para realizar trazos, cortes y calculos.pptxTrazos paileros para realizar trazos, cortes y calculos.pptx
Trazos paileros para realizar trazos, cortes y calculos.pptx
 
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.ppt
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.pptTippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.ppt
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.ppt
 
Quimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdfQuimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdf
 

Metodos numericos para ingenieros

  • 1. MÉTODOS NUMÉRICOS PARA INGENIEROS Con aplicaciones en computadoras personales
  • 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. . " . .