SlideShare una empresa de Scribd logo
1 de 650
Descargar para leer sin conexión
MÉTODOS NUMÉRICOS PARA
INGENIEROS
Con aplicaciones en
computadoraspersonales
MÉTODOS NUMÉRICOS PARA
INGENIEROS
Con aplicacionesen
computadoraspersonales
Steven C. Chapra, Ph.D.
Professorof Civil Engineering
Texas A&M University
Raymond P. Canale, Ph.D.
Professor of Ci.vil Engineering
The University of Michigan
Traducción:
CarlosZapata S.
Ingeniero Electricista, UDLA
Diplomado enCiencias de la Computación,
Fundaci6nArturoRosenblueth
Alfredo CortésAnaya
LicenciadoenCienciasFísico-Matemiticas, UMSNH
MaestroenCiencias de la Computaci6n,
IIMAS,UNAM
Revisión técnica:
FernandoVeraBadillo
IngenieroCivil,Universidad La Salle
Jefe del DepartamentodeMatemlticasAplicadas,
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
NUEVADELHI PARíS SANFRANCISCO 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
1234567890L.M.437
ImpresoenMexicoPunted InMexico
Esta obra se terminó de
imprimir en febrero de 1988
en Talleres Gráficos Continental, S. R. deC. 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 METODOSNUMERICOS Y LAS COMPUTADORAS
PERSONALES
I.1 Motivación
1.2 Fundamentosmatemáticos
1.3 Orientación
Capítulo 1 Modelosmatemáticos
Problemas
Capítulo 2 La programación en las computadoras
personales
2.1 Antecedenteshistóricos
2.2 Desarrollodeprogramas
2.3 Desarrollodeunprogramapara el problemadelparacaidista
2.4 Estrategiasdeprogramación
Problemas
Capítulo 3 Aproximaciones y errores
3.1 Cifrassignificativas
3.2 Exactitud y precisión
3.3 Definicionesdeerror
3.4Erroresderedondeo
3.5 Erroresdetruncamiento
3.6 Errornuméricototal
3.7 Erroresporequivocación,deplanteamiento
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 CONTENIDO-
EPILOG0 PARTE I
1.4 ElementosdeJuicio
1.5 Relacionesyfórmulasimportantes
1.6 Métodosavanzadosyalgunasreferenciasadicionales
PARTE II RAíCES DEECUACIONES
II.1 Motivación
11.2 Fundamentosmatemáticos
11.3 Orientación
Capítulo 4 Métodos queusan intervalos
4.1 Métodosgráficos
4.2 Métododebisección
4.3 Métododelareglafalsa
4.4 Búsquedasconincrementosdeterminandouna
aproximacióninicial
Problemas
Capitulo 5 Métodos abiertos
5.1 Iteracióndepuntofijo
5.2 MétododeNewton-Raphson
5.3 Métodode la secante
5.4 Raícesmúltiples
Problemas
EPiLOGO PARTE II
11.4 Elementos¿e juicio
11.5 Relacionesyfórmulasimportantes
11.6 Métodosavanzadosyalgunasreferenciasadicionales
PARTE 111 SISTEMAS DEECUACIONESALGEBRAICAS LINEALES
III.1 Motivación
111.2 Fundamentosmatemáticos
111.3 Orientación
Capítulo 7 Eliminacióngaussiana
7.1 Solucióndepocasecuaciones
7.2 Eliminacióngaussianasimple
1o1
106
107
109
112
114
119
119
123
132
139
140
145
146
152
158
163
167
171
172
177
180
183
186
1 89
197
199
199
203
206
21 5
219
219
227
EPILOG0
PARTE IV
7.3 Desventajasde los métodosdeeliminación
7.4 Técnicasdemejoramientoenlassoluciones
7.5 Resumen
Problemas
Capítulo 8 Gauss-Jordan, inversión de matrices y
Gauss-Seidel
8.1 MétododeGauss-Jordan
8.2 Inversióndematrices
8.3 MétododeGauss-Seidel
Problemas
Capítulo 9 Casos de la parte 111: Sistemas de ecuaciones
Caso 9.1 Distribuciónderecursos(Ingenieríaengeneral) ,
Caso 9.2 Cálculodedistribucióndetemperaturas
Caso 9.3 Análisisdeunaarmaduraestáticamentedeterminada
Caso 9.4 Corrientes y voltajesencircuitosresistivos
Caso 9.5,Dinámica de partículas y cuerposrígidos
Problemas
algebraicas lineales
(Ingenieríaquímica)
(Ingenieríacivil)
(Ingenieríaeléctrica)
(Ingenieríamecánica)
PARTE 111
111.4 Elementosde juicio
111.5 Relaciones y fórmulasimportantes
111.6 Métodosavanzados y algunasreferenciasadicionales
AJUSTE DE CURVAS
IV.1 Motivación
IV.2 Fundamentosmatemáticos
lV.3 Orientación
Capítulo 1O Regresión con mínimos cuadrados
10.1 Regresiónlineal
10.2 Regresiónpolinomial
10.3 Regresiónlinealmúltiple
Problemas
Capitulo 11 lnterpolación
1l. 1 Polinomiosdeinterpolacióncondiferencias
divididasdeNewton
11.2 PolinomiosdeinterpolacióndeLagrange
11.3 Comentariosadicionales
11.4 lnterpolaciónsegmentaria(spline)
Problemas
236
244
252
254
259
259
262
268
276
279
280
283
287
291
293
295
301
304
304
307
310
315
319
321
336
342
345
349
350
363
368
370
383
vi¡¡ CONTENIDO
EPiLOGO
PARTE V
Capítulo 12 Casosde la parte IV: Ajustedecurvas 387
Caso 12.1 Modelodeingenieríadeventadeproductos
(Ingenieriaen 387
Caso 12.2 Regresiónlineal y modelosdemográficos
(Ingenieríaquímica) 391
Caso 12.3 Ajuste decurvasen el diseñodeunmástil parabarco
(Ingenieria 395
Caso 12.4 Ajuste decurvas en laestimacióndelacorriente RMS
(Ingenieríaca) 399
Caso 12.5 Regresiónlinealmúltipleen el análisisdedatos
experimentales(Ingenieríamecánica) 402
Problemas 404
PARTE IV
IV.4 Elementosde juicio
IV.5 Relaciones y fórmulasimportantes
IV.6 Métodosavanzados y algunasreferenciasadicionales
INTEGRACION
V. 1 Motivación
V.2 Fundamentosmatemáticos
V.3 Orientación
409
41 1
41 1
415
422
424
Capítulo 13 FórmulasdeintegracióndeNewton-Cotes 429
13.1 Regladel 431
13.2 Reglade 443
13.3 Integraciónconintervalosdesiguales 455
13.4 Fórmulasdeintegraciónerta 458
Problemas 461
Capítulo 14 IntegracióndeRomberg y cuadratura gaussiana 465
14.1 Integraciónde 465
14.2 Cuadraturagaussiana 474
Problemas 484
Capítulo 15 Casos de laparte V: Integración 487
Caso 15.1 Análisisdemovimientodeefectivos(Ingenieríaengeneral) 488
Caso 15.2 El usodeintegralesparadeterminarlacantidad total
decaloren los materiales(Ingenieríaquímica) 490
Caso 15.3 Fuerzaefectivasobreelmástildeunvelerodecarreras
(Ingeniería 492
Caso 15.4 Determinacióndelacorriente RMS medianteintegración
numérica(Ingenieríaeléctrica) 496
Caso 15.5 Integraciónnuméricaen el cálculodeltrabajo
(Ingenieríaánica) 499
Problemas 503
CONTENIDO i X
EPiLOGO PARTE V
V.4 Elementosdeiuicio
V.5 Relacionesyfórmulasimportantes
V.6 Métodosavanzadosyalgunasreferenciasadicionales
PARTE VI ECUACIONES DIFERENCIALES ORDINARIAS
VI.1 Motivación
V1.2 Fundamentosmatemáticos
V1.3 Orientación
Capítulo 16 Métodosde un paso
16.1 Métodode Euler
16.2 Modificacionesymeiorasalmétodode Euler
16.3 MétodosdeRunge-Kuttc
16.4 Sistemasdeecuaciones
Problemas
Capítulo 17 Métodos de pasos múltiples
17.1 Unenfoque simple depasosmúltiples:Métodode
Heun sin principio
17.2 Fórmulasdeintegración
17.3 Métodosdepasos múltiples deordensuperior
Problemas
Capítulo 18 Casos de la parte VI: Ecuaciones diferenciales ordinarias
Caso 18.1 Modelosmatemáticosparaproyectosdeventade
computadoras(Ingenieriaengeneral)
Caso 18.2 Diseñodeunreactorparaproducciónfarmacéutica
(Ingenieríaquímica)
Caso 18.3 Deflexióndel mástil de unvelero(Ingeniería civil)
Caso 18.4 Simulacióndeunacorrientetransitoriaenuncircuitoeléctrico
Caso 18.5 El péndulooscilante(Ingenieríamecánica)
Problemas
(Ingenieríaeléctrica)
EPiLOGO PARTE VI
V1.4 Elementosde juicio
V1.5 Relacionesyfórmulasimportantes
V1.6 Métodosavanzadosyalgunasreferenciasadicionales
BlBUOGRAFiA
iNDlCE
509
51 1
51 1
51 5
519
522
527
528
550
564
570
573
574
588
594
600
603
604
608
61 3
61 5
61 8
622
541
625
627
627
631
635
P R E F A C I O
Para el ingeniero modernoel hecho de “ir a la par con su profesión” im-
plica inevitablementeel uso de las computadoras.Hay pocas disciplinas,
o dicho sea de otra forma, pocas actividadescotidianasque de alguna
manera no tienen contacto con estas máquinas tan poderosasy rápidas.
Ciertamente, las computadoras hansidopor años un aliado de la inge-
nieríaal desempeñar millaresde tareas, tanto analíticas como prácticas,
enel desarrollo de proyectos y la solucióndeproblemasenformamás
eficiente. En consecuencia, cuanto mása fondo y más tempranose fami-
liarice el estudiante de ingeniería con su terminal o su computadora pel.
sonal, mejorserá su formación.
Pero, ¿desde cuándo?, y ¿qué tan a fondodebesereste contacto?
Los profesores de ingenieríareconocen desde hace mucho tiempo la im-
portanciadelentrenamientoenlosprimerossemestres enla tecnología
de las computadoras. Tradicionalmente este entrenamiento abarcabacom-
putadorasgrandes(mainframes) y un lenguaje de programación de alto
nivel como el FORTRAN. Desafortunadamente,es frecuente que a los
estudianteslesresulte difícil aplicarsusnuevashabilidades a proble-
mas de otras materias. Esto se debe a una variedad de factores, de entre
loscualesno carece deimportancia la preparaciónnecesariaparausar
sistemas con máquinas grandes.Como resultado, muchos estudiantes de
ingenieríanoexplotanbienlacapacidaddesolucióndeproblemasque
tienenlascomputadorashastaqueestánadentrados ensu educación.
Creemos que la revoluciónde la microelectrónica nos dala oportuni-
daddeintegrarla computación de una manera más efectiva enel salón
de clases. Debido a su bajo costo y conveniencia, las computadorasper-
sonales pueden aumentar la capacidad del estudiante de ingeniería para
resolver problemas durante sus añosescolares. 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’deTexas A&M y Michigan una rees-
tructuración en dos etapas. Hay un “primer cursode computación” dedi-
cado a orientar al estudiante al equipocomputacionaldisponible y al
Xii PREFACIO
desarrollo de habilidades firmes dentro dela programación. El “segundo
curso de computación” está planeado para reafirmar estas habilidadesy
mostrarel empleode lasolu&n deproblemas en ingeniería.
El presente libro emanó del segundo curso. Se eligióel tema de los
métodosnuméricos como puntoprincipalporsusmuchasaplicaciones
a la ingeniería. Ya sea quelosingenieros utilicensoftware comercial o
propio, creemos que es esencial una base sólida en los métodosnuméri-
cos para la aplicación efectiva de las computadoras en la solución de pro-
blemasdeingeniería. Desafortunadamente,los métodosnuméricos se
presentan durante elúltimo año de licenciatura o a nivel de posgradua-
dos, años después del punto donde pudieron habersido herramientasúti-
les, instructivas y creativasparaelfuturoingeniero.
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 enel alcance dellibro,queestádivididoenseispartes.Laparte
I tratadelmaterialintroductorio e incluyeinformaciónsobreprogramació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-
braicaslineales,ajustedecurvas(regresióneinterpolación),integración y
ecuacionesdiferencialesordinarias.Excluimostemas como los valores ca-
racterísticosy las ecuaciones diferenciales parciales, que tiene mayor impor-
tanciapara los estudiantesdeposgrado.
Junto con este materialhemosincorporado ciertas características adi-
cionales en la elaboración de este libro, para hacerlo más accesible a lec-
tores tanto de losprimeros como de los últimosniveles de licenciatura.
Incluyen:
1. Recuadros. Nos hemos empeñado enincluir derivaciones importan-
tes y análisis de error, conel fin de enriquecer la presentación. Sin
embargo, algunas veces tal material representa un escollo parael es-
tudiante novato. En consecuencia, hemos apartado en recuadros el
material matemático más complicado. Muchos estudiantesencontra-
rán quepuedenaplicar los métodosnuméricos sin tener que domi-
narcompletamente el materialcontenido en losrecuadros.
2. Material introductorioy fundamentos matemáticos. Cada parte del li-
broincluyeunaseccióndeintroducción.Después de unabreve ex-
posición al problemamatemáticogeneralque va aestudiarse, se
suministra una motivación describiendocómo podría enfocarseel pro-
blema en ausencia decomputadoras,y dónde se plantea este proble-
maenla práctica de la ingeniería. En seguida se efectúa una revisión
delos conceptos matemáticosnecesariosparacomprender 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ónpara el lector.
3. Epilogos. Así como la introduccih estáplaneadaparadaruna mo-
tivación y una orientación, incluimos un epílogo alfinal de cada
partedellibroparaconsolidar ios conceptos reciénadquiridos. Un
detalleimportantedeesteepílogo es una seccióndedicada a los
elementos de juicio necesarios para la elección de los métodos
numéricosapropiadospara un problemaenparticular. Además, se
resumenalgunasfórmulasimportantes y se citanreferenciaspara
métodosavanzados.
4. Presentaciones secuenciales y gráficas. Cada parteprincipaldellibro
consta de trescapítulos:dosdedicados a la teoría y uno al estudio
de casos. Siempre que es posible, los capítulos de teoría se estructu-
ranen forma secuencial, esto es, primero se presentanlos plantea-
mientos más directosy 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 proporcionarun sentido de evolución de lastécni-
cas. Adicionalmente hemos desarrollado representaciones gráficas para
complementarlas descripciones matemáticas en la mayor parte de los
planteamientoscontenidos enellibro. Hemos encontradoqueesta
orientación visual es particularmente efectiva para proporcionar una
mayor comprensióna los estudiantes de los primeros niveles de licen-
ciatura.
5. Estudio de casos. En cadapartedellibro se incluyen casos para de-
mostrar lautilidad práctica de los métodos numéricos. Se realizó un
gran esfuerzo para darejemplos de los cursos iniciales de las carreras
de ingeniería. Cuando esto no es posible, se hansuministrado bases
teóricas y motivaciónpara los problemas.
6. Software. Se disponede un paquete de softwaredenominado NU-
MERICOMP que muestra algunos métodos numéricosque se cubren
enel 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 proporcionanal estudiantelos criterios de programaciónnece-
sarios para cada una de las partes del libro. El software está diseñado
para utilizarse con facilidad.Los estudiantes también pueden emplear-
loparaverificar los resultados de sus propios esfuerzos de programa-
ción. Aunque el paquete es opcional, pensamos que puede lograrse
un progreso más rápidocuandose emplean ellibro y el softwarecon-
juntamente;se puede conseguira través de McGraw-Hill para lascom-
putadoraspersonales IBM-PC y APPLE 11. Unaversión profesional
de NUMERICOMP puede adquirirse directamente de EnginCompSoft-
ware, Inc., 15 Research Dr., Ann Arbor, MI 48103.
Finalmente, nos hemos esforzado conscientemente en hacer este li-
bro tan sencillo al usuario como seaposible, por lo que nos empefiamos
en mantener nuestras explicaciones con una orientacióndirecta y prácti-
ca. Aunque nuestraintención primaria es presentar a los estudiantes una
sólida introducción a los métodos numéricos, un objetivo subordinado ha
sido hacerde 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 (Universityof Maryland), Lee W. Johnson(VirginiaPolytechnic 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 Universityof Michigan por proporcionarnos apoyo
secretarial y gráfico y el tiempo necesario para preparar estelibro. En par-
ticular, Donald McDonald y Roy Hann de Texas A&M apoyaron cons-
tantemente este esfuerzo.Obtuvimossugerencias y buenasideas 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 alumnosde todoslos niveles de licenciatura en Michigan.
Durante este tiempo, muchosde los alumnos nos ayudarona comprobar
la exactitud matemáticay 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 cuantoal 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
P A R T E U N O
LOSMÉ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-
maquepuedan resolverse usandooperaciones
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-
blementeen 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-
dosnuméricos, ha tenido una influenciamuy
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-
gunosproblemasusando 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 unaclase Ii-
mitada de problemas. Estos problemas incluyen
aquellosquepuedenaproximarse mediante
modelos lineales y también aquellos quetienen
una geometríasimple 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 sistemasse usaban solu-
ciones gráficas. Éstas tomaban la forma de grafoso nomogramas.
Aunque las técnicas gráficas a menudopueden emplearse parare-
solver problemas complejos, IQS resultados no sonmuy precisos. Es
más, las soluciones gráficas (sinla ayuda de una computadora)son
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-
macionesdeberían ser perfectamenteadecuadas para resolver
problemas complicados, en la práctica se presentan algunas difi-
cultades. Los cálculos manuales sonlentos y tediosos. Además no
existen resultados consistentes debido a que surgen equivocacio-
nes cuando se efectúanlastareasmanualmente.
Antesdel 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~).Esta situación desafortunada
existía debidoal tiempoy trabajomonótonoque se requeríanpa-
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
unaalternativapara cálculostan complicados. AI usar lacompu-
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 comopara proporcionar
una mayor comprensión, los métodos numéricos representan alternati-
vas queamplíanconsiderablementela capacidadparaconfrontar
y resolver los problemas; como resultado, se dispone de más tiempo
para aprovecharlas 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étodosnuméricosy la práctica delaingeniería
Desde finales de la década de 1940, la multiplicacióny disponibilidad
de las computadoras digitales ha llevado a una verdaderaexplosió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íticosen una buena parte
LOS METODOSNUMÉRICOS Y LAS COMPUTADORASPERSONALES ..___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
lhmitado por una
Anll~oma fonda
holisticamente y
permite pensar
desarrollar la intulmdn:
se puede estudtar la
FIGURA 1.1 Lastresfases en la solución de problemas de ingenieríaen a) laera anterioralas
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ónde técnicas de solucion y así permiten un mayor
cuidado sobrelos 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ácilaccesoapoderosascapacidades de cómputo.
Además existeun buen número de razones por las cuales se deben
estudiarlosmétodosnuméricos:
1. Los métodos numéricos son herramientas extremadamente pode-
rosas para lasolución de problemas.Son capaces de manejarsis-
temas deecuacionesgrandes,nolinealidades y geometrías
complicadas que son comunes en la prácticade la ingenieríay 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 posibleque el lectortengala
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 delconocimiento de lateoría básica enla que se basan estos
métodos.
3. Hay muchos problemas que no puedenplantearse al emplear pro-
gramas “hechos”. Si se está versado en los métodosnuméricos
y sees un adepto de la programación de computadoras, enton-
cesse tiene la capacidad de diseñar programas propios para re-
solver los problemas, sin tener que comprar unsoftware costoso.
4. Los métodosnumé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. Comolos métodos numéricos, ensu ma-
yor parte están elaborados para implementarse en computado-
ras, resultan ideales para este propósito. Aúnmás, están especial-
mente adaptados parailustrar la potencia así como las limitaciones
de las computadoras. Cuando el lector implemente con buen re-
sultado los métodosnumé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 ayudarlelas 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 granescala.
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 profundizanen los temas que de otro
modo resultan oscuros. Esta alternativa aumenta su capacidad de
comprensiónyentendimiento en la materia.
1.2 FUNDAMENTOSMATEMÁTICOS
Cada parte de este libro requiere de algunosantecedentes 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áticasy la computación, la
presentesección noabarca la revisión dealgúntema matemático
específico. En su lugar, se presentan los temas delcontenidoma-
temático que se cubre en este libro. Estos se resumen en la figura 1.2,
y son:
LOS MÉTODOS NUMÉRICOS Y LASCOMPUTADORASPERSONALES 5
FIGURA 1.2 Resumen de los métodosnuméricos que se cubren eneste libro.
6 MÉTODOS NUMÉRICOS PARA INGENIEROS
1. Rakes deecuaciones (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 confrecuencia 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-
cionesen 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 devaloresque satisfaga
simultáneamente a un conjunto deecuacionesalgebraicas. Las
ecuaciones lineales simultáneas surgenen el contexto deuna
variedad de problemasy 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 áreasde los métodosnuméricos
como el aiuste de curvas.
3. Ajuste de curvas (Fig. 1.24. Con frecuencia se presentará la
oportunidad de ajustar curvas a un conjuntode datos representados
por puntos. Las técnicas que se han desarrollado para este fin pue-
den dividirse endos 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énrelativamentelibres de error. Tal esel caso
de la información tabulada. Para estassituaciones, 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óntiene 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 cantidadestotales 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 diferencialesordinarias.(Fig. 1.2e). Las
ecuaciones diferenciales ordinarias tienen un enorme significado
LOS METODOSNUMERICOS Y LASCOMPUTADORASPERSONALES 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ónde 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 deun cuerpo en
descenso (razón de cambio de la velocidad).
1.3 ORIENTACI~N
Resultaútilesta orientación antes de proceder a la introducción de
los métodos numéricos.Lo que sigue está pensado como unavista pa-
norámica del material contenido en la parte l. Se incluyen además
algunos objetivos como ayuda para concentrarel esfuerzo del lector
alestudiar el material.
1.3.1 Alcanceycontenido
La figura 1.3 es una representación esquemáticadel material conteni-
do en la parte I. Se ha elaborado este diagrama para darleun 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éricosy para darleuna 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ónyuna revisiónde los aspectosdecomputaciónque están
relacionados con los métodosnuméricos y presenta las habilidades
de programación que se deben adquirir para explotareficientemen-
te la computadora. El capítulo 3 se ocupa delimportantetemadel
análisis de error, que debe entenderse bien para eluso efectivo de
los métodosnuméricos.
1.3.2 Metasy 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 delos objetivos es-
pecíficos de estudio que se enuncianen la tabla 1 . 1 .
LOS MhODOS NUMERICOS Y LAS COMPUTADORASPERSONALES 9
TABLA 1.1 Obietivos de estudio especificos para la parte I
1.
2.
3.
4.
5.
6.
7.
8.
9.
1o.
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
Apreciarla 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 cifrassignificativas
Ser capaz de aplicar las reglas de redondeo explicadas enel 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 existeentrelas diferencias finitas y las derivadas
Familiarizarse con los elementos de juicio que se describen enel epílogo de
laparte 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 contieney algunas de sus capa-
cidades de graficación. También deberátener las habilidades de pro-
gramaciónnecesariasparadesarrollarsoftwarepropiocon 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á guardarsu software en dispositivos de almacenamiento, como
discos flexibles o cinta magnbtica. Finalmente, el lector habrá desa-
rrollado la capacidad de documentarsus programas de tal forma que
los usuarios puedan emplearlos eficientemente.
C A P í T U L O U N O
MODELOS
MATEMÁTICOS
¿Por qué se debendominar los métodosnuméricos y la programación
de computadoras para resolver los problemas? Adem6s del hecho deque
a diario se observa que las computadoras intervienen enlasactividades
m6s comunes de lavida diaria, dhabr6algunacontribución esencial que
estasmAquinas, 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 haciauna posibilidad cuando menos.
Primero se aplicael 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. Paraesto, se des-
arrolla aquíel modelo matemático deun proceso físico y se resuelve con
un métodonuméricosencillo.
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 reproduciblesy las leyes que gobiernaneste caos. Por
ejemplo, sobre la base de sus observaciones, Newton formuló su segun-
da ley del movimiento, queafirma que la velocidad de cambio dela can-
tidaddemovimientode un cuerpocon respecto al tiempoesigual a la
fuerza resultante que actúa sobreél.Considerandolas maneras excesiva-
mente complejas en que las fuerzas y los objetos interactúan en la tierra,
estaleyhaprobadoserunageneralizaciónválida.
Además de que estas leyes proveen de discernimiento, los ingenieros
pueden aplicarlas para formular solucionesa problemas prácticos. Porejem-
plo,los conocimientos científicosse usan rutinariamente por los ingenie-
ros en el diseño de,elementostales como estructuras, mhquinas, circuitos
eléctricos y sustancias químicas sintéticas. Desdelaperspectivadel dise-
ño de ingeniería,estos conocimientos sonmuy útiles cuando se expresan
en formade un modelomatem6tico.
Un modelo matemático puede definirse, de una manerageneral, co-
mo una formulacióno ecuación que expresalas 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, desu 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 habitualesde los mode-
los matemáticos del mundo físico.
1. Describe un sistema o procesonatural en términosmatemáticos.
2. Representa unaidealización y una simplificaciónde 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,quetienenunaimportan-
cia mínima cuando se aplicanaobjetos y fuerzas que interactúan
sobre o alrededorde la tierra aescalas visibles a los sereshuma-
nos.
3. Finalmente, conduce a resultadospredecibles y, en consecuencia, pue-
de emplearse para propósitosde predicción. Por ejemplo,si se cono-
cen la fuerza aplicada sobre un objeto y su masa, entonces puedeusarse
la ecuación (l.1)para predecir la aceleración. Como tiene unaforma
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 suso-
luci6n. Para ilustrar unmodelo 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ídalibre 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
MODELOSMATEMÁTICOS 13
FIGURA 1.1 Representaciónde las fuerzas que actúan sobreun paracaidista en des-
censo. FD es la fuerza hacia abaiodebido a la atracción de la grave-
dad. Fu. es la fuerzahacia arribadebido a la resistencia del aire.
ecuación (l.1) paradar
dv
dt
m - = F u31
donde u es la velocidad en centímetros porsegundo). Así, la masa multi-
plicada porla razón de cambio dela velocidad es igual a la suma de fuer-
zasqueactúansobreel cuerpo. Si lafuerzatotal es positiva, el objeto
acelera. Si esnegativa, el objeto sufreuna desaceleración. Si lafuerza
neta es cero, lavelocidaddel objeto permanecerá a un nivel constante.
Para un cuerpo que cae dentro del perímetro de latierra (Fig. l.1),
la fuerza total está compuesta por dos fuerzas contrarias:la atracción ha-
cia abajo debida a la gravedad F D y la fuerza hacia arriba debida a la re-
sistenciadelaire Fu.
Si a lafuerza hacia abajo se leasigna un signopositivo, se puedeusar
la segunda leyparaformularlafuerzadebida a lagravedad como
donde g es la constante de gravitación, o la aceleración debida a la gra-
vedad, queesaproximadamente igual a 980 cm/s2.
14 MÉTODOS NUMÉRICOS PARAINGENIEROS
La resistencia del aire puede formularse de diferentes maneras. Una
aproximación sencilla es suponer que es linealmente proporcionala la 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, talescomo
la forma o la aspereza de su superficie, que afectanla resistencia del aire.
Para este caso, c podría ser una función del tipo de traje o la orientación
usadaporelparacaidistadurantelacaídalibre.
La fuerzatotal es la diferenciaentrelasfuerzashacia abajo y hacia
arriba. Portanto, las ecuaciones (1.3)a (1.6)pueden combinarse para dar
dv
dt
m- = mg - cv
o, dividiendocadaladoentre m,
dv C
dt m
”
- 9 - - v
La ecuación (1.8)es un modelo que relacionala 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érminosde 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 porla segunda ley de Newton en la ecuación(1.2),la soluciónexacta
de la ecuación (1.8)para la velocidad del paracaidista quecae, no puede
obtenerseusando simples manipulaciones algebraicasy operacionesarit-
méticas. Envez de eso, deberánaplicarselas técnicas delcálculopara
obtener una solución exacta. Por ejemplo, siel paracaidista inicialmente
está en reposo (u = O en t = O), se puede usarelcálculopararesolver
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-
tade un aeroplano. Aplíquese la ecuación (1.9)paracalcular la veloci-
MÉTODOS MATEMATICOS 15
FIGURA 1.2 Soluciónanalítica al problema del paracaidista que cae según se
calcula enel ejemplo l. l. La velocidad aumenta con el tiempo y
se aproxima asintóticamente o una velocidad final.
dadantes 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
21640.5
4 2776.9
6 3564.2
10 4487.3
12 4749.0
X 5339.0
a 4109.5
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.3cm/s (161.5km/h) despu6s de 10 s.
Nótese también que después deun tiempo suficientemente grande se al-
canza una velocidad constante (llamadavelocidad final) de 5339.0cm/s
(192.2km/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 puedenresolverse 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 paraque se puedaresolver me-
diante operacionesaritméticas. Esto puede ilustrarse para la segunda ley
de Newton notándose que se puede aproximar la razón de cambio de
la velocidad conrespecto al tiempomediante (Fig. 1.3)
[1.10]
FIGURA1.3 USO de una diferenciafinita paraaproximarlaprimeraderivadade
v con respecto a t.
METODOS MATEMATICOS 17
donde Au y At son diferencias enla velocidad y el tiempo calculadas so-
breintervalosfinitos, u(t,) es lavelocidadeneltiempoinicial t,, y u(t,+I)
es la velocidadalgúntiempo más tarde t,, Laecuación (l.10)es una
diferencia finita diuida enel tiempo ti. Puede sustituirseenla ecuación
(1.8)paradar
Estaecuaciónpuedeordenarseotra vez paradar
u(t1+1) = U@¡) + 9 - -u(ti) &+I - ti)
[ : I [1.12]
Y así, la ecuacióndiferencial (1.8)se transforma enuna ecuación qGe
puederesolversealgebraicamentepara u(ti+J . Si se da un valorinicial
para la velocidad en un tiempo ti,se puede calcular fácilmente u en t!,
Este nuevo valor de u en ti+lpuede emplearse para extender el cálculo
de u en ti+2 y así sucesivamente. Por lo tanto, en cualquiertiemporde
la trayectoria,
Nuevovalor - valoranteriorvalorestimuladoincremento
de u + de lapendiente x deltiempode u
-
EJEMPLO 1.2
Soluciónnumérica al problema del paracaidistaquecae
Enunciado del problema: efectuarel mismo cálculo que en el ejemplo l.1
perousando la ecuación (1.12)paracalcular u(t) con un incremento de
tiempo igual a 2 s.
Solución: alprincipio de los cSlculos (tl =O), la velocidaddel paracai-
dista uft,) es igual a cero. Conestainformación y los valoresde los pa-
rámetros del ejemplo l.l, la ecuación (l.12)se puede usar para estimar
v (ti+1)en ti+l = 2 s.
Para el siguienteintervalo (de t = 2 a 4 S), se repiteelcálculoconel re-
sultado,
~ ( 4 )= 1960 + 980 - ___
[ 68l2500100(1960+
= 3200.5 cmis
20 MÉTODOS NUMÉRICOS PARA INGENIEROS
significat~voasociadocon los puntos de los datos.
i) Los sistemas grandes de ecuaciones. las no linealidades 51 las geometrías com-
plicadas son comunes enla práctica de la ingeniería y fáciles de resolver analí-
ticamente
j) Los modelosmatemáticos no sepueden usar nunca con propósitos depre-
dicción.
1.2 Léanse las siguientes descripciones de problemase identifíquese qué área de los
métodos numéricos (según lo señalado enla Fig. 1.2)se relaciona con su solución.
Una persona pertenece a una cuadrilla de reconocimiento topográfico y debe
determinar el área deun terreno limitado por dos caminos y una corriente que
serpentea
Un ingeniero es responsable de la determinación de losflujos en una gran red
de tuberías interconectadas entre sí para distribuir gas natural a una serie de
comunidadesdiseminadasen 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
160km/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~edesalto.
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, al91-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 sistemade amortiguamiento para
un auto decarreras. 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 paratasasde interés del 15 y 20%
1.3 Proporciónese un ejemplo de un problema de ingeniería donde sea oportuno cada
uno delos 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 deecuaciones
b) Ecuaciones algebraicas lineales
c) Ajuste de curvas: regresión
d) Ajuste de curvas: interpotación
el Integración
fi Ecuaciones diferenciales ordinaria5
C A P I T U L O D O S
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áticasy 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 herramientauna compu-
tadora.
Al usar este libro se obtiene la posiblidad de desarrollar los propios
programas. Debido ala 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 especialesque maximizan esta po-
sibilidad. Todas las técnicas numéricasvan 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 enel 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
ellibro 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 proporcionarcriterios 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 acalcular. 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 cuentashiladas sobre alambresen un marco
rectangular (Fig. 2.la).
Las cuentas se usan para guardar potencias de10 (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 comoel ábaco aceleran la ve-
locidad en los cálculos, las máquinas extienden aún más las capacidades
humanas para estos cálculos.Estimuladospor la revoluciónindustrial,
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 fuesino hasta la década de 1940cuando surgieron las com-
putadoras electrónicas. Se originaron, inicialmente para proyectosmilita-
res en la segunda guerra mundial, erandispositivos de investigación para
un solo propósito. Estas máquinas, con nombres comoENIAC 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 agran escala.
Aunque algunas máquinas de la primera generación, en especial la
UNIVAC,se vendieron a nivel comercial, no fue sino hastala 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 dispositivoselectrónicos de estadosó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 quela mayoría de los profesionistas las obtuvieran indivi-
dualmente.Por lo tanto, los ingenierosdebíanasociarsecon grandes
organizaciones talescomo 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 de1970un 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 PROGRAMAC16NEN LAS COMPUTADORASPERSONALES 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
AppleComputer,Inc.).
des y la capacidaddememoriason muy grandes. Segundo, y más
importante en el contextoactual,las computadoras personales que soncon-
venientes, pequeñas, rápidas y confiablesse están produciendo en masa
y a precios razonables.Como se expresóen un artículo de la revistaScien-
tificAmerican: “Las microcornputadoras dehoy día a un costo talvez de
$300 dólares, tienen más capacidad de cómputo que las primeras com-
putadoraselectrónicasgigantescas ENIAC. Son 20 veces másrápidas,
24 MÉTODOS NUMÉRICOS PARA INGENIEROS
CUADRO 2.1 Comparación de sistemascomunes de cómputo*
Longitud
Cifrasde
significa-palabraCostodecálculo,almacena-
Sistema tivas bits(dólares) ciclosls miento (K)
Calculadora O 25-3501-2
Microcomputadora 7-1 O 7-1 6 100-5000 106-1 o7 16-256
Minicornputadora 7-1 O 16-32 15,000-1 20,000 106-1 o7 128-51 2
Cornputadoras 7-1 4 32 100,000-1 o,ooo,ooo+ 106-1 o* 8000-32,000
prograrnable
grandes
* Condensodo de AuerbochComputer Technology Reports, Agosto 1983.
tienenunamemoriamayor,sonmilesdevecesmás confiables, consu-
menla energíade un bulboenvezdeladeuna locomotora,ocupan
1/30O00 de volumen y cuestan 1/10 O00 parte. Se pueden obtener por
unaordenpostal o encualquiertiendaespecializada” (Noyce, 1977).
Lascomputadoraspersonales se agrupan,por lo general enunade
dos categorías que a veces no están biendelimitadas:micro y minicom-
putadoras. Las rnicrocornputadoras sonaquellascuyafunciónprincipal
está contenida enunasolapastilladecircuitointegrado.Comúnmente
cuestan unos miles de dólares.Las minicomputadoras son un término más
imprecisoque se refiere a computadorasquesonmáspotentesque
las micros pero caen aún dentro de las posibilidades de compra de algunas
personas y pequeñascompañías.Ambostiposdecomputadorasestán
encontrasteconcomputadorasgrandes, o supercornputadoras, que se
manejan en intervalos de millones de dólares y sus propietariosson, por
lo general, organizaciones o compañías muy grandes. El cuadro 2.1 re-
sume lainformacióngeneralsobrevariostiposdecomputadoras.
Larevoluciónenelcampodelestadosólidohaabiertolaspuertas
en el área computacional a cada ingeniero.Sin ernhnrgo, no importa qué
tipo de computadora se use, ésta sólo tiene utilidadsi se le proporcionan
instrucciones precisas. A estas instrucciones se les conoce como progra-
mas.Lassiguientesseccionescontieneninformaciónqueserá útil para
el desarrollodeprogramasdealtacalidadpara utilizar los métodos nu-
méricos.
2.2 DESARROLLODE PROGRAMAS
El material de este capítulo está organizado alrededor de cinco temas, es-
quematizados en lafigura 2.2, requeridos para la elaboración y cuidado
deprogramasdealtacalidad.Estecaljitulocontieneseccionesque cu-
bren cadaunode estos pasos.Estematerialincluye un casodeestudio
dondecadaunode los pasosseaplicaparadesarrollar un programa y
resolverelproblemadelparacaidista.Despuésdeasimilar este material,
LA PROGRAMACldNEN LAS COMPUTADORASPERSONALES 25
el estudiante debe estar mejor preparado para desarrollar programas de
altacalidadpara los métodos delrestodellibro.
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-
rrerenuna computadoraparticular,en conjunto se lesllama 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.
26 MÉTODOS NUMERICOSPARAINGENIEROS
Un algoritmo es una secuencia l6gica de pasos necesarios paraejecu-
tar una tarea específicatal como la solución de un problema. Losbuenos
algoritmos tienen ciertas características. Siempre deben terminardespuk
de unacantidadfinita de pasos y deben ser lomás general posible para
tratarcualquier caso particular. Los buenosalgoritmosdebenser deter-
minísticos; esto es, no debendejarnada al azar. Los resultadosfinales
no pueden ser dependientes de quién esté usando el algoritmo. En este
sentido, un algoritmo esanálogo a una receta. Doscocineros que prepa-
ran independientemente unabuenarecetadeben obtener dos platillos
idénticos.
La figura2 . 3 ~muestra un algoritmo para la solución de un problema
simplequesumados números. Dos programadoresquepartandeeste
algoritmopuedendesarrollardosprogramasconestilos diferentes. Sin
FIGURA 2.3 a) Algoritmo y b) diagramade fluio para la solucióndel problema de
una sumasimple.
LA PROGRAMACldNEN LAS COMPUTADORASPERSONALES 27
embargo, dados los mismos datos, los programas deben arrojar los mis-
mosresultados.
Una forma alternativade representarun algoritmo es medianteun dia-
grama de flujo. Estaesunarepresentaciónvisual o gráficadelalgoritmo
que emplea una serie de bloques y flechas. Cada bloque enel diagrama
representaunaoperaciónparticular o un paso enelalgoritmo. 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 conformanla mayor
parte de las operaciones que se requierenen laprogramacióndeuna
computadora personal. Lafigura 2.3b muestraun diagrama de flujo para el
problemasimpledesumardosnúmeros. Los diagramasdeflujotienen
unautilidadparticularpara bosquejar algoritmoscomplicados. En estos
casos, un bosquejo gráfico puede serútil para visualizar el flujo lógico del
algoritmo. En este texto, se hanincluidodiagramasdeflujoparala ma-
yor partede los métodosimportantes. Se puedenusarestosdiagramas
como basepara el desarrollodesuspropiosprogramas.
2.2.2 Composición de un programa
Después de confeccionarun algoritmo, el paso siguiente es expresarlocomo
una secuencia de declaracionesde programación llamado código. Esim-
portante resistir la tentación de escribir el códigoantesdequeelproble-
maen su totalidad esté claramente definido y la técnica de solución y el
algoritmo hayan sido cuidadosamente diseñados. Lasdificultades que más
comúnmente encuentran los programadoressin experiencia se deben por
lo general a lapreparaciónprematura de un código que no abarque un
plan o unaestrategia total, para la solucióndelproblema.
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 altonivel desde que la era de
las computadoras empezó. Entre ellos, haytresquetienenimportancia
paracomputadoras personales: BASIC, FORTRAN y PASCAL.
FORTRAN, es la construccióndefórmulatranslation(traducciónde
fórmulas),y se desarrolló enla década de 1950. Debido a que fue expre-
samente diseñado para cálculos, hasidoel 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),fuedesarrolladoenla década de 1960. Requiere unacantidad
pequeña de memoria y es relativamente simple de implementar.En con-
secuencia es uno de los lenguajes másusadosenlas computadorasper-
sonales; sin embargo, el BASIC no es tanflexible como el FORTRAN
y a veces no es conveniente paraprogramasgrandes o complejos.
El PASCAL, que debesu nombre al científico francés BlasPascal, esun
lenguajeestructuradoquesedesarrolló enla década de 1970. Los pro-
gramasescritos en Pascalpara una computadoradeterminadapueden
28 METODOS NUMERICOS PARA INGENIEROS
FIGURA 2.4 Símbolos utilizados en diagramas de fluio.
LA PROGRAMACldN EN LASCOMPUTADORASPERSONALES 29
ser corridos fácilmente en otra. Aunque el Pascal es másdifícilde apren-
derqueel BASIC y el FORTRAN, sufuerzasugierequesuimportancia
crecerá en el futuro. Esto es verdad para la programación avanzadaa gran
escala.
BASIC y FORTRAN son convenientes para programas simplesy cortos
que son suficientes parala implementación de los métodos numéricosde
estelibro.Por lo tanto, se ha optadoporlimitarlaspresentacionesdel
texto,a programas en estos lenguajes. BASICes unaalternativaobvia
por su amplia disponibilidad.Se ha incluido el FORTRAN por su signifi-
cado continuo enel trabajo de ingeniería. Aunque este libro hace énfasis
enlas computadoras personales, puedeusarseporaquéllosquetienen
acceso a máquinas más grandes y en conjunción con cualquier lenguaje
dealtonivel.Con este espíritu, los programas y diagramasdeflujoson
lo suficientementesimples como paraquepuedanservirdebaseenel
desarrollodeprogramasparaaquéllosquesonexpertosen Pascal.
Una descripción completa delBASIC y el FORTRAN, obviamente va
más allá del alcance de este libro. Además, el número de dialectos dispo-
niblesen cada lenguajecomplicaaúnmássudescripción.Por ejemplo,
existen más de 10 dialectos derivados del BASIC. Sin embargo, limitan-
do ladiscusión a lo fundamental, se puede cubririnformaciónsuficiente
de forma tal que se pueda entender e implementar efectivamenteel ma-
terialrelacionadocon la computadora enel resto dellibro.
Enlafigura 2.5 SF! presentan los códigos en FORTRAN y BASIC pa-
ra sumar dosnúmeros, mostrando las diferencias estructurales principales
entre los dos lenguajes, el etiquetado y el espaciamientode código. En
BASIC, cada instrucción se escribe con un número. En contraste,en FOR-
TRAN se etiquetancon un número sólo aquéllasinstruccionesque re-
quierenidentificación.Por ejemplo, lainstrucciónque 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 Programadecomputadora en FORTRANy BASIC para el problemade
la suma simple.
30 METODOS NUMERICOSPARAINGENIEROS
ción FORMAT. Especifica la forma en que seva a introduciro a imprimir
una línea particular. Por lo tanto, se debe etiquetar con un número para
que la computadora pueda distinguirla de otras declaracionesFORMAT.
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
1OA=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 queel
FORTRAN se introducía originalmenteen una computadora usandolec-
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 puedeescri-
bir y verificar un programa para revisarlo de errores antes de introducirlo
a la computadora. Nótese que también contiene80 columnas al igual que
una tarjeta perforada. También obsérvese que cada una delas partes de
los campos se usa para propósitos particulares.
Aparte de la estructura, los dos lenguajes tienen otras diferencias así
como fuertessimilitudes. En el cuadro 2.2 se delinean éstas. Este cuadro
muestra comparaciones en paralelo deseis elementos principalesde pro-
gramacióc que tienen importancia directa en el uso de los métodos nu-
méricos. Estos son:
1. Constantes y variables. Se debenseguirciertasreglasparaexpresar
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 elBASIC 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 diferenciasconsiderables.Aunque la mayor parte
de los lenguajes modernos mejoran esta situación, históricamente las
capacidades de entrada-salidadel BASIC, han sido muy limitadas. En
constraste, las declaraciones FORMAT del FORTRAN son herramientas
muy potentes para etiquetary espaciar la salida. Sin embargo, son de
las declaraciones de programación más difícilespara 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 muchoslenguajes 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éricosy 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.
EnterosConstantesnuméricas
sonconstantes que no contienenpuntosonnúmerosenteros o reales con punto
decimal: decimal:
1, -2, 100 1, -2.0, 0.001,100
Constantes reales:
contienenpunto decimal:
1.o, -2., 0.001
Exponenciales
sonconstantesescritasen notación científica. Por ejemplo, los números:
-12 000,0.000 006 8, 386 O00 O00
se expresan ennotación científica como:
-12 x lo3,6.8 x 3.86 x 10’
y se pueden escribiren 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 usanenestetexto para etiquetar.
Las cadenas de caracteres tienenotras aplicaciones,incluyendo el USO de
expresiones de relación.
En FORTRAN se encierrancomo: En BASIC se encierran como:
‘JOHN DOE’, ’INTRODUCE B’ “VALOR DE A =”, “8/5/48”
LA PROGRAMACldNEN LAS COMPUTADORASPERSONALES 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
consistende uno aseis caracteres, desde constan dedos caracteres (mós en algu-
la A a la Z y del O a 9: nos dialectos) dela A a la Z y del O al 9:
Variables enteras
AA, X, N1
representanvaloresenteros y empiezanrepresentanvalores reales o enteros.
con las letras I a la N:
N,KOUNT, lNDl
Variables reales
representanvaloresreales 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:terminancon $. La longitud de la varia-
CHARACTER * n vorl,vor2
ble es limitada.
A$, N1$
donde n es la longitud específica dela
cadena de caracteres seguidapor una
lista de variables. Por ejemplo,
CHARACTER * 4 NOMBRE1,NOMBRE2
Arreglos
son variables con subíndiceque almacenan un conjunto de valores envectores
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 hastasietesubindices 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 arreglosnodimensionados suponen
un valor den = 10.
34 M~TODOSNUMÉRICOS PARA INGENIEROS
CUADRO 2.2. Referenciarápida:comparacióndeFORTRAN y BASIC. (cant.)
FORTRAN BASIC
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 dondelavariable
ejecutable. dimensionada se va a usar. En caso de
no ir, supone el valorn = 10. El redi-
mensionamiento generaa unmensaje
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 vana leer
o a imprimir.
Aunque en laentraday 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 transmitendatos al programa
Declaración READ
permitenintroducirdatos alprograma
durante su ejecución:
READ f varl,vur2,. . . , vur,
donde f esun 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 unalectora de tarjetas.
Declaración DATA
son declaraciones no ejecutables que defi-
nen el valor inicial de una variable.
Tienen laformageneral.
Declaración INPUT
Permitenintroducir datos at programa
durante su ejecución:
In INPUT varl,vur2,. . . , var,
donde Ines el número de líneas donde
está la declaración INPUT y var,, var2,
. . ., var, son los nombres de las varia-
blescuyosvalores se vanaleer. Por
ejemplo:
10 INPUT A,B
Cuando se ejecutaestainstrucciónse
deben introducir los valores de A y B en
undispositivo,tal como el teclado.
DeclaracionesREDlDATA
consiste de una declaración READ asocia-
da a una declaración DATA que contie-
ne los valores que se van a leer, como:
LA PROGRAMACldN EN LASCOMPUTADORASPERSONALES 35
CUADRQ 2.2 Referencia rápida: comparación de FORTRAN y BASIC.(cont.).
FORTRAN BASIC
DATA var,, , . .,var,,lvalor,, 10 READA,B,C,Z
. . .,valor,,/
donde var es el nombre de la variable
y valor es una constante. Por ejemplo: 90 DATA5,0.001,88,1 E-6
DATA A,B,C,Z/5.,0.001,88.,1.E-6/
Salida
esel medio por el cual se transmiten datos del programa.
DeclaraciónWRITE Declaración PRINT
se usa comúnmente para imprimir datos. se usa comúnmente para imprimirdatos.
Su formageneral es: Su formageneral es:
WRITE fvarl, . . . , vur, In PRINT varl, . . . , var,
Por ejemplo:
WRITE (6,2)A,B
Por ejemplo:
10PRINTA,B
donde (6,2) es el código de formato, el Enel 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 unaimpresora.
IcA1cu10s
(Operaciones que usan expresiones matemáticas)1
Declaracionesde asignación
se usan para asignar un valoraunavariable:
XM=3.281
indica a la computrdora que asigne el valor 3.281 a lavariable XM;
A=XM+5
indica a la computadora que sume 5 a XM y le asigne el resultado (en este caso,
8.281) alavariable A;
A=A+40
indica alacomputadora que sume 40 a A y le asigne el resultado (en este caso,
48.281) ala variable A. El valor anterior de A se destruye enel proceso.
Nóteseque,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ónde asignación se le puededar un significado de "se reemplaza
por", como en:
A se remplazapor A+40
+
-
Operadores aritméticos
sonsímbolos usados para representar operaciones matemáticas:
Suma
Resta
+
-
...
36 MÉTODOS NUMÉRICOS PARA INGENIEROS
CUADRO 2.2 Referenciarápida:comparacióndeFORTRAN y BASIC. (cont.).
FORTRAN BASIC
* Multiplicación *
i División i
** Exponenciación **, ?,A
(El signode exponenciación
dependedel tipo de BASIC)
Si una expresiónaritméticatuvieratodos los operadores, el orden en que se
efectuaríansería: primero, todas las exponenciaciones deizquierda a derecha
en BASIC, Applesoft y Microsoft, y de derecha a izquierdaen FORTRAN; a
continuacidntodaslasmultiplicacionesydivisiones de izquierda a derecha, y
finalmentetodaslassumasyrestas de izquierda a derecha. Cuando una
expresiónpresentaparéntesis, laformade efectuarlos es del másinterno 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
especificaunsalto incondicional aun número de líneaespecí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
dosexpresiones:
-
< >
<
< =
>
> =
-
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) GOTO 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, seejecuta la
transferencia o la asignación. En el primer ejemplo, si N es mayorque 1 a
LA PROGRAMACldNEN LAS COMPUTADORASPERSONALES 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 1O.
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:
1 0 X=Y(I)*Z(I-1)
IF(X.LT.O)GO T O 50
GO TO 10
1=1+1
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 CiclosFORlNEXT
DO In I=j,n,k FOR I = i T O n STEP k
In C O N T I N U E In NEXT I
donde In es el número de línea de la ú h a declaración del ciclo, ies 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 Isea 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
T A N
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 Valorabsoluto
I N T El entero más grandeque
Es menor o igu:?! a x
SIN
cos
TAN
L O G
EXP
SQR
ABS
INT
38 METODOS NUMÉRICOS PARAINGENIEROS
CUADRO 2.2 Referencia rápida: comparacióndeFORTRAN y BASIC.(cont.).
FORTRAN
SOL.
donde x es el argumento de la función. Nótese que la listaanteriorno está
completa.Dependiendode la versióndel compiladorpueden existirmás funcio-
nes intrínsecas.
Funciones definidas por el usuario
son funcionesdefinidas 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 variablesnuméricas que
no tienensubíndice y f es unaexpre-
siónaritméticaquedependede
x , ,. . .,x,,.
Las declaraciones de funciones van antes
de laprimera proposiciónde ejecutable.
Se puedenpasar variosargumentosen
unadeclaración de unafunción. Las
otras variables dentrode lafunció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 laformageneral:
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 (sinsubíndice) y f es
una expresión aritmética que es función
de x .
La declaración DEF va antes de ejecutar
dichafunción.
Se puede pasar sólo argumentos en una
declaración DEF. Lasotras variables
dentro de la función tienen el mismo va-
lor que enel programa principal enel
punto donde se llamaa la función.
10 DEF FNT(X)=SIN(X)-LOG(B)
r
70A=580 E= 10 990 S=FNT(AJ
Subprogramas Function
se parecen alas 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 tipofunctionson de lo forma
general:
FUNCTION name(xl,. . . x2j
nombre = f
RETURN
donde todos los valores que toma la
funciónsonaquellos que se definen a1
llamaradicha Función.
LA PROGRAMACldN EN LAS COMPUTADORASPERSONALES 39
CUADRO 2.2 Referenciarápida:comparacióndeFORTRAN 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 quelas constantes y las variables
que no se pasan como argumentosde-
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 subrutinava después del programa
principal y empieza conuna 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úmerodelínea de la
declaración GOSUBy In2 es el número
de línea donde empieza la subrutina.
La primera línea de la subrutina puedeir
en cualquier lugar dentro del programa.
donde nombredebe ser el mismo al Ila-
mar dicha subrutina conla proposición
CALL.
Una vez dentro de la subrutina, las proposiciones se ejecutan ensecuencia 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 pasana y desde la subrutinoúnica- Todos los valores se pasan a y desde la
mentelos valoresqueaparecencomosubrutina.
argumentos de la misma:
40 MÉTODOS NUMÉRICOS PARA INGENIEROS
CUADRO 2.2. Referenciarápida:comparacióndeFORTRAN y BASIC. (cont.)
FORTRANBAS IC
CALL SUM (X.Y,Z)
-
200GOSUB 800
END 500 END
SUBROUTINE SUM (A,B,C) 800Z=X+Y
C=A+B 850 RETURN
RETURN
Nóteseque lasconstantes y las varia-
bles que no se pasan comoargumentos
se deben definir dentro dela subru-
tina o pasarseconunadeclaración
COMMON.
DOCUMENTACI~N
(le permiteincluirinformación para el usuario de los programas)
las declaraciones de documentación son instruccionesnoejecutables.
DeclaracióndecomentarioDeclaración REM
Consistedelcarácter C o delsímbolo * enConsistede la declaración REM seguida
C aquí se puede teclear cualquier 1 O REMaquí se puede teclearcualquier
la columna 1 seguido por unmensaje: por unmensaje:
mensaje. mensaje.
3. Cálculos. Las operaciones matemáticas son muy similares en ambos
lenguajes. Aunquela nomenclatura es un poco diferente,las ecuacio-
nes escritas en los dos lenguajes casi son idénticas.
4. Control. Estas declaracionesseusanpara dirigirla 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, sonminiprogramas 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 simplecuando 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 LASCOMPUTADORASPERSONALES
donde FORTRAN y BASICdifieren significativamente. Lasdiferen-
cias estriban en la manera en que se pasainformació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 ventanaspara controlar el paso de informacih.Este es un ejem-
plo que muestra al FORTRAN como un lenguaje más complicado y.
enconsecuencia.máspotenteque 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 sedesarrolló originalmente como unaversió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. Por10 tanto, en estelibro 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 seles llamabugs. AI proceso de localizar y corregir los
errores se les conocecomo rastreo. Pueden ocurrirvarios tipos de erro-
res cuando se programa encualquier lenguaje. Los errores desintaxis violan
las reglas del lenguaje como la ortografía. la formación de los números.
los números delínea y otras reglas específicasa cadalenguaje. Estos errores
a menudo resultan al teclear cosas raras. Por ejemplo. la declaración en
BASIC
30A = 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 programahace lo quese le pide. Porejemplo.supóngase que.
se deseansumar los enterosentre 1 y 10 y luego dividirlos entre 10
(esdecir. calcular su promedio). Loscó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
60PRINT A
obteniendo como resultado A = 5.mientras que el resultado esperado
era A = 5.5.Lasintaxis está perfecta. pero hay un error de lógica que
la computadora jamás podrá detectar porque no hay forma deobservar-
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 erroresdeeste tipo a menudoson muy dificiles de detectar
en programas muy grandeso muy complejos. Porlo tanto, es una buena
práctica verificar manualmente si es posible, los resultados dadospor
' el programa y probarlos en casos especiales. Estopuede 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 erroresen el momento de /aco-
rrida (run time errors). Es absolutamentenecesaria 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.
Elrastreo y la prueba de los programas sefacilita 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 esespecifica
e identifica fácilmente lastareas a ejecutar. Las subrutinas son medios apro-
piados para tal modularización. El programa principal (oel programa que
las llama) puede, entoncesser 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. Leerdatos. 4. Ejecutar algoritmos numéricos.
2. Mostrar datos. 5. Mostrar los resultados enuna tabla.
3. Mostrarun carácter para 6. Mostrar los resultados enuna gráfica.
información.
LA PROGRAMACIóN EN LAS COMPUTADORASPERSONALES 43-
Cada unade estas subrutinas realiza una tarea limitada y aislada que se
puede programary rastrear separadamente. Esto simplifica mucho eltra-
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
conozcapreviamente lasolución exacta. Algunas veces sedispone de
la soluciónanalítica lacual esaceptablepara estos propósitos.Talfue
el caso delparacaidista (recuérdenselos ejemplos 1.1. y 1.2). En otros
casos, el programadordeberealizarcálculosmanualesconunacalcula-
dora de bolsillo para comprobar que el programa lleva a resultados con-
fiables. En cualquier caso, elprograma se sujetará a unagranvariedad
de pruebas para asegurarse de que funcionará confiablemente bajo todas
las condicionesde operación posibles. Unicamente hastaentonces el pro-
grama estará listo para ser usado en la solución de problemas de ingeniería.
2.2.4 Documentación
Despuésde que el programa ha sido rastreadoy 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 simpley claro
cuando está reciénhecho y se guarda en la mente, después de pasar cierto
tiempo el mismo códigopuede parecer inaccesible.Por lo tanto, sedebe
incluir suficiente información para permitirlea los usuariosentendere im-
plementarinmediatamentetalesprogramas.
Esta tarea exhibeaspectosinternos y externos. La documentaciónin-
terna consiste dealgún análisis o explicación que se inserta a lo largo del
códigodelprogramaparaladescripció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ónse debe incluir tan prontocomo 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
delprograma.Ladocumentacióninterna se mejoraconsiderablemente
con el uso de nombres mnemónicos apropiados para las variables. Estos
nombrespuedensermásdifícilesdecodificarquelosnombres peque-
ños, pero la ventaja de sermásinformativos,porlogeneral hace que
valga la pena el esfuerzo adicional.Utilizar nombres mnemónicosconve-
nientes, incluyeen esencia eluso de nombres convencionales o est6n-
dares o abreviaciones comunes paravariables.
Ladocumentaciónexternaexplicalasinstrucciones como mensajes
e información impresa suplementaria diseñada para auxiliaral usuario en
la implementación de los programas. Los mensajes impresos se supone
queayudan a que los resultadosesténbienpresentados 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~NEN LAS COMPUTADORASPERSONALES 45
de documentación simpleque se recomienda para preparar cada unode
los programas a desarrollar. Estas formas se pueden mantener enun cua-
derno denotas para tener unareferencia rápida parala 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 conuna 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.Loslistados de código, de hecho se guardaban,
pero tenían que teclearse de nuevo para usos posteriores. Las cajasde tarjetas
FIGURA 2.8 Disco flexible.
46 MÉTODOS NUMERICOSPARAINGENIEROS -
perforadas se podían guardar, pero paraun programa decualquier mag-
nitud resultaban difíciles de manejar y susceptibles a deteriorarse.
Como se menciona al principio de este capítulo, los dispositivos de
almacenamientomagnéticohanmejoradosustancialmente la habilidad
de retener programas. Un dispositivocomún de almacenamiento esel 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 granutilidad. también tienen algunas desventajas. Por unaparte,
su tiempo de acceso es muy lento; por otra, se deben manejary se deben
guardar con mucho cuidado. Dado que pueden borrarse muy fácilmen-
te, siempre se debe teneruna copia de cada uno de ellos. Además,cuando
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, peroposible, de que
el disco y su copia se destruyan.
2.3 DESARROLLODE UN PROGRAMA PARA
EL PROBLEMADELPARACAIDISTA
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 todoslos 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 paracaidistaes equivalente ala 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)].Si se
conoce la velocidad inicial del paracaidista v (ti)la ecuación (2.1)se pue-
de resolverrepetidamenteparavalores de v(ti+J, como se hizo en el
ejemplo l.2.
Con esta información como antecedente, ahorase 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,engeneralesmuchomá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 quese
hayan calculado tantos valores como seanecesario. Este algoritmose puede
expresar de manera más formal con un diagrama de flujo. La figura 2.9
muestra un procedimiento detalladode la implementación de los cálculos.
El diagramade flujo consiste de tres conjuntos de declaraciones:
1. Introducir variables y constantes
2. Inicializar todas las variables
3. Hacer unciclo iterativo que calcule e imprimalas respuestas
Con base al diagrama de flujo, se puedeescribir ahora un programa.
Las versiones en FORTRAN y BASIC se muestran en la figura 2.10.NÓ-
tese que para laversicin 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
U R I T E < 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 jC O T O2 0 0
S T O P
EtiC)
2 0O 'V=V+C 98 O-C*V,'l'l >*H
FIGURA 2.1O Programas FORTRAN y BASIC para el problema del paracaidista. Estos
programasduplican los cálculosmanuales del ejemplo 1.2.
. ". .
LA PROGRAMAC16NEN LAS COMPUTADORASPERSONALES 49
insertar nuevas líneas de código en refinamiento subsecuentes del pro-
grama.
Aunque el ejercicio mencionado anteriormente ciertamentees un pro-
grama válido para el problema del paracaidista, por ningún medio explo-
ta todas las posibilidades de programación ni en FORTRAN ni en BASIC.
Para demostrar como se pueden emplear líneas adicionales, para desa-
rrollar una versión mejor, ahora se refinará el programa.
Muchas de las modificaciones e insercionessiguientes representan una
técnica de programación más eficiente y más sencilla de ejecutar.Sin
embargo, cierto material se enfoca hacia propósitos didáctico5 para de-
mostrar el uso de ciertasdeclaraciones. El siguiente análisis muestra
directamente la versión en BASIC. Ya que losprogramas de la figura 2.11
están escritos en paralelo, es muy fácil extender el análisis a la versión
FORTRAN.
El programa dela figura 2.11 tiene nuevas características. Lasprinci-
pales son:
1.
2.
El programa calcula ahora la velocidadpara tres valores diferentes
del coeficiente de rozamiento y de la masa. La habilidad de realizar
cálculosrepetitivos es una delas ventajas de las computadoras. Dentro
del diseño en ingeniería, a menudo esútil realizar una serie de cálcu-
los varias veces con valores diferentesde los coeficientes para valorar
la sensibilidad del modelo a estos cambios. Esto se hace en este caso,
realizando los cálculosdel ejemplo 1.2con el coeficientede rozamiento
variando 2 10%.De esta manera, los tres casos usados en el pro-
grama son parael caso del coeficientede rozamiento original (12500
g/s), el coeficiente de rozamiento más el 10 por ciento (13750 g/s)
y el coeficiente de rozamiento menos el 10 por ciento (11250 g/s).
El cálculo repetitivo se lleva a cabo agregando un ciclo iterativo (lí-
neas 3080 a la 3390).Cada vez que el programa pasa a través del
ciclo, se usa un coeficiente de rozamiento diferente para calcular la
velocidad. Nótese también que el coeficiente de rozamiento y la ma-
sa se usan como variables con subindicesC(K) y M(K). Por lo tanto,
se les asigna una dimensión en la línea 3040.
El programa tiene ahora un esquema iterativomás preciso. Además
de agregar el ciclomayor para los tres casos dec y de m (líneas3080
a la 3390),se han usado dos ciclos para calcular el valor actual de
u. Se hace así porque pudiese ser que no se deseeimprimir una res-
puesta después de cada paso. Esto seríaespecialmentecierto si se
usara un paso muy pequeño, por ejemplo 0.01 S , para obtener resul-
tados más exactos. Para calcular desde t = O hasta 20 S , se requeri-
rían 20/0.01ó 2 O00 números. Ya que se requiereun valor para cada
2 S que esquemetice razonablementela caída del paracaidista, se han
usado dos ciclos anidados de forma tal que el programa imprima re-
sultados en tiempos intermedios.Un ciclo anidado es aquelciclo que
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
Metodos numericos para ingenieros
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

Similar a Metodos numericos para ingenieros

METODOS NUMERICOS para ingenieria -Chapra
METODOS NUMERICOS para ingenieria -ChapraMETODOS NUMERICOS para ingenieria -Chapra
METODOS NUMERICOS para ingenieria -ChapraAdriana Oleas
 
Metodos numericos para ingenieros
Metodos numericos para ingenierosMetodos numericos para ingenieros
Metodos numericos para ingenierosIvan Wernly
 
Comp 3010 Syllabus
Comp 3010 SyllabusComp 3010 Syllabus
Comp 3010 Syllabusenidcruz
 
Manual analisis de algoritmos v1
Manual analisis de algoritmos v1Manual analisis de algoritmos v1
Manual analisis de algoritmos v1reny_so
 
Evaluacion por competencias
Evaluacion por competenciasEvaluacion por competencias
Evaluacion por competenciassslideangel
 
Evaluacion por competencias
Evaluacion por competenciasEvaluacion por competencias
Evaluacion por competenciassslideangel
 
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.pdfhectorrosales52
 
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.pdfEmilyDuran7
 
Silabo SISTEMAS MICROPROCESADOS
Silabo SISTEMAS MICROPROCESADOSSilabo SISTEMAS MICROPROCESADOS
Silabo SISTEMAS MICROPROCESADOSDavid Narváez
 
Informática básica i
Informática básica iInformática básica i
Informática básica iPaulaELy
 
Informática básica i
Informática básica iInformática básica i
Informática básica iAnita Conde
 

Similar a Metodos numericos para ingenieros (20)

METODOS NUMERICOS para ingenieria -Chapra
METODOS NUMERICOS para ingenieria -ChapraMETODOS NUMERICOS para ingenieria -Chapra
METODOS NUMERICOS para ingenieria -Chapra
 
Metodos numericos para ingenieros
Metodos numericos para ingenierosMetodos numericos para ingenieros
Metodos numericos para ingenieros
 
Comp 3010 Syllabus
Comp 3010 SyllabusComp 3010 Syllabus
Comp 3010 Syllabus
 
Manual analisis de algoritmos v1
Manual analisis de algoritmos v1Manual analisis de algoritmos v1
Manual analisis de algoritmos v1
 
Evaluacion por competencias
Evaluacion por competenciasEvaluacion por competencias
Evaluacion por competencias
 
Evaluacion por competencias
Evaluacion por competenciasEvaluacion por competencias
Evaluacion por competencias
 
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
 
Silabo SISTEMAS MICROPROCESADOS
Silabo SISTEMAS MICROPROCESADOSSilabo SISTEMAS MICROPROCESADOS
Silabo SISTEMAS MICROPROCESADOS
 
Informática básica i
Informática básica iInformática básica i
Informática básica i
 
Informática básica i
Informática básica iInformática básica i
Informática básica i
 
Informática básica i
Informática básica iInformática básica i
Informática básica i
 
SILABO DE INFORMATICA
SILABO DE INFORMATICASILABO DE INFORMATICA
SILABO DE INFORMATICA
 
Informática básica i
Informática básica iInformática básica i
Informática básica i
 
Syllabus
SyllabusSyllabus
Syllabus
 
Informática básica i
Informática básica iInformática básica i
Informática básica i
 
Silabo de Informatica
Silabo de InformaticaSilabo de Informatica
Silabo de Informatica
 
Silabo de informatica
Silabo de informaticaSilabo de informatica
Silabo de informatica
 
Sílabo
SílaboSílabo
Sílabo
 
Syllabus de Informatica
Syllabus de InformaticaSyllabus de Informatica
Syllabus de Informatica
 

Último

DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptELENA GALLARDO PAÚLS
 
Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteJuan Hernandez
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleJonathanCovena1
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.José Luis Palma
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptxJunkotantik
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdfBaker Publishing Company
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFAROJosé Luis Palma
 
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxOscarEduardoSanchezC
 
EXPECTATIVAS vs PERSPECTIVA en la vida.
EXPECTATIVAS vs PERSPECTIVA  en la vida.EXPECTATIVAS vs PERSPECTIVA  en la vida.
EXPECTATIVAS vs PERSPECTIVA en la vida.DaluiMonasterio
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.amayarogel
 
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfMaryRotonda1
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMarjorie Burga
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para eventoDiegoMtsS
 
codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinavergarakarina022
 
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docxGLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docxAleParedes11
 

Último (20)

Unidad 4 | Teorías de las Comunicación | MCDI
Unidad 4 | Teorías de las Comunicación | MCDIUnidad 4 | Teorías de las Comunicación | MCDI
Unidad 4 | Teorías de las Comunicación | MCDI
 
Sesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdfSesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdf
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
 
Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parte
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo Sostenible
 
Repaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia GeneralRepaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia General
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptx
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
 
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
 
EXPECTATIVAS vs PERSPECTIVA en la vida.
EXPECTATIVAS vs PERSPECTIVA  en la vida.EXPECTATIVAS vs PERSPECTIVA  en la vida.
EXPECTATIVAS vs PERSPECTIVA en la vida.
 
Defendamos la verdad. La defensa es importante.
Defendamos la verdad. La defensa es importante.Defendamos la verdad. La defensa es importante.
Defendamos la verdad. La defensa es importante.
 
Unidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDIUnidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDI
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.
 
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdf
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grande
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para evento
 
codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karina
 
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docxGLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docx
 

Metodos numericos para ingenieros

  • 1. MÉTODOS NUMÉRICOS PARA INGENIEROS Con aplicaciones en computadoraspersonales
  • 2. MÉTODOS NUMÉRICOS PARA INGENIEROS Con aplicacionesen computadoraspersonales Steven C. Chapra, Ph.D. Professorof Civil Engineering Texas A&M University Raymond P. Canale, Ph.D. Professor of Ci.vil Engineering The University of Michigan Traducción: CarlosZapata S. Ingeniero Electricista, UDLA Diplomado enCiencias de la Computación, Fundaci6nArturoRosenblueth Alfredo CortésAnaya LicenciadoenCienciasFísico-Matemiticas, UMSNH MaestroenCiencias de la Computaci6n, IIMAS,UNAM Revisión técnica: FernandoVeraBadillo IngenieroCivil,Universidad La Salle Jefe del DepartamentodeMatemlticasAplicadas, 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 NUEVADELHI PARíS SANFRANCISCO 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 1234567890L.M.437 ImpresoenMexicoPunted InMexico Esta obra se terminó de imprimir en febrero de 1988 en Talleres Gráficos Continental, S. R. deC. 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 METODOSNUMERICOS Y LAS COMPUTADORAS PERSONALES I.1 Motivación 1.2 Fundamentosmatemáticos 1.3 Orientación Capítulo 1 Modelosmatemáticos Problemas Capítulo 2 La programación en las computadoras personales 2.1 Antecedenteshistóricos 2.2 Desarrollodeprogramas 2.3 Desarrollodeunprogramapara el problemadelparacaidista 2.4 Estrategiasdeprogramación Problemas Capítulo 3 Aproximaciones y errores 3.1 Cifrassignificativas 3.2 Exactitud y precisión 3.3 Definicionesdeerror 3.4Erroresderedondeo 3.5 Erroresdetruncamiento 3.6 Errornuméricototal 3.7 Erroresporequivocación,deplanteamiento 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 CONTENIDO- EPILOG0 PARTE I 1.4 ElementosdeJuicio 1.5 Relacionesyfórmulasimportantes 1.6 Métodosavanzadosyalgunasreferenciasadicionales PARTE II RAíCES DEECUACIONES II.1 Motivación 11.2 Fundamentosmatemáticos 11.3 Orientación Capítulo 4 Métodos queusan intervalos 4.1 Métodosgráficos 4.2 Métododebisección 4.3 Métododelareglafalsa 4.4 Búsquedasconincrementosdeterminandouna aproximacióninicial Problemas Capitulo 5 Métodos abiertos 5.1 Iteracióndepuntofijo 5.2 MétododeNewton-Raphson 5.3 Métodode la secante 5.4 Raícesmúltiples Problemas EPiLOGO PARTE II 11.4 Elementos¿e juicio 11.5 Relacionesyfórmulasimportantes 11.6 Métodosavanzadosyalgunasreferenciasadicionales PARTE 111 SISTEMAS DEECUACIONESALGEBRAICAS LINEALES III.1 Motivación 111.2 Fundamentosmatemáticos 111.3 Orientación Capítulo 7 Eliminacióngaussiana 7.1 Solucióndepocasecuaciones 7.2 Eliminacióngaussianasimple 1o1 106 107 109 112 114 119 119 123 132 139 140 145 146 152 158 163 167 171 172 177 180 183 186 1 89 197 199 199 203 206 21 5 219 219 227
  • 6. EPILOG0 PARTE IV 7.3 Desventajasde los métodosdeeliminación 7.4 Técnicasdemejoramientoenlassoluciones 7.5 Resumen Problemas Capítulo 8 Gauss-Jordan, inversión de matrices y Gauss-Seidel 8.1 MétododeGauss-Jordan 8.2 Inversióndematrices 8.3 MétododeGauss-Seidel Problemas Capítulo 9 Casos de la parte 111: Sistemas de ecuaciones Caso 9.1 Distribuciónderecursos(Ingenieríaengeneral) , Caso 9.2 Cálculodedistribucióndetemperaturas Caso 9.3 Análisisdeunaarmaduraestáticamentedeterminada Caso 9.4 Corrientes y voltajesencircuitosresistivos Caso 9.5,Dinámica de partículas y cuerposrígidos Problemas algebraicas lineales (Ingenieríaquímica) (Ingenieríacivil) (Ingenieríaeléctrica) (Ingenieríamecánica) PARTE 111 111.4 Elementosde juicio 111.5 Relaciones y fórmulasimportantes 111.6 Métodosavanzados y algunasreferenciasadicionales AJUSTE DE CURVAS IV.1 Motivación IV.2 Fundamentosmatemáticos lV.3 Orientación Capítulo 1O Regresión con mínimos cuadrados 10.1 Regresiónlineal 10.2 Regresiónpolinomial 10.3 Regresiónlinealmúltiple Problemas Capitulo 11 lnterpolación 1l. 1 Polinomiosdeinterpolacióncondiferencias divididasdeNewton 11.2 PolinomiosdeinterpolacióndeLagrange 11.3 Comentariosadicionales 11.4 lnterpolaciónsegmentaria(spline) Problemas 236 244 252 254 259 259 262 268 276 279 280 283 287 291 293 295 301 304 304 307 310 315 319 321 336 342 345 349 350 363 368 370 383
  • 7. vi¡¡ CONTENIDO EPiLOGO PARTE V Capítulo 12 Casosde la parte IV: Ajustedecurvas 387 Caso 12.1 Modelodeingenieríadeventadeproductos (Ingenieriaen 387 Caso 12.2 Regresiónlineal y modelosdemográficos (Ingenieríaquímica) 391 Caso 12.3 Ajuste decurvasen el diseñodeunmástil parabarco (Ingenieria 395 Caso 12.4 Ajuste decurvas en laestimacióndelacorriente RMS (Ingenieríaca) 399 Caso 12.5 Regresiónlinealmúltipleen el análisisdedatos experimentales(Ingenieríamecánica) 402 Problemas 404 PARTE IV IV.4 Elementosde juicio IV.5 Relaciones y fórmulasimportantes IV.6 Métodosavanzados y algunasreferenciasadicionales INTEGRACION V. 1 Motivación V.2 Fundamentosmatemáticos V.3 Orientación 409 41 1 41 1 415 422 424 Capítulo 13 FórmulasdeintegracióndeNewton-Cotes 429 13.1 Regladel 431 13.2 Reglade 443 13.3 Integraciónconintervalosdesiguales 455 13.4 Fórmulasdeintegraciónerta 458 Problemas 461 Capítulo 14 IntegracióndeRomberg y cuadratura gaussiana 465 14.1 Integraciónde 465 14.2 Cuadraturagaussiana 474 Problemas 484 Capítulo 15 Casos de laparte V: Integración 487 Caso 15.1 Análisisdemovimientodeefectivos(Ingenieríaengeneral) 488 Caso 15.2 El usodeintegralesparadeterminarlacantidad total decaloren los materiales(Ingenieríaquímica) 490 Caso 15.3 Fuerzaefectivasobreelmástildeunvelerodecarreras (Ingeniería 492 Caso 15.4 Determinacióndelacorriente RMS medianteintegración numérica(Ingenieríaeléctrica) 496 Caso 15.5 Integraciónnuméricaen el cálculodeltrabajo (Ingenieríaánica) 499 Problemas 503
  • 8. CONTENIDO i X EPiLOGO PARTE V V.4 Elementosdeiuicio V.5 Relacionesyfórmulasimportantes V.6 Métodosavanzadosyalgunasreferenciasadicionales PARTE VI ECUACIONES DIFERENCIALES ORDINARIAS VI.1 Motivación V1.2 Fundamentosmatemáticos V1.3 Orientación Capítulo 16 Métodosde un paso 16.1 Métodode Euler 16.2 Modificacionesymeiorasalmétodode Euler 16.3 MétodosdeRunge-Kuttc 16.4 Sistemasdeecuaciones Problemas Capítulo 17 Métodos de pasos múltiples 17.1 Unenfoque simple depasosmúltiples:Métodode Heun sin principio 17.2 Fórmulasdeintegración 17.3 Métodosdepasos múltiples deordensuperior Problemas Capítulo 18 Casos de la parte VI: Ecuaciones diferenciales ordinarias Caso 18.1 Modelosmatemáticosparaproyectosdeventade computadoras(Ingenieriaengeneral) Caso 18.2 Diseñodeunreactorparaproducciónfarmacéutica (Ingenieríaquímica) Caso 18.3 Deflexióndel mástil de unvelero(Ingeniería civil) Caso 18.4 Simulacióndeunacorrientetransitoriaenuncircuitoeléctrico Caso 18.5 El péndulooscilante(Ingenieríamecánica) Problemas (Ingenieríaeléctrica) EPiLOGO PARTE VI V1.4 Elementosde juicio V1.5 Relacionesyfórmulasimportantes V1.6 Métodosavanzadosyalgunasreferenciasadicionales BlBUOGRAFiA iNDlCE 509 51 1 51 1 51 5 519 522 527 528 550 564 570 573 574 588 594 600 603 604 608 61 3 61 5 61 8 622 541 625 627 627 631 635
  • 9.
  • 10. P R E F A C I O Para el ingeniero modernoel hecho de “ir a la par con su profesión” im- plica inevitablementeel uso de las computadoras.Hay pocas disciplinas, o dicho sea de otra forma, pocas actividadescotidianasque de alguna manera no tienen contacto con estas máquinas tan poderosasy rápidas. Ciertamente, las computadoras hansidopor años un aliado de la inge- nieríaal desempeñar millaresde tareas, tanto analíticas como prácticas, enel desarrollo de proyectos y la solucióndeproblemasenformamás eficiente. En consecuencia, cuanto mása fondo y más tempranose fami- liarice el estudiante de ingeniería con su terminal o su computadora pel. sonal, mejorserá su formación. Pero, ¿desde cuándo?, y ¿qué tan a fondodebesereste contacto? Los profesores de ingenieríareconocen desde hace mucho tiempo la im- portanciadelentrenamientoenlosprimerossemestres enla tecnología de las computadoras. Tradicionalmente este entrenamiento abarcabacom- putadorasgrandes(mainframes) y un lenguaje de programación de alto nivel como el FORTRAN. Desafortunadamente,es frecuente que a los estudianteslesresulte difícil aplicarsusnuevashabilidades a proble- mas de otras materias. Esto se debe a una variedad de factores, de entre loscualesno carece deimportancia la preparaciónnecesariaparausar sistemas con máquinas grandes.Como resultado, muchos estudiantes de ingenieríanoexplotanbienlacapacidaddesolucióndeproblemasque tienenlascomputadorashastaqueestánadentrados ensu educación. Creemos que la revoluciónde la microelectrónica nos dala oportuni- daddeintegrarla computación de una manera más efectiva enel salón de clases. Debido a su bajo costo y conveniencia, las computadorasper- sonales pueden aumentar la capacidad del estudiante de ingeniería para resolver problemas durante sus añosescolares. 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’deTexas A&M y Michigan una rees- tructuración en dos etapas. Hay un “primer cursode computación” dedi- cado a orientar al estudiante al equipocomputacionaldisponible y al
  • 11. Xii PREFACIO desarrollo de habilidades firmes dentro dela programación. El “segundo curso de computación” está planeado para reafirmar estas habilidadesy mostrarel empleode lasolu&n deproblemas en ingeniería. El presente libro emanó del segundo curso. Se eligióel tema de los métodosnuméricos como puntoprincipalporsusmuchasaplicaciones a la ingeniería. Ya sea quelosingenieros utilicensoftware comercial o propio, creemos que es esencial una base sólida en los métodosnuméri- cos para la aplicación efectiva de las computadoras en la solución de pro- blemasdeingeniería. Desafortunadamente,los métodosnuméricos se presentan durante elúltimo año de licenciatura o a nivel de posgradua- dos, años después del punto donde pudieron habersido herramientasúti- les, instructivas y creativasparaelfuturoingeniero. 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 enel alcance dellibro,queestádivididoenseispartes.Laparte I tratadelmaterialintroductorio e incluyeinformaciónsobreprogramació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- braicaslineales,ajustedecurvas(regresióneinterpolación),integración y ecuacionesdiferencialesordinarias.Excluimostemas como los valores ca- racterísticosy las ecuaciones diferenciales parciales, que tiene mayor impor- tanciapara los estudiantesdeposgrado. Junto con este materialhemosincorporado ciertas características adi- cionales en la elaboración de este libro, para hacerlo más accesible a lec- tores tanto de losprimeros como de los últimosniveles de licenciatura. Incluyen: 1. Recuadros. Nos hemos empeñado enincluir derivaciones importan- tes y análisis de error, conel fin de enriquecer la presentación. Sin embargo, algunas veces tal material representa un escollo parael es- tudiante novato. En consecuencia, hemos apartado en recuadros el material matemático más complicado. Muchos estudiantesencontra- rán quepuedenaplicar los métodosnuméricos sin tener que domi- narcompletamente el materialcontenido en losrecuadros. 2. Material introductorioy fundamentos matemáticos. Cada parte del li- broincluyeunaseccióndeintroducción.Después de unabreve ex- posición al problemamatemáticogeneralque va aestudiarse, se suministra una motivación describiendocómo podría enfocarseel pro- blema en ausencia decomputadoras,y dónde se plantea este proble- maenla práctica de la ingeniería. En seguida se efectúa una revisión delos conceptos matemáticosnecesariosparacomprender 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ónpara el lector. 3. Epilogos. Así como la introduccih estáplaneadaparadaruna mo- tivación y una orientación, incluimos un epílogo alfinal de cada partedellibroparaconsolidar ios conceptos reciénadquiridos. Un detalleimportantedeesteepílogo es una seccióndedicada a los elementos de juicio necesarios para la elección de los métodos numéricosapropiadospara un problemaenparticular. Además, se resumenalgunasfórmulasimportantes y se citanreferenciaspara métodosavanzados. 4. Presentaciones secuenciales y gráficas. Cada parteprincipaldellibro consta de trescapítulos:dosdedicados a la teoría y uno al estudio de casos. Siempre que es posible, los capítulos de teoría se estructu- ranen forma secuencial, esto es, primero se presentanlos plantea- mientos más directosy 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 proporcionarun sentido de evolución de lastécni- cas. Adicionalmente hemos desarrollado representaciones gráficas para complementarlas descripciones matemáticas en la mayor parte de los planteamientoscontenidos enellibro. Hemos encontradoqueesta orientación visual es particularmente efectiva para proporcionar una mayor comprensióna los estudiantes de los primeros niveles de licen- ciatura. 5. Estudio de casos. En cadapartedellibro se incluyen casos para de- mostrar lautilidad práctica de los métodos numéricos. Se realizó un gran esfuerzo para darejemplos de los cursos iniciales de las carreras de ingeniería. Cuando esto no es posible, se hansuministrado bases teóricas y motivaciónpara los problemas. 6. Software. Se disponede un paquete de softwaredenominado NU- MERICOMP que muestra algunos métodos numéricosque se cubren enel 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 proporcionanal estudiantelos criterios de programaciónnece- sarios para cada una de las partes del libro. El software está diseñado para utilizarse con facilidad.Los estudiantes también pueden emplear- loparaverificar los resultados de sus propios esfuerzos de programa- ción. Aunque el paquete es opcional, pensamos que puede lograrse un progreso más rápidocuandose emplean ellibro y el softwarecon- juntamente;se puede conseguira través de McGraw-Hill para lascom- putadoraspersonales IBM-PC y APPLE 11. Unaversión profesional de NUMERICOMP puede adquirirse directamente de EnginCompSoft- 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 seaposible, por lo que nos empefiamos en mantener nuestras explicaciones con una orientacióndirecta y prácti- ca. Aunque nuestraintención primaria es presentar a los estudiantes una sólida introducción a los métodos numéricos, un objetivo subordinado ha sido hacerde 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 (Universityof Maryland), Lee W. Johnson(VirginiaPolytechnic 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 Universityof Michigan por proporcionarnos apoyo secretarial y gráfico y el tiempo necesario para preparar estelibro. En par- ticular, Donald McDonald y Roy Hann de Texas A&M apoyaron cons- tantemente este esfuerzo.Obtuvimossugerencias y buenasideas 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 alumnosde todoslos niveles de licenciatura en Michigan. Durante este tiempo, muchosde los alumnos nos ayudarona comprobar la exactitud matemáticay 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 cuantoal 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. P A R T E U N O LOSMÉ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- maquepuedan resolverse usandooperaciones 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- blementeen 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- dosnuméricos, ha tenido una influenciamuy 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- gunosproblemasusando 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 unaclase Ii- mitada de problemas. Estos problemas incluyen aquellosquepuedenaproximarse mediante modelos lineales y también aquellos quetienen una geometríasimple 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 sistemasse usaban solu- ciones gráficas. Éstas tomaban la forma de grafoso nomogramas. Aunque las técnicas gráficas a menudopueden emplearse parare- solver problemas complejos, IQS resultados no sonmuy precisos. Es más, las soluciones gráficas (sinla ayuda de una computadora)son 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- macionesdeberían ser perfectamenteadecuadas para resolver problemas complicados, en la práctica se presentan algunas difi- cultades. Los cálculos manuales sonlentos y tediosos. Además no existen resultados consistentes debido a que surgen equivocacio- nes cuando se efectúanlastareasmanualmente. Antesdel 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~).Esta situación desafortunada existía debidoal tiempoy trabajomonótonoque se requeríanpa- 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 unaalternativapara cálculostan complicados. AI usar lacompu- 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 comopara proporcionar una mayor comprensión, los métodos numéricos representan alternati- vas queamplíanconsiderablementela capacidadparaconfrontar y resolver los problemas; como resultado, se dispone de más tiempo para aprovecharlas 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étodosnuméricosy la práctica delaingeniería Desde finales de la década de 1940, la multiplicacióny disponibilidad de las computadoras digitales ha llevado a una verdaderaexplosió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íticosen una buena parte
  • 16. LOS METODOSNUMÉRICOS Y LAS COMPUTADORASPERSONALES ..___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 lhmitado por una Anll~oma fonda holisticamente y permite pensar desarrollar la intulmdn: se puede estudtar la FIGURA 1.1 Lastresfases en la solución de problemas de ingenieríaen a) laera anterioralas 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ónde técnicas de solucion y así permiten un mayor cuidado sobrelos 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ácilaccesoapoderosascapacidades de cómputo. Además existeun buen número de razones por las cuales se deben estudiarlosmétodosnuméricos: 1. Los métodos numéricos son herramientas extremadamente pode- rosas para lasolución de problemas.Son capaces de manejarsis- temas deecuacionesgrandes,nolinealidades y geometrías complicadas que son comunes en la prácticade la ingenieríay 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 posibleque el lectortengala 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 delconocimiento de lateoría básica enla que se basan estos métodos. 3. Hay muchos problemas que no puedenplantearse al emplear pro- gramas “hechos”. Si se está versado en los métodosnuméricos y sees un adepto de la programación de computadoras, enton- cesse tiene la capacidad de diseñar programas propios para re- solver los problemas, sin tener que comprar unsoftware costoso. 4. Los métodosnumé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. Comolos métodos numéricos, ensu ma- yor parte están elaborados para implementarse en computado- ras, resultan ideales para este propósito. Aúnmás, están especial- mente adaptados parailustrar la potencia así como las limitaciones de las computadoras. Cuando el lector implemente con buen re- sultado los métodosnumé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 ayudarlelas 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 granescala. 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 profundizanen los temas que de otro modo resultan oscuros. Esta alternativa aumenta su capacidad de comprensiónyentendimiento en la materia. 1.2 FUNDAMENTOSMATEMÁTICOS Cada parte de este libro requiere de algunosantecedentes 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áticasy la computación, la presentesección noabarca la revisión dealgúntema matemático específico. En su lugar, se presentan los temas delcontenidoma- temático que se cubre en este libro. Estos se resumen en la figura 1.2, y son:
  • 18. LOS MÉTODOS NUMÉRICOS Y LASCOMPUTADORASPERSONALES 5 FIGURA 1.2 Resumen de los métodosnuméricos que se cubren eneste libro.
  • 19. 6 MÉTODOS NUMÉRICOS PARA INGENIEROS 1. Rakes deecuaciones (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 confrecuencia 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- cionesen 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 devaloresque satisfaga simultáneamente a un conjunto deecuacionesalgebraicas. Las ecuaciones lineales simultáneas surgenen el contexto deuna variedad de problemasy 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 áreasde los métodosnuméricos como el aiuste de curvas. 3. Ajuste de curvas (Fig. 1.24. Con frecuencia se presentará la oportunidad de ajustar curvas a un conjuntode datos representados por puntos. Las técnicas que se han desarrollado para este fin pue- den dividirse endos 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énrelativamentelibres de error. Tal esel caso de la información tabulada. Para estassituaciones, 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óntiene 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 cantidadestotales 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 diferencialesordinarias.(Fig. 1.2e). Las ecuaciones diferenciales ordinarias tienen un enorme significado
  • 20. LOS METODOSNUMERICOS Y LASCOMPUTADORASPERSONALES 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ónde 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 deun cuerpo en descenso (razón de cambio de la velocidad). 1.3 ORIENTACI~N Resultaútilesta orientación antes de proceder a la introducción de los métodos numéricos.Lo que sigue está pensado como unavista pa- norámica del material contenido en la parte l. Se incluyen además algunos objetivos como ayuda para concentrarel esfuerzo del lector alestudiar el material. 1.3.1 Alcanceycontenido La figura 1.3 es una representación esquemáticadel material conteni- do en la parte I. Se ha elaborado este diagrama para darleun 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éricosy para darleuna 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ónyuna revisiónde los aspectosdecomputaciónque están relacionados con los métodosnuméricos y presenta las habilidades de programación que se deben adquirir para explotareficientemen- te la computadora. El capítulo 3 se ocupa delimportantetemadel análisis de error, que debe entenderse bien para eluso efectivo de los métodosnuméricos. 1.3.2 Metasy 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 delos objetivos es- pecíficos de estudio que se enuncianen la tabla 1 . 1 .
  • 22. LOS MhODOS NUMERICOS Y LAS COMPUTADORASPERSONALES 9 TABLA 1.1 Obietivos de estudio especificos para la parte I 1. 2. 3. 4. 5. 6. 7. 8. 9. 1o. 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 Apreciarla 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 cifrassignificativas Ser capaz de aplicar las reglas de redondeo explicadas enel 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 existeentrelas diferencias finitas y las derivadas Familiarizarse con los elementos de juicio que se describen enel epílogo de laparte 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 contieney algunas de sus capa- cidades de graficación. También deberátener las habilidades de pro- gramaciónnecesariasparadesarrollarsoftwarepropiocon 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á guardarsu software en dispositivos de almacenamiento, como discos flexibles o cinta magnbtica. Finalmente, el lector habrá desa- rrollado la capacidad de documentarsus programas de tal forma que los usuarios puedan emplearlos eficientemente.
  • 23.
  • 24. C A P í T U L O U N O MODELOS MATEMÁTICOS ¿Por qué se debendominar los métodosnuméricos y la programación de computadoras para resolver los problemas? Adem6s del hecho deque a diario se observa que las computadoras intervienen enlasactividades m6s comunes de lavida diaria, dhabr6algunacontribución esencial que estasmAquinas, 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 haciauna posibilidad cuando menos. Primero se aplicael 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. Paraesto, se des- arrolla aquíel modelo matemático deun proceso físico y se resuelve con un métodonuméricosencillo. 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 reproduciblesy las leyes que gobiernaneste caos. Por ejemplo, sobre la base de sus observaciones, Newton formuló su segun- da ley del movimiento, queafirma que la velocidad de cambio dela can- tidaddemovimientode un cuerpocon respecto al tiempoesigual a la fuerza resultante que actúa sobreél.Considerandolas maneras excesiva- mente complejas en que las fuerzas y los objetos interactúan en la tierra, estaleyhaprobadoserunageneralizaciónválida. Además de que estas leyes proveen de discernimiento, los ingenieros pueden aplicarlas para formular solucionesa problemas prácticos. Porejem- plo,los conocimientos científicosse usan rutinariamente por los ingenie- ros en el diseño de,elementostales como estructuras, mhquinas, circuitos eléctricos y sustancias químicas sintéticas. Desdelaperspectivadel dise- ño de ingeniería,estos conocimientos sonmuy útiles cuando se expresan en formade un modelomatem6tico. Un modelo matemático puede definirse, de una manerageneral, co- mo una formulacióno ecuación que expresalas 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, desu 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 habitualesde los mode- los matemáticos del mundo físico. 1. Describe un sistema o procesonatural en términosmatemáticos. 2. Representa unaidealización y una simplificaciónde 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,quetienenunaimportan- cia mínima cuando se aplicanaobjetos y fuerzas que interactúan sobre o alrededorde la tierra aescalas visibles a los sereshuma- nos. 3. Finalmente, conduce a resultadospredecibles y, en consecuencia, pue- de emplearse para propósitosde predicción. Por ejemplo,si se cono- cen la fuerza aplicada sobre un objeto y su masa, entonces puedeusarse la ecuación (l.1)para predecir la aceleración. Como tiene unaforma 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 suso- luci6n. Para ilustrar unmodelo 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ídalibre 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. MODELOSMATEMÁTICOS 13 FIGURA 1.1 Representaciónde las fuerzas que actúan sobreun paracaidista en des- censo. FD es la fuerza hacia abaiodebido a la atracción de la grave- dad. Fu. es la fuerzahacia arribadebido a la resistencia del aire. ecuación (l.1) paradar dv dt m - = F u31 donde u es la velocidad en centímetros porsegundo). Así, la masa multi- plicada porla razón de cambio dela velocidad es igual a la suma de fuer- zasqueactúansobreel cuerpo. Si lafuerzatotal es positiva, el objeto acelera. Si esnegativa, el objeto sufreuna desaceleración. Si lafuerza neta es cero, lavelocidaddel objeto permanecerá a un nivel constante. Para un cuerpo que cae dentro del perímetro de latierra (Fig. l.1), la fuerza total está compuesta por dos fuerzas contrarias:la atracción ha- cia abajo debida a la gravedad F D y la fuerza hacia arriba debida a la re- sistenciadelaire Fu. Si a lafuerza hacia abajo se leasigna un signopositivo, se puedeusar la segunda leyparaformularlafuerzadebida a lagravedad como donde g es la constante de gravitación, o la aceleración debida a la gra- vedad, queesaproximadamente igual a 980 cm/s2.
  • 27. 14 MÉTODOS NUMÉRICOS PARAINGENIEROS La resistencia del aire puede formularse de diferentes maneras. Una aproximación sencilla es suponer que es linealmente proporcionala la 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, talescomo la forma o la aspereza de su superficie, que afectanla resistencia del aire. Para este caso, c podría ser una función del tipo de traje o la orientación usadaporelparacaidistadurantelacaídalibre. La fuerzatotal es la diferenciaentrelasfuerzashacia abajo y hacia arriba. Portanto, las ecuaciones (1.3)a (1.6)pueden combinarse para dar dv dt m- = mg - cv o, dividiendocadaladoentre m, dv C dt m ” - 9 - - v La ecuación (1.8)es un modelo que relacionala 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érminosde 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 porla segunda ley de Newton en la ecuación(1.2),la soluciónexacta de la ecuación (1.8)para la velocidad del paracaidista quecae, no puede obtenerseusando simples manipulaciones algebraicasy operacionesarit- méticas. Envez de eso, deberánaplicarselas técnicas delcálculopara obtener una solución exacta. Por ejemplo, siel paracaidista inicialmente está en reposo (u = O en t = O), se puede usarelcálculopararesolver 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- tade un aeroplano. Aplíquese la ecuación (1.9)paracalcular la veloci-
  • 28. MÉTODOS MATEMATICOS 15 FIGURA 1.2 Soluciónanalítica al problema del paracaidista que cae según se calcula enel ejemplo l. l. La velocidad aumenta con el tiempo y se aproxima asintóticamente o una velocidad final. dadantes 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 21640.5 4 2776.9 6 3564.2 10 4487.3 12 4749.0 X 5339.0 a 4109.5
  • 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.3cm/s (161.5km/h) despu6s de 10 s. Nótese también que después deun tiempo suficientemente grande se al- canza una velocidad constante (llamadavelocidad final) de 5339.0cm/s (192.2km/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 puedenresolverse 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 paraque se puedaresolver me- diante operacionesaritméticas. Esto puede ilustrarse para la segunda ley de Newton notándose que se puede aproximar la razón de cambio de la velocidad conrespecto al tiempomediante (Fig. 1.3) [1.10] FIGURA1.3 USO de una diferenciafinita paraaproximarlaprimeraderivadade v con respecto a t.
  • 30. METODOS MATEMATICOS 17 donde Au y At son diferencias enla velocidad y el tiempo calculadas so- breintervalosfinitos, u(t,) es lavelocidadeneltiempoinicial t,, y u(t,+I) es la velocidadalgúntiempo más tarde t,, Laecuación (l.10)es una diferencia finita diuida enel tiempo ti. Puede sustituirseenla ecuación (1.8)paradar Estaecuaciónpuedeordenarseotra vez paradar u(t1+1) = U@¡) + 9 - -u(ti) &+I - ti) [ : I [1.12] Y así, la ecuacióndiferencial (1.8)se transforma enuna ecuación qGe puederesolversealgebraicamentepara u(ti+J . Si se da un valorinicial para la velocidad en un tiempo ti,se puede calcular fácilmente u en t!, Este nuevo valor de u en ti+lpuede emplearse para extender el cálculo de u en ti+2 y así sucesivamente. Por lo tanto, en cualquiertiemporde la trayectoria, Nuevovalor - valoranteriorvalorestimuladoincremento de u + de lapendiente x deltiempode u - EJEMPLO 1.2 Soluciónnumérica al problema del paracaidistaquecae Enunciado del problema: efectuarel mismo cálculo que en el ejemplo l.1 perousando la ecuación (1.12)paracalcular u(t) con un incremento de tiempo igual a 2 s. Solución: alprincipio de los cSlculos (tl =O), la velocidaddel paracai- dista uft,) es igual a cero. Conestainformación y los valoresde los pa- rámetros del ejemplo l.l, la ecuación (l.12)se puede usar para estimar v (ti+1)en ti+l = 2 s. Para el siguienteintervalo (de t = 2 a 4 S), se repiteelcálculoconel re- sultado, ~ ( 4 )= 1960 + 980 - ___ [ 68l2500100(1960+ = 3200.5 cmis
  • 31. 20 MÉTODOS NUMÉRICOS PARA INGENIEROS significat~voasociadocon los puntos de los datos. i) Los sistemas grandes de ecuaciones. las no linealidades 51 las geometrías com- plicadas son comunes enla práctica de la ingeniería y fáciles de resolver analí- ticamente j) Los modelosmatemáticos no sepueden usar nunca con propósitos depre- dicción. 1.2 Léanse las siguientes descripciones de problemase identifíquese qué área de los métodos numéricos (según lo señalado enla Fig. 1.2)se relaciona con su solución. Una persona pertenece a una cuadrilla de reconocimiento topográfico y debe determinar el área deun terreno limitado por dos caminos y una corriente que serpentea Un ingeniero es responsable de la determinación de losflujos en una gran red de tuberías interconectadas entre sí para distribuir gas natural a una serie de comunidadesdiseminadasen 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 160km/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~edesalto. 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, al91-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 sistemade amortiguamiento para un auto decarreras. 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 paratasasde interés del 15 y 20% 1.3 Proporciónese un ejemplo de un problema de ingeniería donde sea oportuno cada uno delos 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 deecuaciones b) Ecuaciones algebraicas lineales c) Ajuste de curvas: regresión d) Ajuste de curvas: interpotación el Integración fi Ecuaciones diferenciales ordinaria5
  • 32. C A P I T U L O D O S 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áticasy 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 herramientauna compu- tadora. Al usar este libro se obtiene la posiblidad de desarrollar los propios programas. Debido ala 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 especialesque maximizan esta po- sibilidad. Todas las técnicas numéricasvan 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 enel 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 ellibro 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 proporcionarcriterios 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 acalcular. 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 cuentashiladas sobre alambresen un marco rectangular (Fig. 2.la). Las cuentas se usan para guardar potencias de10 (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 comoel ábaco aceleran la ve- locidad en los cálculos, las máquinas extienden aún más las capacidades humanas para estos cálculos.Estimuladospor la revoluciónindustrial, 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 fuesino hasta la década de 1940cuando surgieron las com- putadoras electrónicas. Se originaron, inicialmente para proyectosmilita- res en la segunda guerra mundial, erandispositivos de investigación para un solo propósito. Estas máquinas, con nombres comoENIAC 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 agran escala. Aunque algunas máquinas de la primera generación, en especial la UNIVAC,se vendieron a nivel comercial, no fue sino hastala 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 dispositivoselectrónicos de estadosó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 quela mayoría de los profesionistas las obtuvieran indivi- dualmente.Por lo tanto, los ingenierosdebíanasociarsecon grandes organizaciones talescomo 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 de1970un 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 PROGRAMAC16NEN LAS COMPUTADORASPERSONALES 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 AppleComputer,Inc.). des y la capacidaddememoriason muy grandes. Segundo, y más importante en el contextoactual,las computadoras personales que soncon- venientes, pequeñas, rápidas y confiablesse están produciendo en masa y a precios razonables.Como se expresóen un artículo de la revistaScien- tificAmerican: “Las microcornputadoras dehoy día a un costo talvez de $300 dólares, tienen más capacidad de cómputo que las primeras com- putadoraselectrónicasgigantescas ENIAC. Son 20 veces másrápidas,
  • 35. 24 MÉTODOS NUMÉRICOS PARA INGENIEROS CUADRO 2.1 Comparación de sistemascomunes de cómputo* Longitud Cifrasde significa-palabraCostodecálculo,almacena- Sistema tivas bits(dólares) ciclosls miento (K) Calculadora O 25-3501-2 Microcomputadora 7-1 O 7-1 6 100-5000 106-1 o7 16-256 Minicornputadora 7-1 O 16-32 15,000-1 20,000 106-1 o7 128-51 2 Cornputadoras 7-1 4 32 100,000-1 o,ooo,ooo+ 106-1 o* 8000-32,000 prograrnable grandes * Condensodo de AuerbochComputer Technology Reports, Agosto 1983. tienenunamemoriamayor,sonmilesdevecesmás confiables, consu- menla energíade un bulboenvezdeladeuna locomotora,ocupan 1/30O00 de volumen y cuestan 1/10 O00 parte. Se pueden obtener por unaordenpostal o encualquiertiendaespecializada” (Noyce, 1977). Lascomputadoraspersonales se agrupan,por lo general enunade dos categorías que a veces no están biendelimitadas:micro y minicom- putadoras. Las rnicrocornputadoras sonaquellascuyafunciónprincipal está contenida enunasolapastilladecircuitointegrado.Comúnmente cuestan unos miles de dólares.Las minicomputadoras son un término más imprecisoque se refiere a computadorasquesonmáspotentesque las micros pero caen aún dentro de las posibilidades de compra de algunas personas y pequeñascompañías.Ambostiposdecomputadorasestán encontrasteconcomputadorasgrandes, o supercornputadoras, que se manejan en intervalos de millones de dólares y sus propietariosson, por lo general, organizaciones o compañías muy grandes. El cuadro 2.1 re- sume lainformacióngeneralsobrevariostiposdecomputadoras. Larevoluciónenelcampodelestadosólidohaabiertolaspuertas en el área computacional a cada ingeniero.Sin ernhnrgo, no importa qué tipo de computadora se use, ésta sólo tiene utilidadsi se le proporcionan instrucciones precisas. A estas instrucciones se les conoce como progra- mas.Lassiguientesseccionescontieneninformaciónqueserá útil para el desarrollodeprogramasdealtacalidadpara utilizar los métodos nu- méricos. 2.2 DESARROLLODE PROGRAMAS El material de este capítulo está organizado alrededor de cinco temas, es- quematizados en lafigura 2.2, requeridos para la elaboración y cuidado deprogramasdealtacalidad.Estecaljitulocontieneseccionesque cu- bren cadaunode estos pasos.Estematerialincluye un casodeestudio dondecadaunode los pasosseaplicaparadesarrollar un programa y resolverelproblemadelparacaidista.Despuésdeasimilar este material,
  • 36. LA PROGRAMACldNEN LAS COMPUTADORASPERSONALES 25 el estudiante debe estar mejor preparado para desarrollar programas de altacalidadpara los métodos delrestodellibro. 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- rrerenuna computadoraparticular,en conjunto se lesllama 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. 26 MÉTODOS NUMERICOSPARAINGENIEROS Un algoritmo es una secuencia l6gica de pasos necesarios paraejecu- tar una tarea específicatal como la solución de un problema. Losbuenos algoritmos tienen ciertas características. Siempre deben terminardespuk de unacantidadfinita de pasos y deben ser lomás general posible para tratarcualquier caso particular. Los buenosalgoritmosdebenser deter- minísticos; esto es, no debendejarnada al azar. Los resultadosfinales no pueden ser dependientes de quién esté usando el algoritmo. En este sentido, un algoritmo esanálogo a una receta. Doscocineros que prepa- ran independientemente unabuenarecetadeben obtener dos platillos idénticos. La figura2 . 3 ~muestra un algoritmo para la solución de un problema simplequesumados números. Dos programadoresquepartandeeste algoritmopuedendesarrollardosprogramasconestilos diferentes. Sin FIGURA 2.3 a) Algoritmo y b) diagramade fluio para la solucióndel problema de una sumasimple.
  • 38. LA PROGRAMACldNEN LAS COMPUTADORASPERSONALES 27 embargo, dados los mismos datos, los programas deben arrojar los mis- mosresultados. Una forma alternativade representarun algoritmo es medianteun dia- grama de flujo. Estaesunarepresentaciónvisual o gráficadelalgoritmo que emplea una serie de bloques y flechas. Cada bloque enel diagrama representaunaoperaciónparticular o un paso enelalgoritmo. 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 conformanla mayor parte de las operaciones que se requierenen laprogramacióndeuna computadora personal. Lafigura 2.3b muestraun diagrama de flujo para el problemasimpledesumardosnúmeros. Los diagramasdeflujotienen unautilidadparticularpara bosquejar algoritmoscomplicados. En estos casos, un bosquejo gráfico puede serútil para visualizar el flujo lógico del algoritmo. En este texto, se hanincluidodiagramasdeflujoparala ma- yor partede los métodosimportantes. Se puedenusarestosdiagramas como basepara el desarrollodesuspropiosprogramas. 2.2.2 Composición de un programa Después de confeccionarun algoritmo, el paso siguiente es expresarlocomo una secuencia de declaracionesde programación llamado código. Esim- portante resistir la tentación de escribir el códigoantesdequeelproble- maen su totalidad esté claramente definido y la técnica de solución y el algoritmo hayan sido cuidadosamente diseñados. Lasdificultades que más comúnmente encuentran los programadoressin experiencia se deben por lo general a lapreparaciónprematura de un código que no abarque un plan o unaestrategia total, para la solucióndelproblema. 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 altonivel desde que la era de las computadoras empezó. Entre ellos, haytresquetienenimportancia paracomputadoras personales: BASIC, FORTRAN y PASCAL. FORTRAN, es la construccióndefórmulatranslation(traducciónde fórmulas),y se desarrolló enla década de 1950. Debido a que fue expre- samente diseñado para cálculos, hasidoel 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),fuedesarrolladoenla década de 1960. Requiere unacantidad pequeña de memoria y es relativamente simple de implementar.En con- secuencia es uno de los lenguajes másusadosenlas computadorasper- sonales; sin embargo, el BASIC no es tanflexible como el FORTRAN y a veces no es conveniente paraprogramasgrandes o complejos. El PASCAL, que debesu nombre al científico francés BlasPascal, esun lenguajeestructuradoquesedesarrolló enla década de 1970. Los pro- gramasescritos en Pascalpara una computadoradeterminadapueden
  • 39. 28 METODOS NUMERICOS PARA INGENIEROS FIGURA 2.4 Símbolos utilizados en diagramas de fluio.
  • 40. LA PROGRAMACldN EN LASCOMPUTADORASPERSONALES 29 ser corridos fácilmente en otra. Aunque el Pascal es másdifícilde apren- derqueel BASIC y el FORTRAN, sufuerzasugierequesuimportancia crecerá en el futuro. Esto es verdad para la programación avanzadaa gran escala. BASIC y FORTRAN son convenientes para programas simplesy cortos que son suficientes parala implementación de los métodos numéricosde estelibro.Por lo tanto, se ha optadoporlimitarlaspresentacionesdel texto,a programas en estos lenguajes. BASICes unaalternativaobvia por su amplia disponibilidad.Se ha incluido el FORTRAN por su signifi- cado continuo enel trabajo de ingeniería. Aunque este libro hace énfasis enlas computadoras personales, puedeusarseporaquéllosquetienen acceso a máquinas más grandes y en conjunción con cualquier lenguaje dealtonivel.Con este espíritu, los programas y diagramasdeflujoson lo suficientementesimples como paraquepuedanservirdebaseenel desarrollodeprogramasparaaquéllosquesonexpertosen Pascal. Una descripción completa delBASIC y el FORTRAN, obviamente va más allá del alcance de este libro. Además, el número de dialectos dispo- niblesen cada lenguajecomplicaaúnmássudescripción.Por ejemplo, existen más de 10 dialectos derivados del BASIC. Sin embargo, limitan- do ladiscusión a lo fundamental, se puede cubririnformaciónsuficiente de forma tal que se pueda entender e implementar efectivamenteel ma- terialrelacionadocon la computadora enel resto dellibro. Enlafigura 2.5 SF! presentan los códigos en FORTRAN y BASIC pa- ra sumar dosnúmeros, mostrando las diferencias estructurales principales entre los dos lenguajes, el etiquetado y el espaciamientode código. En BASIC, cada instrucción se escribe con un número. En contraste,en FOR- TRAN se etiquetancon un número sólo aquéllasinstruccionesque re- quierenidentificación.Por ejemplo, lainstrucciónque 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 Programadecomputadora en FORTRANy BASIC para el problemade la suma simple.
  • 41. 30 METODOS NUMERICOSPARAINGENIEROS ción FORMAT. Especifica la forma en que seva a introduciro a imprimir una línea particular. Por lo tanto, se debe etiquetar con un número para que la computadora pueda distinguirla de otras declaracionesFORMAT. 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 1OA=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 queel FORTRAN se introducía originalmenteen una computadora usandolec- 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 puedeescri- bir y verificar un programa para revisarlo de errores antes de introducirlo a la computadora. Nótese que también contiene80 columnas al igual que una tarjeta perforada. También obsérvese que cada una delas partes de los campos se usa para propósitos particulares. Aparte de la estructura, los dos lenguajes tienen otras diferencias así como fuertessimilitudes. En el cuadro 2.2 se delinean éstas. Este cuadro muestra comparaciones en paralelo deseis elementos principalesde pro- gramacióc que tienen importancia directa en el uso de los métodos nu- méricos. Estos son: 1. Constantes y variables. Se debenseguirciertasreglasparaexpresar 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 elBASIC 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 diferenciasconsiderables.Aunque la mayor parte de los lenguajes modernos mejoran esta situación, históricamente las capacidades de entrada-salidadel BASIC, han sido muy limitadas. En constraste, las declaraciones FORMAT del FORTRAN son herramientas muy potentes para etiquetary espaciar la salida. Sin embargo, son de las declaraciones de programación más difícilespara 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 muchoslenguajes 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éricosy 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. EnterosConstantesnuméricas sonconstantes que no contienenpuntosonnúmerosenteros o reales con punto decimal: decimal: 1, -2, 100 1, -2.0, 0.001,100 Constantes reales: contienenpunto decimal: 1.o, -2., 0.001 Exponenciales sonconstantesescritasen notación científica. Por ejemplo, los números: -12 000,0.000 006 8, 386 O00 O00 se expresan ennotación científica como: -12 x lo3,6.8 x 3.86 x 10’ y se pueden escribiren 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 usanenestetexto para etiquetar. Las cadenas de caracteres tienenotras aplicaciones,incluyendo el USO de expresiones de relación. En FORTRAN se encierrancomo: En BASIC se encierran como: ‘JOHN DOE’, ’INTRODUCE B’ “VALOR DE A =”, “8/5/48”
  • 44. LA PROGRAMACldNEN LAS COMPUTADORASPERSONALES 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 consistende uno aseis caracteres, desde constan dedos caracteres (mós en algu- la A a la Z y del O a 9: nos dialectos) dela A a la Z y del O al 9: Variables enteras AA, X, N1 representanvaloresenteros y empiezanrepresentanvalores reales o enteros. con las letras I a la N: N,KOUNT, lNDl Variables reales representanvaloresreales 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:terminancon $. La longitud de la varia- CHARACTER * n vorl,vor2 ble es limitada. A$, N1$ donde n es la longitud específica dela cadena de caracteres seguidapor una lista de variables. Por ejemplo, CHARACTER * 4 NOMBRE1,NOMBRE2 Arreglos son variables con subíndiceque almacenan un conjunto de valores envectores 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 hastasietesubindices 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 arreglosnodimensionados suponen un valor den = 10.
  • 45. 34 M~TODOSNUMÉRICOS PARA INGENIEROS CUADRO 2.2. Referenciarápida:comparacióndeFORTRAN y BASIC. (cant.) FORTRAN BASIC 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 dondelavariable ejecutable. dimensionada se va a usar. En caso de no ir, supone el valorn = 10. El redi- mensionamiento generaa unmensaje 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 vana leer o a imprimir. Aunque en laentraday 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 transmitendatos al programa Declaración READ permitenintroducirdatos alprograma durante su ejecución: READ f varl,vur2,. . . , vur, donde f esun 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 unalectora de tarjetas. Declaración DATA son declaraciones no ejecutables que defi- nen el valor inicial de una variable. Tienen laformageneral. Declaración INPUT Permitenintroducir datos at programa durante su ejecución: In INPUT varl,vur2,. . . , var, donde Ines el número de líneas donde está la declaración INPUT y var,, var2, . . ., var, son los nombres de las varia- blescuyosvalores se vanaleer. Por ejemplo: 10 INPUT A,B Cuando se ejecutaestainstrucciónse deben introducir los valores de A y B en undispositivo,tal como el teclado. DeclaracionesREDlDATA 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. LA PROGRAMACldN EN LASCOMPUTADORASPERSONALES 35 CUADRQ 2.2 Referencia rápida: comparación de FORTRAN y BASIC.(cont.). FORTRAN BASIC DATA var,, , . .,var,,lvalor,, 10 READA,B,C,Z . . .,valor,,/ donde var es el nombre de la variable y valor es una constante. Por ejemplo: 90 DATA5,0.001,88,1 E-6 DATA A,B,C,Z/5.,0.001,88.,1.E-6/ Salida esel medio por el cual se transmiten datos del programa. DeclaraciónWRITE Declaración PRINT se usa comúnmente para imprimir datos. se usa comúnmente para imprimirdatos. Su formageneral es: Su formageneral es: WRITE fvarl, . . . , vur, In PRINT varl, . . . , var, Por ejemplo: WRITE (6,2)A,B Por ejemplo: 10PRINTA,B donde (6,2) es el código de formato, el Enel 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 unaimpresora. IcA1cu10s (Operaciones que usan expresiones matemáticas)1 Declaracionesde asignación se usan para asignar un valoraunavariable: XM=3.281 indica a la computrdora que asigne el valor 3.281 a lavariable XM; A=XM+5 indica a la computadora que sume 5 a XM y le asigne el resultado (en este caso, 8.281) alavariable A; A=A+40 indica alacomputadora que sume 40 a A y le asigne el resultado (en este caso, 48.281) ala variable A. El valor anterior de A se destruye enel proceso. Nóteseque,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ónde asignación se le puededar un significado de "se reemplaza por", como en: A se remplazapor A+40 + - Operadores aritméticos sonsímbolos usados para representar operaciones matemáticas: Suma Resta + - ...
  • 47. 36 MÉTODOS NUMÉRICOS PARA INGENIEROS CUADRO 2.2 Referenciarápida:comparacióndeFORTRAN y BASIC. (cont.). FORTRAN BASIC * Multiplicación * i División i ** Exponenciación **, ?,A (El signode exponenciación dependedel tipo de BASIC) Si una expresiónaritméticatuvieratodos los operadores, el orden en que se efectuaríansería: primero, todas las exponenciaciones deizquierda a derecha en BASIC, Applesoft y Microsoft, y de derecha a izquierdaen FORTRAN; a continuacidntodaslasmultiplicacionesydivisiones de izquierda a derecha, y finalmentetodaslassumasyrestas de izquierda a derecha. Cuando una expresiónpresentaparéntesis, laformade efectuarlos es del másinterno 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 especificaunsalto incondicional aun número de líneaespecí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 dosexpresiones: - < > < < = > > = - 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) GOTO 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, seejecuta la transferencia o la asignación. En el primer ejemplo, si N es mayorque 1 a
  • 48. LA PROGRAMACldNEN LAS COMPUTADORASPERSONALES 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 1O. 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: 1 0 X=Y(I)*Z(I-1) IF(X.LT.O)GO T O 50 GO TO 10 1=1+1 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 CiclosFORlNEXT DO In I=j,n,k FOR I = i T O n STEP k In C O N T I N U E In NEXT I donde In es el número de línea de la ú h a declaración del ciclo, ies 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 Isea 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 T A N 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 Valorabsoluto I N T El entero más grandeque Es menor o igu:?! a x SIN cos TAN L O G EXP SQR ABS INT
  • 49. 38 METODOS NUMÉRICOS PARAINGENIEROS CUADRO 2.2 Referencia rápida: comparacióndeFORTRAN y BASIC.(cont.). FORTRAN SOL. donde x es el argumento de la función. Nótese que la listaanteriorno está completa.Dependiendode la versióndel compiladorpueden existirmás funcio- nes intrínsecas. Funciones definidas por el usuario son funcionesdefinidas 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 variablesnuméricas que no tienensubíndice y f es unaexpre- siónaritméticaquedependede x , ,. . .,x,,. Las declaraciones de funciones van antes de laprimera proposiciónde ejecutable. Se puedenpasar variosargumentosen unadeclaración de unafunción. Las otras variables dentrode lafunció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 laformageneral: 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 (sinsubíndice) y f es una expresión aritmética que es función de x . La declaración DEF va antes de ejecutar dichafunción. Se puede pasar sólo argumentos en una declaración DEF. Lasotras variables dentro de la función tienen el mismo va- lor que enel programa principal enel punto donde se llamaa la función. 10 DEF FNT(X)=SIN(X)-LOG(B) r 70A=580 E= 10 990 S=FNT(AJ Subprogramas Function se parecen alas 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 tipofunctionson de lo forma general: FUNCTION name(xl,. . . x2j nombre = f RETURN donde todos los valores que toma la funciónsonaquellos que se definen a1 llamaradicha Función.
  • 50. LA PROGRAMACldN EN LAS COMPUTADORASPERSONALES 39 CUADRO 2.2 Referenciarápida:comparacióndeFORTRAN 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 quelas constantes y las variables que no se pasan como argumentosde- 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 subrutinava después del programa principal y empieza conuna 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úmerodelínea de la declaración GOSUBy In2 es el número de línea donde empieza la subrutina. La primera línea de la subrutina puedeir en cualquier lugar dentro del programa. donde nombredebe ser el mismo al Ila- mar dicha subrutina conla proposición CALL. Una vez dentro de la subrutina, las proposiciones se ejecutan ensecuencia 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 pasana y desde la subrutinoúnica- Todos los valores se pasan a y desde la mentelos valoresqueaparecencomosubrutina. argumentos de la misma:
  • 51. 40 MÉTODOS NUMÉRICOS PARA INGENIEROS CUADRO 2.2. Referenciarápida:comparacióndeFORTRAN y BASIC. (cont.) FORTRANBAS IC CALL SUM (X.Y,Z) - 200GOSUB 800 END 500 END SUBROUTINE SUM (A,B,C) 800Z=X+Y C=A+B 850 RETURN RETURN Nóteseque lasconstantes y las varia- bles que no se pasan comoargumentos se deben definir dentro dela subru- tina o pasarseconunadeclaración COMMON. DOCUMENTACI~N (le permiteincluirinformación para el usuario de los programas) las declaraciones de documentación son instruccionesnoejecutables. DeclaracióndecomentarioDeclaración REM Consistedelcarácter C o delsímbolo * enConsistede la declaración REM seguida C aquí se puede teclear cualquier 1 O REMaquí se puede teclearcualquier la columna 1 seguido por unmensaje: por unmensaje: mensaje. mensaje. 3. Cálculos. Las operaciones matemáticas son muy similares en ambos lenguajes. Aunquela nomenclatura es un poco diferente,las ecuacio- nes escritas en los dos lenguajes casi son idénticas. 4. Control. Estas declaracionesseusanpara dirigirla 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, sonminiprogramas 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 simplecuando 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 LASCOMPUTADORASPERSONALES donde FORTRAN y BASICdifieren significativamente. Lasdiferen- cias estriban en la manera en que se pasainformació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 ventanaspara controlar el paso de informacih.Este es un ejem- plo que muestra al FORTRAN como un lenguaje más complicado y. enconsecuencia.máspotenteque 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 sedesarrolló originalmente como unaversió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. Por10 tanto, en estelibro 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 seles llamabugs. AI proceso de localizar y corregir los errores se les conocecomo rastreo. Pueden ocurrirvarios tipos de erro- res cuando se programa encualquier lenguaje. Los errores desintaxis violan las reglas del lenguaje como la ortografía. la formación de los números. los números delínea y otras reglas específicasa cadalenguaje. Estos errores a menudo resultan al teclear cosas raras. Por ejemplo. la declaración en BASIC 30A = 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 programahace lo quese le pide. Porejemplo.supóngase que. se deseansumar los enterosentre 1 y 10 y luego dividirlos entre 10 (esdecir. calcular su promedio). Loscó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 60PRINT A obteniendo como resultado A = 5.mientras que el resultado esperado era A = 5.5.Lasintaxis está perfecta. pero hay un error de lógica que la computadora jamás podrá detectar porque no hay forma deobservar- 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 erroresdeeste tipo a menudoson muy dificiles de detectar en programas muy grandeso muy complejos. Porlo tanto, es una buena práctica verificar manualmente si es posible, los resultados dadospor ' el programa y probarlos en casos especiales. Estopuede 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 erroresen el momento de /aco- rrida (run time errors). Es absolutamentenecesaria 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. Elrastreo y la prueba de los programas sefacilita 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 esespecifica e identifica fácilmente lastareas a ejecutar. Las subrutinas son medios apro- piados para tal modularización. El programa principal (oel programa que las llama) puede, entoncesser 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. Leerdatos. 4. Ejecutar algoritmos numéricos. 2. Mostrar datos. 5. Mostrar los resultados enuna tabla. 3. Mostrarun carácter para 6. Mostrar los resultados enuna gráfica. información.
  • 54. LA PROGRAMACIóN EN LAS COMPUTADORASPERSONALES 43- Cada unade estas subrutinas realiza una tarea limitada y aislada que se puede programary rastrear separadamente. Esto simplifica mucho eltra- 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 conozcapreviamente lasolución exacta. Algunas veces sedispone de la soluciónanalítica lacual esaceptablepara estos propósitos.Talfue el caso delparacaidista (recuérdenselos ejemplos 1.1. y 1.2). En otros casos, el programadordeberealizarcálculosmanualesconunacalcula- dora de bolsillo para comprobar que el programa lleva a resultados con- fiables. En cualquier caso, elprograma se sujetará a unagranvariedad de pruebas para asegurarse de que funcionará confiablemente bajo todas las condicionesde operación posibles. Unicamente hastaentonces el pro- grama estará listo para ser usado en la solución de problemas de ingeniería. 2.2.4 Documentación Despuésde que el programa ha sido rastreadoy 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 simpley claro cuando está reciénhecho y se guarda en la mente, después de pasar cierto tiempo el mismo códigopuede parecer inaccesible.Por lo tanto, sedebe incluir suficiente información para permitirlea los usuariosentendere im- plementarinmediatamentetalesprogramas. Esta tarea exhibeaspectosinternos y externos. La documentaciónin- terna consiste dealgún análisis o explicación que se inserta a lo largo del códigodelprogramaparaladescripció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ónse debe incluir tan prontocomo 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 delprograma.Ladocumentacióninterna se mejoraconsiderablemente con el uso de nombres mnemónicos apropiados para las variables. Estos nombrespuedensermásdifícilesdecodificarquelosnombres peque- ños, pero la ventaja de sermásinformativos,porlogeneral hace que valga la pena el esfuerzo adicional.Utilizar nombres mnemónicosconve- nientes, incluyeen esencia eluso de nombres convencionales o est6n- dares o abreviaciones comunes paravariables. Ladocumentaciónexternaexplicalasinstrucciones como mensajes e información impresa suplementaria diseñada para auxiliaral usuario en la implementación de los programas. Los mensajes impresos se supone queayudan a que los resultadosesténbienpresentados 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~NEN LAS COMPUTADORASPERSONALES 45 de documentación simpleque se recomienda para preparar cada unode los programas a desarrollar. Estas formas se pueden mantener enun cua- derno denotas para tener unareferencia rápida parala 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 conuna 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.Loslistados de código, de hecho se guardaban, pero tenían que teclearse de nuevo para usos posteriores. Las cajasde tarjetas FIGURA 2.8 Disco flexible.
  • 57. 46 MÉTODOS NUMERICOSPARAINGENIEROS - perforadas se podían guardar, pero paraun programa decualquier mag- nitud resultaban difíciles de manejar y susceptibles a deteriorarse. Como se menciona al principio de este capítulo, los dispositivos de almacenamientomagnéticohanmejoradosustancialmente la habilidad de retener programas. Un dispositivocomún de almacenamiento esel 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 granutilidad. también tienen algunas desventajas. Por unaparte, su tiempo de acceso es muy lento; por otra, se deben manejary se deben guardar con mucho cuidado. Dado que pueden borrarse muy fácilmen- te, siempre se debe teneruna copia de cada uno de ellos. Además,cuando 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, peroposible, de que el disco y su copia se destruyan. 2.3 DESARROLLODE UN PROGRAMA PARA EL PROBLEMADELPARACAIDISTA 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 todoslos 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 paracaidistaes equivalente ala 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)].Si se conoce la velocidad inicial del paracaidista v (ti)la ecuación (2.1)se pue- de resolverrepetidamenteparavalores de v(ti+J, como se hizo en el ejemplo l.2. Con esta información como antecedente, ahorase 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,engeneralesmuchomá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 quese hayan calculado tantos valores como seanecesario. Este algoritmose puede expresar de manera más formal con un diagrama de flujo. La figura 2.9 muestra un procedimiento detalladode la implementación de los cálculos. El diagramade flujo consiste de tres conjuntos de declaraciones: 1. Introducir variables y constantes 2. Inicializar todas las variables 3. Hacer unciclo iterativo que calcule e imprimalas respuestas Con base al diagrama de flujo, se puedeescribir ahora un programa. Las versiones en FORTRAN y BASIC se muestran en la figura 2.10.NÓ- tese que para laversicin 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 U R I T E < 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 jC O T O2 0 0 S T O P EtiC) 2 0O 'V=V+C 98 O-C*V,'l'l >*H FIGURA 2.1O Programas FORTRAN y BASIC para el problema del paracaidista. Estos programasduplican los cálculosmanuales del ejemplo 1.2. . ". .
  • 60. LA PROGRAMAC16NEN LAS COMPUTADORASPERSONALES 49 insertar nuevas líneas de código en refinamiento subsecuentes del pro- grama. Aunque el ejercicio mencionado anteriormente ciertamentees un pro- grama válido para el problema del paracaidista, por ningún medio explo- ta todas las posibilidades de programación ni en FORTRAN ni en BASIC. Para demostrar como se pueden emplear líneas adicionales, para desa- rrollar una versión mejor, ahora se refinará el programa. Muchas de las modificaciones e insercionessiguientes representan una técnica de programación más eficiente y más sencilla de ejecutar.Sin embargo, cierto material se enfoca hacia propósitos didáctico5 para de- mostrar el uso de ciertasdeclaraciones. El siguiente análisis muestra directamente la versión en BASIC. Ya que losprogramas de la figura 2.11 están escritos en paralelo, es muy fácil extender el análisis a la versión FORTRAN. El programa dela figura 2.11 tiene nuevas características. Lasprinci- pales son: 1. 2. El programa calcula ahora la velocidadpara tres valores diferentes del coeficiente de rozamiento y de la masa. La habilidad de realizar cálculosrepetitivos es una delas ventajas de las computadoras. Dentro del diseño en ingeniería, a menudo esútil realizar una serie de cálcu- los varias veces con valores diferentesde los coeficientes para valorar la sensibilidad del modelo a estos cambios. Esto se hace en este caso, realizando los cálculosdel ejemplo 1.2con el coeficientede rozamiento variando 2 10%.De esta manera, los tres casos usados en el pro- grama son parael caso del coeficientede rozamiento original (12500 g/s), el coeficiente de rozamiento más el 10 por ciento (13750 g/s) y el coeficiente de rozamiento menos el 10 por ciento (11250 g/s). El cálculo repetitivo se lleva a cabo agregando un ciclo iterativo (lí- neas 3080 a la 3390).Cada vez que el programa pasa a través del ciclo, se usa un coeficiente de rozamiento diferente para calcular la velocidad. Nótese también que el coeficiente de rozamiento y la ma- sa se usan como variables con subindicesC(K) y M(K). Por lo tanto, se les asigna una dimensión en la línea 3040. El programa tiene ahora un esquema iterativomás preciso. Además de agregar el ciclomayor para los tres casos dec y de m (líneas3080 a la 3390),se han usado dos ciclos para calcular el valor actual de u. Se hace así porque pudiese ser que no se deseeimprimir una res- puesta después de cada paso. Esto seríaespecialmentecierto si se usara un paso muy pequeño, por ejemplo 0.01 S , para obtener resul- tados más exactos. Para calcular desde t = O hasta 20 S , se requeri- rían 20/0.01ó 2 O00 números. Ya que se requiereun valor para cada 2 S que esquemetice razonablementela caída del paracaidista, se han usado dos ciclos anidados de forma tal que el programa imprima re- sultados en tiempos intermedios.Un ciclo anidado es aquelciclo que