You are on page 1of 43

Mtodos numricos para ingeniera

Title Mtodos numricos para ingeniera

Authors Delgado Cepeda, Francisco J.

Fecha de 2012
publicacin

Publisher Editorial Digital del Tecnolgico de Monterrey

Resumen Este eBook busca introducir a los estudiantes a los mtodos


numricos, su programacin efectiva y empleo de software
en la resolucin de problemas de simulacin. Esta obra
hace nfasis en el aspecto de programacin ya que esto
permite ver a los lectores cmo se implementan
computacionalmente los mtodos presentados y desarrollar
competencias en el de la programacin de los mismos y en
la simulacin de problemas.

Disciplina Ingeniera y Ciencias Aplicadas / Engineering & Applied


Sciences

Enlaces https://itunes.apple.com/mx/book/metodos-numericos-
adicionales para-ingenieria/id715056518?mt=11;
https://www.amazon.com.mx/M%C3%A9todos-
num%C3%A9ricos-ingenier%C3%ADa-Francisco-
Delgado-ebook/dp/B00S9YMSA4/ref=sr_1_1?s=digital-
text&ie=UTF8&qid=1486573599&sr=1-
1&keywords=metodos+numericos

Item type Captulo de libro / Book chapter

Downloaded 16-abr-2017 23:15:56

Link to item http://hdl.handle.net/11285/622322


Acerca de este eBook

Mtodos numricos para ingeniera


Franciso Javier Delgado Cepeda

E lprogramas
Tecnolgico de Monterrey presenta su primera coleccin de eBooks de texto para
de nivel preparatoria, profesional y posgrado. En cada ttulo, nuestros autores
integran conocimientos y habilidades, utilizando diversas tecnologas de apoyo al aprendizaje. El
objetivo principal de este sello editorial es el de divulgar el conocimiento y experiencia didctica
de los profesores del Tecnolgico de Monterrey a travs del uso innovador de la tecnologa.
Asimismo, apunta a contribuir a la creacin de un modelo de publicacin que integre en el
formato eBook, de manera creativa, las mltiples posibilidades que ofrecen las tecnologas
digitales. Con su nueva Editorial Digital, el Tecnolgico de Monterrey confirma su vocacin
emprendedora y su compromiso con la innovacin educativa y tecnolgica en beneficio del
aprendizaje de los estudiantes.

www.ebookstec.com

ebookstec@itesm.mx

D.R. Instituto Tecnolgico y de Estudios Superiores de Monterrey, Mxico 2013.


Acerca del autor

Francisco Javier Delgado Cepeda

Profesor del Tecnolgico de Monterrey, Campus Estado de Mxico. Originario de Ciudad


Mante, Tamaulipas, Francisco Javier Delgado Cepeda realiz estudios profesionales en fsica en
la Universidad Autnoma Metropolitana, Unidad Iztapalapa. Tiene estudios de Maestra y
Doctorado en fsica en el Centro de Investigacin y Estudios Avanzados (CINVESTAV) del IPN.
Realiz estancias posdoctorales en el CINVESTAV y en el International Centre for Theoretical
Physics. Posee una Maestra en Administracin de Instituciones Educativas en el Tecnolgico de
Monterrey.

Su experiencia de trabajo ha girado, principalmente, alrededor del campo de la docencia en


las reas especficas de fsica, matemticas e ingeniera, desde hace 24 aos. Es profesor
certificado en el uso de las tcnicas didcticas de Aprendizaje Basado en Problemas y
Aprendizaje Orientado a Proyectos. Asimismo, ha participado proyectos de investigacin en las
reas del Control Cuntico y de la Innovacin en Educacin en Ciencias Bsicas, habiendo
publicado diversos artculos nacionales e internacionales en ambas reas. Como directivo, ha
ocupado los cargos de Director del Departamento de Matemticas y de la Divisin de Ingeniera y
Arquitectura del Instituto Tecnolgico y de Estudios Superiores de Monterrey, campus Estado de
Mxico.

Ha sido autor de diversos proyectos y cursos en el modelo educativo del Tecnolgico de


Monterrey en las plataformas Learning Space y Blackboard: Matemticas remediales, Fsica I,
Fsica II, Electricidad y Magnetismo, Matemticas para Arquitectura y Diseo, Estadstica en las
Organizaciones y Mtodos Numricos para ingeniera. Es editor del labor: Nexus IV. Relationships
between Architecture and Mathematics. Ha obtenido los reconocimientos: Primer lugar en
Innovacin Educativa 1997 del sistema ITESM, Primer lugar en la categora de ensayo por
Innovacin Educativa 2000 de FIMPES y Primer lugar en la mejor ponencia del 1er. Encuentro de
Innovacin Educativa del Tecnolgico de Monterrey, Campus Ciudad de Mxico. Ha sido
reconocido por los campus Estado de Mxico y Toluca por su trabajo como docente.

Actualmente, Francisco Javier Delgado Cepeda es Profesor titular investigador dentro del
grupo de Procesamiento Cuntico de la Informacin del Instituto Tecnolgico y de Estudios
Superiores de Monterrey, campus Estado de Mxico, con un inters tanto por la investigacin, la
academia y la direccin de las Instituciones de Educacin Superior.

Para ver el video de bienvenida da clic aqu.


00:00 / 00:00
Mapa de contenidos
Introduccin

L os mtodos numricos constituyen una herramienta de anlisis cientfico y tecnolgico


valiosa en nuestros das. El desarrollo de las computadoras ha permitido su desarrollo para
resolver problemas de gran complejidad, desde la simulacin de un fenmeno o dispositivo,
hasta el estudio de sistemas complejos como la simulacin de evolucin de una galaxia o en
anlisis de esfuerzos y estabilidad de una aeronave.

Esta propuesta es aplicable a cualquier curso introductorio en el tema. El uso de software y el


empleo de visualizaciones apoyarn el proceso de aprendizaje que se combina con el
aprendizaje bsico de la programacin a travs de problemas matemticos directamente
aplicables a las ciencias y la ingeniera, as como a la propuesta de consideracin y
programacin de mtodos ms especficos, as como el empleo del aprendizaje basado en
problemas. Esto permitir que el lector comprenda la relacin de la disciplina con las
aplicaciones en ingeniera.

Se han considerado un buen nmero de aplicaciones, incluyendo problemas integrados a


travs de la horizontalidad de los mtodos para resolver aplicaciones complejas. El software
moderno se incluye directamente en cada mtodo, en donde cada uno debe ser programado,
como marca la prctica profesional debida. Actualmente, an cuando se podra soslayar el
aprendizaje de los mtodos numricos mediante el empleo de software especializado, la
programacin permite al lector comprender la complejidad y la necesidad de resolver
determinados problemas mediante la simulacin y la programacin, an asistida por esta. En
resumen, las ventajas del presente libro de texto son las siguientes:

a) Presentacin y aprendizaje de los mtodos numricos en ingeniera hasta concretar su


programacin.

b) Implementacin de una herramienta moderna y vigente de clculo, programacin y


visualizacin.

c) Inclusin y promocin de escenarios y problemas transversales que requieren el empleo de


los mtodos numricos para resolver problemas en Ciencia e Ingeniera.

d) Implementacin de tcnicas didcticas que acompaan la metodologa del libro: el


Aprendizaje basado en Problemas y el Aprendizaje Orientado a Proyectos.
e) Visualizacin de demostraciones y simulaciones que son apoyadas por el formato
electrnico del libro.
Captulo 1. Introduccin a los mtodos numricos y su programacin

Introduccin

E l estudio de fenmenos complejos en ciencia o el diseo en ingeniera, requiere en muchos


casos, y antes de la verificacin o construccin fsica de los mismos, un estudio terico de
ellos. A pesar de que el estudio clsico de las ciencias bsicas y ciencias de la ingeniera
enfatiza, en una primera aproximacin, el estudio matemtico y analtico de los problemas, en
realidad, la complejidad de la mayora de ellos implica tcnicas diferentes a las analticas que
constituyen el cuerpo clsico de las matemticas.

La mayora de la gente asocia el trabajo cientfico y tecnolgico a su cuantificacin numrica.


Esto implica que todo fenmeno fsico o construccin tecnolgica tiene un comportamiento
predecible y por ello puede ser cuantificado y simulado sin tener que realizarse. Ese es el sentido
numrico de la ciencia y la viabilidad predictiva de la tecnologa. Sin embargo, an cuando esto
es parte del conocimiento general, rara vez se comprenden las vas por las que esta
cuantificacin pueda lograrse. Quien haya llevado un curso de ciencia, particularmente fsica o
introduccin a las ciencias de la ingeniera (circuitos elctricos, esttica o dinmica) se encuentra
con dos panoramas: los problemas realistas no suelen resolverse o bien, estas disciplinas
resultan aplicadas cuando en lugar de analizar la teora se adopta la visin del laboratorio o el
taller. Parece entonces haber dos mundos que no se conectan, la teora y la prctica. En gran
medida esto ocurre porque los mtodos matemticos que se aprenden conceptualmente y que
soportan la ciencia no permiten siempre resolver analticamente las ecuaciones tericas hasta un
nivel predictivo o descriptivo. Esto es, la teora est conformada por ecuaciones de
comportamiento no resueltas en trminos analticos y, segn se asegura, detrs de ellas est la
descripcin de los fenmenos. Cmo puede entonces asegurarse que esto es as?

El anlisis numrico es una va de solucin alterna que permite conectar la teora y


la prctica al nivel que se quiera de medicin y clculo pero en una forma diferente
a como normalmente se ensea la operacin analtica de los conceptos.

Las computadoras, hoy en da, juegan un papel decisivo en esto, pues la complejidad de los
clculos supera al poder humano de cmputo. La historia marca la dcada de los aos cuarenta
durante el siglo XX como el nacimiento de los mtodos numricos modernos, al conjuntarse tres
elementos esenciales: el desarrollo de las computadoras electrnicas programables, el desarrollo
del anlisis matemtico moderno y la disponibilidad y necesidad de problemas complejos en
ciencia y tecnologa. Aspectos como la mecnica de fluidos, el estudio de las propiedades
electromagnticas de los materiales y el anlisis de sistemas mecnicos complejos dependieron
fuertemente de estos desarrollos.

Para saber ms

Una supercomputadora tiene un alto poder de cmputo y estabilidad. Empleadas para tareas intensivas de clculo como el
clculo de procesos cunticos, anlisis de resultados de fsica de partculas, prediccin del clima, efectos del cambio
climtico, cintica molecular, simulaciones aeronuticas o automotrices en viento y procesos dentro de reactores de fusin
y fisin. Las primeras fueron introducidas en la dcada de los sesenta, diseadas por Seymour Cray en la compaa
Control Data Corporation, hasta que Cray constituy su propia empresa, Cray Research. Desde entonces el mercado de
super-cmputo ha crecido exponencialmente. M s informacin aqu.

El artculo de Von Newmann y Goldstine (1947) sobre inversin de matrices de orden superior
estableci la posibilidad de emplear las computadoras para realizar clculos numricos complejos
en tiempos razonables que hasta entonces no eran asequibles al ser humano. Diversos
problemas que de manera conjunta aparecen en el anlisis fsico y tecnolgico tenan las mismas
caractersticas:

La solucin de grandes sistemas de ecuaciones lineales que representaban sistemas


complejos

La solucin de sistemas de ecuaciones no lineales


Los problemas de optimizacin de un gran nmero de variables y restricciones

El problema del ajuste de funciones a un conjunto de puntos experimentales

La teora de aproximaciones, mediante la cual se busca cmo aproximar un valor de una


funcin compleja (como sin(x), ln(x), ex, etc.) a otra que se base en el empleo de
operaciones bsicas (la suma, resta, multiplicacin y divisin)

El desarrollo del anlisis de Fourier de seales complejas

La integracin y derivacin automtica de funciones complejas por parte de los sistemas de


cmputo

La solucin de ecuaciones diferenciales ordinarias y parciales, as como de ecuaciones


integrales

Estos problemas aparecen de manera conjunta al analizar los sistemas fsicos de fenmenos y
aplicaciones complejas y el advenimiento de las computadoras programables propulsaron el
desarrollo de las tcnicas numricas para hacerlo. Cada vez se planteaban problemas ms
complejos con un mayor nmero de variables, lo que competa rpidamente con la creciente
capacidad de cmputo existente y la necesidad de resultados cada vez ms precisos. Un ejemplo
puede bastar para explicar esto.

El diseo automotriz normalmente requiere de normas de calidad y predictibilidad


estrictas en el movimiento hasta el orden de milmetros, pero el desarrollo de la
industria aeronutica hizo necesario que dentro de sus estndares se estableciera
un nivel de predictibilidad micromtrico, en tanto que la ciencia nuclear hizo que
estos valores se redujeran hasta en seis rdenes de magnitud ms.

An con las computadoras ms poderosas, se hizo necesario que los complicados procesos
de clculo fueran lentos, as que precisin y rapidez comenzaron a librar una batalla muy fina
para combinarse adecuadamente en las computadoras disponibles, sin comprometer la exactitud.
El anlisis de estabilidad de los resultados y mtodos numricos desarrollados se hizo cada vez
ms tan importante como el desarrollo de los mtodos numricos en s mismos.

Para saber ms

El impacto y simulacin de la propagacin de un terremoto ha sido un trabajo destacable para las computadoras CRAY
por parte de la UNAM , como la propia compaa que las produce anuncia orgullosamente en su portal.
Se puede estudiar la historia de los mtodos numricos estadsticamente y se encontrar que
en todos los campos descritos antes, alrededor del 90% de ellos han sido desarrollados en los
ltimos 70 aos. Si bien gran parte de los mtodos numricos estudiados en este libro no
corresponden a los desarrollados a partir de 1940, el 10% restante s surgieron como
curiosidades matemticas con baja aplicabilidad por no disponer en su momento de una
plataforma de implementacin como los son las computadoras. Pero son actualmente suficientes
para resolver la mayora de los problemas genricos de simulacin. Los mtodos numricos
desarrollados en estos ltimos 70 aos son aplicables cada uno a problemas altamente
especficos. Los albores del desarrollo de los mtodos numricos apenas pueden rastrearse en
la historia, y estn referidos a los tiempos anteriores a nuestra era con las civilizaciones egipcia y
rabe que resolvieron problemas que slo despus pudieron resolverse analticamente mediante
el lgebra (un caso particular es la solucin de ecuaciones de segundo grado antes de que se
conociera una frmula para resolverla) y que no perdieron vigencia por sentar las bases de
desarrollos para resolver problemas que hoy se saben algebraicamente irresolubles.

El comprender el uso de los mtodos numricos hoy requiere de disponer de las tres
habilidades asociadas con los elementos antes mencionados.

Por un lado la habilidad para comprender cmo un procedimiento numrico representa un


concepto matemtico que adems permite manipularlo alternativamente a los mtodos analticos
conocidos que poseen grandes limitantes para hacerlo; la habilidad y conocimiento de
implementar estos mtodos mediante la programacin de una computadora programable; y
finalmente, la habilidad de comprender y visualizar un problema fsico o tecnolgico mediante
estos mtodos a travs de los conceptos matemticos de anlisis aprendidos analticamente.
Este libro pretende introducir al estudiante hacia estos tres aspectos.

Este enfoque y su importancia pueden estar llenos de escepticismo. Por un lado quien no ha
empleado los mtodos numricos para resolver un problema complejo tendr hasta ahora dos
caminos ya conocidos a los que costar trabajo renunciar: por un lado el enfoque analtico que
permite resolver, mediante el anlisis matemtico, un problema simple sin demasiadas
complicaciones como se hace en la mayora de los cursos tericos de ciencia e introduccin a la
ingeniera y por otro lado, el camino de desarrollo experimental o tecnolgico, que permite
disear un proceso o prototipo sin grandes elementos de clculo previo. Es posible permanecer
ah por comodidad y sin grandes sobresaltos, pero el camino a la ciencia y tecnologa modernas
ni plantea problemas sencillos que regularmente se puedan resolver analticamente, ni permite el
dispendio ni imprecisin de un desarrollo experimental aproximado basado en el ensayo y error.
Nadie construye un avin sin haberlo simulado previamente, ni un acelerador de partculas sin
haber reproducido numricamente su implementacin y construccin.

Para saber ms

El desarrollo del poder de cmputo ha desarrollado el estudio de mtodos numricos, su eficiencia y complejidad. Al dar
clic aqu vers el sistema de cmputo JAGUAR, instalado en el laboratorio nacional de Oak Ridge, una de las
computadoras ms rpidas y robustas del mundo.

As, el desarrollo matemtico de tcnicas numricas alternas a las analticas, constituye el


cuerpo de estudio de los mtodos numricos y la cuantificacin de su eficiencia, al anlisis
numrico. De este modo, para cada elemento de conocimiento matemtico, se han desarrollado
tcnicas alternas que enfocan los problemas desde una perspectiva meramente numrica, las
cuales buscan aproximarse al nivel predictivo que poseen los mtodos analticos. Si bien
podramos basar el estudio de estas tcnicas en un enfoque descriptivo de las mismas y
complementariamente en un enfoque analtico sobre su comportamiento, la realidad de la
prctica profesional implica tambin el aprendizaje de su implementacin sobre plataformas
tecnolgicas ms o menos desarrolladas y basadas en la programacin. La razn es simple, una
creciente necesidad de precisin se alcanza tpicamente con un alto nmero de aplicaciones de
cada mtodo, lo que escala el nmero de operaciones asociadas y la complejidad de
desarrollarlas por tcnicas elementales de clculo. Es as como el empleo de autmatas
computacionales se vuelve necesario e imprescindible.

De este modo, esta obra tiene tres orientaciones. La primera es realizar una introduccin a los
mtodos numricos de problemas tpicos y bsicos, sobre todo aquellos asociados con el lgebra
y el clculo, los cuales son elementos bsicos en muchas de las aplicaciones analticas de la
ciencia y la tecnologa. La segunda se refiere a lograr transmitir no slo la comprensin de los
mtodos numricos, sino la forma en que estos se implementan a travs de lenguajes de
programacin y el dominio de algunos elementos de este proceso. Finalmente, la posibilidad de
emplear software especializado, que si bien simplifica el grado de dominio de los mtodos
numricos, deja an la construccin del anlisis numrico de un problema. Por estas razones,
este libro evoluciona a partir de la comprensin bsica de algunos mtodos sencillos y su
enfoque recursivo, mediante el empleo de Excel como herramienta primaria, para posteriormente
enfatizar la aplicabilidad de un primer lenguaje de presentacin y culminar con una perspectiva
dual en que el Mtodo numrico es implementado sobre una plataforma robusta que soporta la
visualizacin o bien mediante comandos predefinidos que se emplean en conjunto para el
anlisis.

El tema est orientado en primera instancia al aprendizaje de la programacin en un


lenguajes como C++ y Python, afn al integrado en Mathematica, pero haciendo un breve nfasis
en Excel con la finalidad de que los lectores inicialmente comprendan la metodologa detrs de
los mtodos numricos clsicos. El empleo de la herramienta Mathematica tiene como intencin
doble, la disposicin de herramientas para la visualizacin y la simulacin, que sern de utilidad
en los proyectos integradores del libro y, por otro lado, la solucin de escenarios en la
metodologa de Aprendizaje Basado en Problemas, los cuales sern integrados en cada captulo
del libro. Adicionalmente, el empleo de Mathematica permite aprender los comandos del software
moderno para simulacin y clculo matemtico, los cuales en la vida diaria pueden sintetizar la
aplicacin futura de los conceptos del libro, pero sin pasar por alto la necesidad de la
programacin para visualizar y realizar clculos en ingeniera.

E l campo de los mtodos numricos es muy basto y busca comprender procedimientos


alternos para resolver problemas matemticos simples, pero que no pueden resolverse
analticamente. Por ejemplo, la solucin de una ecuacin, el clculo de una integral, la solucin
de un problema de optimizacin o la solucin de una ecuacin diferencial. An ms, hay una gran
variedad de mtodos numricos especficos para cada tipo de problema, que atienden no slo a
su eficiencia relativa, sino al tipo especfico de elementos matemticos que intervienen. Otro
aspecto adicional es el tipo particular de problema a resolver, ya que integrar diferentes mtodos
numricos en una secuencia determinada, requiere de insumos o los genera en una forma
especfica que restringe su uso.

Un problema clsico y probablemente conocido por el lector se ilustra en la Figura 1.1,


corresponde a un oscilador de constante de restitucin y longitud sin deformacin, sujeto a
una resistencia lineal a la velocidad con el medio con coeficiente y una fuerza armnica externa
sin( ). Este problema es normalmente estudiado en los cursos de ecuaciones diferenciales
o en un curso de vibraciones.

La descripcin del movimiento de un oscilador sujeto a fuerzas armnicas externas y


resistencia, es un problema clsico que analticamente no admite soluciones ante variaciones hacia modelos
ms realistas. La solucin posee una amplitud mxima estacionaria que depende de la frecuencia de la fuerza
armnica externa, .

La ecuacin que describe el movimiento es:

cuya solucin por mtodos analticos (coeficientes indeterminados y variacin de parmetros,


por ejemplo) es:
donde A es una amplitud, y son fases asociadas las condiciones iniciales de posicin y
velocidad. Similarmente:

La solucin exhibe un trmino transitorio que se anula para tiempos grandes y un trmino
armnico estacionario, que posee un mximo que puede calcularse por mtodos analticos
habituales para y es til para analizar la resonancia del sistema, el cual es:

para:

Hay varios procedimientos analticos que se llevan a cabo aqu. El primero de ellos y que est
implcito en varias partes del anlisis es la posibilidad de resolver o despejar en una ecuacin
cualquiera de sus parmetros. Posteriormente, el obtener la solucin analtica de una ecuacin
diferencial y finalmente el poder resolver un problema de mximos y mnimos mediante las
tcnicas habituales del clculo diferencial. Una variacin del modelo matemtico para la fuerza
armnica , puede hacer inviable la aplicacin de dichas tcnicas analticas, las cuales
debern sustituirse por tcnicas numricas. Aprender cmo combinarlas para resolver problemas
de anlisis completos es parte del objetivo de este libro.

Para saber ms

La resonancia es un fenmeno o conjunto de fenmenos relacionados con movimientos peridicos o cuasi-peridicos en


que se genera reforzamiento de la oscilacin al someter el sistema a perturbaciones externas de una frecuencia
determinada que se relaciona con las frecuencias naturales del propio sistema. Este fenmeno puede ocurrir
mecnicamente, acsticamente, electrnicamente o incluso a nivel molecular o atmico. El estudio de las frecuencias de
resonancia es un tema de inters en el estudio de estabilidad de los sistemas. En un auto por ejemplo, el sistema de
amortiguamiento puede estar mal diseado al inducir resonancia sobre el auto cuando a velocidades tpicas ste atraviesa
por imperfecciones en el pavimento, por ejemplo unos vibradores o un camino de terracera.

Gran parte de los mtodos numricos presentados aqu corresponden a mtodos clsicos
iterativos. En ellos se busca la repeticin de un proceso dirigido, lo cual mejora la exactitud del
resultado. Existe todo un campo de estudio relacionado con esto en matemticas, la teora de la
estabilidad, bajo la cual se sustenta la implementacin de mtodos tericamente convergentes a
la solucin esperada sobre sistemas de cmputo imperfectos, que poseen precisin limitada y
errores de redondeo. Esta caracterstica es la que permite obtener resultados equiparables con
los mtodos analticos hasta cualquier precisin requerida como ilustra la Figura 1.2 en donde se
esquematiza el proceso numrico unitario, que considera datos de entrada, que sirven como
insumo del mtodo numrico propiamente dicho, el cual incluye un criterio para decidir la salida
del proceso iterativo a travs de la entrega de un resultado mediante datos de salida. Aunque
este proceso, debe entenderse en la prctica profesional, dentro de una secuencia de clculo,
dentro de la descripcin de los mtodos se har referencia a procesos numricos unitarios,
dejando la integracin a algunas aplicaciones propuestas en la seccin correspondiente.

Esquema de operacin de un mtodo numrico en la resolucin de un problema. El proceso


numrico unitario se encuentra encerrado en el recuadro punteado.

A lo largo de la descripcin de los mtodos numricos especficos, se emplear esta


terminologa en relacin de procesos numricos unitarios, datos de entrada y datos de salida, lo
cual favorecer la comprensin, identificacin y construccin de algunos elementos presentes en
los mismos. Debe tenerse en mente que todo mtodo numrico no busca slo la entrega de un
resultado o salida, sino que a la par cuida la exactitud de dichos resultados, a un nivel paralelo al
proceso descrito en la Figura 1.2, por lo que la descripcin de los mismos ser incluida
paralelamente.

Para saber ms

A diferencia de los mtodos analticos directos en donde las soluciones se obtienen en forma cerrada y funcional, los
mtodos iterativos, particularmente los de las matemticas computacionales, persiguen resolver un problema (una
ecuacin o sistema de ecuaciones) mediante aproximaciones sucesivas, empezando de una estimacin inicial. Estos
mtodos de utilidad para resolver problemas complejos con gran nmero de variables, en los cuales es imposible obtener
una solucin cerrada o en la que esta tendra un alto costo temporal o computacional.

D ado el inters de implementar tecnolgicamente los mtodos numricos que se estudiarn,


al final de cada mtodo estudiado se presentar su implementacin en diferentes
plataformas. De esta manera el lector podr automatizar y comprender el mtodo en cuestin,
tanto como la manera de trabajar. En esta seccin se describirn diferentes herramientas con las
que se trabajar y la intencin de hacerlo.

Excel es una herramienta de fcil disponibilidad, aunque no se apega del todo al esquema de
aplicacin en el sentido de los lenguajes de programacin. Sin embargo, es una herramienta que
permitir al lector introducirse a la comprensin primaria del clculo numrico visualizando el
proceso y sus elementos intermedios, as como la implementacin sencilla, aunque no del todo
prctica dado el manejo de un gran nmero de datos y celdas. Su inclusin en los mtodos
introductorios atiende ms a una cuestin didctica sobre la comprensin de la forma interna de
trabajo de stos, que a una promocin de su uso.

En una aplicacin directa de Excel se emplearn columnas para guardar un tipo particular de
variable, ya sean de entrada, intermedias o de salida, y cada paso iterativo del mtodo se
representar en cada rengln, como ejemplifica la Figura 1.3 con el mtodo de biseccin para
resolver ecuaciones no lineales de una variable.

Ejemplificacin del mtodo de biseccin en Excel.

No est en el alcance de este libro mostrar al lector el empleo de Excel, y se presupone un


conocimiento intermedio del mismo para las implementaciones de algunos mtodos iniciales en
los que este paquete ser usado para una implementacin didctica de los mismos. No se
requerirn conceptos adicionales a la referencia de celdas, el uso de funciones matemticas y
lgicas, as como la construccin de grficos.
La implementacin real de un mtodo numrico se hace mediante el uso de lenguajes de
programacin, como Fortran y C++, que son los lenguajes tcnicos ms difundidos. Se pueden
considerar otros como Java y Python, cuyo desarrollo actual los posiciona como lenguajes
sencillos. Mucho del software comercial que se emplea en ingeniera comprende programas como
Mathematica y Matlab, que incluye ya comandos de aplicaciones numricas y simblicas. A lo
largo de este libro emplearemos ambas rutas, primero el del lenguaje de programacin, para
posteriormente emigrar a la programacin propia dentro del software comercial y finalmente al
conocimiento de comandos existentes en relacin a tcnicas numricas. Este ltimo enfoque no
pretende desincentivar la programacin, ya que an con el empleo de comandos de este tipo de
software, la realidad es que en muchas ocasiones, sobre todo cuando se resuelven problemas
complejos, es preferible construir una programacin propia que puede ser controlada por el
usuario o bien alternar entre programacin propia y el empleo de dichos comandos.

Existen diversas formas para programar. Algunas ms similares a la forma secuencial de


realizar clculos y operaciones por un ser humano y otras ms ptimas para un lenguaje de
computadora y ms eficientes al manipular simultneamente los elementos de clculo.

La programacin estructurada sigue el primer enfoque, haciendo ms clara la comprensin de


una estructura de comandos de programacin pues refleja la realizacin de un clculo a la vez,
como lo hara un ser humano. En este tipo de programacin, la gran mayora de las tareas
pueden realizarse mediante un conjunto reducido de comandos para secuenciar, iterar y
seleccionar informacin. Con estas estructuras se pueden construir o programar mdulos,
segmentos o subrutinas que ejecuten tareas especficas y que puedan interactuar para realizar
tareas ms complejas (Dahl, Dijkstra & Hoare, 1972).

Para saber ms

La programacin estructurada es un enfoque para escribir programas de cmputo empleando nicamente tres
estructuras: secuencia, seleccin e iteracin; siendo innecesaria la transferencia incondicional.

Alternativamente, la programacin funcional es una programacin que se basa en el uso de


funciones aplicadas a valores, sin manejar datos intermediarios o de estado. Enfatiza as, la
aplicacin de funciones, en contraste con la programacin imperativa, que genera cambios de
estado. Aunque el proceso no sigue las pautas de la programacin estructurada y por ello no
reproduce las acciones de clculo clsicas, una vez que se comprende la filosofa de
programacin, sta resulta mucho ms esbelta y ptima.

Para ilustrar esquemticamente estos conceptos, la Figura 1.4 muestra esta concepcin para
el primero de los mtodos numricos que se estudiar, el mtodo de biseccin. Este mtodo se
emplea para determinar el valor aproximado donde una funcin f(x) se anula, y consiste en dar
dos valores aproximados que limiten a cada lado a la raz, con lo que se calcula su valor medio y
posteriormente este valor se sustituye por alguno de los valores iniciales de manera que sigan
cumpliendo con acotar a la raz.

Esquematizacin del mtodo de biseccin, desde el punto de vista de la programacin


estructurada y las definiciones equivalentes de una programacin funcional.

El proceso se repite varias veces para mejorar la acotacin de la raz o dar un valor mejor a
travs del punto medio de ambas cotas. Esta descripcin corresponde a una programacin
estructurada donde a travs de un proceso iterativo se va obteniendo la aproximacin mediante
la repeticin del mtodo n veces. En forma alternativa, si se definen dos funciones: g que
bsicamente constituye la regla de sustitucin de (a,b) por nuevos valores (a,b) y h que
constituye la aplicacin repetitiva de una funcin sobre una variable, n veces. As, h(g(f,a,b),n)
constituye la aplicacin funcional del algoritmo. Posteriormente se analizar detalladamente esta
comparacin con la programacin hecha sobre Mathematica al estudiar su sintaxis.

Ambos tipos de programacin sern incluidos en el desarrollo de los mtodos, principalmente


en forma inicial, aunque gran parte de estos son, en primera instancia, mejor comprendidos bajo
la programacin estructurada.

En esta seccin ser presentada una introduccin sobre la forma en que se emplear Python
y Mathematica en este libro, as como una revisin superficial de la sintaxis. No se pretende
agotar, por supuesto, el tema de la sintaxis, las libreras complementarias y otros aspectos de
construccin de ambas herramientas, para lo cual se recomienda la revisin de bibliografa
complementaria.
Python es un lenguaje de programacin libre, moderno y sencillo, posee cierta orientacin
cientfica al permitir programacin funcional y el manejo de nmeros complejos. En los aos
recientes se ha ubicado como un candidato para el aprendizaje de un primer lenguaje de
programacin. La razn de incluirlo aqu es sensibilizar al lector sobre el trabajo bsico de
programacin sin recurrir a software especializado, no obstante que la visualizacin de los
resultados no es fcilmente disponible a travs de software de graficacin libre para este
lenguaje. Su inclusin en este libro se centra entonces en mostrar un ambiente de programacin
real pero bsico, sobre el que se pretende obtener resultados numricos, sin un procesamiento
posterior.

PARA SABER MS

Python es un lenguaje de programacin de alto nivel que se basa en una sintaxis muy limpia de cdigo legible. Es
multiparadigma pues soporta orientacin a objetos, programacin imperativa y programacin funcional.

Python puede obtenerse libremente del sitio de su distribuidor [1], el cual puede descargarse
e instalarse sin muchas dificultades. Es preferible descargar algunas de las versiones 2.x
(particularmente la 2.4 a 2.7), las cuales son ms estables y se conforman de una sintaxis
consistente. La versin 3.1 ha implementado diversos cambios y muchas libreras necesarias
estn an en desarrollo, por lo que si el lector pretende emplearla puede encontrar
incompatibilidades con las construidas para las versiones 2.x. Aqu se har referencia en todo
momento a la versin 2.5, pero en general lo dicho es aplicable a las versiones 2.4 a 2.7.

Al instalarse, se puede trabajar ya sea desde una interfaz construida para el sistema
operativo DOS o bien una interfaz ms atractiva para Windows denominada IDLE (Python GUI),
que al abrirse presenta una vista como la mostrada en la Figura 1.6, denominada Shell y que
para fines de programacin de mdulos permite abrir nuevas ventanas similares cuya ejecucin
se realiza y visualiza en la pantalla Shell. En este libro se trabajar a partir de esta ltima.

Shell de Python y una ventana con un mdulo de programas que incluye los mtodos numricos
de biseccin, Newton-Raphson y punto fijo. En el Shell se muestra la ejecucin de la funcin f(x) y de la
bsqueda de una de sus races mediante el mtodo de Newton-Raphson.

En Python es posible ejecutar comandos desde el Shell, o bien construir programas en una de
las ventanas de la interfaz y ejecutarlas en el Men, bajo Run y Run Module, lo cual incluye en
los comandos actuales los que aparezcan definidos en ese momento. La programacin en
Python requiere del lector cierta preparacin previa, por lo que se recomienda la lectura de un
texto introductorio (Budd, 2009; Gaddis, 2009) para comprender su funcionamiento bsico. En lo
sucesivo se asumir que el lector tiene cierto dominio sobre el uso de Python para comprender la
sintaxis de comandos bsicos y aqu slo se presentarn aspectos fundamentales para los fines
de este libro.

Los comandos bsicos para realizar operaciones son:

correspondientes a la suma, resta, multiplicacin, divisin y exponenciacin respectivamente.

La inclusin de funciones y constantes matemticas puede hacerse desde el Shell


ejecutando el comando import math, con lo que algunas constantes y funciones pueden ahora
ser usadas: math.sin, math.cos, math.tan, math.sqrt, math.pi, etc. Para considerar algunos
comandos de programacin estructurada similares a los que se emplearn en , se
han preparado algunos ejemplos paralelos para presentar los comandos de seleccin: if, y de
iteracin: while y for, exactamente los que all sern considerados.

Para ayuda del lector se ha preparado el archivo Python 1.1 incluyndolos. Un ejemplo de la
ejecucin de esta sintaxis y de estos comandos, puede apreciarse en la Figura 1.6. Ser
entonces recomendable que el lector vuelva y programe el mtodo de biseccin que aparece en
la figura 1.5.
Shell de Python y una ventana con un mdulo de programas que muestra el empleo de algunos
elementos de sintaxis y comandos de programacin estructurada. En el Shell se muestra la ejecucin de las
funciones definidas en la ventana, una vez que desde esta se han ejecutado en la opcin Run y Run Module en
el Men. Obsrvese el reinicio del Shell al hacer esto. El lector debe probar estas funciones desde el archivo
Python 1.1 y posteriormente construir ejemplos propios.

es un paquete de cmputo simblico, que tambin permite el manejo numrico y


que implementa tambin tcnicas y comandos de programacin. Su inclusin en este libro es de
acompaamiento, ya que una vez que el alumno pueda implementar algunos mtodos numricos
en Excel y pueda programarlos en Python, la meta es realizar la programacin en ,
ya que le permitir en forma ms simple visualizar los resultados a travs de los comandos y
elementos grficos que contiene. Actualmente est disponible la versin 8, pero para las
aplicaciones consideradas, cualquier versin a partir de la 6.0 ser til.

est constituido por tres programas bsicos, y en la versin ms reciente


algunos ms han sido aadidos. El Notebook es el programa interfaz con el usuario, el Kernel es
el programa que realiza los clculos y ejecucin de comandos, en tanto que el Mathlink regula la
interaccin entre ellos y del Kernel para con otras aplicaciones externas desde las que se podra
acceder con Mathematica. La operacin de Mathematica es a travs de celdas de comandos,
desde las que se pueden ejecutar comandos y realizar clculos, que son procesados por el
Kernel mediante las teclas <Shift+Enter>.

PARA SABER MS

M athematica es un paquete computacional de clculo simblico, escrito en lenguaje C++ orientado a objetos, lo que le
permite realizar manipulaciones simblicas. Es soportado por diversos sistemas de hardware: PCs, M acintosh,
Sistemas Unix. Su desarrollo inicia en los setentas, conocido como SM P y desarrollado por Stephen Wolfram y lanzado
comercialmente en 1988 como M athematica.
La Figura 1.7 muestra un Notebook con algunos comandos aislados, que incluyen la
definicin de un pequeo programa o definicin de un nuevo comando para calcular la raz de
una funcin mediante el mtodo de biseccin, por comparacin con la Figura 1.6 para Python.
Es deseable, para la lectura del material, que el lector tenga un conocimiento bsico, al
menos al nivel de ejecucin, de comandos por celdas, aunque dado el nivel de uso del
paquete, se dedicar una seccin para presentar la sintaxis necesaria.

Notebook de Mathematica mostrando algunos clculos por celda y la definicin de un programa


para el mtodo de biseccin y su ejecucin para encontrar numricamente una de sus races.

Se har ahora un breve recorrido por algunos elementos de sintaxis de Mathematica, para lo
que se ha preparado el Notebook 1.1 conteniendo las secciones y ejemplos descritos. Es
necesario que el usuario disponga de una versin de Mathematica adecuada para ejecutarlo.
Los ejemplos se despliegan dando doble click a las celdas de la derecha.

Es recomendable que el lector se familiarice con el men del Notebook, el cual en primera
instancia es similar a un procesador de textos, para las opciones File, Edit e Insert, con los que
se puede abrir, salvar e imprimir documentos. Igualmente es posible insertar elementos o
importarlos. Mathematica funciona a partir de celdas, las cuales se generan del lado derecho al
oprimir la tecla <Enter> sobre la pantalla del Notebook. Dentro de ella pueden escribirse ahora
comandos de clculo y operaciones como las que veremos. El usuario puede definir diferentes
estilos de celda (para fines de susceptibilidad de interaccin con el Kernel) desde las opciones
Format y Cell, puede tambin escogerse el tipo de letra, tamao y colores, dar formatos definidos
al Notebook y a los encabezados. La opcin permite manipular los grficos de
diferentes formas. En el usuario puede diferir, interrumpir o cerrar la operacin del
Kernel, cuyo dominio puede ser importante en caso de generar comandos o programas que
contengan errores que al ejecutarse puedan ciclar la mquina. En la opcin el usuario
encontrar algunas opciones para escribir algunos comandos matemticos en su notacin
habitual. Aqu no se promover el uso de las paletas de edicin en virtud de que se mantiene una
proximidad a la forma de trabajo con los lenguajes de programacin, pero es claro que para
clculos directos estas son de gran utilidad para no tener impedimento por desconocimiento de la
sintaxis. En la opcin el usuario podr abrir y administrar varios notebooks a la vez, los
cuales en una sesin dada comparten el uso del Kernel. En la opcin el usuario dispone de
un centro de documentacin y un libro virtual, el cual por mucho es recomendable en relacin a
otros textos, es importante que el lector se familiarice con ellos.

Una vez que el lector se haya identificado y familiarizado con la apertura de celdas y su
escritura en ellas, puede considerar los ejemplos del Notebook 1.1 y/o crear ejemplos propios.
Debe recordarse que una vez escrito el comando a evaluar en la celda, la interaccin con el
Kernel es a travs de la combinacin de teclas <Shift+Enter>. Varios comandos pueden ser
incluidos en una celda, los cuales sern ejecutados secuencialmente en ese orden. El primer
paso es tener familiaridad con los smbolos de operacin aritmtica: +, -, * <Space>, / y ^,
correspondientes a la suma, resta, multiplicacin, divisin y exponenciacin respectivamente.
Ntese que para la multiplicacin existirn diversas opciones, tanto * como <Space> la indican, lo
que implica tambin que en la sintaxis de no son necesarios los espacios. An ms,
para la multiplicacin de un nmero por una variable alfabtica, no es necesario ninguno de
estos smbolos, en virtud de que los nombres permitidos para variables jams pueden iniciar con
nmeros. Desde aqu puede apreciarse la existencia de variables que como Pi y E (para ye
respectivamente) retornan valores idnticos, o que las operaciones regresarn resultados
racionales, en virtud de la conformacin de como paquete de cmputo simblico. El
uso del comando N puede ayudar a transformar estos resultados en nmeros de punto flotante o
decimales, cuando estos son englobados por ste. El uso de enteros y nmeros de punto
flotante en los clculos hace que pueda verse forzado a trabajar en forma numrica.

Ya se vio en el prrafo previo algunas diferencias entre la operacin simblica y numrica de


. El usuario debe cuidar y considerar esto al trabajar con mtodos numricos, pues
puede construir programas que operen bajo algunos de estos preceptos. Si lo que interesa al
usuario es slo el resultado numrico, una operacin simblica inadvertida podra hacer que
demore demasiado en el clculo, pues buscar entregar un resultado analtico. En
las primeras aplicaciones de los mtodos a estudiar se profundizar en este aspecto. En el
Notebook 1.1 se incluyen algunos otros ejemplos de estas diferencias.

La escritura de funciones y comandos predefinidos en es relativamente intuitiva.


Para las funciones matemticas comunes se emplean los comandos habituales iniciando siempre
con mayscula: Sin, Cos, Tan, Sec, Csc, Cot, ArcSin, ArcCos, ArcTan, Sinh, Cosh, Tanh,
Exp, Log, etc. Los argumentos se escriben a continuacin entre corchetes, [ ], y su uso est
restringido a ello. En este ltimo caso, para Log, un argumento hace referencia a la funcin
logaritmo natural, en tanto que dos lo hacen a cualquier otra funcin logartmica, siendo el
primero la base del logaritmo en cuestin y el segundo el argumento propiamente dicho,
separados por coma. Otras funciones no tan habituales normalmente emplean su nombre
completo en ingls: Sqrt, Mean, Integrate, StandardDeviation, etc. Hay pocas excepciones a
esta regla, como la derivada, D. En caso de palabras compuestas ambas inician con mayscula.
Lo mismo ocurre con comandos propios de : Plot, ListPlot, Manipulate, Module,
etc. La sintaxis de estos y otros comandos puede ser revisada en el centro de documentacin
bajo la opcin .

Existen diferentes tipos de smbolos para indicar delimitacin. El primero ha sido ya estudiado
y corresponde a los corchetes, [ ], reservados para indicar argumentos estrictamente despus
de un comando de o alguno otro definido por el usuario. En caso de contener varios
argumentos el smbolo de separacin es la coma: , . Los parntesis, ( ), se emplean para
jerarquizar operaciones, por ejemplo, la suma o resta que ante la exponenciacin o el producto
poseen menor jerarqua. Las llaves, { }, indican la construccin de una lista o intervalo. El empleo
de dobles corchetes, [[ ]], indica la extraccin especfica de un elemento de una lista, separando
por comas los diferentes niveles de la misma en caso de ser necesario. Para este ejemplo se ha
empleado el smbolo = para asignar una lista, una variable que facilita su referencia. Este smbolo
se estudiar a continuacin. Finalmente, los smbolos (* y *), se emplean para delimitar
comentarios dentro del Notebook, los cuales son inocuos al interactuar con el Kernel.

Los smbolos = y := corresponden a la asignacin de valores a variables, que representan


nombres cortos para los elementos que albergan. El primero de ellos hace una asignacin
inmediata, en tanto que el segundo lo hace de forma diferida al momento de emplearlo, lo cual
permite una actualizacin permanente del valor que contiene. Esto es de utilidad en la
programacin, pues permite omitir lneas de programacin destinadas a actualizar variables de
estado. El smbolo == se emplea como elemento de igualdad en un sentido matemtico, por
ejemplo, al construir una ecuacin determinada.

Cuando se desea definir una funcin o comando propio en se emplea el signo


de asignacin (= :=), anteponiendo como variable el nombre dado (no necesariamente debe
iniciar con mayscula como para los comandos del paquete) y sus variables deseadas (las
necesarias y las cuales se emplean como referencia y posteriormente pueden cambiarse o
sustituirse), empleando el guin bajo despus de cada una de ellas (lo que indica que se est
definiendo una funcin o comando).

Existen una gran variedad de grficos que se pueden construir en . Buscar


agotar su descripcin est fuera del alcance del libro, aunque estos elementos constituyen
fuentes de representacin en muchos de los mtodos numricos que se estudiarn o de
problemas potenciales que se analicen con procedimientos numricos. Se describen a travs del
Notebook 1.1 los grficos siguientes.

El primer tipo de grfico se ha analizado ya en otros ejemplos y corresponde al de una funcin


de una variable en donde se seala sta y el intervalo de graficacin, Plot. En general esta ser
la sintaxis bsica de los comandos de graficacin, pero los comandos poseen argumentos como
se muestra en el Notebook 1.1. Se pueden graficar varias funciones a la vez mediante el empleo
de listas de funciones. El segundo tipo es el de una funcin de 2 variables que sigue una pauta
similar a la anterior, Plot3D. Un tercer tipo corresponde a una grfica construida a partir de
puntos mediante el comando ListPlot (ntese que se emplea el comando Table para generar la
lista de datos, este comando se tratar posteriormente con profundidad), ya sea que se quiera
que estos se unan o no mediante una lnea. El comando ParametricPlot permite graficar una
funcin vectorial cuando se especifica en una pareja dos funciones para y escritas en
trminos de un tercer parmetro. Generalizaciones a tres dimensiones pueden hacerse mediante
el comando ParametricPlot3D donde se especifican , y a travs de un parmetro para
conformar una lnea, o de dos parmetros para generar una superficie.

Ya se ha visto como construir una lista de diferentes niveles. Sin embargo, es conveniente
poder hacerlo mediante comandos automticos como se hizo en el ejemplo previo para ListPlot.
Un comando til es el comando Table, que permite generar una lista de tamao y estructura
uniforme si se dispone de una frmula para ella. Su sintaxis es simple, se coloca como primer
argumento el tipo de elemento a incluir en la lista a travs de su descripcin analtica, la cual de
pende de uno o ms parmetros, posteriormente se especifica el rango de cada parmetro
indicando el inicio, fin e incremento del mismo. Por cada parmetro considerado se generar un
nivel en la lista. Algunos comandos como Join, Append y Prepend permiten unir y agregar
elementos a las listas ya construidas. El comando Flatten permite reducir niveles de las listas al
eliminar parntesis internos al nivel deseado. Se incentiva al lector a probar e investigar el uso y
sintaxis de otros comandos de manipulacin de listas como Reverse, Partition, Transpose y
Drop. Esta familia de comandos es de inters en virtud de que los problemas en mtodos
numricos almacenan convenientemente sus resultados en variables con estructuras de listas y
su manipulacin es importante.

Los comandos elementales de programacin que consideraremos aqu corresponden a un


tipo de programacin estructurada. El usuario puede consultar los ejemplos en el Notebook 1.1,
los incluidos en el centro de documentacin o rpidamente dentro de un notebook cualquiera.
Tambin pueden consultar la sintaxis de cualquier comando anteponiendo el smbolo ? a
cualquier comando predefinido para obtener una retroalimentacin directa en una celda al
oprimir <Shift+Enter>. If, es un comando que permite seleccionar entre dos opciones booleanas
complementarias, dejando una alternativa para el caso indefinido en cuanto a valor de verdad, su
sintaxis es:

Alternativamente, Which es una generalizacin de seleccin que permite evaluar diferentes


condiciones complementarias a la vez y ejecutar acciones correspondientes:

Debe observarse que se mencionan acciones en plural, la razn es que si bien el espacio
corresponde a una variable, en varias de ellas pueden separarse por el smbolo ; y
sern consideradas como una sola. En este mismo sentido el smbolo ; permite secuenciar
acciones a la vez que inhibe las salidas de los comandos incluidos. Por ello mismo cuando un
comando en una celda se ejecuta con ; al final, ninguna salida ser obtenida. En relacin a los
comandos de iteracin, el ms general es While, el cual posee la sintaxis:

de este modo si la resulta verdadera, las ejecucin de las se


repite hasta que la resulte falsa y su ejecucin termine. Igualmente For, es un
comando ms estructurado pero menos general, pues el nmero de repeticiones est en general
determinado por un contador interno (aunque en su interior el valor del mismo puede alterarse y
generar repeticiones no predeterminadas del todo). Su sintaxis es:

el smbolo < puede ser sustituido por >, <= >= si se requiere. Igualmente i=i+
puede ser sustituido por: i=i- , para disminuir el valor del contador i, y tambin por
i+= y i-= respectivamente. Otras alternativas son: i++ i--
respectivamente, que corresponden al caso en que =1. Finalmente Module es un
comando que permite secuenciar y englobar acciones para construir un programa o subrutina, el
cual puede ser asignado a un nombre de variable o funcin corto con argumentos mediante la
definicin de una funcin, su sintaxis es:

En la lista de variables locales se colocan aquellas variables internas que quieren ser
eliminadas al trmino de la ejecucin de Module.

Algunas operaciones lgicas sern necesarias, en particular And y Or. Estos comandos
poseen una forma funcional como todos los comandos de : And[
] y Or[ ]. Alternativamente puede emplearse: 1
&& 2 && y 1 || 2 ||, respectivamente.

a) Programacin estructurada en Mathematica del mtodo de biseccin, y b) programacin


funcional del mismo mtodo. En el primer caso se define una instruccin con variables de entrada que emplea
variables de estado para buscar mejores aproximaciones a la raz de la funcin f(x), en tanto, en la segunda se
define una funcin para el proceso bsico y una funcin de aplicacin sucesiva de esta sobre los parmetros
de entrada: f, a y b.

Con estas especificaciones, ahora puede hacerse una proposicin para el mtodo de
biseccin tratado. La figura 1.8 muestra comparativamente la programacin en de
los dos enfoques de programacin, estructurada y funcional para el mtodo de biseccin. El
primer enfoque emplea comandos secuenciados, de iteracin y seleccin, repitiendo el proceso
como lo hara una persona. El comando SetPrecision se explicar despus. En el segundo
caso, ntese la simplicidad una vez que se identifican las funciones relevantes del problema
como indica la Figura 1.4. Como ah se dijo, ( ( , , ), ) constituye la aplicacin funcional del
algoritmo.

En aadidura a los Nootebooks que acompaan al texto, se incluirn algunos elementos


interactivos denominados Demostraciones, para lo que se recomienda al lector descargar el
Player 7 de [2], para poder visualizarlos, en caso de no tener una versin de
adecuada. El Player permite visualizar los Notebooks (sin ejecutar comandos) y
manipular las Demostraciones.
Los tres elementos bsicos a considerar encualquier mtodo numrico, la eficiencia del mismo,
la exactitud numrica de la representacin computacional y los errores derivados en el proceso, ya sea por
truncamiento o redondeo.

A l trabajar con mtodos numricos hay diversas limitantes para lograr el objetivo planteado de
alcanzar un resultado hasta un exactitud planteada. Dichos factores introducen errores y
limitaciones en el clculo y deben ser considerados. Por un lado, la introduccin de datos
imprecisos induce , los cuales difcilmente pueden superarse a menos que
tengan una pauta definida y que quien dispone de ellos lo sepa. En este texto no se
considerarn este tipo de errores. Su estudio pertenece al anlisis experimental, ms que al
anlisis numrico. La presencia de diferentes errores es trasladada a diferentes etapas del
anlisis y es denominada . Este tipo de error puede cuantificarse a travs del
anlisis numrico si cada mtodo tiene una estimacin de su propio error siguiendo tcnicas
analticas sobre el mtodo numrico en s o bien aproximaciones numricas a este. A lo largo de
la descripcin de los mtodos consideraremos ambos anlisis. La propagacin a lo largo de un
estudio puede determinarse mediante tcnicas estadsticas o experimentales si los errores son
porcentualmente pequeos. Ahora, cules son los errores propios de un mtodo numrico? Por
un lado, dado que se emplean computadoras para realizar y automatizar estos mtodos, se habla
de un cuando dentro de los clculos se emplean representaciones
numricas de funciones analticas que pueden tener una representacin limitada o que debe ser
controlada para alcanzar precisiones crecientes. Tanto como Python poseen
controles sobre ambos aspectos, aunque pondremos nfasis particular en el caso del primero
por ser la herramienta meta en este libro. En forma anloga, un es aquel
introducido por tener que disponer de representaciones de precisin finita en los clculos y su
imperfeccin para aproximar el ltimo dgito de la representacin de un nmero.

Una forma de entender estos ltimos puede verse a travs de la realizacin de algunos
clculos elementales como la suma o la multiplicacin de un par de nmeros conocidos slo
hasta cierta precisin, indicada por los puntos suspensivos:
en donde se realiza la suma y multiplicacin de dos nmeros con precisin dada, no
necesariamente igual, mostrando as que la precisin resultante depende de la de los nmeros
de entrada y es en el mejor de los casos marcada en la posicin de la lnea punteada. Si bien es
posible deducir reglas para la precisin heredada de cada operacin numrica realizada, dar
seguimiento de ello en procesos numricos con millones de operaciones resulta inviable. Baste
decir que en general, la imprecisin de la representacin de los nmeros induce errores
crecientes, por lo que la bsqueda iterativa de los mtodos por mejores resultados compite todo
el tiempo con esta limitacin. Por lo tanto, para obtener una exactitud numrica determinada en
un procedimiento de clculo requerir un manejo de dgitos ms exactos que la meta para limitar
este comportamiento.

No obstante, el manejo de nmeros de alta precisin es computacionalmente ms caro.


Adicionalmente, otra limitante es la de los mtodos. En ocasiones algunos mtodos
deben tener un alto nmero de iteraciones para obtener apenas unos cuntos dgitos ms de
exactitud numrica, lo cual resulta indeseable.

Un rea del anlisis numrico es la complejidad, que cuantifica en trminos del nmero de
iteraciones el orden del nmero de operaciones a realizar, el cual se asume proporcional al
tiempo de ejecucin y por tanto a la . Es as como esta terna: errores, precisin y
exactitud estn estrechamente ligados en la implementacin y estudio de los mtodos numricos
(Figura 1.9).

Para fines de cuantificacin de errores consideraremos dos medidas. Por un lado, el


de una aproximacin numrica x se define como:

Este error corresponde a la aproximacin de la sima iteracin. Sin embargo, este error si
bien puede indicar la cifra decimal hasta la que es correcta , no indica del todo el nivel real del
error en relacin al valor a estimar, . Para ello se define el :
el cual indica en trminos porcentuales, 100 %, el grado de exactitud. Uno puede percatarse
que estas estimaciones no son tiles si no se conoce el valor x a aproximar numricamente, lo
cual en aplicaciones reales no ocurre. Sin embargo, dadas las caractersticas iterativas de los
mtodos numricos, una forma de aproximar es mediante una mejor aproximacin del mismo
mtodo, , o posterior en la frmula para . El clculo de estos errores dentro de los mtodos
numricos a estudiar ser de vital importancia para cuantificar su exactitud.

Un resultado que ser de vital importancia para la cuantificacin terica de los errores de
diversos mtodos ser el teorema de Taylor, un resultado importante del clculo diferencial. Este
teorema establece que para toda funcin f(x) con derivadas continuas y bien definidas en un
intervalo [a, b], y dados dos nmeros, x y xr en este intervalo, existe un nmero c entre ellos tal
que:

Este teorema tambin ser til expresado en la forma:

Este ltimo trmino es conocido normalmente como el , ya que permite


visualizar una cota para la diferencia entre el valor de una funcin en un punto y su respectiva
aproximacin en serie de potencias truncada hasta orden . Si el valor de (n+1)( ) en [ , ] est
acotado entonces siempre existe tal que:

En lo sucesivo se ver tanto que el desarrollo en serie de potencias de una funcin ser un
elemento recurrente de algunos mtodos numricos y por ello la restriccin de que las funciones
involucradas y sus derivadas sean continuas en intervalos que contengan a la solucin buscada.

Otro aspecto importante es el que en varios mtodos numricos se consideran


aproximaciones de orden diverso a una expresin funcional, por lo que la variacin entre los
valores exactos y los aproximados poseen en los clculos errores que se pueden cuantificar
como:

donde es el orden de la aproximacin. Al emplear estas aproximaciones los errores sern


proporcionales a este orden de magnitud pues son los trminos remanentes del clculo. Se
emplear este resultado en diferentes partes del libro para estimar el error de la aproximacin en
trminos de la variacin del parmetro del que depende.

Un resultado particular es el , que se puede escribir como:

Para saber ms

El matemtico britnico Brook Taylor enunci en 1712 este teorema, aunque existe una disputa en relacin a si James
Gregory lo haba descubierto aos antes, en 1671. El teorema aproxima polinomialmente a cualquier funcin continua y
diferenciable en una vecindad dada. Su valor es mltiple, quiz es uno de los teoremas con mayor aplicacin hoy en da,
pues permite tener procedimientos de clculo de funciones en las computadoras y estimar y acotar el error de los
mtodos numricos, adems de brindar una va para establecer mtodos de aproximacin iterativa.

A lo largo del libro y en cada captulo, se incluir la presente seccin para presentar algunos
mtodos numricos alternos que sern descritos brevemente, los cuales pueden ser de utilidad
para desarrollar proyectos de programacin alternos. Del mismo modo, se presentarn
escenarios de Aprendizaje Basado en Problemas (ABP) que pueden ser empleados dentro de un
curso semestral para inducir un tpico para desarrollar cada tema en caso que esta se adopte
como tcnica didctica. Del mismo modo, se presentarn algunas aplicaciones que pueden
permitir extenderse ms all del tema, pero mantenindolo como punto central, y que constituyen
elementos valiosos para constituir proyectos de desarrollo dentro del curso.

Los siguientes escenarios estn dirigidos a sustituir la discusin de comandos y realizarse


para el aprendizaje de los comandos de

Aprendiendo a sumar, restar y multiplicar con Mathematica. Considere el siguiente proyecto


de programacin. Se trata de construir un programa que permita ayudar a los nios de
educacin primaria a practicar la suma, la resta y la multiplicacin mental. Para ello es
recomendable dividir en tres mdulos el problema, los cuales deben ser llamados desde un
programa central que decida la operacin a practicar. Las especificaciones son las siguientes:

El programa no debe contener parmetros iniciales.

El mdulo central deber preguntar si se desea practicar la suma, la resta o la multiplicacin.


Adicionalmente deber solicitar dos nmeros para establecer un rango de los nmeros que
aparecern por parejas para realizar las preguntas. Adicionalmente deber solicitar el
nmero de puntos al que el nio deber llegar para terminar la prctica, as como el tiempo
en segundos que se le dar para responder.

Si el nio responde mal deber descontar un punto del total. Si se tarda ms de la tolerancia
se deber responder correctamente para continuar sin recibir puntos. Si se contesta bien
recibe un punto.

El programa deber emitir sonidos dependiendo del tipo de respuesta dada (correcta,
correcta fuera de tiempo, incorrecta). Deber ejecutar una meloda o sonidos en tanto no se
agota el tiempo de tolerancia.

Al trmino deber dar una estadstica sobre el total de preguntas, el nmero de correctas,
correctas fuera de tiempo e incorrectas.

Deber imprimir o mencionar frases de bienvenida o despedida.

Se sugiere consultar los comandos: Speak, Sound, EmitSound, Input y AbsoluteTiming,


los cuales ayudarn a introducir elementos de control de tiempo de respuesta y sonidos que
ayudarn en el proceso de aprendizaje. La recomendacin es construir un mdulo para cada tipo
de operacin, aunque entre ellos realmente haya gran nmero de similitudes. Estos mdulos
debern ser llamados desde un programa de entrada y administracin central.

Para saber ms
Los programas de aprendizaje para nios se han vuelto muy populares pues permiten aplicar cierta prctica repetitiva
pero con parmetros variables, al mismo tiempo que evaluar el desempeo. Adicionalmente se puede instruir al programa
para que detecte las deficiencias y refuerce aquellos aspectos necesarios para corregirlas.
Diversas simulaciones son realizadas para comprender mejor un problema. La figura muestra una simulacin de la
vasoconstriccin generada por los depsitos de placas de colesterol en las venas, aumentando la velocidad de flujo y
elevando la presin arterial. Esta simulacin puede encontrarse en el sitio de demostraciones con M athematica al dar clic
aqu.

Se desea realizar una simulacin del comportamiento de una esfera rebotando dentro de una
caja rectangular. Para ello puede emplear las ecuaciones de movimiento

para actualizar las posiciones y velocidades en cada direccin, en la medida que el intervalo
entre cuadros de la simulacin, D , sea pequeo. La programacin debe contener parmetros
segn las especificaciones:

Un parmetro deben ser las posiciones y velocidades iniciales en el formato: {{x ,y ,z },{v ,v
,v }}.

Un parmetro deben ser las dimensiones de la caja en el formato: {{x ,x },{y ,y },{y ,y }}.

La simulacin debe considerar las interacciones de gravedad y resistencia con el medio.

El tiempo de simulacin, , debe ser un parmetro inicial del programa. Otros parmetros
son: la gravedad, , el coeficiente de resistencia con el medio (en un modelo lineal para la
velocidad), , as como el radio de la esfera. Estos deben introducirse en la forma: { , ,
, }.

Es recomendable leer la seccin de Comandos implementados en Mathematica para la


realizacin de este escenario. El empleo de los comandos de programacin descritos en la
seccin es imprescindible. En una primera instancia el lector puede omitir el empleo
del comando Module, por construir un listado de grficos y animarlos desde la opcin
que aparece bajo en Rendering en las opciones del Men.
Representacin de la simulacin de una pelota rebotando en una caja, sujeta a la gravedad y a
resistencia con el medio, as como el comportamiento de su energa en funcin del tiempo.

La extensin del problema previo de la esfera confinada en una caja en dos diferentes
aspectos es un potencial proyecto del curso:

La inclusin de choques no elsticos con las paredes de la caja y la extensin de la


simulacin hacia el anlisis de diagramas fase y grficas de energa contra tiempo (Figura
1.10).

Un proyecto similar con aspectos comunes al anterior es el de una esfera dentro de un


espacio esfrico dentro del cual rebota.

La inclusin de dos pelotas de diferente tamao y masa, as como la extensin de la


simulacin hacia el anlisis de diagramas fase y grficas de energa contra tiempo. El
estudio de colisiones elsticas requerir del manejo vectorial de los centros para determinar
las velocidades posteriores.

E n la seccin correspondiente bajo este nombre en cada captulo se presentar la forma


alterna del uso del software, como un producto de desarrollo para resolver problemas
complejos a travs de las soluciones propuestas por para los mtodos estudiados.

Para este captulo es conveniente que para el desarrollo de animaciones derivadas de la


simulacin numrica, el lector se familiarice con el comando Manipulate de . Este
comando permite realizar demostraciones anlogas a las aqu incluidas. La sintaxis del comando
es:

Manipulate[ ]

Como un ejemplo, considrese la graficacin de una curva en tres dimensiones. Es posible


emplear el comando ParametricPlot3D que se estudi. Vamos a considerar un tipo particular de
funcin:
As que el comando para su graficacin sera:

ParametricPlot[{Cos[4t]Cos[t],Cos[4t]Sin[t],Sin[4t]Sin[8t]},{t,0,2Pi}]

si se desea graficar en un ciclo completo. Sin embargo, uno puede decidir generar una
animacin en la que aparece la generacin de la grfica paulatinamente, esto se logra
graficando hasta un valor menor a 2 , por ejemplo , esto se logra con:

Manipulate[

ParametricPlot3D[{Cos[4t]Cos[t],Cos[4t]Sin[t],Sin[4t]Sin[8t]},{t,0,x}],{x,0,2Pi}]

El lector observar la aparicin de la demostracin y puede explorar los controles de la


misma. Hay dos aspectos importantes aqu, el primero se refiere a que adapta el
tamao de la ventana a la grfica. Sin embargo, como est creciendo, esta no parece clara ni
esttica por lo que es recomendable incluir en el comando ParametricPlot3D la instruccin
PlotRange que delimita el tamao del escenario de la grfica para que permanezca fijo. El
segundo aspecto es omitir el error inicial que se genera por manejar como valor inicial de como
cero, ya que en este caso no hay grfica a generar. Esto se soluciona poniendo un valor
ligeramente mayor, por ejemplo 0.1. As:

El comando Sphere grafica una esfera si se le indican las coordenadas del centro y el radio.
Adicionalmente Graphics3D despliega el grfico al englobar al comando anterior. Finalmente, el
comando Show permite graficar dos objetos en un espacio comn, por lo que el lector puede
considerar el ejemplo siguiente:
el resultado es mostrado en la Figura 1.11.

Resultado del comando Manipulate estudiado en el texto.


Conclusin del captulo 1

Puedes consultar el video al hacer clic aqu.

00:00 / 00:00
Ejercicio integrador del captulo 1

Haz clic aqui para realizar el ejercicio integrador


Recursos del captulo 1

Da un clic en cada liga para acceder al contenido.

a) Preguntas de comprensin

b) Ejercicios introductorios

c) Ejercicios sobre programacin de mtodos numricos

d) Ejercicios aplicados

Respuestas

Notebook 1.1

Python 1.1

You might also like