Вы находитесь на странице: 1из 7

MÉTODOS DE RUNGE KUTTA

Curso: Métodos Numéricos para Ingeniería, Autor: Cristian Loli Prudencio

INTRODUCCIÓN El valor del incremento ℎ se llama tamaño de


paso. Procedemos ahora a resolver
Las ecuaciones diferenciales sirven para modelar aproximadamente
problemas de ciencias e ingeniería que requieren
el cambio de una variable respecto a otra. En la 𝑦 ′ = 𝑓(𝑡, 𝑦) en [𝑡1 , 𝑡𝑛+1 ] con 𝑦(𝑡1 ) = 𝑦1
mayor parte de ellos hay que resolver un
Suponiendo que 𝑦(𝑡), 𝑦′(𝑡) e 𝑦′′(𝑡) son continuas
problema de valor inicial, es decir, resolver una
y usando el teorema de Taylor para desarrollar
ecuación diferencial que satisface una condición
𝑦(𝑡) alrededor de 𝑡 = 𝑡1 , para cada punto 𝑡
inicial dada.
existe un punto 𝑐1 entre 𝑡0 y 𝑡 tal que
𝑑𝑦
= 𝑓(𝑡, 𝑦) , 𝑎 ≤ 𝑡 ≤ 𝑏 𝑦′′(𝑐1 )(𝑡 − 𝑡1 )2
𝑑𝑡 𝑦(𝑡) = 𝑦(𝑡1 ) + 𝑦 ′ (𝑡1 )(𝑡 − 𝑡1 ) +
2
𝑦(𝑎) = 𝑦1
Al sustituir 𝑦 ′ (𝑡1 ) = 𝑓(𝑡1 , 𝑦(𝑡1 )) y ℎ = 𝑡2 − 𝑡1
De las situaciones de la vida real, las ecuaciones en la ecuación anterior, el resultado es una
diferenciales que modela el problema resultan expresión para el valor 𝑦(𝑡2 ):
demasiado complicadas para resolverla con
exactitud, por lo que se recurre a procedimientos ℎ2
𝑦(𝑡2 ) = 𝑦(𝑡1 ) + ℎ𝑓(𝑡1 , 𝑦(𝑡1 )) + 𝑦′′(𝑐1 )
para aproximar la solución. 2

Si el tamaño de paso ℎ es suficiente pequeño,


MÉTODO DE EULER entonces podemos despreciar el término que
contiene ℎ2 y obtener
Sea [𝑎, 𝑏] el intervalo en el que queremos hallar la
𝑦(𝑡2 ) ≈ 𝑤2 = 𝑦1 + ℎ𝑓(𝑡1 , 𝑦1 )
solución de un problema de valor inicial:
Que se llama aproximación de Euler.
𝑑𝑦
= 𝑓(𝑡, 𝑦) , 𝑎 ≤ 𝑡 ≤ 𝑏
𝑑𝑡 Repitiendo el proceso generamos una sucesión de
𝑦(𝑎) = 𝑦1 puntos que se aproximan a la gráfica de la
solución 𝑦 = 𝑦(𝑡). El paso general del método de
Hay que advertir que, de hecho, no vamos a Euler es
encontrar una función derivable que sea solución
del problema de valor inicial; en vez de eso, lo que 𝑡𝑖+1 = 𝑡𝑖 + ℎ, 𝑤𝑖+1 = 𝑤𝑖 + ℎ𝑓(𝑡𝑖 , 𝑤𝑖 ) para
se construye es un conjunto finito de puntos 𝑖 = 1, … , 𝑛. (1)
{(𝑡𝑖 , 𝑤𝑖 )} que son aproximaciones de la solución
DESCRIPCIÓN GEOMÉTRICA
(o sea, 𝑦(𝑡𝑖 ) ≈ 𝑤𝑖 ). ¿Cómo podemos construir un
“conjunto finito de puntos” que “verifiquen Si partimos del punto (𝑡1 , 𝑦1 ), calculamos el valor
aproximadamente una ecuación diferencial”? En de la pendiente 𝑚1 = 𝑓(𝑡1 , 𝑦1 ), nos movemos
primer lugar, elegimos las abscisas de los puntos. horizontalmente una distancia ℎ y verticalmente
Por comodidad, dividimos el intervalo [𝑎, 𝑏] en 𝑛 una distancia ℎ𝑓(𝑡1 , 𝑦1 ), entonces lo que hacemos
subintervalos del mismo tamaño usando la es desplazarnos a lo largo de la recta tangente a la
partición dada por los siguientes puntos: curva 𝑦(𝑡) terminando en el punto (𝑡2 , 𝑤2 ) .
Hagamos notar que ¡(𝑡2 , 𝑤2 ) no es un punto de la
𝑡𝑖 = 𝑎 + (𝑖 − 1)ℎ para 𝑖 = 1, … , 𝑛 + 1
curva deseada!, aunque sea la aproximación que
𝑏−𝑎 se genera. Ahora debemos usar (𝑡2 , 𝑤2 ), como si
siendo ℎ = 𝑛
fuera un punto correcto, para calcular la
Cristian Amador Loli Prudencio Página 1 Métodos Numéricos para Ing.
pendiente 𝑚2 = 𝑓(𝑡2 , 𝑤2 ) y usar este valor para 0.0 − 1.0
𝑤2 = 1.0 + 0.25 ( ) = 0.875,
obtener el siguiente desplazamiento vertical 2
ℎ𝑓(𝑡2 , 𝑤2 ), que nos lleva al punto (𝑡3 , 𝑤3 ), y así 0.25 − 0.875
sucesivamente. 𝑤3 = 0.875 + 0.25 ( ) = 0.796875,
2

etc. La iteración continúa hasta que llegamos al


otro extremo del intervalo

𝑦(3) ≈ 𝑤3 = 1.440573
0.275 − 1.440573
+ 0.25 ( )
2
= 1.64252.

Tabla 1. Comparación de las aproximaciones de


Euler obtenidas con tamaños de paso diferentes
para 𝑦 ′ = (𝑡 − 𝑦)/2 en [0,3] con 𝑦(0) = 1
Figura 1. Aproximac. de Euler 𝑤𝑖+1 = 𝑤𝑖 + ℎ𝑓(𝑡𝑖 , 𝑤𝑖 )
𝑡𝑖 𝑦𝑖 𝑦(𝑡𝑖 )
ℎ=1 ℎ=
1
ℎ=
1
ℎ=
1 Exacto
Ejemplo 1: Vamos a usar el método de Euler para 2 4 8
0 1.0 1.0 1.0 1.0 1.0
resolver el problema de valor inicial
0.125 0.875 0.9375 0.943239
𝑡−𝑦 0.25 0.796875 0.886719 0.897491
𝑦′ = 2
en [0,3] con 𝑦(0) = 1 0.375 0.759766 0.846924 0.862087
0.50 0.75 0.758545 0.817429 0.836402
Y comparar las soluciones que se obtienen con 0.625 0.797589 0.819847
1 1 1 0.75 0.786802 0.811868
ℎ = 1, 2 , 4 𝑦 8. 1.00 0.5 0.6875 0.846386 0.790158 0.819592
1.50 0.765625 0.882855 0.917100
2.00 0.75 0.949219 1.030827 1.068222 1.103638
Solución:
2.50 1.211914 1.289227 1.325176 1.359514
3.00 1.375 1.533936 1.604252 1.637429 1.669390

El método de Euler es una versión de una clase


más amplia de procedimientos denominada
métodos de Runge-Kutta. Ahora veremos el
desarrollo formal de esas técnicas.

ALGORITMO E IMPLEMENTACIÓN NUMÉRICA

Algoritmo para el método de Euler


Paso 1: Ingrese a, b , n y y1
Paso 2: Calculo de n
𝑏−𝑎
Figura 2. Comparación de las aprox. de Euler ℎ=
𝑛
obtenidas con tamaños de paso diferentes para Paso 3: Discretización del dominio
𝑦 ′ = (𝑡 − 𝑦)/2 en [0,3] con la condición 𝑦(0) = 𝑡𝑖 = 𝑎 + (𝑖 − 1) ∗ ℎ, para 𝑖 = 1: 𝑛 + 1
1. Paso 4: Calculo de la solución aproximada
𝑘1 = 𝑓(𝑡𝑖 , 𝑦𝑖 ) 𝑦𝑖+1 = 𝑦𝑖 + 𝑘1 ∗ ℎ,
La figura 2 muestra las gráficas de las cuatro para 𝑖 = 1: 𝑛
soluciones obtenidas por el método de Euler y la Paso 5: Imprimir la solución aproximada 𝑦
gráfica de la solución exacta y  t   3e
t /2
2t .
Implementación del método de Euler
En la tabla 1 se muestran los valores de las cuatro Programa  euler.m
aproximaciones en algunos nodos. Para el tamaño % Método de Euler
a=input('Ingrese a=');
de paso ℎ = 0.25, los cálculos son b=input('Ingrese b=');

Cristian Amador Loli Prudencio Página 2 Métodos Numéricos para Ing.


n=input('Ingrese num. intervalos,n=');
y1=input('Ingrese valor inicial, y1=');
h = (b-a)/n;
y(1)=y1;
fun=input('Ingrese f(t,y)=','s');
f=inline(fun,'t','y');
fprintf('Aproximaciones\n');
for i = 1:n
t(i) = a+(i-1)*h;
k1=f(t(i),y(i));
y(i+1) = y(i)+k1*h;
fprintf('Iteración%d\n',i);
fprintf('y(%.4f)=%.6f\n',t(i)+h,y(i+1));
end
t(n+1) = b;
plot(t, y, 'o-');
xlabel('Eje t');ylabel('Eje y');
title('Método de Euler');

Ejemplo 2: Con el método de Euler determine la


solución aproximada de la EDO: 𝑦 ′ = 𝑡 2 − 𝑦.
Desde t=0 hasta t=5, con tamaño de paso h=0.5. Figura 3: Grafica de la solución del ejemplo 2
La condición inicial es y=1 en t=0.
MÉTODOS DE RUNGE KUTTA
Solución:
Los métodos de Runge-Kutta (RK) tienen muchas
Command Window variantes, pero todas tienen la forma generalizada
>> euler de la ecuación

Ingrese a=0 𝑤𝑖+1 = 𝑤𝑖 + 𝜙(𝑡𝑖 , 𝑤𝑖 , ℎ)ℎ (2)

Ingrese b=5 donde 𝜙(𝑡𝑖 , 𝑤𝑖 , ℎ) se conoce como función


incremento, la cual puede interpretarse como una
Ingrese num. intervalos,n=10
pendiente representativa en el intervalo. La
Ingrese valor inicial, y1=1 función incremento se escribe en la forma general
Ingrese f(t,y)=t.^2-y como
Aproximaciones
𝜙 = 𝑎1 𝑘1 + 𝑎2 𝑘2 + ⋯ + 𝑎𝑛 𝑘𝑛
Iteración1
y(0.5000)=0.500000 donde las 𝑎 son constantes y las 𝑘 son
Iteración2
y(1.0000)=0.375000 𝑘1 = 𝑓(𝑡𝑖 , 𝑤𝑖 )
Iteración3
y(1.5000)=0.687500 𝑘2 = 𝑓(𝑡𝑖 + 𝑝1 ℎ, 𝑤𝑖 + 𝑞11 𝑘1 ℎ)
Iteración4
y(2.0000)=1.468750 𝑘3 = 𝑓(𝑡𝑖 + 𝑝2 ℎ, 𝑤𝑖 + 𝑞21 𝑘1 ℎ + 𝑞22 𝑘2 ℎ)
Iteración5
y(2.5000)=2.734375 ⋮
Iteración6
y(3.0000)=4.492188 𝑘𝑛 = 𝑓(𝑡𝑖 + 𝑝𝑛−1 ℎ, 𝑤𝑖 + 𝑞𝑛−1,1 𝑘1 ℎ + 𝑞𝑛−1,2 𝑘2 ℎ
Iteración7 + ⋯ + 𝑞𝑛−1,𝑛−1 𝑘𝑛−1 ℎ)
y(3.5000)=6.746094
Iteración8 donde las 𝑝 y las 𝑞 son constantes.
y(4.0000)=9.498047
Iteración9 Es posible tener varios tipos de métodos de
y(4.5000)=12.749023 Runge-Kutta (RK) empleando diferentes números
Iteración10 de términos en la función incremento especificada
y(5.0000)=16.499512 por 𝑛. Observe que el método de RK de primer
orden con 𝑛 = 1 es, de hecho, el método de
Euler.

Cristian Amador Loli Prudencio Página 3 Métodos Numéricos para Ing.


MÉTODOS DE RK DE SEGUNDO ORDEN Observe que 𝑘1 es la pendiente al inicio del
La versión de segundo orden es intervalo y que 𝑘2 es la pendiente al final del
intervalo.
𝑤𝑖+1 = 𝑤𝑖 + (𝑎1 𝑘1 + 𝑎2 𝑘2 )ℎ (3)
Método del punto medio (𝒂𝟐 = 𝟏)
donde:
𝑤𝑖+1 = 𝑤𝑖 + 𝑘2 ℎ (5)
𝑘1 = 𝑓(𝑡𝑖 , 𝑤𝑖 )
donde:
𝑘2 = 𝑓(𝑡𝑖 + 𝑝1 ℎ, 𝑤𝑖 + 𝑞11 𝑘1 ℎ)
𝑘1 = 𝑓(𝑡𝑖 , 𝑤𝑖 )
Los valores de 𝑎1 , 𝑎2 , 𝑝1 y 𝑞11 se evalúan al igualar
la ecuación (3) con la expansión de la serie de 1 1
𝑘2 = 𝑓(𝑡𝑖 + ℎ, 𝑤𝑖 + 𝑘1 ℎ)
Taylor hasta el término de segundo orden. Al 2 2
hacerlo, desarrollamos tres ecuaciones para
evaluar las cuatro constantes desconocidas
Método de Ralston (𝒂𝟐 = 𝟐/𝟑)
𝑎1 + 𝑎2 = 1
1 2
𝑤𝑖+1 = 𝑤𝑖 + (3 𝑘1 + 3 𝑘2 ) ℎ (6)
1
𝑎2 𝑝1 =
2 donde:
1
𝑎2 𝑞11 = 𝑘1 = 𝑓(𝑡𝑖 , 𝑤𝑖 )
2

Suponga que le damos un valor a 𝑎2 , así tenemos 3 3


𝑘2 = 𝑓(𝑡𝑖 + ℎ, 𝑤𝑖 + 𝑘1 ℎ)
4 4
𝑎1 = 1 − 𝑎2
IMPLEMENTACIÓN NUMÉRICA DE HEUN
1
𝑝1 = Programa  heun.m
2𝑎2 % Método de Heun
% Resuelve y' = fun(t, y) en [a,b]
1 % con condición inicial y1
𝑞11 = a=input('Ingrese a=');
2𝑎2 b=input('Ingrese b=');
n=input('Ingrese num. intervalos,n=');
y1=input('Ingrese valor inicial, y1=');
Debido a que podemos elegir un número infinito h = (b-a)/n;
de valores para 𝑎2 , hay un número infinito de y(1)=y1;
fun=input('Ingrese f(t,y)=','s');
métodos de RK de segundo orden. A continuación f=inline(fun,'t','y');
fprintf('Aproximaciones\n');
presentamos tres de las versiones más for i = 1:n
t(i) = a+(i-1)*h;
comúnmente usadas y preferidas: k1 = f(t(i),y(i));
k2 = f(t(i)+h,y(i)+k1*h);
y(i+1) = y(i)+1/2*(k1+k2)*h;
fprintf('%d\n',i);
fprintf('k1=%.6f\n',k1);
Método de Heun (𝒂𝟐 = 𝟏/𝟐) fprintf('k2=%.6f\n',k2);
fprintf('y(%.4f)=%.6f\n',t(i)+h,y(i+1));
end
1 1 t(n+1) = b;
𝑤𝑖+1 = 𝑤𝑖 + (2 𝑘1 + 2 𝑘2 ) ℎ (4)
plot(t, y, 'o-');
xlabel('Eje t');ylabel('Eje y');
title('Método de Heun');
donde:
Ejemplo 3: Utilice los métodos de Heun, Punto
𝑘1 = 𝑓(𝑡𝑖 , 𝑤𝑖 ) medio y de Ralston para resolver el problema de
𝑘2 = 𝑓(𝑡𝑖 + ℎ, 𝑤𝑖 + 𝑘1 ℎ) valor inicial
𝑦 ′ = −2𝑡 3 + 12𝑡 2 − 20𝑡 + 8.5 con 𝑡 ∈ [0,4]

𝑦(0) = 1
Cristian Amador Loli Prudencio Página 4 Métodos Numéricos para Ing.
Usando un tamaño de paso de 0.5, luego compare 𝑦(0.5) ≅ 𝑤2 = 1 + 4.5546875(0.5)
los resultados. = 3.27734375

Solución: Los cálculos se repiten; los resultados se muestran


en la tabla 2.
Para el método de Heun, calculamos
Tabla 2. Comparación de los valores verdadero
𝑘1 = 𝑓(0,1) = 8.5 y aproximado de la solución del problema de
valor inicial 𝑦 ′ = −2𝑡 3 + 12𝑡 2 − 20𝑡 + 8.5 con
Luego
𝑡 ∈ [0,4] y 𝑦(0) = 1. Los valores aproximados
se calculan por medio de tres versiones de los
𝑘2 = 𝑓(0.5; 5.25) = −2(0.5)3 + 12(0.5)2
métodos de RK se segundo orden, con un
−20(0.5) + 8.5 = 1.25 tamaño de paso 0.5

La pendiente promedio se calcula mediante 𝑡 𝑦𝑣𝑒𝑟𝑑𝑎𝑑𝑒𝑟𝑜 𝑦 - Heun 𝑦 - Punto 𝑦-


medio Ralston
1 1 0.0 1.00000 1.00000 1.00000 1.00000
𝜙 = (8.5) + (1.25) = 4.875 0.5 3.21875 3.43750 3.109375 3.277344
2 2
1.0 3.00000 3.37500 2.81250 3.101563
Y se utiliza para predecir 1.5 2.21875 2.68750 1.984375 2.347656
2.0 2.00000 2.50000 1.75 2.140625
𝑦(0.5) ≅ 𝑤2 = 1 + 4.875(0.5) = 3.4375 2.5 2.71875 3.18750 2.484375 2.855469
3.0 4.00000 4.37500 3.81250 4.117188
El cálculo se repite; los resultados se resumen en 3.5 4.71875 4.93750 4.609375 4.800781
4.0 3.00000 3.00000 3 3.031250
la tabla 2.

Para el método de punto medio, el primer paso


es calcular

k1  f (0,1)  8.5

k2  f (0.25, 2.125)  2  0.25   12  0.25 


3 2

 20  0.25  8.5  4.21875

La pendiente en el punto medio se sustituye en la


ecuación (5) para predecir:

𝑦(0.5) ≅ 𝑤2 = 1 + 4.21875(0.5) = 3.109375


Figura 3: Comparación de la solución verdadera
El cálculo se repite; los resultados se resumen en con soluciones numéricas usando tres métodos
la tabla 2. RK de segundo orden y el método de Euler.

En el método de Ralston, 𝑘1 en el primer MÉTODO DE RUNGE-KUTTA DE TERCER ORDEN


intervalo también es igual a 8.5 y Para 𝑛 = 3, es posible efectuar un desarrollo
similar al del método de segundo orden. El
𝑘2 = −2(0.375)3 + 12(0.375)2 − 20(0.375)
resultado de tal desarrollo genera seis ecuaciones
+ 8.5 = 2.58203125
con ocho incógnitas. Por lo tanto, se deben dar a
La pendiente promedio se calcula mediante priori los valores de dos de las incógnitas con la
finalidad de establecer los parámetros restantes.
1 2
𝜙 = (8.5) + (2.58203125) = 4.5546875 Una versión común que se obtiene es
3 3
1
que se utiliza para predecir: 𝑤𝑖+1 = 𝑤𝑖 + (𝑘1 + 4𝑘2 + 𝑘3 )ℎ
6
Cristian Amador Loli Prudencio Página 5 Métodos Numéricos para Ing.
donde 𝑘3 = 𝑓(0.25, 2.877653)
= 4𝑒 0.8(0.5) − 0.5(2.877653)
𝑘1 = 𝑓(𝑡𝑖 , 𝑤𝑖 ) = 3.446785
1 1
𝑘2 = 𝑓 (𝑡𝑖 + ℎ, 𝑤𝑖 + 𝑘1 ℎ) 𝑘4 = 𝑓(0.5,3.723392)
2 2
= 4𝑒 0.8(0.5) − 0.5(3.723392)
𝑘3 = 𝑓(𝑡𝑖 + ℎ, 𝑤𝑖 − 𝑘1 ℎ + 2𝑘2 ℎ) = 4.105603

Observe que si la EDO está en función sólo de 𝑡, Por último, las cuatro estimaciones de la
este método de tercer orden se reduce a la regla pendiente se combinan para obtener una
de Simpson 1/3. pendiente promedio, la cual se utiliza después
para realizar la última predicción al final del
MÉTODO DE RUNGE-KUTTA DE CUARTO ORDEN intervalo.
El más popular de los métodos RK es el de cuarto 1
orden. Como en el caso de los procedimientos de 𝜙 = [3 + 2(3.510611) + 2(3.446785)
6
segundo orden, hay un número infinito de + 4.105603] = 3.503399
versiones. La siguiente, es la forma comúnmente
𝑦(0.5) ≅ 𝑤2 = 2 + 3.503399(0.5) = 3.751669
usada y, por lo tanto, le llamamos método clásico
RK de cuarto orden (RK4): Que es muy aproximada a la solución verdadera
1 de 3.751521.
𝑤𝑖+1 = 𝑤𝑖 + 6 (𝑘1 + 2𝑘2 + 2𝑘3 + 𝑘4 )ℎ (7)
IMPLEMENTACIÓN NUMÉRICA DE RK4
Donde
k1  f (ti , wi ) Programa  heun.m
% Método de Runge-Kutta de orden 4
% Resuelve y' = fun(t, y) en [a,b]
h kh
k2  f (ti  , wi  1 ) % con condición inicial y1
2 2 a=input('Ingrese a=');
b=input('Ingrese b=');
h k2 h n=input('Ingrese num. intervalos,n=');
k3  f (ti  , wi  ) y1=input('Ingrese valor inicial, y1=');
2 2 h = (b-a)/n;
k4  f (ti  h, wi  k3h) y(1)=y1;
fun=input('Ingrese f(t,y)=','s');
f=inline(fun,'t','y');
fprintf('Aproximaciones\n');
Ejemplo 4: Utilice el método clásico RK de cuarto for i = 1:n
orden para resolver el problema de valor inicial t(i) = a+(i-1)*h;
k1 = f(t(i),y(i));
k2 = f(t(i)+h/2,y(i)+k1*h/2);
𝑦 ′ = 4𝑒 0.8𝑡 − 0.5𝑦 con 𝑡 ∈ [0; 0.5] k3 = f(t(i)+h/2,y(i)+k2*h/2);
k4 = f(t(i)+h,y(i)+k3*h);
y(i+1) = y(i)+1/6*(k1+2*k2+2*k3+k4)*h;
𝑦(0) = 2 fprintf('%d\n',i);
fprintf('k1=%.6f\n',k1);
fprintf('k2=%.6f\n',k2);
Usando un tamaño de paso de 0.5. fprintf('k3=%.6f\n',k3);
fprintf('k4=%.6f\n',k4);
fprintf('y(%.4f)=%.6f\n',t(i)+h,y(i+1));
Solución: end
t(n+1) = b;
En este caso, la pendiente al inicio del intervalo se plot(t, y, 'o-');
xlabel('Eje t');ylabel('Eje y');
calcula como sigue: title('Método de Runge-Kutta de orden 4');

𝑘1 = 𝑓(0,2) = 4𝑒 0.8(0) − 0.5(2) = 3 ORDENES DE MATLAB/OCTAVE

𝑘2 = 𝑓(0.25,2.75) = 4𝑒 0.8(0.25) − 0.5(2.75) Comandos de Matlab/Octave


= 3.510611
Matlab tiene dos procedimientos numéricos
basados en los métodos de Runge – Kutta:

Cristian Amador Loli Prudencio Página 6 Métodos Numéricos para Ing.


0.2125 1.1478
Comando Método numérico
0.2250 1.1521
ode23 Runge – Kutta de orden 2 y orden 3 0.2375 1.1558
combinados. 0.2500 1.1591
0.2625 1.1618
ode45 Runge – Kutta de orden 4 y orden 5 0.2750 1.1640
combinados (Runge – Kutta – 0.2875 1.1657
0.3000 1.1669
Fehlberg). 0.3125 1.1677
0.3250 1.1679
0.3375 1.1676
Comandos de Otros programas 0.3500 1.1669
0.3625 1.1657
0.3750 1.1641
Maple posee el comando rkf45, Mathematica 0.3875 1.1620
0.4000 1.1595
posee el comando rungekutta y en otros 0.4125 1.1565
0.4250 1.1532
paquetes computacionales: Derive, Mathcad, etc 0.4375 1.1494
0.4500 1.1453
también existen comandos que usan Runge – 0.4625 1.1407
Kutta y otras técnicas numéricas para la solución 0.4750 1.1358
0.4875 1.1306
de ecuaciones diferenciales. 0.5000 1.1250
Command Window
Orden ode45 de Matlab/Octave >> plot(t,y,'o-')
(Runge Kutta de orden 4 y orden 5 combinados)
El comando ode45 permite resolver la ecuación
 dy
  f (t, y )
diferencial  dt en el intervalo [a,b],
 y (a)  y1
simplemente escribiendo

[t,y] = ode45(odefun,xspan,y1)

odefun  directamente puede introdu cirse, por


ejemplo: @(t,y) sin(t+y)
xspan  es el intervalo [a,b]

Ejemplo 5: Utilice el método RK45 (Runge-Kutta-


Fehlberg) para resolver con ode45 el problema de RECOMENDACIÓN
valor inicial
Se recomienda:
 y '  3tseny  5ty  1, t   0, 0.5
 1. Ver estos videos para comprender mejor los

 y (0)  1
 métodos de Runge Kutta.
https://www.youtube.com/watch?v=pOTwV3kCxdw
Solución: https://www.youtube.com/watch?v=H0ArPd5NE2Q
Sencillamente ejecutamos: 2. Usar los programas para agilizar los cálculos
Command Window de las soluciones de EDO.
>> [t,y] = ode45(@(t,y) 3*t*sin(y)-5*t*y+1,[0,0.5],1)
t= y= FUENTES BIBLIOGRÁFICAS
0 1.0000
0.0125 1.0123
0.0250 1.0242 [1] Burden, Richard – Faires, Douglas – Burden,
0.0375 1.0357
0.0500 1.0468
Annete (2017). Análisis Numérico. México.
0.0625 1.0574 Cengage Learning.
0.0750 1.0676
0.0875 1.0773 [2] Chapra S, Canale R. (2015). Métodos
0.1000 1.0866 Numéricos para Ingenieros. México. McGraw-
0.1125 1.0954
0.1250 1.1037 Hill.
0.1375 1.1115
0.1500 1.1188
[3] Fink K, Mathews J. (2004). Métodos
0.1625 1.1256 Numéricos con Matlab. Madrid, España.
0.1750 1.1319
0.1875 1.1378 Prentica Hall.
0.2000 1.1430

Cristian Amador Loli Prudencio Página 7 Métodos Numéricos para Ing.

Вам также может понравиться