Professional Documents
Culture Documents
Fecha de 2012
publicacin
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
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
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.
Introduccin
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:
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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:
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.
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.
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.
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).
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:
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.
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.
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.
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 }}.
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: { , ,
, }.
La extensin del problema previo de la esfera confinada en una caja en dos diferentes
aspectos es un potencial proyecto del curso:
Manipulate[ ]
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 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.
00:00 / 00:00
Ejercicio integrador del captulo 1
a) Preguntas de comprensin
b) Ejercicios introductorios
d) Ejercicios aplicados
Respuestas
Notebook 1.1
Python 1.1