You are on page 1of 54

Universidad Nacional Agraria La Molina

Facultad de Ingeniera Agrcola


Departamento de Recursos Hdricos

Anlisis Numrico para Ingeniera


(Aplicaciones con MATLAB)

Ecuaciones Diferenciales
Ordinarias
Problemas de Valor
Inicial
Jess Abel Meja Marcacuzco, Ph.D.
Lima - Per
ECUACIONES DIFERENCIALES ORDINARIAS
El comportamiento dinmico de los sistemas implica
desplazamientos, velocidades y aceleraciones y sus
derivadas respecto al tiempo de estas cantidades. Una
ecuacin en la que intervienen una o ms derivadas
ordinarias de la funcin incgnita se denomina ecuacin
diferencial ordinaria (EDO). El orden de la ecuacin est
determinado por el orden de la derivada ms alta.
Los problemas de EDO se clasifican en problemas de valor
inicial y problemas de valor en la frontera, dependiendo de
cmo se especifican las condiciones en los extremos del
dominio. Todas las condiciones de un problema de valor inicial
se especifican en el punto inicial. El problema se convierte en
uno de valor en la frontera si las condiciones se extienden
entre los puntos inicial y final. Las EDO en el dominio del
tiempo son problemas de valor inicial, as que todas las
condiciones se especifican en el momento inicial, como t = 0.
PROBLEMAS DE VALOR INICIAL
EDO de Primer Orden
El problema de valor inicial de una EDO de primer orden puede

escribirse en la forma: y' (t ) f y, t , y0 y0


donde f(y,t) es funcin de y y t; con y(0) = y0 como condicin
inicial indispensable para la solucin. La primera derivada de y
se da en funcin de y y t, y lo que se quiere calcular es la
funcin desconocida y integrando numricamente f(y,t). Si f
fuera independiente de y, el clculo sera un problema de
integracin directa. Si f es una funcin lineal de y, por ejemplo: f
= ay + b, con a y b son constantes o funciones de t, la ecuacin
es una EDO lineal. Si f es una funcin no lineal de y, la
ecuacin es una EDO no lineal. Es posible encontrar la solucin
analtica de algunas EDO, pero la mayor parte de ellos son no
lineales y carecen de solucin analtica y debemos usar
mtodos numricos.
Ejemplo:
Un cuerpo de masa M se deja caer desde un avin en t = 0. Si
la velocidad inicial es cero y la cada vertical; deduzca una EDO
para determinar la velocidad vertical del cuerpo, considerando
la fuerza de arrastre aerodinmico igual a Faire = CV2.
Solucin: Aplicando la primera ley de Newton, con V como la
velocidad vertical (positiva hacia abajo) y con g como la
aceleracin de la gravedad; se obtiene:
dV dV C 2
M gM Faire La EDO obtenida es: g V
dt dt M

La ecuacin puede escribirse 2


d2y C dy
en trminos de y que es la g
dt
2
distancia recorrida por el dt M
cuerpo en su cada:
Mtodos de Euler hacia adelante
Los mtodos de Euler son procedimientos sencillos para
resolver EDO de primer orden y se pueden programar con gran
facilidad. Los mtodos de Euler incluyen tres versiones: hacia
delante, modificado y hacia atrs y su exactitud no es muy alta.
El mtodo de Euler hacia adelante para y = f(y,t) se deduce
rescribiendo la aproximacin de diferencia hacia delante:
y n 1 y n
y n' y n1 y n hf y n , tn hyn'
h

y1 y0 hy0' y0 hf y0 ,t0
Recursivamente la ecuacin
puede representarse como: y 2 y1 hf y1 ,t1

y3 y 2 hf y2 ,t 2
.
y n yn1 hf y n1 , t n1
Ejemplo:

Usar el mtodo de Euler dy


para integrar numricamente 2 x 3 12 x 2 20 x 8.5
la siguiente ecuacin. dx
Comparar los resultados con
la solucin analtica y calcular y 0.5x 4 4x3 10x2 8.5x 1
el error relativo porcentual

y y y Error Error Error


x (h=0.5) (h=0.25) (h=0.125) Exacto (h=0.5) (h=0.25) (h=0.125)
0.000 1.000 1.000 1.000 1.000 0.000 0.000 0.000
0.500 5.250 4.180 3.686 3.219 -63.107 -29.854 -14.502
1.000 5.875 4.344 3.648 3.000 -95.833 -44.792 -21.615
1.500 5.125 3.555 2.857 2.219 -130.986 -60.211 -28.785
2.000 4.500 3.125 2.531 2.000 -125.000 -56.250 -26.563
2.500 4.750 3.617 3.139 2.719 -74.713 -33.046 -15.445
3.000 5.875 4.844 4.398 4.000 -46.875 -21.094 -9.961
3.500 7.125 5.867 5.279 4.719 -50.993 -24.338 -11.879
4.000 7.000 5.000 4.000 3.000 -133.333 -66.667 -33.333
Ejemplo:

Usar el mtodo de Euler dy 2


para integrar numricamente t y
la siguiente ecuacin. dt
Comparar los resultados con
la solucin analtica y calcular y et t 2 2t 2
el error relativo porcentual

y y y Error Error Error


t (h=0.4) (h=0.2) (h=0.1) Exacto (h=0.4) (h=0.2) (h=0.1)
0.000 1.000 1.000 1.000 1.000 0.000 0.000 0.000
0.400 0.700 0.648 0.670 0.690 -1.496 6.043 2.925
0.800 0.538 0.512 0.553 0.591 8.917 13.265 6.449
1.200 0.569 0.630 0.686 0.739 23.038 14.689 7.173
1.600 0.830 1.026 1.093 1.158 28.329 11.426 5.602
2.000 1.349 1.714 1.791 1.865 27.654 8.075 3.973
2.400 2.144 2.705 2.788 2.869 25.267 5.725 2.826
2.800 3.229 4.005 4.093 4.179 22.736 4.172 2.065
3.200 4.612 5.617 5.709 5.799 20.467 3.134 1.554
Ejemplo
a) Resolver la siguiente EDO utilizando el mtodo de Euler
hacia adelante con h = 0.01 para 0 < t 0.02. Haga los clculos
de esta parte a mano.
y ' f y, t , y 0 5 donde f y, t 20 y 7 exp 0.5t

b) Repita para 0 < t 0.1 con h = 0.01, 0.001 y 0.0001. Evale


los errores de los tres clculos comparndolos con la solucin
analtica.

Solucin
a) Los primeros dos incrementos de tiempo de los clculos
con h = 0.01 son:
t0 0, y0 y0 5
t1 0.01, y1 y0 hy0' 5 0.01 205 7 exp 0 4.07
t2 0.02, y2 y1 hy1' 4.07 0.01 204.07 exp 0.01 3.326
b) La solucin analtica se obtiene de resolver la ecuacin:
dy 20t dy 0.5t 20t
20 y 7e 0.5 t Multiplicando por e 20t e 20 ye 20t
7 e e
dt dt

d ye 20t
7e
19.5t ye 20t 7 19.5t
e C y
7 0.5t 90.5 20t
e e
dt 19 .5 19.5 19.5
C = 90.5/19.5 calculado para t = 0; y =5

% Error % Error % Error


t h=0.01 h=0.001 h=0.0001 Exacto h=0.01 h=0.001 h=0.0001
0.00 5.00 5.00 5.00 5.00000 0.000 0.000 0.000
0.01 4.07000 4.14924 4.15617 4.15693 2.091 0.185 0.018
0.02 3.32565 3.45379 3.46513 3.46638 4.060 0.363 0.036
0.03 2.72982 2.88524 2.89915 2.90068 5.890 0.532 0.053
0.04 2.25282 2.42037 2.43554 2.43721 7.566 0.691 0.069
0.05 1.87087 2.04023 2.05574 2.05745 9.069 0.837 0.083
0.06 1.56497 1.72932 1.74454 1.74622 10.380 0.968 0.096
0.07 1.31990 1.47496 1.48949 1.49109 11.481 1.082 0.108
0.08 1.12352 1.26683 1.28041 1.28191 12.356 1.176 0.117
0.09 0.96607 1.09646 1.10895 1.11033 12.993 1.249 0.124
0.10 0.83977 0.95696 0.96830 0.96956 13.386 1.300 0.130
La exactitud del mtodo de Euler aumenta al reducirse el tamao del incremento h.
Mtodos de Euler modificado
El mtodo de Euler modificado es ms exacto y ms estable
que el mtodo hacia delante. El mtodo de Euler modificado se
deduce aplicando la regla trapezoidal a la solucin de y = f(y,x):
yn 1 yn f yn 1 , tn 1 f yn , tn
h
2
Si f es una funcin lineal de y, es fcil resolver la ecuacin para
yn+1 en forma cerrada. Por ejemplo si f y, t ay cost
Se obtiene para yn+1: yn 1 yn ayn 1 cos tn 1 ayn cos tn
h
2
Si f es una funcin no lineal de y, la ecuacin se convierte en
una funcin no lineal de yn+1, por lo que debemos aplicar un
algoritmo para resolver la ecuacin no lineal. Un mtodo muy
utilizado es el de sustituciones sucesivas, que se escribe as:
1 ah / 2 h cos tn 1 cos tn
y n 1 yn
1 ah / 2 1 ah / 2 2
Si f es una funcin no lineal de y, la ecuacin se convierte en
una funcin no lineal de yn+1, por lo que debemos aplicar un
algoritmo para resolver la ecuacin no lineal. Un mtodo muy
utilizado es el de sustituciones sucesivas, que se escribe as:

k
y n 1
h
2

y n f y nk11 , t n 1 f y n , t n

yn01
k
Donde yn 1 es la k-sima aproximacin iterativa para yn 1 y
k
es una estimacin inicial de yn 1 . La iteracin termina cuando yn 1
es menor que k 1 para para una tolerancia especificada.
y n1
Si tomamos como estimacin inicial yn, el primer paso de la
iteracin ser idntico al mtodo de Euler hacia delante. Si slo
se emplean dos pasos de iteracin, el mtodo se convierte en el
mtodo de Runge-Kutta de segundo orden.
Ejemplo

a) Para el siguiente problema de valor inicial determine y(0.1) por el mtodo


de Euler modificado con h = 0.1. Establezca como tolerancia de la

convergencia 0.00001. y' y1.5 1, y 0 10
b) Contine el clculo avanzando incrementos de tiempo hasta llegar a t = 0.5
c) Elabore un algoritmo en MATLAB que calcule la solucin para 0 < t 1 por
los mtodos de Euler hacia delante y modificado y grafique los resultados.

Solucin
a) El esquema de Euler modificado se escribe:


yn 1 yn h / 2 yn 1 yn 2
1.5 1.5


y su solucin iterativa basada en sustituciones sucesivas es:

yn 1 yn h / 2 yn 1
k k 1
y
1.5
n
1.5
2
Donde k es el nmero de iteracin.
La iteracin para y1 comienza con la estimacin inicial y continua as:

y10 y0 10,

1

y1 10 0.1 / 2 10 10 2 6.93772
1.5 1.5


y12 10 0.1 / 2 6.93772 10 2 7.60517
1.5 1.5

y 10 0.1 / 2 7.60517
10 2 7.47020
3 1.5 1.5
1

y 10 0.1 / 2 7.47020 10 2 7.49799


4 1.5 1.5
1

y 10 0.1 / 2 7.49799 10 2 7.49229


5 1.5 1.5
1

...


y1 10 0.1 / 2 7.49326 10 2 7.49326
1.5 1.5

b) El clculo hasta t = 1.0, se muestra a continuacin:
Y(t=0) Y(t=0.1) Y(t=0.2) Y(t=0.3) Y(t=0.4) Y(t=0.5) Y(t=0.6) Y(t=0.7) Y(t=0.8) Y(t=0.9) Y(t=1.0)
0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
10 7.49326 5.85864 4.73452 3.92990 3.33574 2.88599 2.53861 2.26584 2.04868 1.87382
6.93772 5.54207 4.54058 3.80434 3.25083 2.82650 2.49571 2.23413 2.02477 1.85545 1.71732
7.60518 5.91532 4.76584 3.94841 3.34730 2.89353 2.54371 2.26940 2.05124 1.87570 1.73304
7.47020 5.84832 4.72940 3.92714 3.33416 2.88502 2.53800 2.26543 2.04841 1.87362 1.73149
7.49800 5.86051 4.73535 3.93031 3.33596 2.88611 2.53868 2.26588 2.04871 1.87384 1.73165
7.49229 5.85830 4.73438 3.92983 3.33571 2.88597 2.53860 2.26583 2.04868 1.87382 1.73163
7.49346 5.85870 4.73454 3.92990 3.33575 2.88599 2.53861 2.26584 2.04869 1.87382 1.73163
7.49322 5.85863 4.73451 3.92989 3.33574 2.88599 2.53861 2.26584 2.04868 1.87382 1.73163
7.49327 5.85864 4.73452 3.92990 3.33574 2.88599 2.53861 2.26584 2.04868 1.87382 1.73163
7.49326 5.85864 4.73452 3.92990 3.33574 2.88599 2.53861 2.26584 2.04868 1.87382 1.73163
7.49326 5.85864 4.73452 3.92990 3.33574 2.88599 2.53861 2.26584 2.04868 1.87382 1.73163

t y
0.0 10.0
0.1 7.49326
0.2 5.85864
0.3 4.73452
0.4 3.92990
0.5 3.33574
0.6 2.88599
0.7 2.53861
0.8 2.26584
0.9 2.04868
1.0 1.87382
c) El Archivo-M para la solucin del problema en MATLAB y los
resultados, se muestran a continuacin. En el guin, la solucin
del mtodo de Euler hacia adelante se denota con yf, mientras
que la del mtodo modificado es ym. La ecuacin de Euler
modificada se resuelve iterativamente por el mtodo de
sustitucin sucesiva con el nmero de iteraciones limitado a 10
como mximo. Si el nmero de iteracin rebasa 9, se imprime
un mensaje.

clear, clf, hold off


%===== Euler hacia adelante
yf(1)=10; t(1)=0; h=0.1; n=1;
while t(n)<1
n=n+1; t(n)=t(n-1)+h;
yf(n)=yf(n-1)+h*(-yf(n-1)^1.5+1);
end
%==== Euler modificado
ym(1)=10; t(1)=0; h=0.1; n=1;
while t(n)<1
n=n+1; t(n)=t(n-1)+h;
ym(n)=ym(n-1)+h*(-ym(n-1)^1.5+1);
for k=1:10 % Iteracin de sustitucin sucesiva
ymb=ym(n) ;
ym(n)=ym(n-1)+ 0.5*h*(-ym(n)^1.5-ym(n-1)^1.5+2);
if abs(ym(n)-ymb)<0.0001, break
end
if k>9,
disp 'La iteracin no converge despus de k=9'
end
end
End
plot(t,yf,'--',t,ym,'-')
xlabel('t'); ylabel('y') ;
text(0.4, 5.5, '-- Euler hacia adelante Euler modificado')
10

6
-- Euler hacia adelante Euler modificado
y

1
0 0.2 0.4 0.6 0.8 1 1.2 1.4
t

Resultados de clculo
Mtodo de Euler hacia adelante y de Euler modificado
Mtodo de Euler hacia atrs
Se basa en la aproximacin de diferencia hacia atrs y tiene el
mismo grado de precisin que el mtodo de Euler hacia delante:

yn1 yn hf yn1 , tn1


Adems, si f es una funcin no lineal de y, es preciso emplear
un mtodo iterativo (sustituciones sucesivas) en cada paso
igual que en el mtodo de Euler modificado. La ventaja del
mtodo es que es incondicionalmente estable y se garantiza la
positividad de la solucin cuando sta es positiva.
Mtodo de Euler para resolver EDO de Orden Superior

Forma general de ecuaciones diferenciales de segundo orden:

u' ' t au' t but st u0 u0 u' 0 u0'

Donde a, b y s son constantes o funciones de t, u y u con


condiciones iniciales dadas para u(0) y u(0). Si a, b y s son
independientes de u, la ecuacin anterior es una EDO lineal; si
es funcin de u o de u, o de ambas, la ecuacin es no lineal.
El mtodo de Euler consiste en descomponer la EDO de
segundo orden en un par de EDO de primer orden. Definiendo
v = u, nos permite escribir la ecuacin como:

v' t avt but st , v0 u0'


Aqu, la condicin inicial en trminos de la nueva variable v
proviene de la segunda condicin inicial de la ecuacin. La
ecuacin puede ahora expresarse con el siguiente conjunto de
EDO de primer orden:

u ' f1 u, v, t , u 0 u0 f1 u, v, t v
Donde
v' f 2 u, v, t , v0 u '0 f 2 u, v, t av bu s

A continuacin presentamos un clculo paso a paso para los


primeros incrementos de tiempo:

t h, u1 u0 hf1u0 , v0 ,0 hv0
v1 v0 hf2 u0 , v0 ,0 h av0 bu0 s0

t 2h, u2 u1 hf1 u1 , v1, h hv1

v2 v1 hf2 u1, v1, h h av1 bu1 sh


Ejemplo
Un objeto de masa M = 10 kg se fija al extremo inferior de un sistema de
amortiguador de resorte. La fuerza del amortiguador es R = -B|u|u, donde B
es una constante y u es el desplazamiento con respecto a la posicin inicial
en metros. La ecuacin del movimiento es:

Mu' ' B u' u' ku 0 (A)

u0 0
u' 0 1
donde k es la constante del resorte, igual
a 200 N/m, y B = 50 Ns2/m2.

a) Calcular u(t) para 0 < t 0.1 utilizando


el mtodo de Euler hacia delante con h =
0.05 y clculos manuales.

b) Calcular u(t) para 0 < t 5 con


MATLAB empleando el mtodo de Euler
hacia adelante con h = 0.05 y grafique
los resultados.
Solucin
a) La ecuacin (A) puede escribirse como:

u' v u 0 0
(B)
v' a v v cu v0 1

Donde a = B/M = 5 y c = k/M = 20

t 0, u0 u0 0
v0 u' 0 1

t 0.05, u1 u0 hv0 0 0.051 0.05


v1 v0 h a v0 v0 cu0 1 0.05 5 1 1 200 0.75

t 0.1, u2 u1 hv1 0.05 0.050.75 0.0875


v 2 v1 h a v1 v1 cu1 0.75 0.05 5 0.75 0.75 200.05 0.5594
b) La forma ms fcil de crear un cdigo en MATLAB es
escribir las ecuaciones en forma de vectores:

y' f y, t (C)

y u
y u f - ay v c
Donde
v y

El mtodo de Euler hacia delante para la ecuacin anterior se


escribe como:

y n 1 y n hf y n , t n
A continuacin se presenta el cdigo en MATLB para obtener
la solucin, cuyos resultados se muestran en la figura
% Archivo ejemplo
axis([0 5 -1 1])
clear, clf, hold off
plot(t,y(1,:),t,y(2,:),':')
h=0.05; t_max=5; n=1;
xlabel('tiempo (s)'); ylabel('Y y V')
y(:,1)=[0;1];
L=length(t);
t(1)=0;
text(t(L), y(1,L), 'Y, desplazamiento')
while t(n)<t_max
text(t(L), y(2,L), 'V, velocidad')
y(:,n+1)=y(:,n)+h*f_def(y(:,n),t);yb=y;
t(n+1)=t(n)+h;
n=n+1; 1
end
0.8

0.6

0.4
YyV

0.2

0 Y, desplazamiento
V, velocidad
-0.2

-0.4

-0.6
0 1 2 3 4 5 6
tiempo (s)
Mtodo de Runge-Kutta de Segundo Orden
En los mtodos de Runge-Kutta, la precisin se incrementa por
el uso del mtodo de integracin numrica y los errores se
reducen con mayor rapidez al reducirse h. As para la ecuacin
diferencial ordinaria siguiente:
y' (t ) f y, t y0 y0
Para calcular yn+1 con un valor conocido de yn, integramos la
ecuacin anterior en el intervalo tn t tn+1 para obtener:

f y, t dt
tn 1
y n 1 y n
tn
Integrando, mediante la regla trapezoidal, el trmino:

f y, t dt f yn , tn f yn 1 , tn 1
t n 1 h
tn 2
Donde h = tn+1 tn

yn 1 yn
h
f yn , tn f yn1 , tn1 yn h f yn , tn f y n1 , tn1
2 2
yn 1 yn hf yn , tn estimada por el mtodo
de Euler hacia delante
El esquema que se deduce de esta forma se denomina
mtodo de Runge-Kutta de segundo orden y se escribe as:

y n f y n , t n f y n 1 , t n 1
h
y n 1
2
En una forma ms convencional:

k1 hf yn , t n
k 2 hf yn k1 , t n h
yn 1 yn k1 k2
1
2
El mtodo de Runge-Kutta de segundo orden equivale al
mtodo de Euler modificado con slo dos pasos de iteracin.
Ejemplo

El circuito que se muestra en la figura tiene una auto


inductancia de L = 50 mH, una resistencia de R = 20 y una
fuente de voltaje de E = 10 v. Si se cierra el interruptor en t = 0,
la corriente I(t) satisface:

dI t
L RI t E I 0 0
dt

Solucin: Primero rescribimos la ecuacin del modo siguiente:


R 20
0 .4 E 10
0 .2
L 50 L 50

f I , t Donde:
dI
f I , t I 0.4 I 0.2
R E
dt L L
El mtodo de Runge-Kutta de segundo orden se convierte en:

k2 h 0.4I n k1 0.2 I n 1 I n k1 k2
1
k1 h 0.4I n 0.2
2
A continuacin los clculos para los dos primeros pasos:
t 0,
I0 0
t 0.0001,
k1 0.0001 0.40 0.2 0.02
k2 0.0001 0.40 0.02 0.2 0.0192
I1 I0 1 / 2k1 k2 0 1 / 20.02 0.0192 0.0196

t 0.0002,
k1 0.0001 0.40.0196 0.2 0.019216
k2 0.0001 0.40.0196 0.019216 0.2 0.018447
I 2 I1 1 / 2k1 k2 0.0196 1 / 20.019216 0.018447 0.038431
t k1 k2 I
0.0000 0.00000
0.0001 0.02000 0.01920 0.01960
0.0002 0.01922 0.01845 0.03843
0.0003 0.01846 0.01772 0.05653
0.0004 0.01774 0.01703 0.07391
0.0005 0.01704 0.01636 0.09061
0.0006 0.01638 0.01572 0.10666
0.0007 0.01573 0.01510 0.12208
0.0008 0.01512 0.01451 0.13689
0.0009 0.01452 0.01394 0.15113
0.0010 0.01395 0.01340 0.16480
0.0011 0.01341 0.01287 0.17794
0.0012 0.01288 0.01237 0.19057
0.0013 0.01238 0.01188 0.20270
0.0014 0.01189 0.01142 0.21435
0.0015 0.01143 0.01097 0.22555
0.0016 0.01098 0.01054 0.23631
0.0017 0.01055 0.01013 0.24664
0.0018 0.01013 0.00973 0.25658
0.0019 0.00974 0.00935 0.26612
. . . .
0.0200 0.00001 0.00001 0.49983
El resto del clculo se realiza con MATLAB:
% Archivo ejemplo13_5.m % Funcin fn13_5.m
clear, clf, hold off function f=fn13_5(I,RL,EL)
R=20; %ohmios f=-RL*I+EL;
L=50e-3; %Herz
E=10; %Voltios
y(1)=0; t(1)=0;
h=0.1e-3;
n=1;
y_rec(1)=y; t_rec(1)=0; t=0; 0.5
RL=R/L; EL=E/L; 0.45
while t(n)<0.02 0.4
k1=h*fn13_5(y(n),RL,EL); 0.35
k2=h*fn13_5(y(n)+k1,RL,EL); 0.3
y(n+1)=y(n)+0.5*(k1 + k2);
I (A)

0.25
t(n+1)=n*h; 0.2
n=n+1; 0.15

end 0.1

plot(t,y) 0.05

xlabel('tiempo (s)') 0
0 0.005 0.01 0.015 0.02
ylabel('I (A)') tiempo (s)
Ejemplo

Una placa delgada a 200C (473 K) se coloca repentinamente en una


habitacin que est a 25 K, en la cual se enfra por transferencia de calor
natural tanto por conveccin como por radiacin. Se dan las siguientes
constantes fsicas:
= 300 kg/m3 (densidad)
V = 0.001 m3 (volumen)
A = 0.25 m2 (rea superficial)
C = 900 J/kgK (calor especfico)
hc = 30 J/m2K (coeficiente de transferencia de calor)
= 0.8 (emisividad)
= 5.67 10-8 W/m2K4 (constante de Stefan-Boltzmann)
La distribucin de temperatura en el metal es uniforme, dada por:

dT
dt

A
CV

2974 T 4 hc 297 T ; T 0 473

Donde T es la temperatura en grados Kelvin. Encontrar la temperatura para


0 < t < 180 s con el mtodo de Runge-Kutta de segundo orden con h = 1 s.
Solucin: Los resultados de clculo con Excel se muestran a continuacin:

t k1 k2 T
0.000 473.000
1.000 -6.664 -6.363 466.486
2.000 -6.370 -6.087 460.258
3.000 -6.093 -5.826 454.298
4.000 -5.832 -5.580 448.593
5.000 -5.585 -5.347 443.127
6.000 -5.352 -5.126 437.888
7.000 -5.131 -4.917 432.864
8.000 -4.922 -4.719 428.044
9.000 -4.723 -4.531 423.417
10.000 -4.535 -4.352 418.973
11.000 -4.356 -4.182 414.705
12.000 -4.185 -4.019 410.602
13.000 -4.023 -3.865 406.659
14.000 -3.868 -3.717 402.866
15.000 -3.720 -3.577 399.218
16.000 -3.579 -3.442 395.707
17.000 -3.445 -3.314 392.328
18.000 -3.316 -3.191 389.074
19.000 -3.193 -3.073 385.941
. . . .
180.000 -0.016 -0.015 297.469
Si el miembro derecho de la EDO es una funcin no lineal, como es el caso
en el presente problema, es recomendable escribir un archivo M de funcin
para calcular el miembro derecho. Los resultados de clculo y el cdigo en
MATLAB, se muestra a continuacin.

% Archivo ejemplo13_6.m 480


clear, clf, hold off 460
ro=300; V=0.001; A=0.25; C=900; 440
hc=30;
420
epsi=0.8; sig=5.67e-8; n=1;
400
h=1; T(1)=473; t(1)=0;

T (K)
380
Arcv=A/(ro*C*V); Epsg=epsi*sig;
360
while t(n)<180
k1=h*fn13_6(T(n),Arcv,Epsg,hc); 340

k2=h*fn13_6(T(n)+k1,Arcv,Epsg,hc); 320
T(n+1)=T(n)+0.5*(k1+k2); 300

t(n+1)=t(n)+h; 280
0 20 40 60 80 100 120 140 160 180
n=n+1; tiempo (s)
end
plot(t,T); xlabel('tiempo (s)'),ylabel('T (K)')
% Funcin fn13_6.m
function f=fn13_6(TB,Arcv,Epsg,hc)
f=Arcv*(Epsg*(297^4-TB^4)+hc*(297-TB));
Mtodo de Runge-Kutta de tercer orden

f y, t dt
El mtodo de Runge-Kutta de tercer orden se deduce tn 1
aplicando un esquema de integracin numrica de y n 1 y n
tn
orden superior al segundo trmino de la ecuacin:

Si utilizamos la regla 1/3 de Simpson, la ecuacin puede escribirse como:

y n 1 y n f y n , t n 4 f y n 1 / 2 , t n 1 / 2 f y n 1 , t n 1
h
6
y n 1 / 2 y n f y n , t n
y n1/ 2 estima yn 1/ 2 y se obtiene por el mtodo h
de Euler hacia adelante, as: 2
y n 1 estima y n 1 por: y n1 yn hf yn , tn
y n1 yn hf y n1/ 2 , tn1/ 2

y n1 yn hf yn , t n 1 f y n1/ 2 , t n1/ 2
o por una combinacin
lineal de ambas:

es un parmetro no determinado que se determinar a fin de


maximizar la exactitud del mtodo numrico.
El esquema completo se escribe en la siguiente forma:

k1 hf yn , t n

h
y n k1 4k 2 k 3
1 k1
y n 1 2
k hf n
y , t n
6 2 2
k3 hf yn k1 1 k 2 , t n h

Para optimizar desarrollamos k1, k2 y k3 en serie de Taylor;


que permite encontrar el valor ptimo de = -1. Por tanto, el
mtodo de Runge-Kutta de tercer orden se escribe as:

k1 hf yn , t n

k1 h
y n k1 4k 2 k 3
1
y n 1 k 2 hf yn , t n
6 2 2
k3 hf yn k1 2k 2 , t n h
Mtodo de Runge-Kutta de cuarto orden
Basada en la regla 1/3 de Simpson:
k1 hf yn , t n

k 2 hf yn k1 , t n h
2 2

y n 1 y n k1 2k 2 2k 3 k 4
1 k hf y k 2 , t h
6 3
n
2
n
2

k 4 hf yn k3 , t n h
Basada en la regla 3/8 de Simpson:
k1 hf yn , t n

k 2 hf yn k1 , t n h
3 3
y n k1 3k 2 3k 3 k 4
1
y n 1
8 k hf y k1 k 2 , t 2h
3
n
3 3
n
3

k 4 hf yn k1 k 2 k3 , t n h
Ejemplo: Calcule y(1) con el mtodo de Runge-Kutta de cuarto orden
con h = 1, para:

y 0 1
dy 1
y' ,
dt 1 y 2

f y, t
1
Solucin: Establecemos:
1 y2
con y0 =1 y t0 = 0. Puesto que slo tenemos un intervalo, la respuesta se
obtiene con:

k1 hf y0 , t 0 1/1 1 0.5
t k1 k2 k3 k4 y
0.0 1
1.0 -0.5000 -0.6400 -0.6838 -0.9091 0.32388
2.0 -0.9051 -0.9837 -0.9726 -0.7038 -0.59636


k 2 hf y0 1 , t1/ 2 1 / 1 0.75 0.64
k 2
3.0 -0.7377 -0.5177 -0.5776 -0.4205 -1.15448
2 4.0 -0.4287 -0.3480 -0.3617 -0.3031 -1.51301
5.0 -0.3040 -0.2651 -0.2697 -0.2393 -1.78183


k3 hf y0 2 , t1/ 2 1 / 1 10.68 0.6838
k 2 6.0
7.0
-0.2395
-0.2000
-0.2166
-0.1848
-0.2187
-0.1859
-0.1999
-0.1730
-2.00018
-2.18593
2
8.0 -0.1731 -0.1622 -0.1629 -0.1534 -2.34871


k 4 hf y 0 k 3 , t1 1 / 1 0.3161 0.9091
2 9.0
10.0
-0.1535
-0.1385
-0.1453
-0.1321
-0.1457
-0.1324
-0.1385
-0.1266
-2.49437
-2.62668

y1 y0
1
k1 2k2 2k3 k4 1 1 0.5 20.64 20.6838 0.9091 0.3238
6 6
Ejemplo: Resolver mediante el mtodo de Runge-Kutta de cuarto orden:

dy t y y 3et / 2 2 t
y(0) = 1; h = 0.25 0 t 3
Solucin
analtica
dt 2
ty
Solucin: Establecemos: f y, t
2

k1 hf ( yi , ti ) t k1 k2 k3 k4 y
y
%error
analtico
0.00 1 1.00000 0.00000
0.25 -0.1250 -0.1016 -0.1030 -0.0809 0.89749 0.89749 0.00008
k1 h
k 2 hf ( yi , ti ) 0.50 -0.0809 -0.0603 -0.0615 -0.0420 0.83640 0.83640 0.00016
2 2 0.75 -0.0421 -0.0238 -0.0249 -0.0077 0.81187 0.81187 0.00022
1.00 -0.0077 0.0084 0.0074 0.0226 0.81959 0.81959 0.00025
1.25 0.0226 0.0368 0.0359 0.0493 0.85579 0.85578 0.00026
k2 h
k3 hf ( yi , ti ) 1.50 0.0493 0.0618 0.0610 0.0729 0.91710 0.91710 0.00026
2 2 1.75 0.0729 0.0839 0.0832 0.0937 1.00059 1.00059 0.00025
2.00 0.0937 0.1034 0.1028 0.1121 1.10364 1.10364 0.00023
2.25 0.1120 0.1207 0.1201 0.1283 1.22396 1.22396 0.00020
k4 hf ( yi k3 , ti h) 2.50 0.1283 0.1359 0.1354 0.1426 1.35952 1.35951 0.00018
2.75 0.1426 0.1493 0.1489 0.1552 1.50852 1.50852 0.00016
3.00 0.1552 0.1611 0.1607 0.1663 1.66939 1.66939 0.00014
1
yi 1 yi ( k1 2k 2 2k3 k 4 )
6
Mtodo de Runge-Kutta de cuarto orden para un conjunto
de dos ecuaciones:
un 1 un k1 2k 2 2k 3 k 4
1
u ' f u , v, t 6
v n 1 v n m1 2m2 2m3 m4
1
v' g u , v, t 6

k1 hf un , vn , t n m1 hg un , vn , t n
k m h k1 m1 h
k 2 hf un 1 vn 1 , t n m2 hg un vn , t n
2 2 2 2 2 2
k2 m2 h k m h
k3 hf un vn , tn m3 hg un 2 vn 2 , t n
2 2 2 2 2 2
m3 m3
k 4 hf un k3 vn , tn h m4 hg un k3 vn , tn h
2 2
u f
Escribiendo la ecuacin y' f y,t y f
en forma vectorial: v g
De acuerdo al esquema de Runge-Kutta de cuarto orden:

y n 1 y n k1 2k 2 2k 3 k 4
1
6

k1 hf yn , tn

k1 h
k 2 hf yn , t n
2 2

k h
k 3 hf yn 2 , t n
2 2

k 4 hf yn k 3 , tn h
Ejemplo
Mu ' ' Bu ' ku 0
Resolver el problema del
Sistema de Resorte-Masa, con u 0 1
u' 0 0
Runge-Kutta de cuarto orden.
Solucin
u' f v u 0 1

v' g B / M v k / M u 20v 200u v0 0


Con a = B/M = 20 y b = k/M = 200, el mtodo de Runge-Kutta
de cuarto orden para la ecuacin adopta la forma:

un 1 un k1 2k 2 2k 3 k 4
1
6
v n 1 v n m1 2m2 2m3 m4
1
6
Para t = 0 Mu ' ' Bu ' ku 0
u0 u 0 1 u' f v u 0 1
v0 u ' 0 0 v' g B / M v k / M u 20v 200u v0 0

Para t = 0.025
k1 hf u0 , v0 , t0 hv0 0.0250 0
m1 hgu0 , v0 , t0 h 20v0 200u0 0.025 200 2001 5

k2 hf u0 k1 / 2, v0 m1 / 2, t0 h / 2 hv0 m1 / 2 0.0250 5 / 2 0.0625

m2 hg u0 k1 / 2, v0 m1 / 2, h / 2 h 20v0 m1 / 2 200u0 k1 / 2
0.025 200 5 / 2 2001 0 / 2 3.75

k3 hf u0 k2 / 2, v0 m2 / 2, t0 h / 2 hv0 m1 / 2 0.0250 3.75 / 2 0.046875

m3 hg u0 k 2 / 2, v0 m2 / 2, t0 h / 2 h 20v0 m2 / 2 200u0 k 2 / 2
0.025 200 3.75 / 2 2001 0.0625 / 2 3.9062
k4 hf u0 k3 , v0 m3 , t0 h hv0 m3 0.0250 5 / 2 0.09765
m4 hg u0 k3 , v0 m3 , t0 h h 20v0 m3 / 2 200 / u0 k3 / 2
0.025 200 3.90625 2001 0.046875 2.8125

u1 u0 1 / 60 2 0.0625 2 0.046875 0.097656 0.947266


v1 v0 1/ 6 5 2 3.75 2 3.9062 2.8125 3.8541
Para t = 0.05
k1 hf u1, v1, t1 hv1 0.025 3.85416 0.096354
m1 hg u1 , v1 , t1 h 20v1 200u1 0.025 20 3.8541 2000.947265 2.8092

k2 hf u1 k1 / 2, v1 m1 / 2, t1 h / 2 hv1 m1 / 2
0.025 3.8541666 2.809244 / 2 0.1314697
m2 hg u1 k1 / 2, v1 m1 / 2, t1 h / 2 h 20v1 m1 / 2 200u1 k1 / 2
0.025 20 3.85416 2.809244 / 2 2000.947266 0.96354 / 2 1.866054
k3 hf u1 k2 / 2, v1 m2 / 2, t1 h / 2 hv1 m2 / 2

0.025 3.85416 1.866054 / 2 0.1196797

m3 hgu1 k2 / 2, v0 m2 / 2, t1 h / 2 h 20v1 m2 / 2 200u1 k2 / 2


0.025 20 3.85416 1.866054 / 2 2000.947266 0.1314697 / 2 2.014058

k4 hf u1 k3 , v1 m3 , t1 h hv1 m3 0.025 3.85416 2.014058 0.146706

m4 hgu1 k3 , v1 m3 , t0 h h 20v1 m3 200u1 k3

0.025 20 3.85416 2.014058 2000.947266 0.1196797 1.203821

u2 u1 1 / 6 0.0966541 2 0.131469 2 0.119679 0.146705 0.823039

v2 v1 1 / 6 2.809244 2 1.866048 2 2.014058 1.203816 5.816375


2
% Archivo ejemplo13_9
1
clear, clf Desplazamiento, u
0
M=0.5; k=100; B=10; a=B/M; -1
b=k/M; n=1; h=0.025;

u(m) y v(m/s)
-2
y(:,1)=[1;0]; t(1)=0; % condicin inicial -3
M=[0,1;-b,-a]; -4
Velocidad, V
while t(n)<=1 -5

-6
k1=h*M*y(:,n);
-7
k2=h*M*(y(:,n)+k1/2);
-8
k3=h*M*(y(:,n)+k2/2); 0 0.1 0.2 0.3
t(s)
0.4 0.5 0.6 0.7

k4=h*M*(y(:,n)+k3);
y(:,n+1)=y(:,n)+(k1+2*k2+2*k3+k4)/6;
t(n+1)=n*h;
n=n+1;
end
plot(t,y(1,:),'-',t,y(2,:),':');
xlabel('t(s)'); ylabel('u(m) y v(m/s)');
text(t(5),y(1,5)+0.3, 'Desplazamiento,
u','Fontsize',[10])
text(t(8),y(2,7), 'Velocidad, V','Fontsize',[10])
axis([0,0.7,-8,2])
Mtodo de Range-Kutta para EDO de segundo orden:
Similar al mtodo de Euler. As para la siguiente EDO de segundo orden:

u' 'au'bu qt u0 1, u' 0 0

a, b y q son constantes o funciones de t, u y u. Si definimos: vt u ' t


La ecuacin se reduce a
u' f u, v, t v u 0 1
un conjunto de ecuaciones
diferenciales de primer v ' g u, v, t av bu q v 0 0
orden acopladas:
k 1 hf u n , v n , t n hv n
El mtodo de m1 hg u n , v n , t n h av n bu n bu n q n
Runge-Kutta
k 2 hf u n k 1 , v n m1 , t n 1 h v n m1
de segundo
orden para las m 2 hg u n k 1 , v n m1 , t n 1 h a v n m1 bu n k 1 q n 1
ecuaciones
anteriores se u n 1 u n
1
k1 k 2
2
escriben como:
v n 1 v n m1 m 2
1
2
Para la implementacin en MATLAB, escribimos las EDO en forma vectorial
como:
u f v
y' f donde: y f
v
g av bu q
Entonces, el esquema de Runge-Kutta de segundo orden se convierte en:

k1 hf un ,t n
y n k1 k 2
1
y n 1
2 k 2 hf un ,k1 ,t n 1
Si a, b y q son constantes o funciones exclusivamente de t, la ecuacin
puede escribirse as:
0 1 0
y' Mf S M S
donde:
b a q

Entonces, una forma equivalente de escribir la ecuacin es:

k1 hMy1 S
y n k1 k 2
1
y n 1
2 k 2 hM y1 k1 1 S
Ejemplo
Una caja rectangular de masa M = 0.5 kg se fija al extremo inferior de un
sistema de resorte-amortiguador sin masa, como se ilustra en la figura. El
amortiguador ejerce una fuerza de R = -Bdu/dt sobre la caja, siendo B la
constante de amortiguacin, u la velocidad y K la constante del resorte. La
ecuacin del movimiento es:
Mu ' ' Bu ' ku 0 (A)
u 0 1
u' 0 0
B = 10 k = 100
N.s/m2
a) Calcule u(t) para 0 < t 0.05 s N/m

utilizando el mtodo de Runge-Kutta de


segundo orden con h = 0.025 s y
realizando los clculos manualmente.
u(0) = 0
M
b) Calcule u(t) para 0 < t 1 s u(t)
0.5 Kg
utilizando el mtodo de Runge-Kutta de
segundo orden con h = 0.025 s. Sistema de Resorte-Masa
Solucin:
La ecuacin (A) puede escribirse as:

u' f v u 0 1 v' g B / M v k / M u v0 0
a) Si sustituimos a = B/M = 20 y b = k/M = 200, el mtodo de Runge-Kutta de
segundo orden para la ecuacin (13.18), se convierte en:

Para t = 0 u0 u0 1 v0 u ' 0 0

Para t = 0.025

k1 hf u0 , v0 , t0 hv0 0.0250 0
m1 hgu0 , v0 , t0 h 20v0 20v0 20u0 0.025 200 2001 5
k2 hf u0 k1, v0 m1, t1 hv0 m1 0.0250 5 0.125
m2 hgu0 k1, v0 m1, t1 h 20v0 m1 200u0 k1 0.025 200 5 2001 0 2.5

u1 u0 1 / 20 0.125 0.9375
v1 v0 1/ 2 5 2.5 3.75
Para t = 0.05

k1 hf u1, v1, t1 hv1 0.025 3.75 0.09375


m1 hg u1 , v1 , t1 h 20v1 200u1 0.025 20 3.75 2000.9375 2.8125

k2 hf u1 k1 , v1 m1 , t2 hv1 m1 0.025 3.75 2.8125 0.16406


m2 hg u1 k1 , v1 m1 , t2 h 20v1 m1 200u1 k1
0.025 20 3.75 2.8125 2000.9375 0.09375 0.9375
u1 u1 1 / 2 0.09375 0.16406 0.80859

u2 v1 1 / 2 2.8125 0.9375 5.625

b) Para los clculos en MATLAB, rescribimos las ecuaciones como

u 0 1
y' Mf donde: y Mf
v -b a
El Archivo-M se elabora con base en la ecuacin. El cdigo en MATLAB y los
resultados del programa se presentan a continuacin:
% Archivo ejemplo13_7
plot(t,y(1,:),'-',t,y(2,:),':');
clear, clf, hold off
xlabel('t(s)'); ylabel('u(m) y v(m/s)');
M=0.5; k=100; B=10; a=B/M;
text(0.1,0.6, 'Desplazamiento,
b=k/M; n=1; h=0.025;
u','Fontsize',[8])
y(:,1)=[1;0]; t(1)=0; % condicin inicial
text(0.3,-1.8, 'Velocidad, V','Fontsize',[8])
M=[0,1;-b,-a];
while t(n)<=1
k1=h*M*y(:,n); 1
k2=h*M*(y(:,n)+k1); Desplazamiento, u
y(:,n+1)=y(:,n)+0.5*(k1+k2); 0
t(n+1)=n*h;
n=n+1; -1
end Velocidad, V
u(m) y v(m/s)
-2

-3

-4

-5

-6

-7
0 0.2 0.4 0.6 0.8 1
t(s)

You might also like