Vous êtes sur la page 1sur 18

UNIVERSIDAD NACIONAL DE ANCASH Santiago Antnez de Mayolo

FACULTAD DE INGENIERA CIVIL

Matemtica iv

Trabajo N

Alumno:

CADILLO YUNCA WILDER EZEQUIEL MARCOS DAMIAN MARUJA YESSICA

Tema: algoritmos numricos (Bunge kutta)

HUARAZ ANCASH

PER

INTRODUCCIN En la ingeniera, muchos problemas se resuelven utilizando ecuaciones diferenciales, pero existe el inconveniente que no todos los problemas pueden ser resueltos analticamente, por su complejidad, es por esto que se emplean mtodos numricos para encontrar una aproximacin a la solucin. Una de las ventajas de utilizar mtodos numricos es que se pueden programar en una computadora de tal manera que sea esta la que haga la mayora del trabajo(los clculos necesarios para obtener la solucin del problema).esto hace que el trabajo del ingeniero o estudiante se limite solamente al anlisis de los resultados, y obviamente preparar el problema para introducir los datos al programa que se utilizara en la computadora para resolver el problema es este trabajo se utilizaran algunos programas elaboradas para usarlos en la computadora. Los problemas que sern tratados en este trabajo son de del tipo: ( ) ( ) ( ) ( ), el intervalo en el que se har la

Este planteamiento del problema incluye la funcin

aproximacin y el valor inicial de la funcin que ha de resolver el problema. Al resolver este tipo de problemas lo que se busca es una funcin ( ) que satisfaga la ecuacin la ecuacin diferencial en intervalo dado, y que este definida para el punto del valor inicial. El valor inicial hace que la solucin del problema sea exacta; esto es porque en los problemas de ecuaciones diferenciales siempre se obtiene como respuesta una familia de curvas, pero al dar un valor inicial se selecciona una sola curva de familia como respuesta. Otro aspecto importante es este tipo de problemas es que el intervalo en que se trabaja ha de ser finito.

ALGORITMOS NUMRICOS La funcin principal de los algoritmos numricos es calcular las aproximaciones a la solucin del problema del valor inicial bien planteado en el intervalo que se ha definido para el mismo tomando como primer punto el valor inicial indicado en el planteamiento del problema. Para realizar el clculo, es necesario saber cul es el intervalo y el tamao del paso o separacin entre los puntos en los que se ha dividido el intervalo (h); es obvio que, entre ms pequeo es el tamao del paso, mas exactos sern las aproximaciones y mayor la cantidad de puntos obtenidos; para el clculo de la siguiente aproximacin hay una formula propia de cada algoritmo. El algoritmo termina cuando se llega al ltimo punto definido en el intervalo. Los algoritmos numricos no calculan una solucin continua, sino que dan aproximaciones en ciertos puntos del intervalo igualmente separados entre s. Los mtodos numricos para resolver ecuaciones deferenciales se pueden dividir en tres grupos. (Mtodos de un paso, mtodos de mltiples pasos, mtodos iterados de un paso) Los mtodos de un paso son los que obtienen el valor de la aproximacin para el siguiente paso, conociendo el valor de la aproximacin del paso actual y el tamao del paso o aumento (h); entre estos mtodos estn el de EULER y el de RUNGE KUTTA. Estos algoritmos pueden emplear el desarrollo en series de Taylor o la definicin de integral definida. Los mtodos de mltiple paso utilizan el tamao de incremento (h) y ms de un punto anterior para el clculo de la siguiente aproximacin; estos mtodos se derivan utilizando la definicin de integral definida. Los mtodos iterados de un paso, requieren solamente de un puto anterior y el tamao del intervalo utilizando la definicin de integral definida.

EL MTODO DE EULER. Este mtodo, como los otros tiene como objetivo obtener una aproximacin al problema de valor inicial bien planteado: ( ) ( ) ( )

Como se menciono anteriormente, este mtodo calcula aproximaciones a la funcin ( ) que estn separados entre si una distancia h. la distancia h se calcula como ( )

Donde b y a son los extremos del intervalo de aproximaciones que el mtodo calculara. Es obvio que si ( ) es no lineal, la aproximacin ser ms exacta cuando el numero

cresca. Con el fin de calcular algn punto entre las aproximaciones calculadas, se puede utilizar algn mtodo de interpolacin o volver a repetir el algoritmo con un nmero mayor de puntos en el intervalo. Para aumentar la cantidad de puntos en el intervalo se aumenta el nmero Derivacin del mtodo utilizando el teorema de Taylor: Suponiendo que ( ) es la solucin al problema y que tiene dos derivadas continas en el intervalo [ ] de tal manera que ( Donde Sabiendo que , tenemos: ( ) ( ) ( ) ( ) ) ( ) ( ) ( ) ( ) ( )

La funcin del mtodo de EULER es generar unos ( )

de tal manera que:

Donde

( )

) a esta ltima se le llama

ecuacin de diferencia asociada con el mtodo de EULER. ERROR DEL MTODO DE EULLER: El error se define como: | ( )|

En el clculo de las aproximaciones, el valor del erro que hay del paso siguiente al actual se calcula as: [ ( )] [ ( )]

)]

( )]

[ (

)]

( )

| Donde ( )

( )|

[ (

)]

( )

De la anterior desigualdad, se observa que el error es proporcional al tamao de la separacin entre puntos , esto significa que para reducir el error hay que disminuir el valor de , disminuir es lo mismo que aumentar el nmero de puntos a tomar en el

intervalo.otra cosa importante de observar es que el error se va pasando de paso en paso; esto quiere decir que el error crece con el aumento de .

MTODOS DE RUNGE KUTTA. Otros algoritmos numricos que se utilizan para resolver los problemas que se analizan en este trabajo de investigacin son los de los mtodos de Taylor de orden supeior.sde les llama as en la comparacin con otros mtodos como el de EULER que se deriva a partir de la serie de Taylor para , estos utilizan la misma serie, pero con .

Los mtodos de Taylor de orden superior, al igual que todos los que se han visto en este trabajo, producen errores cada vez ms pequeos conforme aumenta la cantidad de puntos en el intervalo. Llevar a la prctica esos mtodos tiene el inconveniente que requieren el clculo y la evaluacin de derivadas requieren tiempo y, por supuesto, clculos de parte del usuario. Los mtodos de RUNGE KUTTA producen errores del mismo orden que los mtodos de Taylor de orden superior, y su utilizacin representa la ventaja de no requerir el clculo y evaluacin de las derivadas de la funcin ( lapso de tiempo menor. MTODO DE PUNTO MEDIO (DE RUNGE - KUTTA): Lo primero que hay que hacer para derivar este mtodo es determinar los valores de las constantes de tal manera que: ( Se aproxima a la serie de Taylor de orden 2 ( Los parmetros ) ( ) ( ) ) ), obteniendo el mismo resultado en un

estn determinados de manera nica por:

) El mtodo que resulta de reemplazar

)es

un mtodo de RUNGE- KUTTA llamado mtodo del punto medio. El algoritmo de este mtodo numrico genera a: ( ) De tal manera que: ( ( MTODO DE EULER MODIFICADO: La frmula del mtodo de EULER modificado para generar los ) ) ( ( ) ( )) ( )

[ ( MTODO DE HEUN La frmula para el mtodo de HEUN es:

))]

[ ( Para MTODO MULTIPASO

)]

Tiene como objetivo explicar la diferencia entre mtodos de un paso y mtodos multipaso. Despus de entender la diferencia se dara a conocer el algoritmo de ADAMSBASHFORTH que por ser un mtodo de cuatro pasos es uno de los mtodos multipaso.

Todos los mtodos explicados en los captulos anteriores son de un solo paso, porque, para el clculo de la aproximacin de la funcin en un punto t en e intervalo solamente se toma en cuenta uno de lo valores calculados anteriormente (en tods los algoritmos aui explicamos se utiliza la aproximacin inmediata anterior). Entonces, se puede decir que los mtodos multipaso requieren de ms de un valor calculado anteriormente para calcular la actual aproximacion a la solucion. En losmetodos de un paso, se sabe que la diferencia entre la aproximacin y el valor real (error) aumenta cuando el valor de i aumenta. El aumento del error ocurre porque al calcular la aproximacin actual se utiliza la aproximacin actual se utiliza la aproximacin inmediata anterior que es la que tiene el error ms grande entre las aproximaciones anteriores. A diferencia de los mtodos de un paso, los mutipaso disminuyen el error al utilizar valores anteriores con un error ms pequeo que el de la aproximacin inmediata anterior. En este sentido los mtodos multipaso son ms convenientes que los de un paso. Un mtodo multipaso para resolver el problema de valor inicial. ( ) ( ) ( ) puede

Es aquel cuya ecuacin de diferencia para calcular la aproximacin representarse por la siguiente ecuacin:

[ Donde

)]

es entero mayor que 1. , el valor de queda definido explcitamente,

En la ecuacin anterior, cuando pero cuando

la ecuacin define a

implicitamente.

No conviene utilizar los mtodos implcitos como este porque no es claro que en general se pueda resolver la ecuacin as como tampoco se puede garantizar la unicidad de la respuesta. Es por esta dificultad que solamente se expondrn algoritmos explcitos.

MTODO DE RUNGE KUTTA La idea general de los mtodos de RUNGE KUTTA es sustituir el problema de valor inicial: ( ( ) Por la ecuacin integral equivalente: ( ( )) ( ( )) )

Para proceder a aproximar esta ultima integral mediante un mtodo adecuado (recordemos que y(x) es desconocida). Si nuevamente planteamos el problema paso a paso tendremos. ( ( ))

MTODO DE RUNGE KUTTA DE SEGUNDO ORDEN: La primera opcin que podemos aplicar es integrar mediante el mtodo de los trapecios es decir tomando: Al ser desconocida es la estimacin de ( ( )) ( ( ) ( )) , donde

en la expresin anterior, lo aproximamos por

que resultara aplicando el mtodo de EULER. Tenderemos asi:

( ))

( (

))

Con

), y llegaremos a la expresin del mtodo: ( ( ) ( ))

Lo normal es presentar el mtodo con las expresiones siguientes:

) (

( )

Comparando este mtodo con el mtodo de Taylor de segundo orden, es posible demostrar que error local es tambin proporcional a

por tanto, el global lo es a

EL MTODO DE RUNGE KUTTA DE TERCER ORDEN: Se trata de la misma idea integrando por los mtodos de Simpson, entonces: Donde ( ( )) ( ( ) ( ) ( ))

son estimaciones, puesto que se hace por el mtodo de EULER: ( )

no son conocidas.

Las estimaciones de

Mientras que la estimacin de Mientras que la estimacin de

se hace por el mtodo de EULER: se puede considerar varias opciones, por ejemplo: ( )

Es decir el mtodo de EULER de nuevo, o por ejemplo: ( )

Que consiste en variar el mtodo de EULER tomando la pendiente de la recta tangente en el punto medio en vez de la tangente en el punto propia mente dicha. Finalmente lo ms usual es tomar una combinacin de las dos opciones: ( ( ) ( ))

Podemos entonces resumir el mtodo de RUNGE KUTTA de tercer orden en la forma: ( ( ( ( ) ) ) ) y en

Finalmente, aadir que el error en el mtodo de tercer orden es proporcional a consecuencia el global es a . EJEMPLOS DEL METODO DE RUNGE KUTTA

Vamos a aplicar el procedimiento de Runge-Kutta a una ecuacin diferencial de segundo orden. d 2 x d t 2 =f(x,v,t) con las condiciones iniciales x( t 0 )= x 0 ( dx dt ) t 0 = v 0

Una ecuacin diferencial de segundo orden es equivalente a un sistema de dos ecuaciones diferenciales de primer orden, por lo que aplicaremos el mismo esquema.

dx dt =v

dv dt =f(x,v,t)

k 1 =hv k 2 =h( v+ 1 2 l 1 l 1 =hf(x,v,t) l 2 =hf( x+ 1 2 k 1 ,v+ 1 2 l1 ,t+ 1 2 h ) k 3 =h( v+ 1 2l 2 ) k 4 = ) l 3 =hf( x+ 1 2 k 2 ,v+ 1 2 l2 ,t+ 1 2 h ) l 4 =hf( h( v+ l 3 ) x+ k 3 ,v+ l 3 ,t+h ) x(t+h)=x(t)+ 1 6 ( k 1 +2 k 2 +2 k 3 + k 4) v(t+h)=v(t)+ 1 6 ( l 1 +2 l 2 +2 l 3 + l 4 )

ans := combine(dsolve(sys union IC,{x(t),y(t)}),trig): expr1 := subs(ans, x(t)); expr2 := subs(ans, y(t)); plot( [expr1,expr2], t=0..5,color=[red,blue],tickmarks=[20,10], style=[line,line],thickness=3, axes=BOXED, title=`Solucin del sistema de ecuaciones deferenciales` );

q:=dsolve({diff(x(t),t)=4*x(t)+2*y(t),diff(y(t),t)=x(t)+y(t),x(0)=100,y(0)=400}, {x(t),y(t)}, type=numeric, output=listprocedure): q(0.3); with(plots): A:=odeplot(q,[t,x(t)],0..0.5,color=red): B:=odeplot(q,[t,y(t)],0..0.5,color=blue):

display({A,B},axes=boxed,title=`Solucion Numrica RungeKuta`);

>

iteraciones := 20: precision :=20: x0 := 100: y0 := 400: t0 := 0: tf := 1/2: h := (tf - t0)/iteraciones: f1:= 4*x + 2*y: f2:= -x + y:

with(linalg): a:=[t0,x0,y0]: for i from 0 by 1 while i < iteraciones do t0 := t0 + h: u1 := h*eval(f1,[t=t0,x=x0, y=y0]): v1 := h*eval(f2,[t=t0, x=x0, y=y0]): u2 := h*eval(f1,[t=t0+h/2, x=x0 + u1/2, y=y0 + v1/2]): v2 := h*eval(f2,[t=t0+h/2, x=x0 + u1/2, y=y0 + v1/2]): u3 := h*eval(f1,[t=t0 + h/2, x=x0 + u2/2, y=y0 + v2/2]): v3 := h*eval(f2,[t=t0 + h/2, x=x0 + u2/2, y=y0 + v2/2]): u4 := h*eval(f1,[t=t0 + h, x=x0 + u3, y=y0 + v3]): v4 := h*eval(f2,[t=t0 + h, x=x0 + u3, y=y0 + v3]): x0 := x0 + (1/6)*(u1 + 2*u2 + 2*u3 + u4): y0 := y0 + (1/6)*(v1 + 2*v2 + 2*v3 + v4): b := evalf([t0,x0,y0],precision): a := concat(a,b): print(evalf([t0,x0,y0],precision)) od: pl1 := plot([seq([a[1,i], a[3,i]], i = 1 .. iteraciones)], axes = boxed, color = [blue], labels = ["tiempo", "poblaciones"], title = "Solucion Numrica RK(4)"): pl2 := plot([seq([a[1,i], a[2,i]], i = 1 .. iteraciones)], axes = boxed, color = [red], labels = ["tiempo", "poblaciones"], title = "Solucion Numrica RK(4)"): plots[display]([pl1, pl2]);

Vous aimerez peut-être aussi