Sunteți pe pagina 1din 5

Analisis Numerico

September 18, 2014

Que es y que se hace?

Es un area de las matematicas que se dedica a estudiar metodos para resolver


problemas matematicos utilizando aproximaciones numericas. Ejemplos de aplicaci
on:
Encontrar el valor o los valores de una variable que satisfacen una ecuacion.
Problemas de optimizacion que pueden ser modelados matematicamente
o por medio de simulaciones.
Ecuaciones diferenciales para predecir el comportamiento de una variable sometida a leyes fisicas, biologicas, etc. por medio de un modelo
matem
atico.

Despejar una variable

Un caso de estudio importante en el analisis numerico consiste en encontrar el


o los valores que una variable puede tomar para satisfacer una ecuacion. La
idea es explicar analisis numerico y como implementar los algoritmos entonces
no voy a utilizar todo el rigor matematico, probablemente una mejor deficion
matematica puede encontrarse en wikipedia o un libro o algo asi.

2.1

Metodo de la secante

Para una funcion f (x) donde existe x para f (x) = 0, o sea, una funcion que
corta el eje x en uno o mas puntos:
1. Se debe definir un rango dentro del cual se sepa que existe un cero. Para
una funci
on continua y diferenciable en el intervalo (cerrado) [x0 , x1 ], existe un punto f (xi ) = 0 si x0 > 0 y x1 < 0 o si x0 < 0 y x1 > 0. Pueden
existir otros casos pero este es el mas simple, por ejemplo si hay mas de
un cero en un intervalo la condicion anterior no se cumple.
2. Luego de definir el intervalo podemos hacer una mala aproximacion y decir
que f (x) = 0 cuando la recta formada entre x1 y x0 es 0. La ecuacion de
la recta es (revisar si si es)
y=

f (x1 ) f (x0 )
(x x0 ) + f (x0 )
x1 x0
1

(1)

En la ecuaci
on anterior y = 0 cuando:
x1 x0
x = x0
f (x0 )
f (x1 ) f (x0 )

(2)

Normalmente este resultado no es muy preciso, pero si el intervalo es lo


suficientemente pequeno puede ser una buena aproximacion, la idea de
este metodo es reducir el tamano del intervalo hasta que se cumpla un
requisito establecido por el usuario.
3. Si se calcula un primer cero en xi , es logico pensar que despues de reducir
un poco el intervalo y se calcule un nuevo cero xi+1 , el valor xi+1 va a ser
una mejor aproximaci
on a la respuesta.
4. En wikipedia dice como se deriva el metodo o si queres lo vemos por skype,
al final se concluye una formula que es:
xi xi1
xi+1 = xi
f (xi )
(3)
f (xi ) f (xi1 )
5. Con esta informaci
on, si se realiza el calculo varias veces, al final se va a
encontrar un valor muy cercano al cero real.
6. Para terminar el proceso se calcula el error cuadratico medio entre xi y
xi 1 o sea 21 (xi xi1 )2 , tambien se puede usar valor absoluto o uno
puede inventarse algo que crea que funciona mejor. Cuando ese valor sea
menor que un valor definido que se llama tolerancia, por ejemplo tol =
0.000001 podemos concluir que la respuesta es lo suficientemente buena, en
el analisis numerico tambien se analiza si es mejor definir una tolerancia
muy bajita, si la tolerancia es muy pequena el resultado va a ser muy
preciso pero nunca mas preciso que la presicion que da la representacion
en binario, el costo de esto es que a veces se demora mucho tiempo en
ejecutar el programa.

2.2

Ejemplo
x3 + x2 + x + 1 = 0

(4)

La soluci
on exacta a esta ecuacion es x = 1, utilizando analisis numerico se
pueden resolver ecuaciones mas complejas donde no es posible encontrar una
soluci
on exacta pero para el ejemplo es bueno utilizar una ecuacion simple para
poder comprobar la respuesta.
Aqu hay un ejemplo que hice en excel (M. Secante.xls), al final hay un error
de division por cero porque el ancho del intervalo se hizo cero, la grafica muestra
el comportamiento del error y como disminuye en cada iteracion.
Tambien hay uno en python pero no tiene grafica, se llama msecante.py.
Para complementar se puede crear un programa que busque los intervalos
en donde exista un cero de la funcion.

Ecuaciones diferenciales

La mayoria de modelos utilizados en la fisica son ecuaciones diferenciales, no


basta con simplemente despejar cosas, en esta seccion simplemente hare unos
ejemplos simples para mostrar esto.
2

3.1

Ejemplo: carro moviendose a velocidad constante

Digamos que queremos predecir la posicion de un carro con respecto al tiempo


cuando el carro se desplaza a una velocidad dada, el modelo matematico para
este comportamiento es:
dx
=v
(5)
dt
La idea es encontrar una funcion x(t) (en este contexto x es una funcion que
vara en el tiempo) que satisfaga el modelo, la solucion analitica a este problema
es integrar la velocidad en el tiempo y se encuentra que:
x(t) = vt + x0

(6)

Donde x0 es la posici
on inicial, sin la posicion inicial no podramos conocer
la posici
on exacta del carro en el tiempo t, considerese la pregunta un carro
va a 10kmph, y han pasado 1h desde donde comenzo, la unica respuesta que
podramos dar es que el carro va a 10km de su posicion inicial, o sea 10km + x0 ,
si x0 = 1 la respuesta es 11km, si es 2, la respuesta es 12km y asi.
(x)
(x)
(x)
(x0 )
, las
Por definici
on la derivada es dfdx
= f (x+h)f
o dfdx
= f (xx11)f
h
x0
dos son lo mismo, en la primera h = x1 x0 . (Ver derivadas en wikipedia)
df
Las derivadas son funciones, podemos encontrar el valor dx
(x), para el caso
de la velocidad constante la derivada es igual a v para todo t.
Con esto en mente se puede cambiar la definicion de la derivada por dx
dt =
f (xi )f (xi1 )
, definimos que la distancia entre xi y xi1 es constante y la podexi xi1
mos llamar h, o sea xi xi1 = h, h es el tiempo entre cada una de las muestras,
es decir si h = 1sec, la primera muestra la tendremos en 1sec, la segunda en
2sec, la tercera en 3sec y as.
Luego despejamos la ecuacion para hallar xi que es la posicion en el instante
i o la muestra tomada en la iteracion i.
df
(xi )h + f (xi1 )
(7)
dt
Luego reemplazamos f(x) por x que es lo que nos interesa, la anterior es una
definici
on generalizada.
f (xi ) =

dx
h + xi1
(8)
dt i
Si se resuelve iterativamente desde i = 0 tenemos (x0 se supone que es un
valor conocido):
x1 = vh + x0
(9)
xi =

x2 = vh + x1

(10)

x3 = vh + x2

(11)

x4 = vh + x3

(12)

xi = ivh + x0

(13)

Y para cualquier i

el valor hi es el tiempo en el instante i o sea ti = ih, a esto se le llama


discretizaci
on del eje del tiempo, i es el tiempo discreto y t es tiempo continuo,
3

notese que no todos los ti existen, encambio todos los t existen, es decir si
h = 0.1s entonces ti puede ser {0, 0.1s, 0.2s, 0.3s...} pero no puede ser 0.2123s,
encambio t si puede porque es una variable continua.
Lo que se hace para simularlo en un pc es utilizar la siguiente formula de
manera iterativa:
xi = vh + xi1

(14)

Un ejemplo en excel est


a en el archivo V constante.xls y en python vconstante.py

Caida libre

Este modelo es de segundo orden (ver wikipedia), basicamente eso significa que
se define con la derivada de la derivada, suena mas complejo de lo que es. El
modelo es:
d2 x
= g
(15)
dx2
Donde g = 9.81(m/s), y es la aceleracion producida por la gravedad, tambien, como es de segundo orden tenemos dos condiciones iniciales, posicion inicial que vamos a decir que es x0 = 10m y velocidad inicial que es v0 = 0(m/s)
(ver caida libre en wikipedia).
En principio no importa como se derivan los metodos, lo mas importante es
entender los modelos, saber que metodo utilizar, saber como implementarlo y
eso, despues ya uno aprende lo otro, sabiendo las matematicas necesarias no es
dificil de entender.
El modelo se debe resolver en dos partes (por cultura general, esta descomposici
on se llama descomposicion en variables de estado, en algunas ingenieras
se ve en 5to o 6to semestre, no es tan dificil como puede parecer), realmente
tenemos que encontrar la velocidad y luego integrarla para encontrar la posicion,
la velocidad en este caso es (esto se ve en fisica):
dv
d2 x
= 2 = g
dt
dt

(16)

vi = g h + vi1

(17)

De aqu se obtiene:
Esto es correcto pero no se debe hacer en general porque es inestable (o
sea que produce respuestas malas, es una mala aproximacion) pero como es
un modelo muy simple no pasa mayor cosa, vamos a utilizar la formula del
ejemplo anterior para calcular la posicion pero ahora con una velocidad que no
es constante:
xi = vi h + xi1

(18)

Con lo de la estabilidad pasa lo siguiente, mas adelante se ve que hay metodos


que no cumplen con la ley de la conservacion de la energa entonces hay metodos
en los que la energa aumenta o disminuye sin que exista explicitamente dicha
condici
on (o sea sin que se agregue o se quite energa de manera intencional),
esto implica que una simulacion de un satelite orbitando la tierra, luego de
muchas iteraciones podra cambiar de orbita o caer a la tierra, o un pendulo
4

simple podra parar (eso no esta considerado en el modelo del pendulo simple)
o podra subir mas de su posicion inicial (que es peor), pero solo lo digo por
cultura general, por ahora no importa.
Las dos ecuaciones deben resolverse de forma simultanea. Las condiciones
iniciales son velocidad inicial y posicion inicial, tambien podra ser posicion
0 y posici
on 1 pero tendramos que hacer unos cambios y en este caso no es
conveniente porque se aleja de la interpretacion del modelo fisico. Ejemplo
caida libre.xls (no hice en python, despues vemos). Viendo los resultados, se ve
que el cuerpo en caida libre cae y la magnitud de su velocidad aumenta pero en
direcci
on a la tierra (o sea negativo).

Ultimo ejemplo, mas interesante, crecimiento


poblacional (no es fisica pero bueno)

El modelo es as:

dP
= kP
(19)
dt
En donde k es la taza de repreoduccion o sea cada cuanto ocurre reproduccion
1
en promedio, en humanos sera 365dias
, dP
on
dt es la razon de cambio de la poblaci
en el tiempo, en este caso cuanta gente nace por dia y P es la cantidad de
personas, si hay mucha gente o sea que P es grande entonces van a nacer mas
hijos porque hay mas parejas, por el contrario dP
a pequeno, la taza de
dt ser
reproducci
on k representa la velocidad a la cual crece P.
La soluci
on analitica es P (t) = P0 ekt , donde P0 es la poblacion inicial.
El modelo no considera promiscuidad, fidelidad, monogamia, poligamia,
violencia, enfermedades, mortalidad, cantidad de alimentos, sustentabilidad
del sitio donde habta la poblacion, etc. Si quisieramos agregar mortandad
podramos agregar una taza de mortandad m de esta forma (revisar, no me
acuerdo si si es asi pero suena logico):
dP
= kP m
dt

(20)

Donde m es la cantidad de personas que mueren por da.


Usando la formula de la derivada del primer ejemplo:
Pi Pi1
= kPi m
h

(21)

O sea que:
Pi1 hm
(22)
1 kh
En poblaci
on.xls hay un ejemplo, es interesante ver que aun con taza de
mortandad, si no se crea una restriccion basada en la cantidad de poblacion la
poblaci
on va a crecer exponencialmente. Hay muchos modelos de poblaciones,
en wikipedia salen varios, por ejemplo http://en.wikipedia.org/wiki/Population model
Pi =

S-ar putea să vă placă și