runge-kutta f

15
UNIVERSIDAD CENTROCCIDENTAL “LISANDRO ALVARADO” DECANATO DE AGRONOMÍA PROGRAMA DE INGENIERÍA AGROINDUSTRIAL COMPUTACIÓN APLICADA NÚCLEO OBELISCO Integrantes: Alvarez, Fernando C.I.17.618.791 Brizuela, Laurimar C.I.19.241.332 Navas, Dilmary C.I.19.449.757 Valero, Nélida C.I.18.862.072

Upload: fernandoalal

Post on 27-Jun-2015

10.028 views

Category:

Education


8 download

DESCRIPTION

Algoritmos en matlab del metodo Runge- Kutta

TRANSCRIPT

Page 1: Runge-Kutta f

UNIVERSIDAD CENTROCCIDENTAL“LISANDRO ALVARADO”

DECANATO DE AGRONOMÍAPROGRAMA DE INGENIERÍA AGROINDUSTRIAL

COMPUTACIÓN APLICADANÚCLEO OBELISCO

Integrantes:

Alvarez, Fernando C.I.17.618.791

Brizuela, Laurimar C.I.19.241.332

Navas, Dilmary C.I.19.449.757

Valero, Nélida C.I.18.862.072

Ing. Juan Carlos Molina

Barquisimeto, Enero del 2011

Implementación de sistemas numéricos

Page 2: Runge-Kutta f

RUNGE-KUTTA

El método de Runge Kutta es un método numérico de resolución de ecuaciones diferenciales que surge como una mejora del método de Euler. El método de Euler se puede considerar como un método de Runge Kutta de primer orden, el de Heun, es un método de Runge Kutta de orden dos.

Los métodos de Runge-Kutta logran la exactitud del procedimiento de una serie de Taylor sin requerir el cálculo de derivadas superiores. Existen muchas variaciones, pero todas se pueden denotar en la forma generalizada de la ecuación

yi + 1 = yi + F(xi,yi,h)h

Donde F(xi,yi,h) se conoce como la función incremento la cual puede interpretarse como una pendiente representativa en el intervalo. La función incremento se escribe en forma general como:

F = a1k1 + a2k2 +….+ ankn

Donde las a son constantes y las k son:

k1 = f(xi,yi)

k2 = f(xi + p1h,yi + q11k1h)

k3 = f(xi + p2h,yi + q21k1h + q22k2h)

kn = f(xi + pnh,yi + q2n-1k1h + qn-1,2k2h + …. + qn-1,n-1kn-1h)

Donde las p y q son constantes.

Como cada k es una evaluación funcional, esta recurrencia hace que los métodos Runge-Kutta sean eficientes para la programación. Existen varios tipos de métodos Runge-Kutta al emplear diferentes números de términos en la función incremento como la especificada por n.

n = 1, es el método de Euler. Una vez se elige n, se evalúan las a, p y q al igualar la función incremento a los términos en la serie de expansión de Taylor. La versión de segundo orden para la ecuación en su forma generalizada es:

Donde:

Page 3: Runge-Kutta f

Los valores de a1, a2, p1 y q11 son evaluados al igualar el término de segundo orden de la ecuación dada con la expansión de la serie de Taylor.

Desarrollando tres ecuaciones para evaluar las cuatro incógnitas:

             

Como se tienen tres ecuaciones con cuatro incógnitas se tiene que suponer el valor de una de ellas. Suponiendo que se especificó un valor para a2, se puede resolver de manera simultánea el sistema de ecuaciones obtenido:

Como se puede elegir un número infinito de valores para a2, hay un número infinito de métodos Runge-Kutta de segundo orden.

a2 = 1/2: Método de Heun con un solo corrector, donde:

a2 = 1 : Método del punto medio.

a2 = 2/3: Método de Ralston.

Siguiendo el mismo razonamiento para n = 3, o sea, Runge-Kutta de tercer orden, el resultado son seis ecuaciones con ocho incógnitas, por lo tanto se deben suponer dos valores con antelación para poder desarrollar el sistema de ecuaciones. Una versión ampliamente usada es:

Éste es el más popular de los métodos Runge-Kutta de cuarto orden:

Ejemplo

Runge –Kutta para segundo orden, método punto medio.

Resuelva el siguiente problema de valor inicial en el intervalo de x=0 a x=1.

Page 4: Runge-Kutta f

Donde: y(0)=1h = 0.25

Solución

Primera iteración

,

,

Segunda iteración

,

Page 5: Runge-Kutta f

Tercera iteración

,

,

Cuarta iteración

,

,

Page 6: Runge-Kutta f

Vectores solución

X 0 0.25 0.5 0.75 1y 1 0.748

30.578

30.475

20.427

7

Algoritmo MATLAB- Segundo orden

%Método Runge kutta de segundo ordenx=0;y=1;t=0;tmax=1;h=0.25;iter=round ((tmax-t)/h);vectory=y;vectort=t;for i=1:iter %Cálculo de las constantes de Runge-kutta K1=(y*(t^2))-(1.2*y); K2=(y+(K1/2)*h)*(t+(h/2))^2-(1.2*(y+(K1/2)*h)); y=y+(K2*h); t=t+h; vectory=[vectory y]; vectort=[vectort t]; endvectoryvectortsubplot (1,1,1);plot(vectort,vectory,'b-p');title('Método runge kutta segundo orden. y vs t');xlabel ('valores t');ylabel ('valores y');

Page 7: Runge-Kutta f

Runge –Kutta para tercer orden.

Se resuelve el mismo problema anterior pero esta vez mediante el uso del método Runge kutta de tercer grado, de valor inicial, en el intervalo de x=0 a x=1.

Donde:y(0)=1h = 0.25

Solución.

En el método de Runge kutta de tercer orden se utilizan las siguientes formulas:

Page 8: Runge-Kutta f

Primera iteración

,

,

Segunda iteración

,

,

Page 9: Runge-Kutta f

Tercera iteración

,

,

Cuarta iteración

Page 10: Runge-Kutta f

,

,

Vectores solución

X 0 0.25 0.5 0.75 1y 1 0.744

50.5720

0.4679

0.4206

Algoritmo MATLAB- Tercer orden

%Método Runge-Kutta de 3er ordenx=0;y=1;

Page 11: Runge-Kutta f

t=0;tmax=1;h=0.25;iter=(tmax-t)/h;vectory=y;vectort=t;for i=1:iter %Cálculo de las constantes de Runge-kutta K1=(y*(t^2))-(1.2*y); K2=(y+(K1/2)*h)*(t+(h/2))^2-(1.2*(y+(K1/2)*h)); K3=(y-(K1*h)+(2*K2*h))*((t+h)^2)-(1.2*((y-(K1*h)+(2*K2*h)))); y=y+((K1+(4*K2)+K3)/6)*h; t=t+h; vectory=[vectory,y]; vectort=[vectort,t];end

vectoryvectort

subplot (1,1,1);plot(vectort,vectory,'r-*');title('Método runge kutta Tercer orden. y vs t');xlabel ('valores t');ylabel ('valores y');

Aplicación

Page 12: Runge-Kutta f

Los métodos numéricos son técnicas, donde es posible resolver los problemas por medio de operaciones aritméticas, estos métodos implementan un buen numero de cálculos que son por demás demasiado lentos si se hacen manualmente, gastando mucha energía en la técnica misma de solución en vez de aplicarla sobre la definición del problema y su interpretación.

El trabajo monótono que se hacia anteriormente al uso de la computadora, hace de importancia, el dominio de los métodos numéricos, los cuales se deben llevar a cabo en combinación con las capacidades y potencialidades de la programación de computadoras para de esa forma resolver los problemas de ingeniería mucho mas fácilmente y eficientemente.

En general, estos métodos se aplican cuando se necesita un valor numérico como solución a un problema matemático, y los procedimientos "exactos" o "analíticos" (manipulaciones algebraicas, teoría de ecuaciones diferenciales, métodos de integración, etc.) son incapaces de dar una respuesta. Debido a ello, son procedimientos de uso frecuente por físicos e ingenieros, y cuyo desarrollo se ha visto favorecido por la necesidad de éstos de obtener soluciones, aunque la precisión no sea completa. Debe recordarse que la física experimental, por ejemplo, nunca arroja valores exactos sino intervalos que engloban la gran mayoría de resultados experimentales obtenidos, ya que no es habitual que dos medidas del mismo fenómeno arrojen valores exactamente iguales.

Conclusión

El estudio de los métodos numéricos, es muy útil y por ende importante para quien utilice esta herramientas para resolución de operaciones, las cuales se saben que pueden resultar complicadas, tediosas y largas, y por más que se dominen los métodos tradicionales, estos muchas veces pueden no ser suficientes, sin embargo esto no quiere decir que la operación sea imposible de solucionar, y es ahí donde los métodos numéricos se aplican, y facilitan es trabajo de cierta manera.

Dentro del estudio de los métodos numéricos, se encuentran una gran variedad de aplicaciones como lo fue el descrito en el presente trabajo referido al método de runge kutta, que tiene como objetivo principal el análisis y solución de los problemas de valor inicial de ecuaciones diferenciales ordinarias, siendo estos una extensión del método de euler para resolver las, pero con un orden de exactitud mas alto que este, logrando así la exactitud del procedimiento sin requerir el cálculo de derivadas superiores Por tal razón se toma como un método de gran facilidad y rapidez lo que lo hace de gran importancia, ya que debido a estas características su implantación

Page 13: Runge-Kutta f

resulta mas cómoda y fácil de manejar, tomando en cuenta a la misma vez la utilización de su algoritmo resultando una gran ventaja a nivel de su desenvolvimiento en la programación en matlab. El mecanismo esta basado en la aplicación de ecuaciones matemáticas de gran facilidad de empleo, siendo esta otra característica positiva. Este método es de gran aplicabilidad en diversas áreas de la industria lo que lo hace muy usado en distintos niveles.

Bibliografía

Chapra, S y Canale, R (2003). Métodos numéricos para ingenieros. Editorial Macgraw Hill. Cuarta edición. México.

Calvo, M (1998). Los metodo de Runge-kutta en la resolucion numerica de ecuaciones diferenciales. Disponible en: http://www.unizar.es/acz/02AcademicosNumerarios/Discursos/Calvo.pdf C. Conde, E. Schiavi y A.I. Muñoz. (2006). Métodos numéricos para La resolucion de problemas de valor inicial. Disponible en: http://www.escet.urjc.es/~matemati/mm_iq/tema5.pdf