12.1.08

1357.- Flame (2)

De vez en cuando la vida nos ofrece una ecuación diferencial:
y'(x) = f(x,y), y(x0)=y0

irresoluble, que no sale por ninguno de los métodos analíticos.

La 1ra pregunta es ¿qué hacer?
* * *

Hace 250 años Euler tiró una idea [bue, 250... Euler hizo todo en el año 1750 +/-30]:

se puede aproximar la derivada y'(x0) por el cociente incremental [y(x0+h)-y(x0)]/h, y despejando, queda
y(x0+h) = y(x0) + h f(x0,y(x0))

Parece fácil: conocemos la función en el punto x0 porque es dato, y ahora con esta cuenta, la conocemos en el punto x0+h. Llamando a h el paso, hay que ir paso a paso, como dijo Mostaza, y uno llega así a calcular la solución en algún valor x1 que nos interese.

La 2da pregunta es ¿en cuánto le estamos pifiando?
* * *

Miremos de vuelta el pase de magia: y'(x0) no es el cociente incremental [y(x0+h)-y(x0)]/h, hay un error que podemos llamar T, así que cuando despejamos, la cuenta queda
y(x0+h) = y(x0) + h f(x0,y(x0))+h T,

y decimos que el error es de orden h.

Uno puede quedarse tranquilo, pensando que cuando h es chico también el error es chico, y que uno entonces puede calcular con precisión casi arbitraria los valores de la ecuación sin muchos líos.

La 3ra pregunta es ¿en serio?
* * *

La respuesta es no. Para entender por qué, uno podría pensar en que x0=0, y queremos calcular la solución en 1 con cierta precisión. Tomamos como h = 0.1, y hacemos diez pasos, pero resulta que ya en el primero el error es grande. Entonces, tomamos h=0.05, pero ahora tenemos que hacer el doble de pasos, y si bien el error de cada paso es más chico, como tenemos que hacer 20 pasos podría amplificarse. Y si hacemos h=0.01, ahora hay que hacer 100 pasos... Si se quiere, y simplificando mucho, cada vez le pifiamos por menos, pero como tenemos que hacer muchos pasos, la acumulación de esos pequeños errores puede ser terrible.

No voy a entrar en más detalles por ahora, pero que esto no pase es la estabilidad del método, y en el fondo nos lleva al Teorema Fundamental del Análisis numérico: dada la consistencia de un método, es equivalente la convergencia a la estabilidad (la consistencia, para no complicarnos más la vida, es que nuestro método se aproxime a la ecuación diferencial cuando h tiende a cero).

La 4ta pregunta es: ¿y qué error se comete con el método de Euler al calcular valores?
* * *

Un O(h), es de orden h. Si bien h dijimos que era el error de truncamiento, lo calculamos muy a lo bestia. Si hacemos Taylor,
y(x0+h) - y(x0)- h f(x0,y(x0))=y''(c)h2,

el error real es de orden h2. Pero si vamos, por ejemplo, de 0 a 1 con pasitos h, tenemos 1/h pasos, y el error se puede acumular tanto como
y''(c)h2 . 1/h = Cte . h


La 5ta pregunta es: ¿es normal no haber entendido un carajo?
* * *

La respuesta es . Para entender mejor estos temas conviene agarrar algún libro como la gente, alguno de los apuntes que andan por la red, o aunque más no sea, la wikipedia.

5 comentarios:

Tinchote dijo...

Che, el método de Euler parece ingenioso, pero si no entiendo mal, para acotar el error hay que tener información precisamente sobre la función que uno está tratando de encontrar?

Churi dijo...

Si Martin. Pero solo necesitas estimaciones de esa solucion que muchas veces se pueden hacer.

Otra forma, mas dificil, pero "mejor computacionalmente" es lo que se llama las estimaciones a posteriori que estiman el error en funcion de la solucion calculada.

Depues tenes metodos alucinantes, aunque sin demostraciones rigurosas de que anden bien, como el ODE45 de MatLab... Pero eso es otro tema...

JuanPablo dijo...

si, martín, pero como dice churi, podés estimar y'' sin muchos problemas.

Igual, a nivel teórico, sabiendo que y'' es acotada en un intervalo (te alcanza con f C^1), ya sabés que el error es un O(h) aunque no conozcas la constante.

Tinchote dijo...

Lo que es la ignorancia, che. Se ve que lo mío es lo teórico!

JuanPablo dijo...

jajajaja!

te recomiendo que leas el paper de Lax y Richtmyer (Comm. Pure and Applied Math, IX 1956) sobre este tema, define todo muy bien, y se manda a demostrar las cosas.

Ahora... para cada h, tiene un operador en diferencias A_h, la consistencia es que aproxime al operador diferencial, la estabilidad es que estén todos acotados... y demuestran su teorema con el Ppio de Acotación Uniforme!