mtodo de runge..trabajo[1]... listo final

21
Universidad Centroccidental Lisandro Alvarado Decanato de Agronomía Programa de Ingeniería Agroindustrial Núcleo Obelisco Integrantes: Ambar I Suarez R

Upload: ambars

Post on 05-Aug-2015

138 views

Category:

Documents


1 download

TRANSCRIPT

Universidad CentroccidentalLisandro Alvarado

Decanato de AgronomíaPrograma de Ingeniería Agroindustrial

Núcleo Obelisco

Integrantes:Ambar I Suarez RAna G Ponente SMaria T. Garcia C

Prof.: Juan MolinaComputación Aplicada

Enero 2011.

Introducción

La computadora, es la herramienta más poderosa hasta ahora conocida,

para la solución de problemas en el campo de las ciencias exactas, en este

caso los métodos numéricos, como punto principal por sus aplicaciones en la

ingeniería.

Los conocimientos científicos se usan rutinariamente por los ingenieros

en el diseño de elementos tales como maquinas, circuitos eléctricos,

estructuras etc.

Estos conocimientos son muy útiles cuando se expresan en forma de un

modelo matemático, el cual se puede definir como una ecuación que expresa

las características fundamentales de un sistema o proceso físico en términos

matemáticos, siendo clasificados estos modelos, desde simples relaciones

algebraicas hasta grandes y complicados sistemas de ecuaciones

diferenciales.

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 hacía anteriormente al uso de la

computadora, traduce la importancia del 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.

Método de Runge-Kutta

El método mas utilizados para desarrollar una solución numérica de

ecuaciones diferenciales de un paso con orden mayor a uno es el método de

Runge-Kutte. Este método fue propuesto por los matemáticos C. Runge y M.

W. Kutta hace más de un siglo, consiste en utilizar reevaluaciones sucesivas

de la función f( t, Y) en puntos adecuados. Este método mejora la aproximación

del método de Euler para resolver de modo aproximado, sin necesidad de

calcular derivadas de orden superior, Existen muchas variaciones, pero todas

se pueden denotar en la forma generalizada de la ecuación:

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

Donde φ(xi,yi,h) se conoce como  función incremento, la cual se

interpreta con una pendiente representativa sobre el intervalo.

Donde a es constantes y las k   son:

Las k son relaciones de recurrencia, esto es, k1 aparece en la ecuación

para k2, la cual aparece en la ecuación para k3, así sucesivamente, observando

que cada k es una evaluación funcional, esto hace que el método Runge-

Kutta sea más eficaz para la programación debido a la recurrencia. 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.

Para comprender su funcionamiento observaremos el siguiente ejemplo:

Evaluando en la función:

g1= f(tn , yn), g2= f(tn + h, yn +(h/2),

La formula yn + 1 = yn + hg2, ya tiene orden dos, esto quiere decir que los

errores producidos son proporcionales a h3, por tanto utilizando la idea de

Runge-Kutta, con dos evaluaciones de función por paso se puede deducir

formulas de segundo grado. También existen otras formulas realizadas por

estos dos matemáticos, que son especificas para ordenes superiores ( de

tercer y cuarto orden) ejemplo:

Y n + 1 = yn + ( h / 6 ) ( g1 + 2g2 + 2g3 + g4 )

Donde: g1= f(tn, yn),

g2 = f(tn + h / 2, yn + (h / 2) (g1)),

g3 = f(tn + h / 2, yn + (h / 2) (g2)),

g4 = f(tn + h, yn + hg3)

Gracias a su amplia simplicidad y facilidad de programación y los

satisfactorios resultados que proporciona ha sido utilizado en muchos

manipuladores algebraicos, como lo son; Matlab, Maple, entre otro.

Método de Runge-kutta (orden 2)

La versión de segundo orden para la ecuación en su forma generalizada

es:

Donde:

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, cada versión

podría dar exactamente los mismos resultados si la solución de la EDO fuera

cuadrática, lineal o una constante.

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.

.

Método de Runge-kutta (orden 3)

En el método de Runge-Kutta de tercer orden se toman los siguientes

tres estimados de :

K1= f(x0, y0)h que es la estimación del método de Euler

K2= f(x0 + p.h , y0 + p.k1)h; 0<p<1

Que es parecido al estimado del método Runge excepto que en lugar de

evaluar en el punto p=1/2 la derivada se calcula en un punto p=[x0 + p.h,y0 +

p.k1] que aun no se ha determinado y por ultimo.

K3= f(x0 + q.h, y0 + r.(k2) + (q – r).(k1))h

Donde 0 < q, r <1 y deben calcularse.

Entonces el valor de k que se utiliza para calcular y1 se toma como:

K4= a(k1) + b(k2) + c(k3); donde a, b, c son parámetros iguales a los que ( q y r)

se sirven para dar resultados con mas precisión cuando se desea estimar k.

Este procedimiento nos lleva a aplicar 4 ecuaciones con 6 incógnitas como

lo son:

a + b + c = 1

p. b + q + c = ½

p2 . b + q2 . c = 1/3

p . r . c = 1/6

Despejando:

a= (6 . p . q -(p + q)+2) / (6 . p . q)

b= (2 – 3) . p / (6 . p. (p – q))

c= (2 – 3) . p / (6 . q . (q – p))

d= q . (q – p) / (p ( 2 – 3p).

Puesto que p y q son arbitrarios, tenemos entonces una familia de formulas

biparametricas que pueden usarse para resolver la ecuación diferencial de

primer orden con una precisión de orden 4.

Ejercicios de Runge-Kutta

1)- 2do orden

Algoritmo en Matlab

1. %Metodo Runge-Kutta de 2doOrden2. x=1; 3. y=1; 4. z=2; 5. t=0; 6. tmax=3; 7. h=0.3;8. iter=round((tmax-t)/h);9. vectorx=x;10. vectory=y;11. vectorz=z;12. vectort=t;13. for i=1:iter14. %calculo de las constantes de Runge-Kutta15. K1x=(t^2+x-z)*h;16. 17. F1=((t+h/2)^2+(x+K1x/2)-z)*h;18. F2=(-(t+h/2)^3)*h; 19. F3=(-(t+h/2)+y)*h; 20. 21. x=x+F1;22. y=y+F2;23. z=z+F3;24. t=t+h;25. 26. vectorx=[vectorx x];27. vectory=[vectory y];28. vectorz=[vectorz z];29. vectort=[vectort t];30. end31. vectorx32. vectory33. vectorz34. vectort35.36. figure37. subplot (2,2,1);38. plot(vectort,vectorx,'y-o'); 39. title('Metodo Runge-Kutta 2doOrden. x vs t'); 40. xlabel('valores t');41. ylabel('valores x');42.43. subplot (2,2,2);44. plot(vectort,vectory,'b-p');45. title('Metodo Runge-Kutta 2doOrden. y vs t');46. xlabel('valores t');47. ylabel('valores y');48.49. subplot (2,2,3);50. plot(vectort,vectorz,'r-+');51. title('Metodo Runge-Kutta 2doOrden. z vs t'); 52. xlabel('valores t');53. ylabel('valores z');54.55. figure56. plot(vectort,vectorx,'y-o');

57. hold on 58. plot(vectort,vectory,'b-p');59. plot(vectort,vectorz,'r-+');60. xlabel('valores t');61. ylabel('valores x,y,z');62. legend('x','y','z'); 63. title('Metodo Runge-Kutta 2doOrden.soluciones del sistema de

ecuaciones');

2). 3er orden

Algoritmo en matlab

1. %Metodo Runge-Kutta de 3erOrden2. x=1; 3. y=1; 4. z=2; 5. t=0; 6. tmax=3; 7. h=0.3; 8. iteraciones=round((tmax-t)/h);9. vectorx=x;10. vectory=y;11. vectorz=z;12. vectort=t;13. for i=1:iteraciones14. %calculo de las constantes de Runge-Kutta15. K1x=(t^2+x-z)*h; 16. K1y=(-t^3)*h; 17. K1z=(-t+y)*h; 18. 19. K2x=((t+h/2)^2+(x+K1x/2)-z)*h;20. K2y=(-(t+h/2)^3)*h; 21. K2z=(-(t+h/2)+y)*h; 22. 23. K3x=((t+h)^2+(x+2*K2x-K1x)-z)*h; 24. K3y=(-(t+h)^3)*h;25. K3z=(-(t+h)+y)*h; 26. 27. x=x+(K1x+4*K2x+K3x)/6;28. y=y+(K1y+4*K2y+K3y)/6;29. z=z+(K1z+4*K2z+K3z)/6;30. t=t+h;31. 32. vectorx=[vectorx x];33. vectory=[vectory y];34. vectorz=[vectorz z];35. vectort=[vectort t];36. end37. vectorx38. vectory39. vectorz40. vectort41.42. figure43. subplot (2,2,1);44. plot(vectort,vectorx,'y-o'); 45. title('Metodo Runge-Kutta 3erOrden. x vs t'); 46. xlabel('valores t');47. ylabel('valores x');48.49. subplot (2,2,2);50. plot(vectort,vectory,'b-p');51. title('Metodo Runge-Kutta 3erOrden. y vs t'); 52. xlabel('valores t');53. ylabel('valores y');54.55. subplot (2,2,3);56. plot(vectort,vectorz,'r-x');

57. title('Metodo Runge-Kutta 3erOrden. z vs t');58. xlabel('valores t');59. ylabel('valores z');60.61. figure62. plot(vectort,vectorx,'y-o'); 63. hold on 64. plot(vectort,vectory,'b-p');65. plot(vectort,vectorz,'r-x');66. xlabel('valores t');67. ylabel('valores x,y,z');68. legend('x','y','z'); 69. title('Metodo Runge-Kutta 3erOrden.soluciones del sistema de

ecuaciones');

Conclusiones

En la aplicación y resolución numérica de ecuaciones diferenciales juega

un papel muy importante el método genérico de resolución numérica Runge-

Kutta no es sólo un método sino una importante familia de métodos iterativos

tanto implícitos como explícitos para aproximar las soluciones de ecuaciones

diferenciales ordinarias.

Tener en cuenta que para resolver cada problema de los métodos

numéricos es necesario tener orden porque la gran cantidad de datos, por lo

cual se requiere manejar también los programas. En función al objetivo de los

métodos numéricos de runge-kutta, el cual es el análisis y solución de los

problemas de valor inicial de ecuaciones diferenciales ordinarias, se considera

que estos son una extensión del método de euler para resolverlas, pero con un

orden de exactitud más alto que este.

Hay que tener en cuenta que de alguna u otra manera los métodos

numéricos están sujetos a ciertos errores al hacer los cálculos en muchos

pasos (iteraciones), pero que estos se pueden llegar a despreciar por la actual

eficiencia de las maquinas computadoras, las cuales pueden llegar a tomar los

intervalos de tiempo infinitesimalmente pequeños para la aplicación de las

ecuaciones y obtener los resultados más rápido y de manera más exacta.