Está en la página 1de 14

OCW-V.

Muto

Introduccin al Anlisis Numrico o a e

Cap. I

CAPITULO I. INTRODUCCION AL ANALISIS NUMERICO 1. ALGORITMOS Y DIAGRAMAS DE FLUJO El hecho de que el Anlisis Numrico sea tanto una ciencia como un arte es la a e opinin de los especialistas en este campo pero, frecuentemente es mal entendido por los no o especialistas. Se dice que es un arte, y a la vez una ciencia, unicamente como eufemismo, para ocultar el hecho de que el Anlisis Numrico no es una disciplina suficientemente a e precisa para merecer el que se le considere como una ciencia? Es cierto que el nombre de anlisis numrico se emplea errneamente, porque el significado clsico del anlisis a e o a a en matemticas no es aplicable al trabajo numrico? De hecho, la respuesta a ambas a e preguntas es no. Ms bien la yuxtaposicin de ciencia y arte se debe a un principio a o de incertidumbre que frecuentemente se presenta en la solucin de problemas, es decir, el o hecho de que para determinar la mejor forma de resolver un problema, puede ser necesaria la solucin del problema en s En otros casos, la mejor forma de resolver un problema o . puede depender de un conocimiento de las propiedades de las funciones involucradas, las que no se pueden obtener ni terica ni prcticamente. o a Como una ciencia, el Anlisis Numrico est interesado en los procesos por los cuales a e a pueden resolverse los problemas matemticos, por las operaciones de la aritmtica. Ala e gunas veces esto involucrar el desarrollo de algoritmos para resolver un problema que a est ya en una forma en la cual pueda encontrarse la solucin por medio aritmticos. Frea o e cuentemente involucrar la necesidad de sustituir cantidades que no pueden ser calculadas a aritmticamente, por aproximaciones que permiten que sea determinada una solucin e o aproximada. En este caso estar amos interesados, naturalmente, en los errores cometidos en nuestra aproximacin. Pero, en cualquier caso, las herramientas que usar o amos en el desarrollo de los procesos de anlisis numrico, sern las herramientas del anlisis a e a a matemtico exacto, tan conocidas clsicamente. a a Como un arte, el Anlisis Numrico est interesado en la eleccin del procedimiento, a e a o y conveniente aplicacin del mismo, ms adecuado a la solucin de un problema paro a o ticular. Esto implica la necesidad de desarrollar la experiencia y con ello esperar que se desarrolle la intuicin del especialista. o As pues, el Anlisis Numrico trata de disear mtodos para aproximar, de una a e n e manera eficiente, las soluciones de problemas expresados matemticamente. La eficiencia a del mtodo depende tanto de la precisin que se requiera como de la facilidad con la que e o pueda implementarse. En una situacin prctica, el problema matemtico se deriva de un o a a fenmeno f o sico sobre el cual se han hecho algunas suposiciones para simplificarlo y para poderlo representar matemticamente. Generalmente cuando se relajan las suposiciones a f sicas llegamos a un modelo matemtico ms apropiado pero, al mismo tiempo, ms a a a dif o imposible de resolver expl cil citamente. Ya que normalmente el problema matemtico no resuelve el problema f a sico exactamente, resulta con frecuencia ms apropiado encontrar una solucin aproximada del a o modelo matemtico ms complicado que encontrar una solucin exacta del modelo sima a o 1

OCW-V.Muto

Introduccin al Anlisis Numrico o a e

Cap. I

plicado. Para obtener tal aproximacin se idea un mtodo llamado algoritmo. El o e algoritmo consiste en una secuencia de operaciones algebricas y lgicas que permiten la a o aproximacin al problema matemtico y se espera que tambin al problema f o a e sico, con una tolerancia o precisin predeterminada. Los algoritmos determinan los mtodos cono e structivos de resolucin de problema matemticos. Un mtodo constructivo es todo o a e proceso que permite obtener la solucin a un problema con la precisin que se desee, en o o un nmero finito de pasos que se pueden efectuar racionalmente. Obviamente el nmero u u de pasos requeridos depender de la precisin que se desee en la solucin. a o o

Como se ha dicho, los mtodos constructivos en matemticas son mtodos que e a e muestran cmo construir soluciones de un problema matemtico. Por ejemplo, una deo a mostracin constructiva de la existencia de una solucin de un problema, no slo hace ver o o o que la solucin existe, si no que describe tambin cmo se puede determinar esa solucin. o e o o Una demostracin que muestra la existencia de una solucin por reduccin al absurdo no o o o es constructiva. Ejemplo 1. Demostrar que la ecuacin cuadrtica o a x2 + 2 b x + c = 0 con coeficientes reales b y c tales que b2 > c tiene por lo menos dos ra ces reales. Demostracin constructiva. Para todo x, b y c o x2 + 2 b x + c = x2 + 2 b x + b2 + c b2 = = (x + b)2 + c b2 . Entonces, x es una ra de (I.1) si y slo si z o (x + b)2 + c b2 = 0 , es decir, (x + b)2 = b2 c . 2 (I.1)

OCW-V.Muto

Introduccin al Anlisis Numrico o a e

Cap. I

Y tomando la ra cuadrada, como b2 c > 0, x ser una ra si y slo si z a z o x+b= es decir, x = b b2 c . (I.2) b2 c ,

Luego hay dos ra ces reales de (I.1) y la frmula (I.2) muestra como calcularlas. o Demostracin no constructiva. Sea o q(x) = x2 + 2 b x + c . Supongamos que no existen ra ces de (I.1), con lo que no hay ceros de q. Dado que q(x) es una funcin continua, q(x) ser siempre positiva o siempre negativa para cada valor de o a x R. Ahora q(b) = b2 2b2 + c = c b2 < 0 por la condicin dada sobre b y c. Entonces q tiene que ser siempre negativa. Sin embargo, o para |x| grandes x2 > |2 b x + c| , con lo que resulta ser q(x) > 0. As que tenemos una contradiccin. o Supongamos ahora que q tiene slo un cero. Dada la continuidad de q se sigue que o q(x) > 0 para valores x grandes y q(x) < 0 para valores x grandes, o viceversa. Sin embargo, hemos visto que q(x) > 0 para valores |x| grandes, cualquiera que sea el signo de x. Tenemos, pues, otra contradiccin. o As esta demostracin dice que existen dos ra , o ces, pero no muestra cmo calcularlas. o Los algoritmos tienen que satisfacer los siguientes requisitos: a) generalidad: un algoritmo se tiene que poder aplicar a cualquier conjunto de datos que pertenezcan a un dominio establecido; b) finitud: un algoritmo tiene que estar constitu por una sucesin de instrucciones do o que pueden ser ejecutadas por el ordenador un nmero finito de veces; u c) no ambigedad: un algoritmo no tiene que estar constitu por instrucciones que u do se contradigan o que lleguen a una paradoja. Los valores sobre los cuales operan las instrucciones de un lenguaje de programacin o para producir nuevos valores pueden ser: a) numricos; ejemplo: 3, 25.4, 0.0004. e b) lgicos; ejemplo: Verdadero, Falso (True, False). o c) alfanumricos; ejemplo: 7/1/1991, 1. Primer tema. e Ntese que los valores lgicos dados en el apartado b) son los dos unicos existentes. o o Con reglas adecuadas los operadores actun sobre las variables y las constantes para a obtener valores nuevos. Una serie de s mbolos usados para indicar los operadores se da 3

OCW-V.Muto

Introduccin al Anlisis Numrico o a e

Cap. I

en la tabla 1. Y en la tabla 2 se dan los resultados de los operadores and, or y xor de las variables lgicas. o Tabla 1 Simbolo + / [] = = < > not and or xor Tipo de valor del resultado numrico e numrico e numrico e numrico e numrico e numrico e numrico e lgico o lgico o lgico o lgico o lgico o lgico o lgico o lgico o lgico o lgico o Tabla 2 A T T F F B T F T F not A F F T T A and B T F F F A or B T T T F A xor B F T T F Operacin o suma resta multiplicacin o exponenciacin o divisin o parte entera suma finita igualdad no igualdad menor que mayor que menor o igual que mayor o igual que cambio de T (F) en F (T) (a la vez) (o bien) (o bien exclusivo)

La mayor de las veces, los mtodos de tipo constructivo directos dan lugar a algoa e ritmos nitos, mientras que los mtodos iterativos producen algoritmos innitos (convere gentes). Ejemplo de algoritmo finito. Un ejemplo clsico de algoritmo finito lo constituye el algoritmo de Euclides para a el clculo del mximo comn divisor (m.c.d.) de dos nmeros. Sean a, b dos nmeros a a u u u enteros, a > b. Entonces: a = b q1 + r2 , b = r2 q2 + r3 , r2 = r3 q3 + r4 , .... rm2 = rm1 qm1 + rm , rm1 = rm qm . 4 0 < rm < rm1 0 < r2 < b 0 < r3 < r2 0 < r4 < r3

OCW-V.Muto

Introduccin al Anlisis Numrico o a e

Cap. I

Entonces rm = m.c.d.(a, b). El algoritmo ser a: - hacer r0 = mx (a, b) y r1 = m (a, b) a n - hallar rn = resto de dividir rn2 entre rn1 , n = 2, 3, ... - cuando rn = 0, parar: el m.c.d. es rn1 . Ejemplo a). a = 37, b = 1218 1218 = 37 32 + 34 37 = 34 1 + 3 34 = 3 11 + 1 3=13+0 m.c.d.(37, 1218) = 1, a, b primos. Ejemplo b). a = 44, b = 420 420 = 44 9 + 24 44 = 24 1 + 20 24 = 20 1 + 4 20 = 4 5 + 0 m.c.d.(44, 420) = 4. Ejemplo de algoritmo iterativo. Un mtodo para el clculo de N es el siguiente: e a - hacer x0 = 1+N 2 1 N - xn+1 = 2 xn + xn , n = 0, 1, ... , entonces lim xn = N . Es evidente que este mtodo es infinito (la sucesin xn+1 no se hace constante porque e o N no es racional en la mayor parte de los casos), por lo que debemos indicar un criterio de parada para que el algoritmo sea efectivo. Usualmente el criterio es: |xn+1 xn | < donde es la tolerancia permitida. Si el algoritmo es visto como una serie temporal de operaciones, una pregunta fundamental es cmo viene controlado el flujo de las operaciones? Cuando el programa en o ejecucin ha llegado a una instruccin particular cmo determina el ordenador cul es o o o a la prxima instruccin que tiene que ejecutar? o o Se ha demostrado que slo tres principios de control son suficientes para describir o cualquier algoritmo. El primer principio es la nocin de secuencia; excepto que el ordenador sea instruido o distintamente, l ejecuta las instrucciones de un programa secuencialmente. e El segundo principio es la ejecucin condicional que se indica generalmente en el proo grama con una instruccin del tipo If ... then (si ... entonces). En la instruccin if B o o then S, B es una expresin boleana, que puede producir slo los valores verdadero o falso, o o 5
n

OCW-V.Muto

Introduccin al Anlisis Numrico o a e

Cap. I

y S es una instruccin cualquiera o grupo de instrucciones. Se evala B y se ejecuta S o u slo si el resultado es verdadero. o El tercer principio es la repeticin que puede ser indicado con una instruccin While ... o o do (mientras ... ejecuta). While B do S examina el valor de B y, si es verdadero, ejecuta S: los dos pasos se repiten hasta que una evaluacin de B produce el valor falso. En la o mayor de los casos una evaluacin de S determina el cambio del valor de B, de manera a o que el ciclo no contine para siempre. Otra manera para indicar la repeticin es el bucle u o Do ... var = vari, varf, vars S continue. El Do ... continue repite las instrucciones del bloque S para los valores de la variable var desde vari hasta varf con paso vars. En cada lenguaje de programacin, los valores sobre los cuales operan las instruco ciones son las constantes y las variables (numricas, lgicas o alfanumricas). Adems, e o e a las instrucciones fundamentales, que se pueden individualizar con un nombre o con un nmero (llamado direccin), son de los tipos siguientes: u o a) instrucciones de asignacin, que permiten asignar el valor de una expresin a o o una variable; b) instrucciones de salto incondicional, que permiten interrumpir el orden normal de ejecucin de las instrucciones de un algoritmo; o c) instrucciones de condicin, que comparando dos valores, condicionan la ejeo cucin de unas instrucciones en lugar de otras; o d) instrucciones de transmisin, que permiten transferir valores entre el mundo o externo y el ordenador; e) instrucciones de principio de ejecucin y de fin de ejecucin, que comandan o o el inicio o fin de la ejecucin de instrucciones del algoritmo. o Como se ha dicho antes, excepto las instrucciones de salto incondicional, todas las otras se ejecutan en el orden en el cual estn escritas, y la ejecucin de una instruccin a o o no empieza hasta que no haya acabado la ejecucin de la instruccin previa. o o La estructura de un algoritmo se puede representar grficamente con un diagrama a dinmico de l a neas que conectan sucesiones de instrucciones del algoritmo. Cada una de esa sucesin de instrucciones es incluida en una figura y las l o neas indican la interconexin o entre las sucesiones. Conviene dar forma distinta a las figuras dependiendo del tipo de instrucciones que contenga (ver tabla 3). El diagrama dinmico as realizado se llama a diagrama de flujo (flow chart).

OCW-V.Muto

Introduccin al Anlisis Numrico o a e Tabla 3

Cap. I

OCW-V.Muto

Introduccin al Anlisis Numrico o a e

Cap. I

Ejemplo 2. Buscar las ra ces reales de la ecuacin o a x2 + b x + c = 0 . Para a = 0 las ra ces son: x1 = b + b2 4ac 2a x2 = b b2 4ac . 2a

Para que x1 y x2 sean reales, la expresin b2 4ac no puede ser negativa. o El diagrama de flujo es el siguiente: Figura 1

Una parte fundamental de los algoritmos es el ciclo (loop). Un ciclo es una sucesin o particular de instrucciones que permiten que el ordenador las repita hasta que no sean verificadas unas condiciones que alteren el orden de ejecucin. Un ciclo est constituido o a por cuatro tipos de instrucciones: 8

OCW-V.Muto (1) (2) (3) (4) instrucciones instrucciones instrucciones instrucciones

Introduccin al Anlisis Numrico o a e de inicializacin; o fundamentales del ciclo; de control; de modificacin. o

Cap. I

Ejemplo 3. Buscar el minimo de N nmeros reales a1 , a2 , ..., aN . u Figura 2

OCW-V.Muto

Introduccin al Anlisis Numrico o a e

Cap. I

Ejemplo 4. Buscar la suma de los elementos impares de un vector de N elementos. Figura 3

10

OCW-V.Muto

Introduccin al Anlisis Numrico o a e

Cap. I

A menudo es conveniente que un problema caracterizado por un algoritmo A sea dividido en un nmero finito de problemas ms sencillos, llamados subrutinas (subrouu a tines). Uno de los motivos principales por los cuales es conveniente efectuar esa divisin o en problemas ms sencillos es que si se necesita resolver el mismo problema en ms de un a a lugar del algoritmo principal, con diferentes datos, no es muy eciente repetir las mismas instrucciones que tienen slo nombres distintos por las variables sobre las cuales operan. o Sin embargo, es ms conveniente escribir un algoritmo separado que resuelva el problema a parcial con datos formales, y organizar el problema principal originario de manera que las partes distintas se conectan a la subroutine, transmitiendo los datos actuales. Ejemplo 5. Dada la ecuacin a x2 + b x + c = 0 con ra o ces x1 , x2 reales, y x2 x1 , calcular el rea del rectngulo de lados h y x2 x1 . a a Figura 4

11

OCW-V.Muto

Introduccin al Anlisis Numrico o a e

Cap. I

2. ORIGEN Y EVOLUCION DEL ANALISIS NUMERICO Debido a la estrecha relacin existente entre las diferentes ramas de la Ciencia (y o en particular de las Matemticas), no es fcil determinar dnde acaba una y empieza a a o otra. Por ello la extensin exacta del Anlisis Numrico no es conocida. De hecho, el o a e concepto de Anlisis Numrico no fue creado hasta 1947 en que se fund el Instituto de a e o Anlisis Numrico en la Universidad de California. Sin embargo, el nombre parece estar a e asociado a aquellos temas que requieran un procesamientos de datos. Como la extensin o de estos temas es considerable (puede ir, por ejemplo, desde la interpretacin de datos o mdicos hasta la reserva automtica de plazas de avin o gestin de una biblioteca), nos e a o o limitaremos a ciertos aspectos matemticos de la idea. a Al principio, la mayor parte del trabajo que se efectuaba en el campo de las Matemticas, inspirado por cuestiones y problemas concretos, se basaba en mtodos a e constructivos para determinar la solucin (predicciones sobre eclipses, aparicin de un o o cometa, etc...). El punto culminante de la utilizacin de los algoritmos est en Euler (17071783), o a que en los 70 volmenes que comprenden sus trabajos incluye gran nmero de algoritmos y u u frmulas. Los algoritmos infinitos que presenta, aparecen, normalmente, como desarrollos o en serie. Posteriormente, la perfeccin de los conocimientos matemticos y la generalizacin o a o de los problemas hacen que se sustituyan los razonamientos constructivos por otros de tipo lgico. As interesa ms determinar si existe la solucin a un determinado problema, o , a o que calcularlo de forma efectiva. Este proceso sigue hasta aproximadamente el ao 1950. n La razn del proceso de abstraccin era que los algoritmos para el clculo de las soluciones o o a de los problemas eran, aunque finitos, irrealizables por la gran cantidad de clculos que a exig an. A partir de la segunda mitad del siglo XX, la aparicin de las computadoras o liberan al algoritmo de la pesadez del clculo, lo que supone un nuevo auge para los a mtodos constructivos. Podr e amos decir que si desde la antigedad hasta 1945 la velocidad u de clculo se hab multiplicado por 10 mediante rudimentarios artefactos (como el baco), a a a desde entonces hasta ahora se ha multiplicado por un milln o ms. Esto supone que 1 o a hora de trabajo de ordenador equivale a 200 aos de trabajo de una persona, lo que n permite realizar tareas inalcanzables en otros tiempos. Esto no significa que todos los algoritmos puedan ser tratados por un ordenador, pues algunos exigen ms de 100 aos a n de trabajo del ordenador actual ms potente para poder ser llevados a cabo. a Como la eciencia de un mtodo depende de su facilidad de implementacin, la e o eleccin del mtodo apropiado para aproximar la solucin de un problema est inuencio e o a ada signicativamente por los cambios tecnolgicos en calculadoras y computadoras. El o factor limitante en la actualidad es generalmente la capacidad de almacenamiento de la computadora, a pesar de que el costo asociado con los tiempos de cmputo es, desde o luego, tambin un factor importante. e

12

OCW-V.Muto

Introduccin al Anlisis Numrico o a e 3. OBJETIVOS

Cap. I

a e a El Anlisis Numrico es Matemtica Aplicada en el sentido de que toca problemas concretos, reales, de aplicacin prctica, pero aprovechando los potentes mtodos de la o a e Matemtica Pura. Por tanto no son materias opuestas, sino complementarias, lo que hace a que la importancia de ambas sea cada vez mayor. Algunos de los problemas que toca el Anlisis Numrico son los siguientes: a e a) Problemas de interpolacin, en los que se sustituye una funcin poco manejable o o por otra ms sencilla que cumple ciertas condiciones de coincidencia con la primera; a b) Problemas derivados de los anteriores, como pueden ser la integracin aproxio mada (cuadratura, cubatura), o derivacin aproximada de funciones poco maneo jables; c) Problemas de aproximacin, anlogos a los anteriores, pero en los que se sustio a tuye una funcin por otra que sea prxima, en cierto sentido, a la primera; o o d) Resolucin aproximada de ecuaciones diferenciales tanto ordinarias como en o derivadas parciales; e) Los problemas presentados anteriormente producen, en muchos casos, sistemas de ecuaciones lineales con gran nmero de ecuaciones e incgnitas que por su coste u o de clculo son irresolubles por mtodos clsicos como la regla de Cramer; a e a f) Problemas de tipo matricial, (hallar valores propios, invertir matrices, etc...) relacionados con los anteriores; g) Problemas de optimizacin, en los que se maximiza o se minimiza un funcional; o h) Resolucin aproximada de ecuaciones algebricas y sistemas de ecuao a ciones no lineales.

13

OCW-V.Muto EJERCICIOS.

Introduccin al Anlisis Numrico o a e

Cap. I

1. Construir un algoritmo (y dibujar su diagrama de flujo) que tenga como entrada un entero n 1, n + 1 puntos x0 , x1 , ..., xn y un punto x y que produzca como salida el producto P = (x x0 ) (x x1 ) ... (x xn ). 2. A) Construir un algoritmo (y dibujar su diagrama de flujo) para buscar la suma de los elementos pares de un vector de n elementos. B) Ejecutar el algoritmo en el caso del vector: (2, 3, 4, 7, 8, 9, 12, 27, 38). 3. A) Construir un algoritmo (y dibujar su diagrama de flujo) que tomando la ecuacin a x2 + b x + c = 0 con raices reales x1 y x2 , x1 x2 , o - calcule el per metro y el rea del cuadrado de lado x1 x2 ; a - calcule la circunferencia y el rea del c a rculo de radio x1 x2 ; B) Ejecutar los algoritmos en el caso que los coeficientes a, b, c de la ecuacin o sean a = 3, b = 27 y c = 42. 4. Construir un algoritmo (y dibujar su diagrama de flujo) que calcule la media aritmtica de n valores dados a1 , a2 , ..., an . e 5. A) Construir un algoritmo (y dibujar su diagrama de flujo) para buscar la suma y el producto de los elementos pares y de los elementos impares de un vector de n elementos. B) Ejecutar el algoritmo en el caso que el vector est constituido por los e enteros entre 1 y 9 (inclu dos). 6. A) Construir un algoritmo (y dibujar su diagrama de flujo) para buscar el cuadrado de los elementos pares y el cubo de los elementos impares de un vector de n elementos. B) Ejecutar el algoritmo en el caso que el vector est constituido por los e enteros entre 1 y 9 (inclu dos). 7. Representar los diagramas de flujo de los algoritmos presentados en este cap tulo.

14

También podría gustarte