99472167

Anuncio
INDICE
Contenido
INDICE ............................................................................................................................. 1
INTRODUCCION ............................................................................................................ 2
RESUMEN ....................................................................................................................... 3
CONTENIDO ................................................................................................................... 8
1
METODO DE RUNGE KUTTA ............................................................................. 8
1.1
Método de RUNGE-KUTTA............................................................................. 8
1.2
PRIMER METODO DE RUNGE KUTTA ..................................................... 11
1.3
SEGUNDO METODO DE RUNGE KUTTA................................................ 12
1.4
EXTENSION DEL METODO DE RUNGE KUTTA .................................... 13
1.5
EJEMPLOS RESUELTOS .............................................................................. 14
1.5.1
RUNGE –KUTTA PARA SEGUNDO ORDEN, MÉTODO PUNTO
MEDIO. .................................................................................................................. 14
1.5.2
2
RUNGE –KUTTA PARA TERCER ORDEN. ........................................ 17
APLICACIONES A LA INGENIERIA CIVIL ..................................................... 20
2.1 APLICACIÓN DEL METODOD DE RUNGE KUTTA (TRANSITO DE
AVENIDAS)- HIDROLOGIA ................................................................................... 21
3
PROGRAMA EN MATLAB DEL METODO DE RUNGE KUTTA ................... 27
3.1
SOLUCION DEL EJERCICIO PLANTEADO EN EL PROGRAMA ........... 31
4
CONCLUSIONES .................................................................................................. 34
5
RECOMENDACIONES ........................................................................................ 35
º
INTRODUCCION
Dentro de la Ingeniería y otras ciencias hay diversos problemas que se formulan en
términos de ecuaciones diferenciales .Por ejemplo ,trayectorias balísticas ,estudio de
redes eléctricas , deformación de vigas, estabilidad de aviones, teoría de vibraciones y
otras aplicaciones de aquí la importancia de su solución
En el presente trabajo
nos enfocaremos en la SOLUCION DE ECUACIONES
DIFERENCIALES ORDINARIAS DE PRIMER ORDEN-Método de Runge kutta del curso de
Métodos Numéricos, que va dirigido primeramente al docente del curso y a los
colegas estudiantes
que llevan el curso ya mencionado, nuestro propósito es
desarrollar el tema de una forma breve y entendible claro está utilizando la
terminología necesaria en este capítulo, de igual manera se presenta algunos de
problemas con el procedimiento completo ,ordenado y de fácil entendimiento
.También se presenta una aplicación a la INGENIERIA CIVIL de este método y
finalmente un programa en MATLAB.
Los Alumnos
º
RESUMEN
Cuando se desarrolla el método de Euler para resolver la ecuación diferencial de
primer orden
Y' = f(X, Y) (1)
Con la condición inicial
Y(X0) = Y0 (2)
Consiste en aplicar repetidamente la fórmula de recurrencia
Yn+1 = Yn + h f(Xn, Yn) donde n = 1, 2, 3, ... (3)
Para determinar la solución de la ecuación diferencial en X = X1, X2, X3, ...
Sustituyendo la función f(X,Y) dada en (1), en (3), se tiene que
Yn+1 = Yn + h Y'n (4)
Expresión que indica que el método de Euler consiste gráficamente, en ir de un valor
Yn conocido de la solución de la ecuación diferencial (1) en un punto, al siguiente por
medio de la tangente T1 a la curva integral Y = Y(X) en el mismo punto de la
solución conocida, como se muestra en la siguiente figura.
º
De este planteamiento gráfico puede verse que una mejor aproximación a la solución
de la ecuación diferencial se obtendría si en vez de ir por la tangente T1 para
determinar la solución en el siguiente Punto Pivote, se utiliza una secante con
pendiente igual al promedio de pendientes de la curva integral en los puntos
coordenados (Xn, Yn), (Xn+1, Yn+1) en donde Xn+1 y Yn+1 pueden estimarse con
el procedimiento normal de Euler, como se muestra en la siguiente gráfica:
Con lo anterior se obtendría un método mejorado de Euler con error del orden de
definido por la expresión
(5)
en donde f(Xn+1,
Yn+1) es el valor de la función f(X, Y) para:
X = Xn+1
Y = Yn + h f(Xn, Yn)
Observando las expresiones para resolver la ecuación diferencial, puede decirse que
ambas consisten en aplicar la fórmula de recurrencia
(6)
en donde
(7)
º
En el método
de Euler y
(8)
En lo que
Y' = f(X, Y) (9)
En el método
de Euler Mejorado.
Como se ve, estos métodos tienen los siguientes puntos en común:
1. son métodos de un paso; para determinar yn+1 se necesita conocer
únicamente los valores de xn y yn del punto anterior.
2. no requieren evaluar ninguna derivada, sino únicamente valores de la función
f(x, y).
Estas características dan origen a una gran variedad de métodos conocidos como de
runge-kutta la diferencia entre ellos cosiste en la forma como se define la función
que aparece en la expresión (6).
La ventaja de los métodos de Runge-Kutta con respecto al uso de la serie de Taylor,
que es también un método de un paso, está expresado en el punto (2) anterior; es
decir, los métodos de Runge-Kutta requieren sólo de la función f(X, Y) y de ninguna
derivada, mientras que la serie de Taylor sí requiere de la evaluación de derivadas.
Esto hace que, en la práctica, la aplicación de los métodos de Runge-Kutta sean más
simples que el uso de la serie de Taylor.
Un método de Runge-Kutta para resolver ecuaciones diferenciales ordinarias de primer
orden con error del orden de
, de uso tan frecuente que en la literatura sobre
métodos numéricos se le llama simplemente el Método de Runge-Kutta, se dará a
conocer sin demostrar y consiste en aplicar la ecuación de recurrencia (6) en donde la
función
está dada por la expresión:
(10)
En el cual
º
(11)
La ecuación (10) se obtiene haciendo un promedio de las cuatro pendientes, k1, k2,
k3 y k4 a la curva integral, en forma semejante a como se procedió con las
pendientes de las tangentes T1 y T2 que dieron lugar a (5).
º
OBJETIVOS
Objetivo General
Aprender a resolver Ecuaciones Diferenciales lineales de primer orden a través
del método de Runge-Kutta.
Objetivos Específicos
Conocer ventajas y desventajas del método.
Comparar el método de Runge-Kutta con la solución de la ecuación resuelta
por métodos de integración.
Identificar la exactitud del método.
º
CONTENIDO
1 METODO DE RUNGE KUTTA
El método de Runge-Kutta es un método genérico de resolución
numérica de ecuaciones diferenciales.
El método de Runge-Kutta no es sólo un único método, sino una
importante familia de métodos iterativos, tanto implícitos como
explícitos, para aproximar las soluciones de ecuaciones diferenciales
ordinarias (E.D.O´s); estas técnicas fueron desarrolladas alrededor de
1900 por los matemáticos alemanes Carl David Tolmé Runge y Martin
Wilhelm Kutta.
1.1 Método de 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:
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:
º
1.2 PRIMER METODO DE RUNGE KUTTA
Sea dado el punto
, es nuestro interés aproximar
en
dentro de la ecuación diferencial ordinaria
Con tal propósito determinemos un punto intermedio
de
modo tal que reemplazando en las expresiones correspondientes,
tendremos que el predictor y corrector en dicho punto intermedio se
escribirá:
Por lo cual, en el punto deseado su predictor y corrector será:
Simplificaremos
el
proceso
de
cálculo,
determinando
algunos
coeficientes adecuados, así:
Como podemos verificar, reemplazando de acuerdo a las condiciones
supuestas
º
De esta manera a partir de
en
en
es posible ubicar
mediante el primer método de RUNGE KUTTA, por medio
de la determinación de los coeficientes de K del modo siguiente
1.3 SEGUNDO METODO DE RUNGE KUTTA
En forma similar, se deduce un segundo método en función al siguiente
sistema:
º
1.4 EXTENSION DEL METODO DE RUNGE KUTTA
Para ecuaciones diferenciales de segundo orden, como
Suele simplificarse su cálculo efectuando el siguiente cambio de
variable:
De este modo, el sistema queda entonces reducido a:
Determinándose los coeficientes siguientes:
º
1.5 EJEMPLOS RESUELTOS
1.5.1 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.
dy
dx
yx 2
1.2 y
Donde:
y(0)=1
h = 0.25
Solución
yi
k1
1
yi
k 2h
f(xi, y i )
k 2 = f(x i
1
1
h , yi
k 1 h)
2
2
 Primera iteración
k1
º
f(x 0 , y 0 ) f
(0 , 1)
k1
(1)(0) 2
k1
1.2
1.2(1)
k2
1
1
h , y0
k1h)
2
2
1
1
f (0
(0.25) , 1
( 1.2)(0.25))
2
2
f (0.125,0.85)
0.85(0.125) 2 1.2(0.85)
1.006718
y1
y1
1 ( 1.006718)0.25
0.748320
k2
k2
k2
k2
f ( x0
 Segunda iteración
x1
x0
x1
x1
0 0.25
0.25
k1
f(x1 , y1 ) f
k1
(0.748320)(0.25) 2
k1
k2
k2
k2
k2
y2
y2
h
(0.25 , 0.748320)
1.2(0.748320)
0.851432
1
1
(0.25) , 0.748320
( 0.851432)(0.25))
2
2
f (0.375,0.641891)
0.641891(0.375) 2 1.2(0.641891)
0.680003
0.748320 ( 0.680003)0.25
0.578319
f (0.25
 Tercera iteración
x2
x2
x2
x1 h
0.25 0.25
0.5
k1
f(x 2 , y 2 ) f
k1
(0.578319)(0.5) 2
k1
0.549403
k2
f ( x2
º
(0.5,0.578319)
1
h , y2
2
1.2(0.578319)
1
k1 h )
2
k2
1
1
(0.25) , 0.578319
( 0.549403)(0.25))
2
2
f (0.625,0.509643)
0.509643(0.625) 2 1.2(0.509643)
0.4125
y3
0.578319
y3
0.4752
k2
k2
k2
f (0.5
( 0.4125)0.25
 Cuarta iteración
x3
x2
x3
0.5 0.25
x3
0.75
k1
f(x 3 , y 3 ) f
(0.75,0.4752)
(0.4752)(0.75)
2
k1
k1
h
1.2(0.4752)
k2
0.3029
1
1
f ( x3
h , y3
k1h)
2
2
1
f (0.75
(0.25) , 0.4752
2
f (0.875,0.4373)
k2
0.4373(0.875) 2
k2
k2
k2
1
( 0.3029)(0.25))
2
1.2(0.4373)
0.1900
y4
y4
0.4752 ( 0.1900)0.25
0.4277
x4
x3
h
x4 0.75 0.25
x4 1
Vectores solución
X 0 0.25
0.5
0.75
1
y 1 0.7483 0.5783 0.4752 0.4277
º
1.5.2 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.
dy
dx
yx 2
1.2 y
Donde:
y(0)=1
h = 0.25
Solución.
En el método de Runge kutta de tercer orden se utilizan las siguientes
formulas:
yi
1
yi
1
(k 1
6
4k 2
k 3 )h
k1
f(xi, y i )
1
1
k 2 = f(x i
h , yi
k 1 h)
2
2
k 3 f(x i h , y i k 1h 2k 2 h)
 Primera iteración
k1
f(x0 , y 0 ) f
k1
(1)(0) 2
k1
1.2
(0 , 1)
1.2(1)
k2
1
1
h , y0
k1h)
2
2
1
1
f (0
(0.25) , 1
( 1.2)(0.25))
2
2
f (0.125,0.85)
0.85(0.125) 2 1.2(0.85)
1.0067
k3
f(x o
k3
f (0 (0.25), (1) ( 1.2)(0.25) 2( 1.0067)(0.25))
k3
f (0.25,0.7966)
k3
0.7966(0.25) 2 1.2(0.7966)
k2
k2
k2
k2
º
f ( x0
h , y o k 1h 2k 2 h)
k3
y1
y1
0.9062
1
(k 1
6
0.7445
y0
4k 2
k 3 )h
 Segunda iteración
x1
x0
x1
x1
0 0.25
0.25
k1
f(x1 , y1 ) f
k1
(0.7445)(0.25) 2
k1
h
(0.25 , 0.7445)
1.2(0.7445)
0.8468
k2
1
1
h , y1
k1 h )
2
2
1
1
f (0.25
(0.25) , 0.7445
( 0.8469)(0.25))
2
2
f (0.375,0.6386)
0.6386(0.375) 2 1.2(0.6386)
0.6765
k3
f(x1 h , y1 k 1h 2k 2 h)
k3
f (0.25 (0.25), (0.7445) ( 0.8469)(0.25) 2( 0.6765)(0.25))
k3
f (0.5,0.6178)
k3
0.6178(0.5) 2 1.2(0.6178)
k2
k2
k2
k2
k3
y2
y2
f ( x1
0.5870
1
(k 1
6
0.5720
y1
4k 2
k 3 )h
 Tercera iteración
x2
x2
x2
º
x1 h
0.25 0.25
0.5
k1
k1
k1
f(x 2 , y 2 ) f
(0.5,0.5720)
(0.5720)(0.5)
2
1.2(0.5720)
0.5434
k2
1
1
h , y2
k1 h )
2
2
1
1
f (0.5
(0.25) , 0.5720
( 0.5434)(0.25))
2
2
f (0.625,0.5041)
0.5041(0.625) 2 1.2(0.5041)
0.4080
k3
f(x 2
k3
f (0.5 (0.25), (0.5720) ( 0.5434)(0.25) 2( 0.4080)(0.25))
k3
f (0.75,0.5038)
k3
0.5038(0.75) 2 1.2(0.5038)
k2
k2
k2
k2
k3
f ( x2
h , y2
k 1h 2k 2 h)
0.3212
1
(k 1
6
y3
y2
y3
0.4679
4k 2
k 3 )h
 Cuarta iteración
x3
x2
x3
0.5 0.25
x3
0.75
k1
f(x 3 , y 3 ) f
k1
(0.4679)(0.75) 2
k1
h
(0.75,0.4679)
1.2(0.4679)
0.2986
k2
1
1
h , y3
k1 h )
2
2
1
1
f (0.75
(0.25) , 0.4679
( 0.2983)(0.25))
2
2
f (0.875,0.4306)
0.4306(0.875) 2 1.2(0.4306)
0.1871
k3
f(x 3
k3
f (0.75 (0.25), (0.4679) ( 0.2983)(0.25) 2( 0.1871)(0.25))
k2
k2
k2
k2
º
f ( x3
h , y3
k 1h 2k 2 h)
k3
f (1,0.4489)
k3
0.4489(1) 2 1.2(0.4489)
k3
0.0898
y4
1
(k 1
6
0.4206
x4
x3
x4
x4
0.75 0.25
1
y4
y3
4k 2
k 3 )h
h
Vectores solución
X 0 0.25
0.5
0.75
1
y 1 0.7445 0.5720 0.4679 0.4206
2 APLICACIONES A LA INGENIERIA CIVIL
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 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.
2.1 APLICACIÓN DEL METODOD DE RUNGE KUTTA (TRANSITO DE
AVENIDAS)- HIDROLOGIA
METODO DE RUNGE-KUTTA
Para la circulación de avenidas a través de embalses bajo el supuesto
de superficie libre horizontal, puede establecerse un método alternativo
al anteriormente descrito resolviendo la ecuación de continuidad
mediante un método numérico como el de Runge-Kutta. Este método
no requiere el cálculo de la función especial 2S/∆t+Q versus Q, y se
aproxima más a la hidráulica de la circulación de flujos a través de
embalses. Existen diversos órdenes de esquemas de Runge-Kutta, con
mucho, el más útil y empleado el cuarto orden.
La ecuación de continuidad puede expresarse como
En donde
S: Volumen de agua almacenado.
I(t): Aporte que entra al embalse, función del tiempo.
Q(y): descarga evacuada por el aliviadera o estructura de
desagüe, determinada por la carga o calado.
º
El método de Runge-Kutta aproxima el valor de la función y sobre un
intervalo de tiempo, ∆t, mediante un desarrollo en serie de Taylor.
Que es la aproximación de Runge-Kutta de cuarto orden, por esta
precisión, en la que el termino de error será 0 (∆t5)
METODO DE RUNGE-KUTTA
HIDROGRAMA DE SALIDA
TIEMPO
ELEVACION CAUDAL TIEMPO
ELEVACION CAUDAL
(min.)
(m.)
(m3/s)
(min.)
(m.)
(m3/s)
15
353.511
0
255
355.726
87.17
30
353.537
0
270
355.783
97.71
45
353.578
0
285
355.817
104.15
60
353.636
0
300
355.831
106.7
75
353.718
0
325
355.829
106.35
90
353.827
0
330
355.817
104.08
105
353.965
0
345
355.798
100.36
120
354.132
0
360
355.773
95.8
135
354.324
0
375
355.743
90.29
150
354.539
0
390
355.708
83.95
165
354.763
0
405
355.671
77.46
º
180
354.985
0
420
355.632
70.81
195
355.195
12.15
435
355.593
64.28
210
355.377
32.75
450
355.555
58.39
225
355.527
53.96
465
355.52
52.88
240
355.642
72.51
480
355.488
48.09
Nota: SE ANEXA UN ARCHIVO EN EXCEL EN EL CD
EJERCICIO 2:
Aplicando el método de Runge-Kutta resolver un problema de
ecuaciones diferenciales lineales de primer orden con aplicación de
ingenierías.
Para problemas de ingeniería tenemos el caso de un tanque con
problema de mezclas de soluciones salinas:
Consideremos un depósito que contiene 50lts de agua con 75 gr de sal
disueltos. En un determinado instante comienza a entrar agua salada a
razón de 2 lts/min, con una concentración de 3 gr/lts de sal, mientras
que el agua, perfectamente mezclada, sale del depósito a razón de 2
lts/min. En la imagen anterior se plantea el problema.
Llamemos
a la cantidad de sal en el depósito en el instante t.
Notemos que el volumen de agua en el depósito es siempre de 50 litros,
º
ya que en cada instante entran dos litros y salen otros dos. Por tanto, la
concentración de sal en cada instante será de
La velocidad
de variación de la concentración de sal viene dada por
, que se
expresa en gr/min.
Por un lado, el aporte de sal por minuto al depósito será de:
Mientras que la tasa de pérdida de sal es de:
La variación total de la concentración de sal viene dada por la
diferencia entre el aporte y la pérdida de sal. Obtenemos así la siguiente
ecuación diferencial:
Ya entonces teniendo las condiciones iniciales sabiendo que
osea:
Sabiendo esto vamos a determinar la cantidad de sal disuelta en el
tanque cuando el t= 60min aumentando desde el t inicial=0 con un
h=5min
Sabiendo esto procedemos a hallar
Donde
Donde
Donde
º
:
Donde
Por lo tanto
Y así sucesivamente hasta llegar hasta
Pero para facilitar este método se realiza a través de la herramienta
Excel realizando una simple tabla que contenga el método dicha tabla
se anexara en el trabajo.
ANEXOS CALCULOS DE METODO DE RUNGE KUTTA
Se anexa también para comparar la efectividad del método la solución
de la ecuación
luego de haber sido integrada
y los valores resueltos, al comparar esto nos podemos dar cuenta que
son mínimas las diferencias y que el método es efectivo y será aun más
efectivo si se escoge un incremento (h) más pequeño.
º
Resolver mediante el método de Runge Kutta
la siguiente ecuación:
t(min)
0
5
10
15
20
25
30
35
40
45
50
55
60
º
t(min)
s(t) (gr)
h(min)
0
75
5
s(t) (gr)
k1
75
88,8225
100,097513
109,294542
116,796558
122,915952
127,907542
131,979182
135,300419
138,009552
140,219391
142,021957
143,492311
3
2,4471
1,99609947
1,62821834
1,3281377
1,08336192
0,88369832
0,72083272
0,58798325
0,47961794
0,39122435
0,3191217
0,26030757
k2
2,7
2,20239
1,79648952
1,4653965
1,19532393
0,97502573
0,79532849
0,64874945
0,52918492
0,43165614
0,35210192
0,28720953
0,23427682
k3
2,73
2,226861
1,81645052
1,48167869
1,20860531
0,98585935
0,80416547
0,65595777
0,53506476
0,43645232
0,35601416
0,29040075
0,23687989
k4
2,727
2,2244139
1,81445442
1,48005047
1,20727717
0,98477599
0,80328177
0,65523694
0,53447677
0,4359727
0,35562293
0,29008163
0,23661958
3 PROGRAMA EN MATLAB DEL METODO DE RUNGE KUTTA
DIAGRAMA DE FLUJO DEL PROGRAMA DE RUNGE KUTTA
INICIO
Ingreso
Computar
Iniciar datos
Mostrar
Incrementar
Fin
º
Runge Kutta Organizador:
%
%
%
%
%
%
METODO DE
ord
:
funcion :
xo, yo :
h
:
n
:
RUNGE KUTTA
Orden del metodo
Nombre de la función f(x,y) de la derivada
condiciones iniciales
tamaño del paso
Numero de iteraciones. (para la partición)
disp ('METODO DE RUNGE KUTTA')
disp ('---------------------')
disp ('1 Metodo de Primer Orden')
disp ('2 Metodo de Primer Orden')
disp ('3 Metodo de Primer Orden')
disp ('4 Metodo de Primer Orden')
disp ('5 Comparacion')
disp ('0 Salir')
ord = input ('Elija Orden:');
if ord~=0
xo = input ('Ingrese valor inicial de x:');
yo = input ('Ingrese valor inicial de y:');
h = input ('Ingrese los incrementos h:');
n = input ('Ingrese el numero de iteraciones n:');
switch ord
case 1
RK_primer_orden('funcion',xo,yo,h,n)
case 2
RK_segundo_orden('funcion',xo,yo,h,n)
case 3
RK_tercer_orden('funcion',xo,yo,h,n)
case 4
RK_cuarto_orden('funcion',xo,yo,h,n)
case 5
hold all
RK_primer_orden('funcion',xo,yo,h,n)
RK_segundo_orden('funcion',xo,yo,h,n)
RK_tercer_orden('funcion',xo,yo,h,n)
RK_cuarto_orden('funcion',xo,yo,h,n)
title('METODO DE RUNGE KUTTA COMPARACION');
hleg1 = legend('RK 1er Ord','RK 2do Ord','RK 3er Ord','RK
4to Ord');
end
end
disp ('Finalizado')
Función:
function f=funcion (x,y)
f=2*x*y;
Runge Kutta de 1er Orden:
function RK_primer_orden(funcion,xo,yo,h,n)
% RK_primer_orden('funcion',xo,yo,h,n)
% funcion : Nombre de la función f(x,y) de la derivada
% xo, yo : condiciones iniciales
% h
: tamaño del paso
% n
: Numero de iteraciones. (para la partición)
yn=yo;
xn=xo;
º
vectx = zeros(1, n+1);
vecty = zeros(1, n+1);
vectx(1)=xn;
vecty(1)=yn;
for i=1:n
xn1=xn+h;
k1=h*feval(funcion,xn,yn);
yn1=yn+k1;
vectx(i+1)=xn1;
vecty(i+1)=yn1;
xn=xn1;
yn=yn1;
end
disp('METODO DE RUNGE KUTTA DE PRIMER ORDEN')
disp(['
Iter ','
x
','
y
'])
disp(['
------','
------','
------'])
disp([(0:n)',vectx(1:i+1)',vecty(1:i+1)'])
subplot (1,1,1);
plot(vectx,vecty,'-r+','LineWidth',2,'MarkeredgeColor','r','MarkerSize',10);
title('METODO DE RUNGE KUTTA DE PRIMER OREDEN');
xlabel ('valores x');
ylabel ('valores y');
grid on
Runge Kutta de 2do Orden:
function w=RK_segundo_orden(funcion,xo,yo,h,n)
% RK_segundo_orden('funcion',xo,yo,h,n)
% funcion : Nombre de la función f(x,y) de la derivada
% xo, yo : condiciones iniciales
% h
: tamaño del paso
% n
: Numero de iteraciones. (para la partición)
yn=yo;
xn=xo;
vectx = zeros(1, n+1);
vecty = zeros(1, n+1);
vectx(1)=xn;
vecty(1)=yn;
for i=1:n
xn1=xn+h;
k1=h*feval(funcion,xn,yn);
k2=h*feval(funcion,(xn+0.5*h),(yn+0.5*k1));
yn1=yn+k2*h;
vectx(i+1)=xn1;
vecty(i+1)=yn1;
xn=xn1;
yn=yn1;
end
disp('METODO DE RUNGE KUTTA DE SEGUNDO ORDEN')
disp(['
Iter ','
x
','
y
'])
disp(['
------','
------','
------'])
disp([(0:n)',vectx(1:i+1)',vecty(1:i+1)'])
subplot (1,1,1);
º
plot(vectx,vecty,'-go','LineWidth',2,'MarkeredgeColor','g','MarkerSize',10);
title('METODO DE RUNGE KUTTA DE SEGUNDO OREDEN');
xlabel ('valores x');
ylabel ('valores y');
grid on
Runge Kutta de 3er Orden:
function w=RK_tercer_orden(funcion,xo,yo,h,n)
% RK_TERCER_orden('funcion',xo,yo,h,n)
% funcion : Nombre de la función f(x,y) de la derivada
% xo, yo : condiciones iniciales
% h
: tamaño del paso
% n
: Numero de iteraciones. (para la partición)
yn=yo;
xn=xo;
vectx = zeros(1, n+1);
vecty = zeros(1, n+1);
vectx(1)=xn;
vecty(1)=yn;
for i=1:n
xn1=xn+h;
k1=h*feval(funcion,xn,yn);
k2=h*feval(funcion,(xn+0.5*h),(yn+0.5*k1));
k3=h*feval(funcion,(xn+0.5*h),(yn+0.5*k2));
yn1=yn+(k1+4*k2+k3)/6;
vectx(i+1)=xn1;
vecty(i+1)=yn1;
xn=xn1;
yn=yn1;
end
disp('METODO DE RUNGE KUTTA DE TERCER ORDEN')
disp(['
Iter ','
x
','
y
'])
disp(['
------','
------','
------'])
disp([(0:n)',vectx(1:i+1)',vecty(1:i+1)'])
subplot (1,1,1);
plot(vectx,vecty,'-b*','LineWidth',2,'MarkeredgeColor','b','MarkerSize',10);
title('METODO DE RUNGE KUTTA DE TERCER OREDEN');
xlabel ('valores x');
ylabel ('valores y');
grid on
Runge Kutta de 4to Orden:
function w=RK_cuarto_orden(funcion,xo,yo,h,n)
% RK_cuarto_orden('funcion',xo,yo,h,n)
% funcion : Nombre de la función f(x,y) de la derivada
% xo, yo : condiciones iniciales
% h
: tamaño del paso
% n
: Numero de iteraciones. (para la partición)
yn=yo;
xn=xo;
vectx = zeros(1, n+1);
vecty = zeros(1, n+1);
º
vectx(1)=xn;
vecty(1)=yn;
for i=1:n
xn1=xn+h;
k1=h*feval(funcion,xn,yn);
k2=h*feval(funcion,(xn+0.5*h),(yn+0.5*k1));
k3=h*feval(funcion,(xn+0.5*h),(yn+0.5*k2));
k4=h*feval(funcion,(xn+h),(yn+k3));
yn1=yn+(k1+2*k2+2*k3+k4)/6;
vectx(i+1)=xn1;
vecty(i+1)=yn1;
xn=xn1;
yn=yn1;
end
disp('METODO DE RUNGE KUTTA DE CUARTO ORDEN')
disp(['
Iter ','
x
','
y
'])
disp(['
------','
------','
------'])
disp([(0:n)',vectx(1:i+1)',vecty(1:i+1)'])
subplot (1,1,1);
plot(vectx,vecty,'-kx','LineWidth',2,'MarkeredgeColor','k','MarkerSize',10);
title('METODO DE RUNGE KUTTA DE CUARTO OREDEN');
xlabel ('valores x');
ylabel ('valores y');
grid on
3.1 SOLUCION DEL EJERCICIO PLANTEADO EN EL PROGRAMA
PARA:
x=0, y=1, h=0.1, n=5
>> RUNGEKUTTA
METODO DE RUNGE KUTTA
--------------------1 Metodo de Primer Orden
2 Metodo de Primer Orden
3 Metodo de Primer Orden
4 Metodo de Primer Orden
5 Comparacion
0 Salir
Elija Orden:5
Ingrese valor inicial de x:0
Ingrese valor inicial de y:1
Ingrese los incrementos h:0.1
Ingrese el numero de iteraciones n:5
METODO DE RUNGE KUTTA DE PRIMER ORDEN
Iter x
y
------ ------ ------
º
0
1.0000
2.0000
3.0000
4.0000
5.0000
0 1.0000
0.1000 1.0000
0.2000 1.0200
0.3000 1.0608
0.4000 1.1244
0.5000 1.2144
METODO DE RUNGE KUTTA DE SEGUNDO ORDEN
Iter x
y
------ ------ -----0
0 1.0000
1.0000 0.1000 1.0010
2.0000 0.2000 1.0040
3.0000 0.3000 1.0092
4.0000 0.4000 1.0164
5.0000 0.5000 1.0259
METODO DE RUNGE KUTTA DE TERCER ORDEN
Iter x
y
------ ------ -----0
0 1.0000
1.0000 0.1000 1.0083
2.0000 0.2000 1.0372
3.0000 0.3000 1.0882
4.0000 0.4000 1.1646
5.0000 0.5000 1.2711
METODO DE RUNGE KUTTA DE CUARTO ORDEN
Iter x
y
------ ------ -----0
0 1.0000
1.0000 0.1000 1.0101
2.0000 0.2000 1.0408
3.0000 0.3000 1.0942
4.0000 0.4000 1.1735
5.0000 0.5000 1.2840
Finalizado
RESULTADO:
º
º
4 CONCLUSIONES
El método RUNGE-KUTA es un conjunto de métodos iterativos
para la aproximación de ecuaciones diferenciales ordinarias que
derivan del método de Taylor.
El método de RUNGE-KUTTA tiene variantes variando en la
exactitud de la solución
La efectividad o exactitud del método consiste en saber escoger
un buen incremento.
Se pueden resolver ecuaciones diferenciales sin tener necesidad
de resolver las integrales a dicha ecuación solo se necesita
conocer una pendiente hallada a través de la ecuación
.
El método de Runge Kutta se utiliza para determinar costos,
volúmenes bajos aislados, productos de alto valor agregado,
control de movimientos, control de procesos, dimensiones de
espacio, entre otras
º
5 RECOMENDACIONES
Es bueno reconocer los tipos de este método para poder resolver
los diferentes problemas que se nos presente
Reconocer los datos para su fácil resolución
Saber cómo es el método TAYLOR , saber utilizarlos ya que nos
ayudara en la variante de cuarto orden
Saber también el método de EULER ya que se usa en una de la
variante de este método que estamos explicando
º
Descargar