Sie sind auf Seite 1von 25

“AÑO DEL DIÁLOGO Y LA RECONCILIACIÓN NACIONAL”

ESCUELA PROFESIONAL DE INGENIERÍA MECÁNICA

SOLUCION DE ECUACIONES DIFERENCIALES ORDINARIAS


POR EL METODO DE RUNGE-KUTTA DE CUARTO ORDEN

DATOS INFORMATIVOS:

Facultad : Ingeniería
Curso : Simulación Numérica de Ingeniería
Área : Ciencias de la Ingeniería
Carácter del curso : Obligatorio
Ciclo de estudios :V
Código del curso : 1611-0025
Semestre Académico : 2018-I
Docente responsable : Dr. Ronal De La Cruz Araujo

INTEGRANTES:

Apellidos y Nombres: Código:

Galvez Campos Christian Edinson 0201616044


Obeso Alfaro Daniel Alejandro 0201616043
Vásquez León

Nvo. Chimbote, 6 de agosto de 2018

1
ÍNDICE

INTRODUCCIÓN …..…….………………………..……………………………….…. 03
OBJTETIVOS ..………...……………………………………………………………… 04
OBJETIVO GENERAL ............................................................................. 04
OBJETIVOS ESPECÍFICOS ……………………………………………….. 04

CAPITULO I: FUNDAMENTACIÓN TEÓRICA …………………………………… 05

1.1 FORTRAN ………………………………………………………………………… 05


1.2 ECUACIÓN DIFERENCIAL …………………………………………………….. 05
1.3 ECUACIÓN DIFERENCIAL ORDINARIA …………………………………….. 05
1.4 MÉTODO DE EULER …………………………………………………………… 06
1.5 MÉTODO DE TAYLOR …………………………………………………………. 09
1.6 MÉTODO DE EULER MODIFICADO …………………………………………. 10
1.7 MÉTODO DE RUNGE-KUTTA ………………………………………………… 12

CAPITULO II: ALGORITMIZACION DEL METODO DE RUNGE-KUTTA……

2.1 APLICACIÓN DEL METODO DE RUNGE-KUTTA PARA UNA EDO

2.2 ALGORITMIZACION DE UN CODIGO EN LENFUAJE FORTRAN 90

2.3 EJEMPLOS DE EJECUCION DEL CODIGO

2
INTRODUCCIÓN

El presente trabajo de investigación titulado “Fundamentación y Algoritmización del


Método Runge-Kutta para la solución de ecuaciones diferenciales ordinarias de 4°
orden”, fue realizado para el curso de Simulación Numérica de Ingeniería, dentro del
marco del cumplimiento de los lineamientos de Investigación Formativa de la
Universidad Nacional del Santa.

FALTA AGREGAR

Esperamos que el siguiente proyecto sirva de aporte a futuros trabajos y cumpla con las
expectativas de los ávidos lectores.

3
OBJETIVOS

OBJETIVO GENERAL

Fundamentar y algoritmizar el método de solución de ecuaciones diferenciales


ordinarias llamado Runge-Kutta de 4° orden.

OBJETIVO ESPECIFICO

Ampliar los conocimientos obtenidos en el desarrollo del curso mediante la aplicación


de temas anteriormente explicados.

4
CAPITULO I: FUNDAMENTACIÓN TEÓRICA

FORTRAN

Fortran, abreviación del termino Formula Translator (“Traductor de fórmulas”, en


español) fue desarrollado entre los años 1954 y 1957 por John Backus y constituye el
primer lenguaje científico de alto nivel. Se caracteriza principalmente por permitir la
escritura de expresiones en forma algebraica y la declaración de identificadores.

Su versión estandarizada original se denominó “FORTRAN-66” y resultó ser una potente


herramienta para la resolución de problemas computacionales, sin embargo, tenía una
identificación de datos pobre, la cual fue corregida en sus versiones posteriores.

ECUACIÓN DIFERENCIAL

Se denomina ecuación diferencial a aquella ecuación que contiene una variable


dependiente y sus derivadas con respecto a una o más variables independientes.
Además, el orden de una ecuación diferencial es el orden de la derivada de más alto
orden en ella. Por otro lado, cabe resaltar que muchas de las leyes generales de la
naturaleza se expresan en el lenguaje de las ecuaciones diferenciales, esto como
resultado de expresar estas leyes a través de símbolos matemáticos.

ECUACIÓN DIFERENCIAL ORDINARIA

Se denomina ecuación diferencial ordinaria a aquella ecuación diferencial que solo


depende de una variable independiente por lo que todas las derivadas que tiene son
ordinarias o totales.

Por ejemplo, una ecuación diferencial ordinaria (EDO) general de primer orden tiene la
siguiente forma:

𝑑𝑦
= 𝑓(𝑥, 𝑦)
𝑑𝑥

Cabe resaltar, que para esta ecuación diferencial ordinaria, su solución analítica debe
contener una constante arbitraria 𝑐, de tal modo que:

5
𝐹(𝑥, 𝑦, 𝑐) = 0

Esta ecuación representa una familia de curvas (cada una corresponde a una solución
particular de la EDO) en el plano 𝑥 − 𝑦, obtenida cada una de ellas para un valor
particular de 𝑐.

Sin embargo, cuando se usan métodos numéricos no se encuentran soluciones de la


forma 𝐹(𝑥, 𝑦, 𝑐) = 0, sino que se obtienen valores numéricos para 𝑦 correspondientes a
valores específicos de 𝑥 con la ayuda de condiciones iniciales o de frontera. A las
ecuaciones diferenciales con condiciones iniciales o de frontera, se les denomina
problemas de valor inicial o problemas de frontera, respectivamente.

Entonces, el problema de valor inicial, del ejemplo anteriormente dado, se formula de


la siguiente manera:

Una ecuación diferencial de primer orden.


El valor de 𝑦 en un punto conocido 𝑥0 (condición inicial).
El valor de 𝑥𝑓 donde se desea conocer el valor de 𝑦 (𝑦𝑓 ).

Expresándolo matemáticamente:

𝑑𝑦/𝑑𝑥 = 𝑓(𝑥, 𝑦)
𝑦 (𝑥0 ) = 𝑦0
𝑦 (𝑥𝑓 ) = ?

METODO DE EULER

Este método es el más simple entre todos los métodos numéricos para resolver un
problema de valor inicial y básicamente, consiste en dividir el intervalo que va desde 𝑥0
hasta 𝑥𝑓 en 𝑛 sub-intervalos de ancho ℎ, es decir:

𝑥𝑓 − 𝑥0
ℎ=
𝑛

6
Obteniendo de esta manera un conjunto de (𝑛 + 1) puntos: 𝑥0 , 𝑥1 , … , 𝑥𝑛 del intervalo
de interés. Para cualquiera de estos puntos se cumple que:

𝑥𝑖 = 𝑥0 + 𝑖ℎ, 0≤𝑖≤𝑛

La condición inicial 𝑦(𝑥0 ) = 𝑦0 representa el punto 𝑃0 = (𝑥0 , 𝑦0 ) por donde pasa la


curva solución de la ecuación anteriormente dada, la cual denotaremos con 𝐹(𝑥) = 𝑦
en lugar de 𝐹(𝑥, 𝑦, 𝑐) = 0 por simplicidad.

Con 𝑃0 se puede evaluar la primera derivada de 𝐹(𝑥) en ese punto:

𝑑𝑦
𝐹 ′ (𝑥) = | = 𝑓(𝑥0 , 𝑦0 )
𝑑𝑥 𝑃0

A partir de esta información se traza una recta que pasa por 𝑃0 y posee una pendiente
𝑓(𝑥0 , 𝑦0 ). Esta recta aproxima 𝐹(𝑥) en una vecindad 𝑥0 . Si se toma la recta como
reemplazo de la función 𝐹(𝑥) y se localiza en ella el valor de para 𝑦 correspondiente a
𝑥1 , se tiene que:

𝑦1 − 𝑦0
= 𝑓(𝑥0, 𝑦0 )
𝑥1 − 𝑥0

Figura 1.1: Deducción gráfica del Método de Euler

Entonces para 𝑦1 :

7
𝑦1 = 𝑦0 + (𝑥1 − 𝑥0 ) ∗ 𝑓(𝑥0 , 𝑦0 ) = 𝑦0 + ℎ ∗ 𝑓(𝑥0 , 𝑦0 )

Si bien el valor de 𝑦1 calculado de esta forma no es igual al de 𝐹(𝑥1 ) debido al error


existente, sirve para aproximar 𝐹 ′ (𝑥) en el punto 𝑃 = (𝑥1 , 𝑦1 ). De esto, se puede
deducir que al repetir el procedimiento se puede generar una sucesión de
aproximaciones de la siguiente forma:

𝑦1 = 𝑦0 + ℎ ∗ 𝑓(𝑥0 , 𝑦0 )
𝑦2 = 𝑦1 + ℎ ∗ 𝑓(𝑥1 , 𝑦1 )

𝑦𝑖+1 = 𝑦𝑖 + ℎ ∗ 𝑓(𝑥𝑖 , 𝑦𝑖 )

𝑦𝑛 = 𝑦𝑛−1 + ℎ ∗ 𝑓(𝑥𝑛−1 , 𝑦𝑛−1 )

Como se muestra en la siguiente figura, se trata de aproximar la curva 𝑦 = 𝐹(𝑥) a


través de una serie de segmentos de línea recta

Figura 1.2: Aplicación repetida del método de Euler

Debido a que la aproximación de una curva a través de una línea recta no es exacta,
existe un error propio del método. Sin embargo, este error disminuye cuando se reduce
el valor de ℎ.

MÉTODO DE TAYLOR

8
Para empezar, como acotación se puede decir que el método de Euler utiliza los dos
primeros términos de la serie de Taylor para su primera iteración, es decir:

𝐹(𝑥𝑖 ) ≈ 𝑦1 = 𝐹(𝑥0 ) + 𝐹 ′ (𝑥0 )(𝑥1 − 𝑥0 ) , 𝑂(𝑥1 − 𝑥0 )2

En este punto, se aplicara la información acerca de las series de Taylor para mejorar la
exactitud del método de Euler, obteniendo los algoritmos de Taylor.

Si se usan tres términos en la expansión de 𝐹(𝑥𝑖 ), entonces:

(𝑥1 − 𝑥0 )2
𝐹(𝑥𝑖 ) ≈ 𝑦1 = 𝐹(𝑥0 ) + 𝐹 ′ (𝑥0 )(𝑥1 − 𝑥0 ) + 𝐹′′(𝑥0 ) , 𝑂(𝑥1 − 𝑥0 )3
2!

Pero sabemos que:

𝑑𝐹′(𝑥) 𝑑𝑓(𝑥, 𝑦)
𝐹 ′′ (𝑥) = = 𝑦 ℎ = 𝑥1 − 𝑥0
𝑑𝑥 𝑑𝑥

Entonces:

ℎ2 𝑑𝑓(𝑥, 𝑦)
𝑦1 = 𝑦(𝑥0 ) + ℎ𝑓(𝑥0 , 𝑦0 ) + |
2! 𝑑𝑥 𝑥0 ,𝑦0

𝑑𝑓(𝑥,𝑦)
Donde | significa la evaluación de la derivada de 𝑓(𝑥, 𝑦) con respecto a 𝑥 en
𝑑𝑥 𝑥0 ,𝑦0

el punto (𝑥0 , 𝑦0 )

Ahora, basado en esta ecuación, podemos pensar que para obtener la iteración en
diferentes puntos, se usaría lo siguiente:

ℎ2 𝑑𝑓(𝑥, 𝑦)
𝑦𝑖+1 = 𝑦(𝑥𝑖 ) + ℎ𝑓(𝑥𝑖 , 𝑦𝑖 ) + |
2! 𝑑𝑥 𝑥𝑖 ,𝑦𝑖

Donde la derivada 𝑓(𝑥, 𝑦) depende de 𝑥 y 𝑦, por lo tanto su derivada total con respecto
a 𝑥 viene dada por:
𝑑𝑓(𝑥, 𝑦) 𝜕𝑓(𝑥, 𝑦) 𝜕𝑓(𝑥, 𝑦) 𝑑𝑦
= +
𝑑𝑥 𝜕𝑥 𝜕𝑥 𝑑𝑥

9
La ecuación equivale a usar una curva que pasa por el punto (𝑥0 , 𝑦0 ), cuya pendiente y
segunda derivada son iguales que la de la función desconocida 𝐹(𝑥0 ) en el punto
(𝑥0 , 𝑦0 ). Como se observa en la gráfica, se obtiene una aproximación más exacta que
con el método de Euler.

Figura 1.3: Comparación grafica de los errores del


método de Euler y de Taylor de Orden 2.

Como se vio, se obtuvo el método de Taylor de segundo orden, el cual es más exacto
que el método de Euler -al cual le corresponde el nombre de método de Taylor de primer
orden- por lo tanto, se concluye que al extender el método a más términos se obtendrá
un valor más exacto.

MÉTODO DE EULER MODIFICADO

Este método se caracteriza principalmente porque trata de evitar el error de redondeo


del método clásico de Euler utilizando un valor promedio de la derivada tomada en los
dos extremos del intervalo.

Los pasos a seguir para este método son:

Paso Predictor: Partir de (𝑥0 , 𝑦0 ) y usar el método de Euler para calcular el valor de 𝑦
correspondiente a 𝑥1 . Este valor calculado se denota como ̅̅̅
𝑦1 debido a que solo es un
valor transitorio para 𝑦1 .

10
Paso Corrector: Como su propio nombre lo indica, se encarga de corregir la predicción.
Aquí en el nuevo punto obtenido (𝑥1 , 𝑦1 ) se evalúa la derivada 𝑓(𝑥1 , 𝑦1 ) usando los datos
del problema con valores iniciales. Posteriormente, se obtiene la media aritmética de
esta derivada y la derivada en el punto inicial (𝑥0 , 𝑦0 ), quedando de la siguiente manera:

1
𝑑𝑒𝑟𝑖𝑣𝑎𝑑𝑎 𝑝𝑟𝑜𝑚𝑒𝑑𝑖𝑜 = [ 𝑓(𝑥0 , 𝑦0 ) + 𝑓(𝑥1 , ̅̅̅)
𝑦1 ]
2

Y posteriormente:

(𝑥1 − 𝑥0 )
𝑦1 = 𝑦0 + [ 𝑓(𝑥0 , 𝑦0 ) + 𝑓(𝑥1 , ̅̅̅)
𝑦1 ]
2

Figura 1.4: Primera iteración del método de Euler modificado

De manera general, primero, usando el paso de predicción tendríamos:

𝑦̅𝑖+1 = 𝑦1 + ℎ𝑓(𝑥𝑖 , 𝑦𝑖 )

Una vez obtenido 𝑦̅𝑖+1 , se calcula 𝑓(𝑥𝑖+1 , 𝑦̅𝑖+1 ) la cual es la derivada en el punto
(𝑥𝑖+1 , 𝑦̅𝑖+1 ) y se promedia con la derivada anterior para encontrar la derivada promedio:
1
[ 𝑓(𝑥𝑖 , 𝑦𝑖 ) + 𝑓(𝑥𝑖+1 , 𝑦 𝑖+1 ]
̅̅̅̅̅̅)
2

Luego se sustituye 𝑓(𝑥𝑖 , 𝑦𝑖 ) con la derivada promedio en la ecuación de iteración de


Euler y se obtiene:


𝑦𝑖+1 = 𝑦𝑖 + [ 𝑓(𝑥𝑖 , 𝑦𝑖 ) + 𝑓(𝑥𝑖+1 , 𝑦 𝑖+1 ]
̅̅̅̅̅̅)
2

11
MÉTODO DE RUNGE-KUTTA

Estos métodos consisten en obtener un resultado que se obtendría al utilizar un número


finito de términos de una serie de Taylor

1.7.1 APROXIMACIÓN DE PRIMER ORDEN

Evaluando la siguiente ecuación diferencial ordinaria de primer orden con valor inicial:

𝑦 ′ = 𝑓(𝑥, 𝑦) , 𝑦(𝑥0 ) = 𝑦0

A partir de la gráfica y del método de Euler, sabemos que:

∆𝑦
= 𝑦′ → 𝑦𝑛+1 − 𝑦𝑛 = (𝑦 ′ 𝑛 )∆𝑥
∆𝑥

𝑦𝑛+1 = 𝑦𝑛 + ℎ. 𝑦 ′ 𝑛 → 𝑦𝑛+1 = 𝑦𝑛 + ℎ. 𝑓(𝑥𝑛 , 𝑦𝑛 ) … (1)

También se puede llegar a esta igualdad utilizando una aproximación hacia adelante
(forward) mediante las series de Taylor:

1
𝑦𝑛+1 = 𝑦𝑛 + 𝑦 ′ 𝑛 (𝑥𝑖+1 − 𝑥𝑖 ) + 𝑦 ′′ 𝑛 (𝑥𝑖+1 − 𝑥𝑖 )2 + ⋯
2

𝑦𝑛+1 = 𝑦𝑛 + 𝑦 ′ 𝑛 . ℎ + 𝑂(ℎ)

𝑦𝑛+1 = 𝑦𝑛 + ℎ. 𝑓(𝑥, 𝑦)

Según Runge-Kutta, para una aproximación de orden 1:

12
∆𝑦 = 𝐶1 . ∆𝑦1

Pero por Euler: ∆𝑦1 = ∆𝑥1 . 𝑦′𝑛 = ℎ. 𝑓(𝑥𝑛 , 𝑦𝑛 )

𝐶1 . ℎ. 𝑓(𝑥𝑛 , 𝑦𝑛 ) → 𝑦𝑛+1 = 𝑦𝑛 + 𝐶1 . ℎ. 𝑓(𝑥𝑛 , 𝑦𝑛 ) … (2)

Igualando las ecuaciones (1) y (2), tenemos:

𝑦𝑛 + ℎ. 𝑓(𝑥𝑛 , 𝑦𝑛 ) = 𝑦𝑛 + 𝐶1 . ℎ. 𝑓(𝑥𝑛 , 𝑦𝑛 ) → 𝐶1 = 1

De esta forma:

𝑘1 = ∆𝑦1 = ℎ. 𝑓(𝑥𝑛 , 𝑦𝑛 )
𝑦𝑛+1 = 𝑦𝑛 + ℎ. 𝑓(𝑥𝑛 , 𝑦𝑛 )

1.7.2 APROXIMACIÓN DE SEGUNDO ORDEN

Para este caso, continuamos evaluando la ecuación diferencial ordinaria de primer


orden con valor inicial:

𝑦 ′ = 𝑓(𝑥, 𝑦) , 𝑦(𝑥0 ) = 𝑦0

En este caso, evaluamos la variación ∆𝑦 = 𝑦𝑛+1 − 𝑦𝑛 como una suma de variaciones


𝐶𝑖 . ∆𝑦𝑖 , donde 𝐶𝑖 se consideran factores y ∆𝑦𝑖 es evaluada en el mismo punto en el rango
𝑥𝑛 ≤ 𝑥 ≤ 𝑥𝑛+1 y multiplicada por la derivada de la función 𝑦 ′ = 𝑓(𝑥, 𝑦).

Por lo tanto, para una aproximación de segundo orden, tenemos:

∆𝑦 = 𝐶1 . ∆𝑦1 + 𝐶2 . ∆𝑦2 → 𝑦𝑛+1 = 𝑦𝑛 + 𝐶1 . ∆𝑦1 + 𝐶2 . ∆𝑦2 …(a)

Por otro lado, por Euler sabemos que: ∆𝑦1 = ℎ. 𝑓(𝑥𝑛 , 𝑦𝑛 ) …(b)

Y además, ∆𝑦2 será evaluado en el intervalo 𝑥𝑛 ≤ 𝑥 ≤ 𝑥𝑛+1 y tendrá la forma ∆𝑦2 =


ℎ. 𝑓(𝑥𝑛 + 𝛼ℎ, 𝑦𝑛 + 𝛽∆𝑦1 ) donde 𝛼 y 𝛽 son constantes a determinar.

13
Expresamos la derivada 𝑓(𝑥, 𝑦) en una serie de Taylor considerando la siguiente gráfica:

𝜕𝑓(𝑥𝑛 ,𝑦𝑛 )
𝑓(𝑥, 𝑦) = 𝑓(𝑥𝑛 , 𝑦𝑛 ) + 𝜕𝑥
(𝑥𝑛+1 − 𝑥𝑛 ) + 𝑂(ℎ)2 … (1)

Donde la derivada parcial desarrollada es de la siguiente forma:

𝜕𝑓(𝑥𝑛 ,𝑦𝑛 ) 𝜕𝑓(𝑥𝑛 ,𝑦𝑛 ) 𝜕𝑓(𝑥𝑛 ,𝑦𝑛 ) 𝑑𝑦


= + … (2)
𝜕𝑥 𝜕𝑥 𝜕𝑦 𝑑𝑥

Reemplazando (2) en (1) tenemos:

𝜕𝑓(𝑥𝑛 , 𝑦𝑛 ) 𝜕𝑓(𝑥𝑛 , 𝑦𝑛 )
𝑓(𝑥, 𝑦) = 𝑓(𝑥𝑛 , 𝑦𝑛 ) + ∆𝑥 + ∆𝑦
𝜕𝑥 𝜕𝑦

Ahora se evalúa la derivada 𝑓(𝑥𝑛 + 𝛼ℎ, 𝑦𝑛 + 𝛽∆𝑦1 ):

𝑓(𝑥𝑛 + 𝛼. ℎ, 𝑦𝑛 + 𝛽. ∆𝑦1 ) = 𝑓(𝑥𝑛 , 𝑦𝑛 ) + 𝑓𝑥 (𝑥𝑛 , 𝑦𝑛 ). ∆𝑥 + 𝑓𝑦 (𝑥𝑛 , 𝑦𝑛 ). ∆𝑦

Ahora, determinamos las variaciones:

∆𝑥 = (𝑥𝑛 + 𝛼. ℎ) − 𝑥𝑛 = 𝛼. ℎ
∆𝑦 = (𝑦𝑛 + 𝛽. ∆𝑦1 ) − 𝑦𝑛 = 𝛽. ∆𝑦1 = 𝛽. ℎ. 𝑓(𝑥𝑛 , 𝑦𝑛 )

Entonces:

𝑓(𝑥𝑛 + 𝛼. ℎ, 𝑦𝑛 + 𝛽. ∆𝑦1 ) = 𝑓(𝑥𝑛 , 𝑦𝑛 ) + 𝛼. ℎ. 𝑓𝑥 (𝑥𝑛 , 𝑦𝑛 ) + 𝛽. ℎ. 𝑓𝑛 . 𝑓𝑦 (𝑥𝑛 , 𝑦𝑛 )…(c)

14
Reemplazando (b) y (c) en (a):

𝑦𝑛+1 = 𝑦𝑛 + 𝐶1 . ∆𝑦1 + 𝐶2 . ∆𝑦2

𝑦𝑛+1 = 𝑦𝑛 + 𝐶1 . ℎ. 𝑓(𝑥𝑛 , 𝑦𝑛 ) + 𝐶2 . ℎ. 𝑓(𝑥𝑛 + 𝛼ℎ, 𝑦𝑛 + 𝛽∆𝑦1 )

𝑦𝑛+1 = 𝑦𝑛 + 𝐶1 . ℎ. 𝑓(𝑥𝑛 , 𝑦𝑛 ) + 𝐶2 . ℎ. [𝑓(𝑥𝑛 , 𝑦𝑛 ) + 𝛼. ℎ. 𝑓𝑥 (𝑥𝑛 , 𝑦𝑛 ) + 𝛽. ℎ. 𝑓𝑛 . 𝑓𝑦 (𝑥𝑛 , 𝑦𝑛 )]

𝑦𝑛+1 = 𝑦𝑛 + (𝐶1 + 𝐶2 )ℎ. 𝑓(𝑥𝑛 , 𝑦𝑛 ) + 𝐶2 . 𝛼. ℎ2 . 𝑓𝑥 (𝑥𝑛 , 𝑦𝑛 ) + 𝐶2 . 𝛽. ℎ2 . 𝑓𝑛 . 𝑓𝑦 (𝑥𝑛 , 𝑦𝑛 ) …(I)

Ahora expresamos 𝑦 en una serie de Taylor en los puntos mostrados anteriormente:

ℎ2
𝑦𝑛+1 = 𝑦𝑛 + 𝑦′𝑛 . ℎ + 𝑦′′ + 𝑂(ℎ3 )
2 𝑛

De donde:

𝑦′𝑛 = 𝑓(𝑥𝑛 , 𝑦𝑛 )

𝜕𝑓(𝑥𝑛 , 𝑦𝑛 ) 𝜕𝑓(𝑥𝑛 , 𝑦𝑛 ) 𝜕𝑓(𝑥𝑛 , 𝑦𝑛 )


𝑦′′𝑛 = = + 𝑓(𝑥𝑛 , 𝑦𝑛 )
𝜕𝑥 𝜕𝑥 𝜕𝑦

Reemplazo esto en la serie de Taylor:

ℎ2
𝑦𝑛+1 = 𝑦𝑛 + ℎ. 𝑓(𝑥𝑛 , 𝑦𝑛 ) + 2
[𝑓𝑥 (𝑥𝑛 , 𝑦𝑛 ) + 𝑓𝑦 (𝑥𝑛 , 𝑦𝑛 ). 𝑓(𝑥𝑛 , 𝑦𝑛 )] …(II)

Igualando (I) y (II):

𝑦𝑛 + (𝐶1 + 𝐶2 )ℎ. 𝑓(𝑥𝑛 , 𝑦𝑛 ) + 𝐶2 . 𝛼. ℎ2 . 𝑓𝑥 (𝑥𝑛 , 𝑦𝑛 ) + 𝐶2 . 𝛽. ℎ2 . 𝑓𝑛 . 𝑓𝑦 (𝑥𝑛 , 𝑦𝑛 )

ℎ2 ℎ2
= 𝑦𝑛 + ℎ. 𝑓(𝑥𝑛 , 𝑦𝑛 ) + 𝑓𝑥 (𝑥𝑛 , 𝑦𝑛 ) + 𝑓𝑦 (𝑥𝑛 , 𝑦𝑛 ). 𝑓𝑛
2 2

Si igualamos términos, tenemos que:

1 1
𝐶1 + 𝐶2 = 1 ; 𝐶2 . 𝛼 = ; 𝐶2 . 𝛽 =
2 2

Debido a que existen más incógnitas que ecuaciones, el sistema tendrá infinitas
soluciones por lo que se concluye que existen infinitos métodos de Runge-Kutta de
orden 2. Sin embargo, por comodidad para este caso escogemos los siguientes valores:

15
1 1
𝐶1 = ; 𝐶2 = ; 𝛼=1 ; 𝛽=1
2 2

Por lo que las variaciones en y, quedan de la siguiente manera:

∆𝑦1 = ℎ. 𝑓(𝑥𝑛 , 𝑦𝑛 ) ; ∆𝑦2 = ℎ. 𝑓(𝑥𝑛 + ℎ, 𝑦𝑛 + ∆𝑦1 )

Reemplazando en la ecuación (a):

1
𝑦𝑛+1 = 𝑦𝑛 + (∆𝑦1 + ∆𝑦2 )
2

Esta fórmula, también conocida como método de Euler mejorado, es la más usada.

Por otro lado, si escogemos los siguientes valores:

1 1
𝐶1 = 0 ; 𝐶2 = 1 ; 𝛼= ; 𝛽=
2 2

La ecuación toma la siguiente forma:

ℎ ∆𝑦1
𝑦𝑛+1 = 𝑦𝑛 + ℎ. 𝑓(𝑥𝑛 + , 𝑦𝑛 + )
2 2

A esta ecuación también se le conoce como método de punto medio.

En conclusión:

𝑘1 = ∆𝑦1 = ℎ. 𝑓(𝑥𝑛 , 𝑦𝑛 )
ℎ ∆𝑦1
𝑘2 = ∆𝑦2 = ℎ. 𝑓(𝑥𝑛 + , 𝑦𝑛 + )
2 2
1
𝑦𝑛+1 = 𝑦𝑛 + (∆𝑦1 + ∆𝑦2 )
2

1.7.3 APROXIMACIÓN DE TERCER ORDEN

Continuamos con la siguiente consideración:

𝑦 ′ = f(x, y), y (𝑥0 ) = (𝑦0 )

16
De la misma forma que para el orden 2, se considera ∆y como la suma de varios ∆𝑦𝑖 ,
en este caso consideramos 3 ya que la aproximación es de orden 3. Por lo tanto:

∆y = 𝐶1 ∆𝑦1 + 𝐶2 ∆𝑦2 + 𝐶3 ∆𝑦3 𝑦𝑛+1 = 𝑦𝑛 + 𝐶1 ∆𝑦1 + 𝐶2 ∆𝑦2 + 𝐶3 ∆𝑦3 ……….. (α)

Gracias a Euler obtenemos:

∆𝑦1 = h f (𝑥𝑛 , 𝑦𝑛 )

Para 𝑦2 tenemos:

∆𝑦2 = h f (𝑥𝑛 + αh; 𝑦𝑛 + β∆𝑦1 )

De la misma manera para 𝑦3 tenemos:

∆𝑦3 = h f (𝑥𝑛 + ah; 𝑦𝑛 + (ϕ∆𝑦1 + φ∆𝑦2 ))

Utilizando Taylor para la aproximación de la función en el segundo orden (∆𝑦2 )

Teniendo: ∆𝑦2 = h f (𝑥𝑛 + αh; 𝑦𝑛 + β∆𝑦1 )

Expresaremos: f (𝑥𝑛 + ah; 𝑦𝑛 + β∆𝑦1 ) en una serie de Taylor

f′ (𝑥𝑛 ,𝑦𝑛 ) (∆x) f′′ (𝑥𝑛 ,𝑦𝑛 ) (∆x)2


f (𝑥𝑛 + αh; 𝑦𝑛 + β∆𝑦1 ) = f (𝑥𝑛 , 𝑦𝑛 ) + 1!
+ 2!
+ o(∆x)3 …….. (1)

En esta ocasión se tomó para un orden más en comparación a lo anterior, ya que en


esta ocasión se busca una aproximación de orden 3. Entonces resolvemos las
respectivas derivadas

𝜕f (𝑥𝑛 ,𝑦𝑛 ) 𝜕f (𝑥𝑛 ,𝑦𝑛 ) 𝜕f (𝑥𝑛 ,𝑦𝑛 ) 𝑑𝑦 𝑑𝑦


𝜕𝑥
= 𝜕𝑥
+ 𝜕𝑦 𝑑𝑥
, 𝑑𝑥 = f (𝑥𝑛 ,𝑦𝑛 ) ……. (2)

𝜕𝑓2 (𝑥𝑛 ,𝑦𝑛 ) 𝜕2 f (𝑥𝑛 ,𝑦𝑛 ) 𝜕 𝜕f (𝑥𝑛 ,𝑦𝑛 )


𝜕𝑥 2
= 𝜕𝑥 2
+ 𝜕𝑥( 𝜕𝑦
f (𝑥𝑛 ,𝑦𝑛 )) Valor conocido de (2)

𝜕𝑓2 (𝑥𝑛 ,𝑦𝑛 ) 𝜕2 f (𝑥𝑛 ,𝑦𝑛 ) 𝜕 𝜕f (𝑥𝑛 ,𝑦𝑛 ) 𝜕f (𝑥𝑛 ,𝑦𝑛 ) 𝜕f (𝑥𝑛 ,𝑦𝑛 )
𝜕𝑥 2
= 𝜕𝑥 2
+ 𝜕𝑥 ( 𝜕𝑦
f (𝑥𝑛 ,𝑦𝑛 ) + 𝜕𝑦 𝜕𝑥
)

𝜕𝑓2 (𝑥𝑛 ,𝑦𝑛 ) 𝜕2 f (𝑥𝑛 ,𝑦𝑛 ) 𝜕 𝜕f (𝑥𝑛 ,𝑦𝑛 ) 𝜕f (𝑥𝑛 ,𝑦𝑛 ) 𝜕f (𝑥𝑛 ,𝑦𝑛 ) 𝜕f (𝑥𝑛 ,𝑦𝑛 )
𝜕𝑥 2
= 𝜕𝑥 2
+ 𝜕𝑥 ( 𝜕𝑦
) f (𝑥𝑛 ,𝑦𝑛 ) + 𝜕𝑦
( 𝜕𝑥 + 𝜕𝑦

f (𝑥𝑛 ,𝑦𝑛 ))

𝜕𝑓2 (𝑥𝑛 ,𝑦𝑛 )


𝜕𝑥 2
= f𝑥𝑥 (𝑥𝑛 ,𝑦𝑛 ) + f𝑥𝑦 (𝑥𝑛 ,𝑦𝑛 ) f (𝑥𝑛 ,𝑦𝑛 ) + f𝑥𝑦 (𝑥𝑛 ,𝑦𝑛 ) f (𝑥𝑛 ,𝑦𝑛 ) + f𝑦𝑦 (𝑥𝑛 ,𝑦𝑛 ) f 2 (𝑥𝑛 ,𝑦𝑛 )

𝜕𝑓2 (𝑥𝑛 ,𝑦𝑛 )


𝜕𝑥 2
= f𝑥𝑥 (𝑥𝑛 ,𝑦𝑛 ) + 2f𝑥𝑦 (𝑥𝑛 ,𝑦𝑛 ) f (𝑥𝑛 ,𝑦𝑛 ) + f𝑦𝑦 (𝑥𝑛 ,𝑦𝑛 ) f 2 (𝑥𝑛 ,𝑦𝑛 ) ………. (3)

17
Reemplazando (3) y (2) en (1)

1
f (𝑥𝑛 + αh; 𝑦𝑛 + β∆𝑦1 ) = f (𝑥𝑛 ,𝑦𝑛 ) + f𝑥 (𝑥𝑛 ,𝑦𝑛 ) ∆x + f𝑦 (𝑥𝑛 ,𝑦𝑛 ) ∆y + 2 (f𝑥𝑥 (𝑥𝑛 ,𝑦𝑛 ) +

2f𝑥𝑦 (𝑥𝑛 ,𝑦𝑛 ) f (𝑥𝑛 ,𝑦𝑛 ) + f𝑦𝑦 (𝑥𝑛 ,𝑦𝑛 ) f 2 (𝑥𝑛 ,𝑦𝑛 )) (∆x)2

1
f (𝑥𝑛 + αh; 𝑦𝑛 + β∆𝑦1 ) = f (𝑥𝑛 ,𝑦𝑛 ) + f𝑥 (𝑥𝑛 ,𝑦𝑛 ) ∆x + f𝑦 (𝑥𝑛 ,𝑦𝑛 ) ∆y + 2 f𝑥𝑥 (𝑥𝑛 ,𝑦𝑛 ) (∆x)2 +
1
f𝑥𝑦 (𝑥𝑛 ,𝑦𝑛 ) ∆x∆y + f𝑦𝑦 (𝑥𝑛 ,𝑦𝑛 ) (∆y)2
2

Para este caso tenemos: ∆x = αh; ∆y = β∆𝑦1 = βh f (𝑥𝑛 , 𝑦𝑛 )

1
f (𝑥𝑛 + αh; 𝑦𝑛 + β∆𝑦1 ) = f (𝑥𝑛 ,𝑦𝑛 ) + f𝑥 (𝑥𝑛 ,𝑦𝑛 ) αh + f𝑦 (𝑥𝑛 ,𝑦𝑛 ) βh f (𝑥𝑛 , 𝑦𝑛 ) + 2 f𝑥𝑥 (𝑥𝑛 ,𝑦𝑛 )
1
(αh)2 + f𝑥𝑦 (𝑥𝑛 ,𝑦𝑛 ) αh βh f (𝑥𝑛 , 𝑦𝑛 ) + 2 f𝑦𝑦 (𝑥𝑛 ,𝑦𝑛 ) (βh f (𝑥𝑛 , 𝑦𝑛 ))2

1
f (𝑥𝑛 + αh; 𝑦𝑛 + β∆𝑦1 ) = f (𝑥𝑛 ,𝑦𝑛 ) + αh f𝑥 (𝑥𝑛 ,𝑦𝑛 ) + βh f (𝑥𝑛 , 𝑦𝑛 ) f𝑦 (𝑥𝑛 ,𝑦𝑛 ) + 2
1
α2 h2 f𝑥𝑥 (𝑥𝑛 ,𝑦𝑛 ) + αβh2 f (𝑥𝑛 , 𝑦𝑛 ) f𝑥𝑦 (𝑥𝑛 ,𝑦𝑛 ) + β2 h2 f 2 (𝑥𝑛 , 𝑦𝑛 ) f𝑦𝑦 (𝑥𝑛 ,𝑦𝑛 ) ……….(I)
2

Ahora utilizaremos Taylor para la aproximación en la función en el tercer orden (∆𝑦3 )

Teniendo: ∆𝑦3 = h f (𝑥𝑛 + ah; 𝑦𝑛 + (ϕ∆𝑦1 + φ∆𝑦2 ))

f′ (𝑥𝑛 ,𝑦𝑛 ) (∆x) f′′ (𝑥𝑛 ,𝑦𝑛 ) (∆x)2


f (𝑥𝑛 + ah; 𝑦𝑛 + (ϕ∆𝑦1 + φ∆𝑦2 )) = f (𝑥𝑛 , 𝑦𝑛 ) + 1!
+ 2!
+ o(∆x)3

Entonces siguiendo el mismo procedimiento anterior llegaremos a las mismas


derivadas, lo único que cambiara será ∆x = ah; ∆y = ϕ∆𝑦1 + φ∆𝑦2

Por tanto, tenemos:

1
f (𝑥𝑛 + ah; 𝑦𝑛 + (ϕ∆𝑦1 + φ∆𝑦2 )) = f (𝑥𝑛 ,𝑦𝑛 ) + f𝑥 (𝑥𝑛 ,𝑦𝑛 ) ∆x + f𝑦 (𝑥𝑛 ,𝑦𝑛 ) ∆y + 2 f𝑥𝑥 (𝑥𝑛 ,𝑦𝑛 )
1
(∆x)2 + f𝑥𝑦 (𝑥𝑛 ,𝑦𝑛 ) ∆x∆y + 2 f𝑦𝑦 (𝑥𝑛 ,𝑦𝑛 ) (∆y)2

1
f (𝑥𝑛 + ah; 𝑦𝑛 + (ϕ∆𝑦1 + φ∆𝑦2 )) = f (𝑥𝑛 ,𝑦𝑛 ) + f𝑥 (𝑥𝑛 ,𝑦𝑛 ) ah + f𝑦 (𝑥𝑛 ,𝑦𝑛 ) (ϕ∆𝑦1 + φ∆𝑦2 ) +
2
1
f𝑥𝑥 (𝑥𝑛 ,𝑦𝑛 ) (ah)2 + f𝑥𝑦 (𝑥𝑛 ,𝑦𝑛 ) ah (ϕ∆𝑦1 + φ∆𝑦2 ) + f𝑦𝑦 (𝑥𝑛 ,𝑦𝑛 ) (ϕ∆𝑦1 + φ∆𝑦2 )2
2

Dónde: ∆𝑦1 es una variación conocida y será h f (𝑥𝑛 , 𝑦𝑛 )

f (𝑥𝑛 + ah; 𝑦𝑛 + (ϕ∆𝑦1 + φ∆𝑦2 )) = f (𝑥𝑛 ,𝑦𝑛 ) + ah f𝑥 (𝑥𝑛 ,𝑦𝑛 ) + ϕ h f (𝑥𝑛 , 𝑦𝑛 ) f𝑦 (𝑥𝑛 ,𝑦𝑛 ) +
h2
φ∆𝑦2 f𝑦 (𝑥𝑛 ,𝑦𝑛 ) +
2
[a2 f𝑥𝑥 (𝑥𝑛 , 𝑦𝑛 ) + 2aϕ f (𝑥𝑛 , 𝑦𝑛 )f𝑥𝑦 (𝑥𝑛 , 𝑦𝑛 ) + ϕ2 f 2 (𝑥𝑛 , 𝑦𝑛 )f𝑦𝑦 (𝑥𝑛 , 𝑦𝑛 ) ]
1
+ 2 [2ah φ∆𝑦2 f𝑥𝑦 (𝑥𝑛 , 𝑦𝑛 ) + 2hϕ φ∆𝑦2 f (𝑥𝑛 , 𝑦𝑛 )f𝑦𝑦 (𝑥𝑛 , 𝑦𝑛 ) + φ2 ∆𝑦2 2 f𝑦𝑦 (𝑥𝑛 , 𝑦𝑛 ) ]

18
f (𝑡𝑛 + ah; 𝑦𝑛 + (ϕ∆𝑦1 + φ∆𝑦2 )) = f (𝑥𝑛 ,𝑦𝑛 ) + ah f𝑥 (𝑥𝑛 ,𝑦𝑛 ) + ϕ h f (𝑥𝑛 , 𝑦𝑛 ) f𝑦 (𝑥𝑛 ,𝑦𝑛 ) +
h2
φ∆𝑦2 f𝑦 (𝑥𝑛 ,𝑦𝑛 ) +
2
[a2 f𝑥𝑥 (𝑥𝑛 , 𝑦𝑛 ) + 2aϕ f (𝑥𝑛 , 𝑦𝑛 )f𝑥𝑦 (𝑥𝑛 , 𝑦𝑛 ) + ϕ2 f 2 (𝑥𝑛 , 𝑦𝑛 )f𝑦𝑦 (𝑥𝑛 , 𝑦𝑛 ) ]
1
+ 2 (2ah φ f𝑥𝑦 (𝑥𝑛 , 𝑦𝑛 ) + 2hϕ φ f (𝑥𝑛 , 𝑦𝑛 )f𝑦𝑦 (𝑥𝑛 , 𝑦𝑛 )) ∆𝑦2 +

1
2
φ2 ∆𝑦2 2 f𝑦𝑦 (𝑥𝑛 , 𝑦𝑛 )

Ahora reemplazaremos ∆𝑦2 pero solo se tomara una parte especifica dependiendo de
que no me aparezca una 3ra derivada, ya que solo necesito tener hasta la segunda
derivada para poder igualarlo a la serie de Taylor “y”

h2
= f (𝑥𝑛 ,𝑦𝑛 ) + h (a f𝑥 (𝑥𝑛 ,𝑦𝑛 ) + ϕ f (𝑥𝑛 ,𝑦𝑛 ) f𝑦 (𝑥𝑛 ,𝑦𝑛 )) + (a2 f𝑥𝑥 (𝑥𝑛 , 𝑦𝑛 ) +
2

2aϕ f (𝑥𝑛 , 𝑦𝑛 )f𝑥𝑦 (𝑥𝑛 , 𝑦𝑛 ) + ϕ2 f 2 (𝑥𝑛 , 𝑦𝑛 )f𝑦𝑦 (𝑥𝑛 , 𝑦𝑛 )) + φ f𝑦 (𝑥𝑛 ,𝑦𝑛 ) [ℎf𝑛 + h2 α f𝑥 (𝑥𝑛 , 𝑦𝑛 ) +
1
𝛽h2 f (𝑥𝑛 , 𝑦𝑛 ) f𝑦 (𝑥𝑛 , 𝑦𝑛 )] + 2 (2ah φ f𝑥𝑦 (𝑥𝑛 , 𝑦𝑛 ) + 2 hϕφ f (𝑥𝑛 , 𝑦𝑛 )f𝑦𝑦 (𝑥𝑛 , 𝑦𝑛 ) h f (𝑥𝑛 ,𝑦𝑛 ) +
1
2
φ2 f𝑦𝑦 (𝑥𝑛 , 𝑦𝑛 ) [ℎf (𝑥𝑛 , 𝑦𝑛 )]2

h2
= f (𝑥𝑛 ,𝑦𝑛 ) + h (a f𝑥 (𝑥𝑛 ,𝑦𝑛 ) + ϕ f (𝑥𝑛 ,𝑦𝑛 ) f𝑦 (𝑥𝑛 ,𝑦𝑛 )) + 2
(a2 f𝑥𝑥 (𝑥𝑛 , 𝑦𝑛 ) +

2aϕ f (𝑥𝑛 , 𝑦𝑛 )f𝑥𝑦 (𝑥𝑛 , 𝑦𝑛 ) + ϕ2 f 2 (𝑥𝑛 , 𝑦𝑛 )f𝑦𝑦 (𝑥𝑛 , 𝑦𝑛 )) + φ h2 f𝑦 (𝑥𝑛 , 𝑦𝑛 ) [α f𝑥 (𝑥𝑛 , 𝑦𝑛 ) +


h2
𝛽 f (𝑥𝑛 , 𝑦𝑛 ) f𝑦 (𝑥𝑛 , 𝑦𝑛 ) ] + h φ f (𝑥𝑛 , 𝑦𝑛 )f𝑦 (𝑥𝑛 , 𝑦𝑛 ) + [2ah φ f (𝑥𝑛 , 𝑦𝑛 )f𝑥𝑦 (𝑥𝑛 , 𝑦𝑛 ) +
2
h2
2ℎϕφ f 2 (𝑥𝑛 , 𝑦𝑛 ) f𝑦𝑦 (𝑥𝑛 , 𝑦𝑛 )] + f (𝑥 , 𝑦 ) f 2 (𝑥𝑛 , 𝑦𝑛 )
2 𝑦𝑦 𝑛 𝑛

h2
= f (𝑥𝑛 ,𝑦𝑛 ) + h [a f𝑥 (𝑥𝑛 , 𝑦𝑛 ) + ϕ f (𝑥𝑛 , 𝑦𝑛 )f𝑦 (𝑥𝑛 , 𝑦𝑛 ) + φ f (𝑥𝑛 , 𝑦𝑛 )f𝑦 (𝑥𝑛 , 𝑦𝑛 )] + 2

[a2 f𝑥𝑥 (𝑥𝑛 , 𝑦𝑛 ) + 2aϕ f (𝑥𝑛 , 𝑦𝑛 )f𝑥𝑦 (𝑥𝑛 , 𝑦𝑛 )] + φ h2 f𝑦 (𝑥𝑛 , 𝑦𝑛 ) [α f𝑥 (𝑥𝑛 , 𝑦𝑛 ) +


h2 h2
𝛽 f (𝑥𝑛 , 𝑦𝑛 ) f𝑦 (𝑥𝑛 , 𝑦𝑛 )] + [2ah φ f (𝑥𝑛 , 𝑦𝑛 )f𝑥𝑦 (𝑥𝑛 , 𝑦𝑛 )] + [ϕ2 + 2ϕφ + φ2 ]
2 2

f𝑦𝑦 (𝑥𝑛 , 𝑦𝑛 ) f 2 (𝑥𝑛 , 𝑦𝑛 )


(ϕ + φ) 2

h2
= f (𝑥𝑛 ,𝑦𝑛 ) + h [a f𝑥 (𝑥𝑛 , 𝑦𝑛 ) + (ϕ + φ) f (𝑥𝑛 , 𝑦𝑛 )f𝑦 (𝑥𝑛 , 𝑦𝑛 )] +
2
[a2 f𝑥𝑥 (𝑥𝑛 , 𝑦𝑛 ) + 2a(ϕ +
h2
φ) f (𝑥𝑛 , 𝑦𝑛 )f𝑥𝑦 (𝑥𝑛 , 𝑦𝑛 )] + h2 (αφ f𝑥𝑦 (𝑥𝑛 , 𝑦𝑛 ) + 𝛽φf (𝑥𝑛 , 𝑦𝑛 ) + f𝑦2 (𝑥𝑛 , 𝑦𝑛 )) + 2

(ϕ + φ)2 f 2 (𝑥𝑛 , 𝑦𝑛 )f𝑦𝑦 (𝑥𝑛 , 𝑦𝑛 ) …….. (II)

Usando Taylor para “y” obtenemos (∆𝑥 = h):

𝑦′𝑛 ∆𝑥 𝑦′′𝑛 ∆𝑥 𝑦′′′𝑛 ∆𝑥


𝑦𝑛+1 = 𝑦𝑛 + 1!
+ 2!
+ 3!
+ ….

19
𝜕 𝑦𝑛
𝜕𝑥
= 𝑦′𝑥 = f (𝑥𝑛 ,𝑦𝑛 )

𝜕2 𝑦𝑛 𝜕 f (𝑥𝑛 ,𝑦𝑛 ) 𝜕 f (𝑥𝑛 ,𝑦𝑛 ) 𝜕 f (𝑥𝑛 ,𝑦𝑛 ) 𝑑𝑦 𝑑𝑦


𝜕𝑥 2
= 𝜕𝑥
= 𝜕𝑥
+ 𝜕𝑦 𝑑𝑥
, 𝑑𝑥 = f (𝑥𝑛 ,𝑦𝑛 )

𝜕3 𝑦𝑛 𝜕2 f (𝑥𝑛 ,𝑦𝑛 ) 𝜕2 f (𝑥𝑛 ,𝑦𝑛 ) 𝜕2 f (𝑥𝑛 ,𝑦𝑛 ) 𝜕 f (𝑥𝑛 ,𝑦𝑛 ) 𝜕 f (𝑥𝑛 ,𝑦𝑛 )
𝜕𝑥 3
= 𝜕𝑥
= 𝜕𝑥
+ 𝜕𝑥𝜕𝑦
f (𝑥𝑛 ,𝑦𝑛 ) + 𝜕𝑥 𝜕𝑦

= f𝑥𝑥 (𝑥𝑛 , 𝑦𝑛 ) + f (𝑥𝑛 , 𝑦𝑛 )f𝑥𝑦 (𝑥𝑛 , 𝑦𝑛 ) + f𝑦 (𝑥𝑛 , 𝑦𝑛 ) (f𝑥 (𝑥𝑛 , 𝑦𝑛 ) + f (𝑥𝑛 , 𝑦𝑛 )f𝑦 (𝑥𝑛 , 𝑦𝑛 ))

𝜕
= f𝑥𝑥 (𝑥𝑛 , 𝑦𝑛 ) + f (𝑥𝑛 , 𝑦𝑛 )f𝑥𝑦 (𝑥𝑛 , 𝑦𝑛 ) + f𝑦 (𝑥𝑛 , 𝑦𝑛 ) 𝜕𝑦 (f𝑥 + f𝑦 .f)

𝑑𝑓
= f𝑥𝑥 (𝑥𝑛 , 𝑦𝑛 ) + f (𝑥𝑛 , 𝑦𝑛 )f𝑥𝑦 (𝑥𝑛 , 𝑦𝑛 ) + + f (𝑥𝑛 , 𝑦𝑛 ) [f𝑥𝑦 (𝑥𝑛 , 𝑦𝑛 ) + f𝑦𝑦 (𝑥𝑛 , 𝑦𝑛 ) + f𝑦 𝑑𝑦]

= f𝑥𝑥 (𝑥𝑛 , 𝑦𝑛 ) + f (𝑥𝑛 , 𝑦𝑛 )f𝑥𝑦 (𝑥𝑛 , 𝑦𝑛 ) + f (𝑥𝑛 ,𝑦𝑛 ) f𝑥𝑦 (𝑥𝑛 , 𝑦𝑛 ) + f (𝑥𝑛 , 𝑦𝑛 ) f𝑦𝑦 (𝑥𝑛 , 𝑦𝑛 ) f (𝑥𝑛 ,𝑦𝑛 )
+ f𝑦 f𝑥 + f𝑦 (𝑥𝑛 , 𝑦𝑛 ) f𝑦 (𝑥𝑛 , 𝑦𝑛 ) f (𝑥𝑛 ,𝑦𝑛 )

h2 h3
= 𝑦𝑛 + h f (𝑥𝑛 , 𝑦𝑛 ) + (f𝑥 (𝑥𝑛 , 𝑦𝑛 ) + f (𝑥𝑛 , 𝑦𝑛 )f𝑦 (𝑥𝑛 , 𝑦𝑛 )) + (f𝑥𝑥 (𝑥𝑛 , 𝑦𝑛 ) + 2 f (𝑥𝑛 ,𝑦𝑛 )
2 6

f𝑥𝑦 (𝑥𝑛 , 𝑦𝑛 ) + f 2 (𝑥𝑛 , 𝑦𝑛 )f𝑦𝑦 (𝑥𝑛 , 𝑦𝑛 ) + f𝑥𝑦 (𝑥𝑛 , 𝑦𝑛 ) + f (𝑥𝑛 ,𝑦𝑛 ) f𝑦2 (𝑥𝑛 , 𝑦𝑛 )) ….(III)

Reemplazando de (I) y (II) en (α)

∆y = 𝐶1 h f (𝑥𝑛 , 𝑦𝑛 ) + 𝐶2 h f (𝑥𝑛 + αh; 𝑦𝑛 + β∆𝑦1 ) + 𝐶3 h f (𝑥𝑛 + ah; 𝑦𝑛 + (ϕ∆𝑦1 + φ∆𝑦2 ))

∆y = 𝐶1 h f (𝑥𝑛 , 𝑦𝑛 ) + 𝐶2 h [f (𝑥𝑛 , 𝑦𝑛 ) + αh f𝑥 (𝑥𝑛 , 𝑦𝑛 ) + βh f (𝑥𝑛 , 𝑦𝑛 ) f𝑦 (𝑥𝑛 , 𝑦𝑛 ) +


1 1
2
α2 h2 f𝑥𝑥 (𝑥𝑛 , 𝑦𝑛 ) + αβh2 f (𝑥𝑛 , 𝑦𝑛 ) f𝑥𝑦 (𝑥𝑛 , 𝑦𝑛 ) + 2
β2 h2 f 2 (𝑥𝑛 , 𝑦𝑛 ) f𝑦𝑦 (𝑥𝑛 , 𝑦𝑛 ) ] + 𝐶3 h
h2
[f (𝑥𝑛 , 𝑦𝑛 ) + h [a f𝑥 (𝑥𝑛 , 𝑦𝑛 ) + (ϕ + φ) f (𝑥𝑛 , 𝑦𝑛 )f𝑦 (𝑥𝑛 , 𝑦𝑛 )] + 2
[a2 f𝑥𝑥 + 2a(ϕ +
h2
φ) f f𝑥𝑦 ] + h2 (αφ f𝑥𝑦 + 𝛽φf + f𝑦2 ) + 2
(ϕ + φ)2 f 2 f𝑦𝑦 ]

𝐶2 α2 h3 𝐶2 β2 h3 2
∆y = h (𝐶1 + 𝐶2 ) f + 𝐶2 h2 α f𝑥 + 𝐶2 h2 β f f𝑦 + 2
f𝑥𝑥 + 𝐶2 α βh3 f f𝑥𝑦 + 2
f
𝐶3 a2 h3
f𝑦𝑦 + 𝐶3 h f + 𝐶3 h2 a f𝑥 + 𝐶3 h2 (ϕ + φ) f f𝑦 + 2
f𝑥𝑥 + 𝐶3 h3 a (ϕ + φ) f f𝑥𝑦 + 𝐶3 h3 α
h3
φ f𝑥𝑦 + 𝐶3 h3 β φ f f𝑦 2 + 𝐶3 2
(ϕ + φ)2 f 2 f𝑦𝑦 ………(IV)

20
Igualando (III) y (IV)

𝐶2 α2 h3 𝐶2 β2 h3
𝑦𝑛+1 = 𝑦𝑛 + h (𝐶1 + 𝐶2 ) f + 𝐶2 h2 α f𝑥 + 𝐶2 h2 β f f𝑦 + 2
f𝑥𝑥 + 𝐶2 α βh3 f f𝑥𝑦 + 2
𝐶3 a2 h3
f 2 f𝑦𝑦 + 𝐶3 h f + 𝐶3 h2 a f𝑥 + 𝐶3 h2 (ϕ + φ) f f𝑦 + 2
f𝑥𝑥 + 𝐶3 h3 a (ϕ + φ) f f𝑥𝑦 +
h3 h2 h2
𝐶3 h3 α φ f𝑥𝑦 + 𝐶3 h3 β φ f f𝑦 2 + 𝐶3 (ϕ + φ)2 f 2 f𝑦𝑦 = 𝑦𝑛 + h f (𝑥𝑛 , 𝑦𝑛 ) + f + f f𝑦
2 2 𝑥 2
h3 h3 h3 h3 h3
+ f + f f𝑥𝑦 + f 2 f𝑦𝑦 + f f𝑦 2 + f
6 𝑥𝑥 3 6 6 6 𝑥𝑦

Buscando términos en común:

𝐶1 + 𝐶2 + 𝐶3 = 1

1
𝐶2 α + a 𝐶3 = 2

1
𝐶2 β + 𝐶3 (ϕ + φ) = 2

𝐶2 𝐶3 1
2
α2 + 2
a2 = 6

1
𝐶2 α β + 𝐶3 a (ϕ + φ) = 3

𝐶2 𝐶3 1
β2 + (ϕ + φ)2 =
2 2 6

1
𝐶3 α = 6

1
𝐶3 β φ = 6

Escogiendo:

1 4 1
𝐶1 = 6 , 𝐶2 = 6 , 𝐶3 = 6

1 1
α=2,β=2,a=1

ϕ = -1 , φ = 2

Resolviendo:

∆𝑦1 = h f (𝑥𝑛 , 𝑦𝑛 )

1 1
∆𝑦2 = h f (𝑥𝑛 + 2h; 𝑦𝑛 + 2∆𝑦1 )

∆𝑦3 = h f (𝑥𝑛 + h; 𝑦𝑛 + (-∆𝑦1 + 2∆𝑦2 ))

21
1
𝑦𝑛+1 = 𝑦𝑛 + 6 (∆𝑦1 + ∆𝑦2 + ∆𝑦3 )

Finalmente obtenemos el método de Runge-Kutta de tercer orden

1.7.4 APROXIMACION DE CUARTO ORDEN

1
𝑦𝑛+1 = 𝑦𝑛 + (∆𝑦1 + 2∆𝑦2 + 2∆𝑦3 + ∆𝑦4 )
6
∆𝑦1 = h f (𝑥𝑛 , 𝑦𝑛 )
ℎ ∆𝑦1
∆𝑦2 = h f (𝑡𝑛 + ; 𝑦𝑛 + )
2 2
ℎ ∆𝑦2
∆𝑦3 = h f (𝑡𝑛 + ; 𝑦𝑛 + )
2 2
∆𝑦4 = h f (𝑡𝑛 +h; 𝑦𝑛 + ∆𝑦3 )

22
2. CAPITULO II: ALGORITMIZACION DEL METODO DE RUNGE-KUTTA

2.1. APLICACIÓN DEL METODO DE RUNGE-KUTTA PARA UNA EDO


Como se puede observar en la derivación de las ecuaciones del método de Runge-
Kutta, realizadas en el capítulo I, principalmente este método se basa en la solución una
ecuación diferencial no lineal de primer orden.
Ahora basándonos en nuestro principal objetivo que es la solución de una EDO de orden
“n”, entonces tendremos la EDO en su forma general

𝑦 𝑛 = 𝑓(𝑦 𝑛−1 , 𝑦 𝑛−2 , … . , 𝑦 ′′ , 𝑦 ′ , 𝑦, 𝑥)

Donde la variable “y” es dependiente, y la variable “x” es independiente. Entonces aquí


es donde surgen dos ideas para solución de una EDO de su forma general, una consiste
en transforma una EDO en un sistema de ecuaciones diferenciales ordinarias no lineales
de primer orden. Mientras que la otra consiste en hacer aproximaciones de 𝑦 𝑛 , y a su
vez aplicarla para poder determinar los valores del resto de derivadas que podemos
encontrar en la función 𝑓(𝑦 𝑛−1 , 𝑦 𝑛−2 , … . , 𝑦 ′′ , 𝑦 ′ , 𝑦, 𝑥), que es donde se evaluara 𝑦 𝑛 en los
diversos puntos por los que pase.

Para la primera idea se tendría que hacer un sencillo cambio de variable de la siguiente
forma:
Consideramos:
𝑦 𝑛 = 𝑓(𝑦 𝑛−1 , 𝑦 𝑛−2 , … . , 𝑦 ′′ , 𝑦 ′ , 𝑦, 𝑥)
Con sus valores iniciales:

𝑦(𝑥0 ) = 𝑦0 𝑦 𝑖 (𝑥0 ) = 𝑦 𝑖 0 (𝑖 = 1,2, … , 𝑛 − 1)


Entonces:

𝑦1 = 𝑦

𝑦2 = 𝑦 ′ = 𝑦′1

𝑦3 = 𝑦 ′′ = 𝑦′2

…………….

𝑦𝑛 = 𝑦 𝑛−1 = 𝑦′𝑛−1

23
Derivando, entonces tenemos:

𝑦′1 = 𝑦2 𝑦1 (0) = 𝑦0

𝑦′2 = 𝑦3 𝑦2 (0) = 𝑦′0

…………….

𝑦′𝑛 = 𝑓(𝑦1 , 𝑦2 , … . , 𝑦𝑛 , 𝑥) 𝑦𝑛 (0) = 𝑦 𝑛−1 0

Y a partir de esto resolver las EDO de forma simultánea con el Runge-Kutta de cuarto
orden.

Finalmente se escogió la segunda idea ya que se observó que se desarrolla de una


forma mucho más directa, y con menos operaciones que convirtiendo una EDO en un
sistema de ecuaciones diferenciales.

2.2. ALGORITMIZACION DE UN CODIGO EN LENGUAJE FORTRAN 90

Para la realización de un código que ejecute este método, es necesario definir los
valores necesarios, tales como un valor inicial de la variable independiente (x), y un valor
final de la misma variable. Así mismo se define un valor de “h” (variación de “x”).
Además, del número de puntos que se quiere calcular. En nuestro caso utilizamos
también una variable 𝑓𝑖 que nos define el número de intervalos en los que se divide el
espacio entre punto y punto. Esto con la finalidad de lograr una mayor precisión, ya que
calculara la aproximación entre cada pequeña división.

Además, como se sabe para resolver una EDO de orden “n” se necesita “n” condiciones
iniciales para la variable dependiente en el punto inicial. Generalizando:

𝑦 𝑖 (𝑥0 ) = 𝑦 𝑖 0 (𝑖 = 1,2, … , 𝑛 − 1)

Es muy importante además la definición de la función en la que se evaluara la derivada


de orden “n”, de la variable dependiente, para lo cual se hace uso de un subprograma
función, en el cual, definiendo los valores de las constantes de la función, obtendremos
el valor de la función en los puntos indicados.

Dentro del programa se hace uso de dos subrutinas, una de ellas será la que realizara
todas las aproximaciones y ejecución del método de Runge-Kutta, mientras que la otra,

24
la cual estará dentro de la primera se encargara de escribir los resultados requeridos,
en este caso los valores de la variable dependiente en los puntos deseados.
Ahora, para un mejor entendimiento del funcionamiento del programa, se mostrará el
código realizado, comentado en cada una de sus partes.

25

Das könnte Ihnen auch gefallen