Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Mate 2 PDF
Mate 2 PDF
INSTITUTO DE INVESTIGACION
AUTOR
ANDRES COLLANTE HUANTO
LICENCIADO EN MATEMATICA
(Resoluci
on Rectoral No 579-2010-R)
Indice general
Resumen IV
Introducci
on V
Parte te
orica o marco te
orico 1
1. M
etodo de Euler 1
1.1. Algoritmo de Euler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2. Programa del metodo de Euler . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3. Problemas propuestos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2. M
etodos de Taylor de orden superior 12
2.1. Algoritmo de Taylor de orden n . . . . . . . . . . . . . . . . . . . . . . . 14
2.2. Problemas propuestos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3. M
etodos de Runge-Kutta 21
3.1. Metodo del punto medio . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.2. Metodo Modificado de Euler . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.3. Metodo de Heun . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.4. Metodo de Runge-Kutta de Cuarto Orden . . . . . . . . . . . . . . . . . 23
3.4.1. Algoritmo del Metodo de Runge-Kutta de Cuarto Orden . . . . . 24
3.4.2. Programa del Metodo de Runge-Kutta de Cuarto Orden . . . . . 24
3.5. Metodo de Runge-Kutta de Cuarto Orden para Sistemas de ecuaciones
diferenciales ordinarias . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.5.1. Algoritmo del Metodo de Runge-Kutta de Cuarto Orden para
sistemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.5.2. Vibracion en una banda transportadora . . . . . . . . . . . . . . . 29
3.5.3. Algoritmo Runge-Kutta cuarto orden para un sistema Y = M Y + F 34
i
3.5.4. Monorriel de dos carros . . . . . . . . . . . . . . . . . . . . . . . . 35
3.5.5. Programa del Metodo de Runge-Kutta . . . . . . . . . . . . . . . 38
3.5.6. Instrumento ssmico . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.6. Problemas propuestos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Materiales y M
etodos 59
Resultados 60
Discusi
on 62
7. Bibliografa 64
Ap
endice A:Introducci
on al programa Matlab 66
A.1 Vectores y matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
A.2 Grafica de funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
A.3 Programacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Ap
endice B:Unicidad de la soluci
on de un Sistema de Ecuaciones
Diferenciales 69
B.1 Condicion de Lipshitz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
B.2 Teorema de Unicidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Ap
endice C: Orden del M
etodo de Runge Kutta 70
ii
Indice de figuras
iii
Resumen
Las ecuaciones diferenciales ordinarias que modelan una realidad especfica, aumentan
su complejidad en la medida que se aproximen cada vez mas al comportamiento del
objeto o fenomeno en estudio, razon por la cual en la mayoria de los casos hallar su solu-
cion por metodos analticos es imposible lo que nos lleva a utilizar los metodos numericos.
iv
Introducci
on
En ingeniera hay procesos que son modelados con ecuaciones diferenciales ordinarias,
cuya solucion es imposible determinar por metodos analticos es all la utilidad de los
metodos numericos que calc
ula una solucion aproximada por medio de un n
umero finito
de iteraciones que mejora su eficiencia de manera rapida, al utilizar un software adecuado.
v
Parte te
orica o marco te
orico 1
Captulo 1
M
etodo de Euler
xn = x0 + nh n = 0, 1, 2, ...
Los valores de la solucion (xn ) se pueden aproximar con yn , donde los valores de yn se
obtienen como sigue [KEN 92]:
dy
En el punto (x0 , y0 ) la pendiente de la solucion de (1.1) es dx
= f (x0 , y0 ). Por lo tanto,
la recta tangente a la curva solucion en el punto (x0 , y0 ) es
y = y0 + (x x0 )f (x0 , y0 ) (1.2)
(x1 ) y1 = y0 + hf (x0 , y0 )
(x2 ) y2 = y1 + hf (x1 , y1 )
(x3 ) y3 = y2 + hf (x2 , y2 )
5
(x2,y2)
pendiente
4.5 f(x2,y2)
pendiente
f(x1,y1)
(x3,y3)
4 (x1,y1)
pendiente
3.5
f(x3,y3)
pendiente
3 f(xo,yo)
2.5
2
2 3 4 5 6 7 8 9 10
2
xn+1 = xn + h
yn+1 = yn + hf (xn , yn )
Salida xn+1 , yn+1
3. Parar
function y=euler(n,a,b,h)
format long
x=a:h:n*h;
y=zeros(n,1);
y(1)=b;
for k=1:n
f=fe(x(k),y(k));
y(k+1)=y(k)+h*f;
end
function f=fe(x,y)
f=-y+x+2;%es la funci
on del ejemplo 1
Ejemplo 1
Sea la ecuacion diferencial y = y + x + 2 con la condicion inicial y(0) = 2, usando el
metodo de Euler con h = 0.1, h = 0.05 y h = 0.01, aproximar y(1).
Soluci
on
Al usar el programa euler.m necesitamos hallar el valor de n, que lo podemos obtener de
x N x0
n=
h
donde para nuestro problema x0 = 0 y xN = 1 pues y(1) = y(xN )
10
Para h = 0.1, tenemos n = = 10. Se digito >>euler(10, 0, 1, 0.1)
0.1
3
10
Para h = 0.05 tenemos n = = 20. Se digito >>euler(20, 0, 1, 0.05)
0.05
10
Para h = 0.01 tenemos n = = 100. Se digito >>euler(10, 0, 1, 0.01)
0.01
Se obtuvo los siguientes valores
xn yn
h=0.1 h=0.05 h=0.01
0.0 2.000000000000000 2.000000000000000 2.000000000000000
0.1 2.000000000000000 2.002500000000000 2.004382075008805
0.2 2.010000000000000 2.014506250000000 2.017906937597231
0.3 2.029000000000000 2.035091890625000 2.039700373388280
0.4 2.056100000000000 2.063420431289063 2.068971758569680
0.5 2.090490000000000 2.098736939238379 2.105006067137536
0.6 2.131441000000000 2.140360087662637 2.147156642390761
0.7 2.178296900000000 2.187674979115530 2.194838659600207
0.8 2.230467210000001 2.240126668651766 2.247523213763810
0.9 2.287420489000001 2.297214318458219 2.304731972678324
1.0 2.348678440100001 2.358485922408543 2.366032341273229
xn y = ex + x + 1
0.0 2.000000000000000
0.1 2.004837418035960
0.2 2.018730753077982
0.3 2.040818220681718
0.4 2.070320046035640
0.5 2.106530659712633
0.6 2.148811636094027
0.7 2.196585303791410
0.8 2.249328964117222
0.9 2.306569659740599
1.0 2.367879441171442
4
se reduce el error que se comete.
2.4
2.35
2.3
2.25
2.2
2.15
2.1
solucin exacta
h=0.1
2.05 h=0.05
h=0.01
2
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Ejemplo 2
Un paracaidista de masa M kg salta desde un avion en t = 0. Consideremos que la
velocidad vertical inicial del paracaidista es cero en t = 0 y que la cada es vertical. Si
el arrastre aerodinamico esta dado por Faire = cv 2 , donde c es una constante y v es la
velocidad vertical(positiva hacia abajo), asuma M = 70kg, c = 0.27kg/m y h = 0.1.
Halle la velocidad del paracaidista para t 20s
Soluci
on
Por la primera ley de Newton, el equilibrio de fuerzas satisface
dv(t)
M = Faire + gM (1.5)
dt
donde v es la velocidad del paracaidista en m/s(positiva hacia abajo) y g es la aceleracion
debida a la gravedad, 9.8m/s2 . La ecuacion (1.5) puede escribirse como:
5
dv(t) c
= 2 v 2 + g, v(0) = 0 (1.6)
dt M
que es lo mismo a,
v = f (t, v), v(0) = 0
function [x y]=euler1(n,a,b,h)
%Resuelve el problema de paracaidista
format long
x=a:h:n*h;
y=zeros(n,1);
y(1)=b;
for k=1:n
f=fe1(x(k),y(k));
y(k+1)=y(k)+h*f;
end
plot(x,y)
grid
xlabel(tiempo(s));
ylabel(velocidad(m/s));
Programa fe1.m
function y1=fe1(x,y)
y1=(-0.27/70)*y^2+9.8;
ti (s) vi (m/s)
0 0
0.1 9.80000000e-001
6
0.2 1.95962956e+000
0.3 2.93814836e+000
0.4 3.91481860e+000
0.5 4.88890722e+000
.. ..
. .
19.5 5.03604023e+001
19.6 5.03621653e+001
19.6 5.03638597e+001
19.8 5.03654884e+001
19.9 5.03670537e+001
20.0 5.03685582e+001
60
50
40
velocidad(m/s)
30
20
10
0
0 2 4 6 8 10 12 14 16 18 20
tiempo(s)
Definici
on 1.2.1. Se dice que una funcion f (t, y) satisface la condicion de Lipschitz en
7
la variable y en un conjunto D R2 si existe una constante L > 0 con la propiedad
Ejemplo
Si D = {(t, y)/ 1 t 10, 6 y 20} y f (t, y) = ycos(t) entonces para cada par de
puntos (t, y1 ), (t, y2 ) D tenemos
Teorema 1.1. Sea f (t, y) esta definida en un conjunto convexo D R2 . Si existe una
constante L > 0 con
f
(t, y) L, (t, y) D
y
entonces f satisface la condicion de Lipschitz en D en la variable y con la constante L
de Lipschitz
Ejemplo
La funcion f (t, y) = ycos(t) satisface
f
(t, y) = |cos(t)| 1 (t, y) D = {(t, y)/ 1 t 10, 6 y 20}
y
observemos que L = 1
8
Ejemplo
Sea el problema de valor inicial
y = y + x + 2, 0 x 1, y(0) = 2
a) y + ty = 1, y(0) = 1
b) y + 3y = et , y(0) = 1
c) y = (t2 y), y(0) = 0.5
d ) y + y|y| = 0, y(0) = 1
e) y + y|y|1/2 = sen(t), y(0) = 1
2. Use el metodo de Euler con h=0.1 para aproximar la solucion del problema de valor
inicial
1 y
y = 2
y2, y(1) = 1
x x
en el intervalo 1 x 2
9
4. La velocidad de un cuerpo en caida se modelo mediante el problema de valor inicial
dv
m = mg kv v(0) = v0
dt
de acuerdo con la hipotesis de que la fuerza debida a la resistencia del aire es
kv. sin embargo, en ciertos caso la fuerza originada por la resistencia del aire se
comporta mas como kv r , donde r > 1 es alguna constante. Esto da el modelo
dv
m = mg kv r v(0) = v0 (1.8)
dt
Para estudiar el efecto de cambiar el parametro r en (1.8), m = 1, g = 9.81,
k = 2 y v0 = 0. Ahora utilice el metodo de Euler con h=0.2 para aproximar la
solucion de (1.8) en el intervalo 0 t 5 para r = 1, 1.5 y 2
di d2 E 1 dE 1
=C 2 + + E
dt dt R dt L
Supongamos que C=0.3 faradios, R=1.4 ohms, L=1.7 henrios y que el voltage esta
dado por
E(t) = e0.06t sen(2t )
6. Un tanque conico contiene agua hasta una altura de 0.5m desde el fondo. El tanque
tiene un agujero de 0.02m de radio en el fondo. El radio del esta dado por r = 0.25y,
donde r es el radio e y es la altura medida desde el fondo. La velocidad del agua
que sale por el agujero esta dada por v 2 = 2gy, donde g = 9.8 m/s2 . Con h=0.001,
utilice el metodo de Euler para averiguar cuantos minutos tardara el tanque en
vaciarse.
10
8. Una pieza metalica con una masa de 0.1kg y 25o C se calienta internamente de
forma electrica a razon de q=3000W. La ecuacion diferencial de la temperatura
que se obtiene es:
dT
= 20 t2 , si T (0) = 298
dt
Calcule T (1) empleando el metodo de Euler con h=0.01
dT
= K[M (t) T (t)]
dt
1
donde K es una constante. Sea K = 1 min y supongase que la temperatura del medio
es constante. M (t) = 70o . Si el cuerpo esta inicialmente a 100o , use el metodo de
Euler con h=0.1 para aproximar la temperatura del cuerpo al cabo de
a) 1 minuto
b) 2 minutos
11
Captulo 2
M
etodos de Taylor de orden superior
xn = x0 + nh n = 0, 1, 2, ...
h2
(xn+1 ) = (xn ) + hf (xn , (xn )) + f (xn , (xn ))
2
hn hn+1 (n)
+ f (n1) (xn , (xn )) + f (n , (n )) (2.2)
n! (n + 1)!
12
haciendo (x0 ) = y0
h2 hn
(x1 ) y1 = y0 + hf (x0 , y0 ) + f (x0 , y0 ) + + f (n1) (x0 , y0 )
2 n!
h2 hn
(x2 ) y2 = y1 + hf (x1 , y1 ) + f (x1 , y1 ) + + f (n1) (x1 , y1 )
2 n!
h2 hn
f (x2 , y2 ) + + f (n1) (x2 , y2 ),
(x3 ) y3 = y2 + hf (x2 , y2 ) +
2 n!
Este procedimiento se llama M
etodo de Taylor de orden p y se resume mediante
las siguientes formulas recursivas
xn+1 = xn + h (2.3)
h2 hp
yn+1 = yn + hf (xn , yn ) + f (xn , yn ) + + f (p1) (xn , yn ) n = 0, 1, 2, . . . (2.4)
2 p!
Si p = 1, el metodo de taylor de orden 1 es el metodo de Euler
yn+1 = yn + hf (xn , yn ), n = 0, 1, 2, . . .
h2
yn+1 = yn + hf (xn , yn ) + f (xn , yn ) n = 0, 1, 2, . . .
2
Si p = 3, el metodo de taylor de orden 3 es
h2 h3
yn+1 = yn + hf (xn , yn ) + f (xn , yn ) + f (2) (x2 , y2 ) n = 0, 1, 2, . . . , etc
2 3!
La formula (2.4)tambien se puede escribir como
donde
h2 hp
T (p) (xn , yn ) = f (xn , yn ) + f (xn , yn ) + + f (p1) (xn , yn ) (2.6)
2 p!
13
2.1. Algoritmo de Taylor de orden n
Este algoritmo calcula la solucion del problema de valor inicial (1.1) en puntos
equidistantes x1 = x0 + h, x2 = x0 + 2h, x3 = x0 + 3h, , xN = x0 + N h, aqu f es
tal que (1.1) tiene una solucion u
nica en [x0 , xN ].
xn+1 = xn + h
(xn ) = f (xn , (xn ))
(xn ) = f (xn , (xn ))
..
.
(n) (xn ) = f (n1) (xn , (xn ))
yn+1 = yn + h (xn ) + h2 (xn ) + h3 (xn ) nh (n) (xn )
3. Parar
Ejemplos
1. Determine las formulas recursivas del metodo de Taylor de orden 2 para el problema
de valor inicial
y = exy y(0) = 1
Soluci
on
h2
yn+1 = yn + hy (xn ) + y (xn )
2!
2
h f f
yn+1 = yn + hf (xn , yn ) + (xn , yn ) + (xn , yn )f (xn , yn )
2! x y
observar que
f (x, y) = exy
x0 = 0 y0 = 1
formulas recursivas
xn+1 = xn + h
h2 (xn ,yn )
yn+1 = yn + he(xn ,yn ) + + xn e(xn ,yn ) e(xn ,yn )
yn e
2!
14
2. Aproximar y(0) de y = cosx seny + x2 , y(1) = 3, usando el metodo de
Taylor de orden 4 con h = 0.1
Soluci
on
function y=taylor(n,a,b,h)
format long
x=a:h:n*h;
y=zeros(n,1);
y(1)=b;
for k=1:n
y1=fe(x(k),y(k));
y2=-sin(x(k))-cos(y(k))*y1+2*x(k);
y3=-cos(x(k))+(sin(y(k)))*(y2)^2-(cos(y(k)))*y1+2;
y4=sin(x(k))+(y1^3-y3)*cos(y(k));
y(k+1)=y(k)+h*(y1+(h/2)*(y2+(h/3)*(y3+(h/4)*(y4))));
end
Program fe.m
function y1=fe(x,y)
y1=cos(x)-sin(y)+x^2;
Ejecutamos el programa
>> taylor(10,-1,3,0.1)
donde n = 10 es el n
umero de intervalos de longitud h = 0.1, como la condicion
inicial es y(1) = 3 entonces a = 1 y b = 3
ans =
xn yn
-1.0 3.000000000000000
15
-0.9 3.141523798815666
-0.8 3.287216794698704
-0.7 3.438764055326533
-0.6 3.597569817751085
-0.5 3.764637981583152
-0.4 3.940425688412236
-0.3 4.124693336379560
-0.2 4.316391269699142
-0.1 4.513637715380874
0.0 4.713841791853081
function y=taylor3(n,a,b,h)
16
format long
x=a:h:n*h;
y=zeros(n,1);
y(1)=b;
for k=1:n
y1=fl(x(k),y(k));
r1=(((0.06^2)*(pi^2)/2.1)-4/2.1);
r2=4*(-0.06*pi/2.1);
r3=(-1/(2.1*1.1));
y2=r1*exp(-0.06*pi*x(k)).*sin(2*x(k)-pi)+...
r2*exp(-0.06*pi*x(k)).*cos(2*x(k)-pi)+r3*y1;
y3=(-0.06*pi*r1-2*r2)*exp(-0.06*pi*x(k)).*sin(2*x(k)-pi)+...
(2*r1-0.06*pi*r2)*exp(-0.06*pi*x(k)).*cos(2*x(k)-pi)+r3*y2;
y(k+1)=y(k)+h*(y1+(h/2)*(y2+(h/3)*(y3)));
end
Programa fl.m
function y1=fl(x,y)
y1=(-y/(2.1*1.1))+(-0.06*pi/2.1)*exp(-0.06*pi*x)*sin(2*x-pi)+...
(2/2.1)*exp(-0.06*pi*x)*cos(2*x-pi);
Ejecutamos el programa
>> taylor3(10,0,1,0.2)
ans =
tn In
0 1.000000000000000
0.2 0.746508916487780
0.4 0.552980151519051
0.6 0.431802748271490
0.8 0.384440494683400
1.0 0.401911779693576
1.2 0.466844369290315
17
1.4 0.556674895401674
1.6 0.647418540098737
1.8 0.717388697783574
2.0 0.750299158260995
a) y = cos(x + y) y(0) =
b) y = xy y 2 y(0) = 1
2. use los metodos de Taylor de orden 2 y 4 con h=0.25 para aproximar la solucion
al problema de valor inicial en x=1, compare estas aproximaciones con la solucion
verdadera
y = 1 + x cos(xy), 0 t 2, y(0) = 0
18
b) Use las respuestas obtenidas en el inciso a) para aproximar y en los siguientes
valores y comparelos con los valores reales de y.
i) y(0.66)
ii) y(0.82)
iii) y(0.94)
mv = mg kv|v|
8. En el estudio del campo electronico inducido por dos lineas de transmision cercanas,
surge una ecuacion de la forma
dz
+ g(x)z 2 = f (x)
dx
Sean f (x) = 5x + 2, g(x) = x2 y z(0) = 1, aproximar z(1).
19
9. Halle y(1) para la siguiente ecuacion empleando el metodo de Taylor de orden dos
con h = 0.5:
y
y =
x + y2
10. Un sistema de resorte tiene una resistencia al movimiento proporcional al cuadrado
de la velocidad, y su movimiento esta descrito por
2
d2 x dx
2
+ 0.1 + 0.6x = 0
dt dt
Si el resorte se suelta desde un punto que esta a una unidad de distancia por arriba
de su punto de equilibrio,x(0), x (0) = 0. Determine x(2) empleando el metodo de
Taylor de orden tres con h = 0.1
20
Captulo 3
M
etodos de Runge-Kutta
En la seccion anterior vimos los metodos de Taylor que tienen un error de truncamiento
de orden alto, pero tienen la desventaja de requerir el calculo y evaluacion de las derivadas
de f (x, y), este es un procedimiento lento y complicado motivo por el cual rara vez se
emplean. Los metodos de Runge1 Kutta2 tienen error de truncamiento alto, pero permiten
prescindir del calculo y evaluacion de las derivadas.
El primer paso para derivar el Metodo de Runge-Kutta ([BUR 02]), es determinar los
valores a,b y c con la propiedad de que af (x + b, y + c) aproxima a (2.6) para p = 2
h
T (2) (x, y) = f (x, y) + f (x, y)
2
h f h f
T (2) (x, y) = f (x, y) + (x, y) + (x, y).f (x, y) (3.1)
2 x 2 y
Al desarrollar f (x + b, y + c) en su polinomio de Taylor grado uno alrededor de (x,y) se
obtiene
f f
af (x + b, y + c) = af (x, y) + ab (x, y) + ac (x, y).f (x, y) + aR1 (x + b, y + c) (3.2)
x y
donde
b2 2 f 2f c2 2 f
R1 (x + b, y + c) = (, ) + bc (, ) + (, )
2 x2 xy 2 y 2
para entre x y x + b, entre y y y + c
h
Al igualar los coeficientes de las ecuaciones (3.1) y (3.2) obtenemos a = 1 b = 2
y
1
Carle David Tolme Runge(30 de agosto de 1856-3 de enero de 1927) fue un matematico, fsico y
espectroscopista aleman
2
Martin Wilhelm Kutta (3 de noviembre de 1867 - 25 de diciembre de 1944) fue un fsico y matematico
aleman.
21
c = h2 f (x, y)
En consecuencia
(2) h h h h
T (x, y) = f x + , y + f (x, y) R1 x + , y + f (x, y)
2 2 2 2
donde
h h h2 2 f h2 2f h2 2
2 f
R1 (x + , y + f (x, y)) = (, ) + f (x, y) (, ) + (f (x, y)) (, )
2 2 8 x2 4 xy 8 y 2
El metodo que resulta de sustituir T (2) (x, y) por f x + h2 , y + h2 f (x, y) en el metodo de
3.1. M
etodo del punto medio
h h
yn+1 = yn + hf (xn + , yn + f (xn , yn )) (3.3)
2 2
n = 0, 1, 2, . . . (3.4)
Solo tres parametros se encuentran en af (x+b, y +c) y los tres se requieren en la igualdad
con T (2) ,necesitamos una forma mas compleja para cumplir las condiciones que requiere
cualquiera de los metodos de Taylor de orden superior.
La forma mas apropiada de cuatro parametros con que se aproxima
h h2
T (3) (x, y) = f (x, y) + f (x, y) + f (x, y)
2 6
es
af (x, y) + bf (x + c, y + df (x, y)) (3.5)
y ni siquiera con esto se tiene la suficiente flexibilidad para igualar el termino
2
h2 f
(x, y) f (x, y)
6 y
h2
resultante de la expansion de f (x, y)
6
Por lo tanto, lo mejor que podemos lograr utilizando son metodos con el error local
de truncamiento O(h2 ), sin embargo el hecho que tenga cuatro parametros, da cierta
flexibilidad en su eleccion para derivar varios metodos O(h2 ). Uno de los mas importantes
1
es el metodo modificado de Euler, que corresponde a seleccionar a = b = 2
yc=d=h
y se representa de la siguiente forma.
22
3.2. M
etodo Modificado de Euler
1
yn+1 = yn + h [f (xn , yn ) + f (xn + h, yn + hf (xn , yn ))] (3.6)
2
n = 0, 1, 2, . . .
3.3. M
etodo de Heun
1 2 2
yn+1 = yn + h f (xn , yn ) + 3f (xn + h, yn + hf (xn , yn )) (3.7)
4 3 3
n = 0, 1, 2, . . .
Ambos son metodos de Runge Kutta de orden dos, que es el orden de su error local de
truncamiento.
Aunque podemos aproximar T (3) (x, y) con el error O(h3 ) mediante una expresion de la
forma
f (x + a, y + df (x + b, y + cf (x, y)))
contiene cuatro parametros, determinar los valores de a b c y d es complicada, de hecho
el metodo de Runge Kutta de orden tres que resulta de esta expresion no se emplea. El
metodo de Runge Kutta de mayor uso es el de cuarto orden
3.4. M
etodo de Runge-Kutta de Cuarto Orden
1
yn+1 = yn + (k1 + 2k2 + 2k3 + k4 ) , n = 0, 1, 2, . . . (3.8)
6
donde
k1 = hf (xn , yn )
1 1
k2 = hf (xn + h, yn + k1 )
2 2
1 1
k3 = hf (xn + h, yn + k2 )
2 2
k4 = hf (xn + h, yn + k3 )
23
3.4.1. Algoritmo del M
etodo de Runge-Kutta de Cuarto Orden
Este algoritmo calcula la solucion del problema de valor inicial (1.1) en puntos
equidistantes x1 = x0 + h ,x2 = x0 + 2h, x3 = x0 + 3h, , xN = x0 + N h, aqu f es
tal que (1.1) tiene una solucion u
nica en [x0 , xN ].
k1 = hf (xn , yn )
k2 = hf (xn + 12 h, yn + 21 k1 )
k3 = hf (xn + 12 h, yn + 21 k2 )
k4 = hf (xn + h, yn + k3 )
yn+1 = yn + 16 (k1 + 2k2 + 2k3 + k4 )
Salida xn+1 , yn+1
3. Parar
function y1=fe(x,y)
y1=x*exp(3*x)-2*y;
24
Ejemplo
Metodo
Valor exacto Runge-Kutta Error
xn y(xn ) yn |y(xn ) yn |
1.0e-003 *
0.0 0 0 0
0.1 0.005752053971599 0.005754631311524 0.002577339924445
0.2 0.026812801841426 0.026818770596771 0.005968755345566
0.3 0.071144527666900 0.071155164515354 0.010636848453718
0.4 0.150777835474151 0.150795060680180 0.017225206029203
0.5 0.283616521867142 0.283643159044116 0.026637176974542
0.6 0.496019565629524 0.496059711486905 0.040145857380935
0.7 0.826480869814429 0.826540417642342 0.059547827913398
0.8 1.330857026396779 1.330944404473756 0.087378076976341
0.9 2.089774397011061 2.089901607341672 0.127210330611138
1.0 3.219099319039492 3.219283395463391 0.184076423899171
observamos que y(1) 3.219283395463391.
Aproximaci
on Soluci
on exacta Error
h a y(1) y(1) |y(1)-Aprox|
0.1 2.367879774412498 2.367879441171442 3.332410560830112e-007
0.05 2.367879461147540 2.367879441171442 1.997609810899803e-008
0.01 2.367879441202356 2.367879441171442 3.091393807608256e-011
25
Si comparamos con el metodo de Euler
xi Euler h=0.1 euler h=0.025 Runge kutta soluci
on exacta
4to orden
0 2.000000000000000 2.000000000000000 2.0000000000000000 2.0000000000000000
0.1 2.000000000000000 2.003687890625000 2.0048374999999998 2.0048374180359598
0.2 2.010000000000000 2.016651803662262 2.0187309014062498 2.0187307530779819
0.3 2.029000000000000 2.037998345826651 2.0408184220011774 2.0408182206817180
0.4 2.056100000000000 2.066920168424825 2.0703202889174905 2.0703200460356395
0.5 2.090490000000000 2.102687680219100 2.1065309344233798 2.1065306597126332
0.6 2.131441000000000 2.144641558442873 2.1488119343763148 2.1488116360940266
0.7 2.178296900000000 2.192185981095952 2.1965856186712287 2.1965853037914096
0.8 2.230467210000001 2.244782511051797 2.2493292897344279 2.2493289641172218
0.9 2.287420489000001 2.301944569199290 2.3065699912000754 2.3065696597405991
1.0 2.348678440100001 2.363232439887880 2.3678797744124984 2.3678794411714423
3.5. M
etodo de Runge-Kutta de Cuarto Orden para
Sistemas de ecuaciones diferenciales ordinarias
Sea el sistema de m ecuaciones diferenciales
du1
= f1 (x, u1 , u2 , . . . , um )
dx
du2
= f2 (x, u1 , u2 , . . . , um ) (3.9)
dx
..
.
dum
= fm (x, u1 , u2 , . . . , um )
dx
para a x b con las condiciones iniciales
26
se resuelve utilizando el metodo de Runge-Kutta
1
yn+1 = yn + (k1 + 2k2 + 2k3 + k4 ) (3.12)
6
donde
k1 = hf (xn , yn )
1 1
k2 = hf (xn + h, yn + k1 )
2 2
1 1
k3 = hf (xn + h, yn + k2 )
2 2
k4 = hf (xn + h, yn + k3 )
Para cada i = 1, 2, . . . , m
1
yi,j+1 = yi,j + (k1,j + k2,j + k3,j + k4,j )
6
donde
Para cada i = 1, 2, . . . , m
Para cada i = 1, 2, . . . , m
1 1 1 1
k2,j = hfi (xj + h, y1,j + k1,1 , y2,j + k1,2 , . . . , ym,j + k1,m )
2 2 2 2
27
Para cada i = 1, 2, . . . , m
1 1 1 1
k3,j = hfi (xj + h, y1,j + k2,1 , y2,j + k2,2 , . . . , ym,j + k2,m )
2 2 2 2
Para cada i = 1, 2, . . . , m
a. Para j = 1, 2, . . . , m hacer
b. Para j = 1, 2, . . . , m hacer
1 1 1 1
k2,j = hfi (xj + h, y1,j + k1,1 , y2,j + k1,2 , . . . , ym,j + k1,m )
2 2 2 2
c. Para j = 1, 2, . . . , m hacer
1 1 1 1
k3,j = hfi (xj + h, y1,j + k2,1 , y2,j + k2,2 , . . . , ym,j + k2,m )
2 2 2 2
d. Para j = 1, 2, . . . , m hacer
28
e. Para j = 1, 2, . . . , m hacer
1
yi,j+1 = yi,j + (k1,j + k2,j + k3,j + k4,j )
6
f. Para j = 1, 2, . . . , m hacer
g. x1 = a + ih.
5. Parar.
3.5.2. Vibraci
on en una banda transportadora
Se tiene una carga de masa m colocada en una banda transportadora[BAE 06] que
tiene una velocidad v0 . Esta carga esta asociada a un sistema resorte amortiguador como
se muestra en la figura (3.1). Para determinar el desplazamiento de la masa M a una
velocidad dada, primero hacemos el diagrama de cuerpo libre de la masa M .
y
x
n F1 mg
M F
k F2
N
v0
F = N [1 bv + cv 3 ]
F = N [1 b(v0 x ) + c(v0 x )3 ]
F1 = kx
29
F2 = nx
N = mg
mx = F F1 F2
mx = F kx nx
mx + nx + kx = N [1 b(v0 x ) + c(v0 x )3 ]
x1 = x
x2 = x
x1 = x2 (3.13)
3
k n N [1 b(v0 x2 ) + c(v0 x2 ) ]
x2 = x1 x2 + (3.14)
m m m
Los datos del problema son b = 0.3, c = 0.1, m = 1kg,g = 9.8m/s2 , u = 0.6,
k = 1600N/m, n = 0.1kg/s
Programa banda.m
function y=banda(r)
%Programa que determina el desplazamiento de una banda transportadora
clc;global v0;v0=r;
format long
a=0;
b=8;
m=2; %numero de ecuaciones
N=1000; %numero de subintervalos
c(1)=0;%condiciones iniciales
c(2)=0;
h=(b-a)/N;
t=a;
for j=1:m,
30
w(j)=c(j)
end
T=[t];
y=[w];
for i=1:N,
for j=1:m,
k1(j)=h*fs(t,w(1),w(2),j);
end
for j=1:m,
k2(j)=h*fs(t+h/2,w(1)+(1/2)*k1(1),w(2)+(1/2)*k1(2),j);
end
for j=1:m,
k3(j)=h*fs(t+h/2,w(1)+(1/2)*k2(1),w(2)+(1/2)*k2(2),j);
end
for j=1:m,
k4(j)=h*fs(t+h,w(1)+k3(1),w(2)+k3(2),j);
end
for j=1:m,
w(j)=w(j)+(k1(j)+2*k2(j)+2*k3(j)+k4(j))/6
end
t=a+i*h;
T=[T;t];
y=[y;w]
input(pulse)
fprintf(%4.4f ,T(i+1));
fprintf(%12.6i ,w(1));fprintf(%12.6i\n,w(2));
end
plot(T,y(:,1))
xlabel(tiempo (s));
ylabel(posicion (m));
grid
Programa fs.m
function y1=fs(t,x1,x2,j)
31
b=0.3;c=0.1;m=1;g=9.8;k=1600;n=0.1;u=0.6;N=m*g;v0=0.5;
if j==1,
y1=x2;
end
if j==2,
y1=(-k/m)*x1-(n/m)*x2+(u*N)*(1-b*(v0-x2)+c*(v0-x2)^3)/m;
end
Se realiza tres simulaciones para v0 = 0.5m/s y v0 = 1m/s tenemos las figuras (3.2) y
(3.3) donde el sistema es inestable, para v0 = 1.5m/s el sistema es estable seg
un la figura
(3.4).
0.05
0.04
0.03
0.02
posicion (m)
0.01
0.01
0.02
0.03
velocidad v0=0.5 m/s
0.04
0 1 2 3 4 5 6 7 8
tiempo (s)
32
3
x 10
6
velocidad v0=1 m/s
4
posicion (m)
0
0 1 2 3 4 5 6 7 8
tiempo (s)
Y = f (x, Y ) (3.15)
donde
u1 f1
u2 f2
Y = , f =
.. ..
.
.
un fn
entonces las iteraciones para el Metodo de Runge-Kutta de cuarto orden para sistemas
es:
K1 = hf (xn , Yn )
1 1
K2 = hf (xn + h, Yn + K1 )
2 2
1 1
K3 = hf (xn + h, Yn + K2 )
2 2
K4 = hf (xn + h, Yn + K3 )
1
Yn+1 = Yn + (K1 + 2K2 + 2K3 + K4 ) (3.16)
6
Si es posible escribir la ecuacion (3.9) en forma lineal como
Y = MY + F
33
3
x 10
7
velocidad v0=1.5 m/s
posicion (m) 5
0
0 1 2 3 4 5 6 7 8
tiempo (s)
K1 = h [M Yn + F ]
K1
K2 = h M (Yn + )+F
2
K2
K3 = h M (Yn + )+F
2
K4 = h [M (Yn + K3 ) + F ]
1
Yn+1 = Yn + (K1 + 2K2 + 2K3 + K4 ) (3.17)
6
Para este caso desarrollamos el siguiente algoritmo
34
2. Para n=0,...,N-1, hacer
K1 = h [M Yn + F ]
K2 = h M (Yn + K21 ) + F
K3 = h M (Yn + K22 ) + F
K4 = h [M (Yn + K3 ) + F ]
Yn+1 = Yn + 16 (K1 + 2K2 + 2K3 + K4 )
Salida xn+1 , Yn+1
3. Parar
35
Figura 3.6: Diagrama de cuerpo libre de M3
36
Figura 3.8: Diagrama de cuerpo libre de M1
x 1 = y 1 (3.21)
k12 (B12 + B1 ) k12 B12 u(t)
x1 = y 2 = y1 y2 + z1 + z2 + (3.22)
M1 M1 M1 M1 M1
x 2 = z1 (3.23)
k12 B12 (k12 + k23 ) (B23 + B12 + B2 ) k23
x2 = z2 = y1 + y2 z1 z2 + u1 (3.24)
M2 M2 M2 M2 M2
B23
+ u2 (3.25)
M2
x 3 = u 1 = u2 (3.26)
k23 B23 k23 (B23 + B3 )
x3 = u 2 = z1 + z2 u1 u2 (3.27)
M3 M3 M3 M3
que se puede expresar en forma matricial como
Y = AY + F (3.28)
37
donde
y 0 1 0 0 0 0
1
y k12 (B12 +B1 ) k12 B12
0 0
2 M1 M1 M1 M1
z1 0 0 0 1 0 0
Y = z
M =
k12 B12 (k12 +k23 ) (B23 +B12 +B2 ) k23 B23
2 M2 M2
M2
M2 M2 M2
u 1 0 0 0 0 0 1
k23 B23 k23 (B23 +B3 )
u 2 0 0 M3 M3
M3 M3
y 0
1 u(t)
y
2 M1
z1 0
Y =
z
F =
0
2
u1 0
u2 0
Asumimos los siguientes valores para los parametros
M2 = M3 = 2M1 = 2600kg
N s
k23 = k12 = 100, 000
m
N s
B23 = B12 = 500
m
N s
B2 = B3 = 2B1 = 10000
m
u(t) = 1300N
38
B2=10000;B3=10000;B1=5000;
B23=500;B12=500;
M=[0 1 0 0 0 0;
-K12/M1 -(B12+B1)/M1 K12/M1 B12/M1 0 0;
0 0 0 1 0 0;
K12/M2 B12/M2 -(K12+K23)/M2 -(B23+B12+B2)/M2 K23/M2 B23/M2;
0 0 0 0 0 1;
0 0 K23/M3 B23/M3 -K23/M3 -(B23+B3)/M3];
Y(:,1)=[0;0;0;0;0;0];
h=0.1;n=1;t(1)=0;U=1300;F=[0;U/M1;0;0;0;0];
while t(n)<3
k1=h*F4(Y(:,n),M,F);
k2=h*F4(Y(:,n)+k1/2,M,F);
k3=h*F4(Y(:,n)+k2/2,M,F);
k4=h*F4(Y(:,n)+k3,M,F);
Y(:,n+1)=Y(:,n)+(1/6)*(k1+2*k2+2*k3+k4);
t(n+1)=n*h;
n=n+1;
F=[0;U/M1;0;0;0;0];
end
subplot(2,1,1)
plot(t,Y(1:2:6,:));
legend(posicion M1,posicion M2,posicion M3)
text(t(3),Y(1,3),x1);
text(t(5),Y(3,5),x2);
text(t(7),Y(5,7),x3);
xlabel(tiempo (s));
ylabel(desplazamientos x1,x2,x3 (m));
grid;
subplot(2,1,2);
plot(t,Y(2:2:6,:));
legend(velocidad M1,velocidad M2,velocidad M3)
text(t(3),Y(2,3),v1);
text(t(3),Y(4,3),v2);
text(t(3),Y(6,3),v3);
39
xlabel(tiempo (s));
ylabel(velocidades(m/s));
grid;
for i=1:1:length(Y)
fprintf(%i ,i-1);fprintf(%4.1f ,t(i));
fprintf(%8.4i ,Y(1,i));fprintf(%8.4i ,Y(3,i));
fprintf(%8.4i\n,Y(5,i));
end
for i=1:1:length(Y)
fprintf(%i ,i-1);fprintf(%4.1f ,t(i));
fprintf(%8.4i ,Y(2,i));fprintf(%8.4i ,Y(4,i));
fprintf(%8.4i\n,Y(6,i));
end
40
19 1.9 9.5572e-002 8.5217e-002 8.0219e-002
20 2.0 1.0085e-001 9.0446e-002 8.5342e-002
21 2.1 1.0611e-001 9.5694e-002 9.0463e-002
22 2.2 1.1134e-001 1.0092e-001 9.5620e-002
23 2.3 1.1654e-001 1.0611e-001 1.0082e-001
24 2.4 1.2173e-001 1.1129e-001 1.0605e-001
25 2.5 1.2690e-001 1.1647e-001 1.1128e-001
26 2.6 1.3206e-001 1.2167e-001 1.1650e-001
27 2.7 1.3725e-001 1.2687e-001 1.2170e-001
28 2.8 1.4245e-001 1.3208e-001 1.2690e-001
29 2.9 1.4767e-001 1.3728e-001 1.3209e-001
30 3.0 1.5289e-001 1.4248e-001 1.3728e-001
41
20 2.0 5.2687e-002 5.2464e-002 5.1133e-002
21 2.1 5.2382e-002 5.2424e-002 5.1345e-002
22 2.2 5.2170e-002 5.2088e-002 5.1799e-002
23 2.3 5.1968e-002 5.1812e-002 5.2185e-002
24 2.4 5.1754e-002 5.1777e-002 5.2334e-002
25 2.5 5.1642e-002 5.1900e-002 5.2270e-002
26 2.6 5.1726e-002 5.2014e-002 5.2118e-002
27 2.7 5.1945e-002 5.2041e-002 5.1982e-002
28 2.8 5.2141e-002 5.2019e-002 5.1907e-002
29 2.9 5.2199e-002 5.2007e-002 5.1891e-002
30 3.0 5.2127e-002 5.2018e-002 5.1917e-00
desplazamientos x1,x2,x3 (m)
0.2
0.15
0.1
posicion M1
0.05 posicion M2
x1 x2 x3 posicion M3
0
0 0.5 1 1.5 2 2.5 3
tiempo (s)
0.1
v1
velocidades(m/s)
0.08
0.06
0.04 velocidad M1
v2 velocidad M2
0.02
velocidad M3
0 v3
0 0.5 1 1.5 2 2.5 3
tiempo (s)
Se observa de la (3.9) que los desplazamientos de las masas es creciente mientras que sus
velocidades tienden a estabilizarse, es decir a tener una velocidad constante a partir de
t = 2s.
42
3.5.6. Instrumento ssmico
En la figura (3.10) se muestra un modelo general utilizado para la medicion de
vibraciones[SET 70]. La base se sujeta al cuerpo, el cual tiene una vibracion
q desconocida
k
a sin wt, considere m = 120kg, w = 5.81778, A = 0.1, k = 400, wn = m
,y c = wn m.
Para hallar el movimiento y la velocidad relativa del sistema durante 15 segundos,
hacemos el diagrama de cuerpo libre de la masa m.
Las fuerzas que actuan sobre la masa son la fuerza del resorte k( 12 + 21 )(x1 x2 ) y
la fuerza de amortiguamiento c(x1 x2 ), suponiendo que x1 es mayor x2 , la ecuacion de
movimiento es:
k(x1 x2 ) c(x1 x2 ) = mx1
d2 x dx
m 2
+ c + kx = mAw2 sin wt
dt dt
haciendo cambio de variable
x1 = x
x2 = x
formamos el sistema
x1 = x = x2
c k
x2 = x = x2 x1 + Aw2 sin(wt)
m m
que se puede expresar en forma matricial
! ! !
x1 0 1 0
= k
+
x2 m mc Aw2 sin(wt)
43
m
x1
1 1
2
k c 2
k
Base x2
Program vibracion.m
44
grid;
subplot(2,1,2);
plot(t,Y(2,:));
grid;
Programa F4.m
function f=F4(Y,M,F);
f=M*Y+F;
0.3
0.2
0.1
altura
0.1
0.2
0 5 10 15
tiempo
0.5
velocidad
0.5
1
0 5 10 15
tiempo
45
3.6. Problemas propuestos
1. Use el metodo de Runge-Kutta de cuarto orden con h=0.1 para aproximar la
solucion de
y = 3cos(y 5x), y(0) = 0
en los puntos x =0, 0.1, 0.2, . . .,4.0. Utilice sus respuestas para trazar una grafica
aproximada de la solucion en [0, 4].
46
b) Resuelva por el metodo de Runge-Kutta el PVI descrito, halle la cantidad de
radio que quedara en la muestra al cabo de 1500 a
nos.
6. En el estudio del campo electrico inducido por dos lneas de transmision cercanas,
surge una ecuacion de la forma
dz
+ g(x)z 2 = f (x)
dx
Sean f (x) = 5x + 2 y g(x) = z 2 . Si z(0) = 1, use el algoritmo de Runge-Kutta de
cuarto orden para aproximar z(1), con una tolerancia =0.0001.
x = y
y = x 2et + 1
z = x et + 1
m1 y1 = k1 y1 + k2 (y2 y1 )
m1 y2 = k2 (y2 y1 )
47
Sujeto a las siguientes condiciones y1 (0) = y2 (0) = 0, y1 (0) = 1, y2 (0) = 1
y1
y2
48
resuelva el PVI con el metodo de Runge-Kutta, encontrando la posicion del
satelite respecto a la Tierra 24 horas desde su lanzamiento.
Utilice los distintos metodos de resolucion para obtener las soluciones aproximadas
con h = 0.1
TS1 = 100o
TS
TB0 = 20o TB TB0 =?
TS
TS0 =?
49
Captulo 4
w0 =
wi+1 = wi + h(xi+1 , wi , h), para i > 0
i , y(xi ), h) + O(hn+2 )
y(xi+1 ) = y(xi ) + h(x
w
0 =
w i+1 , wi , h),
i+1 = wi + h(x para i > 0
50
las aproximaciones wi+1 y wi+1 a y(xi+1 ).Entonces
y(xi+1 ) y(xi )
i+1 (h) = (xi , y(xi ), h)
h
y(xi+1 ) wi
= (xi , wi , h)
h
y(xi+1 ) [wi + h(xi , wi , h)]
=
h
1
= (y(xi+1 ) wi+1 )
h
De manera similar
1
i+1 (h) = (y(xi+1 ) wi+1 )
h
En consecuencia
1
i+1 (h) = (y(xi+1 ) wi+1 )
h
1
= [(y(xi+1 ) wi+1 ) + (wi+1 wi+1 )]
h
1
= i+1 (h) + (wi+1 wi+1 )
h
donde i+1 (h) es O(hn ) y i+1 es O(hn+1 ), por lo tanto la parte significativa proviene de
1
(wi+1 wi+1 )
h
Esto nos da una aproximacion del error local de truncamiento del metodo O(hn ):
1
i+1 (h) (wi+1 wi+1 )
h
El objetivo no es solo estimar el error local del truncamiento, sino ajustar ademas el
tama
no de paso para mantenerlo dentro de una cota especificada. Para hacerlo, ahora se
supone que como i+1 es O(hn ), existe un n
umero K independiente de h
qn
i+1 (qh) K(qh)n = q n (Khn ) q n i+1 (h) (wi+1 wi+1 )
h
Para establecer la cota de i+1 (qh) por , escogemos q tal que
qn
|wi+1 wi+1 | |i+1 (qh)|
h
51
1/n
h
q
|wi+1 wi+1 |
Un metodo que usa esta desigualdad para controlar el error es el metodo de Runge-
Kutta-Fehlberg.Este consiste en emplear el metodo de Runge-Kutta con error local de
truncamiento de quinto orden
16 6656 28561 9 2
wi+1 = wi + k1 + k3 + k4 k5 + k6
135 12825 56430 50 55
para estimar el error local en un metodo de Runge-Kutta de cuarto orden dado por
25 1408 2197 1
wi+1 = wi + k1 + k3 + k4 k5
216 2565 4104 5
donde
k1 = hf (xi , wi )
h 1
k2 = hf (xi + , wi + k1 )
4 4
3 3 9
k3 = hf (xi + h, wi + k1 + k2 )
8 32 32
12 1932 7200 7296
k4 = hf (xi + h, wi + k1 k2 + k3 )
13 2197 2197 2197
439 3680 845
k5 = hf (xi + h, wi + k1 8k2 + k3 k4 )
216 513 4104
1 8 3544 1859 11
k6 = hf (xi + h, wi k1 + 2k2 k3 + k4 k5 )
2 27 2565 4104 40
La ventaja de este metodo se da en que solo se requiere seis evaluaciones de f por paso. Los
metodos arbitrarios de Runge Kutta de cuarto y quinto orden usados de manera conjunta
requieren cuatro y seis evaluaciones de f, respectivamente, lo cual da diez evaluaciones
de f.
En el control del error, un valor inicial de h en el i-esimo paso se uso para obtener los
primeros valores de wi+1 y wi+1 , que nos permitieron determinar q en ese paso y luego se
repitieron los calculos. Este procedimiento requiere el doble de evaluaciones de funciones
por paso, sin control de error. En la practica, el valor de q a usar se selecciona de manera
un poco diferente, a fin de que valga la pena el aumento de evaluaciones de funciones. El
valor de q determinado en el i-esimo paso cumple dos propositos:
52
si se repiten los pasos, q se elige de manera conservadora, en el metodo de Runge-
Kutta-Fehlberg con n=4, la eleccion com
un es
1/4 1/4
h h
q= = 0.84
2 |wi+1 wi | |wi+1 wi |
2. Hacer
x=a
w=
h = hmax
BD = 1
SALIDA (x, w)
53
3.1 Hacer
k1 = hf (xi , wi )
h 1
k2 = hf (xi + , wi + k1 )
4 4
3 3 9
k3 = hf (xi + h, wi + k1 + k2 )
8 32 32
12 1932 7200 7296
k4 = hf (xi + h, wi + k1 k2 + k3 )
13 2197 2197 2197
439 3680 845
k5 = hf (xi + h, wi + k1 8k2 + k3 k4 )
216 513 4104
1 8 3544 1859 11
k6 = hf (xi + h, wi k1 + 2k2 k3 + k4 k5 )
2 27 2565 4104 40
3.2 Tome R = h1 | 360
1
k1 128
k
4275 3
2197
k
75240 4
+ 1
k
50 5
+ 2
k|
55 6
1
(R = |w
i+1 wi+1 |)
h
3.3 Si R T OL entonces hacer
3.3.1 Hacer x = x + h
25 1408 2197 1
w=w+ k1 + k3 + k4 k5
216 2565 4104 5
3.3.2 SALIDA (x, w, h)
3.4 Tome = 0.84(T OL/R)1/4
3.5 Si 0.1 entonces tome h=0.1h o si 0.4 entonces tome h = 4h de otro
modo tome h = h
3.6 Si h > hmax entonces h = hmax
3.7 Si t b entonces tome BD = 0 de otro modo si x + h > b entonces tome
h = bx de otro modo si h < hmin entonces tome BD = 0; SALIDA(rebasado
h mnimo)
4. Parar
54
los parametros en forma adecuada.
La funcion sol guarda la solucion exacta de la ecuacion diferencial.
Programa rungkufeh2.m
a=1;b=4;yo=1;
tol=10^(-6);
hmax=0.5;
hmin=0.02;
x=a;
w=yo;
h=hmax;
band=1;
fprintf( xi);
fprintf( yi=y(xi));
fprintf( wi);
fprintf( hi);
fprintf( |yi-wi|);
fprintf( wi);
fprintf( |yi-wii|\n);
fprintf(%12.3f,x);
fprintf(%12.3f,sol(x));
fprintf(%12.3f,w);
fprintf( );
fprintf(%12.3f\n,sol(x)-w);
while band==1
k1=h*ff(x,w);
k2=h*ff(x+(1/4)*h,w+(1/4)*k1);
k3=h*ff(x+(3/8)*h,w+(3/32)*k1+(9/32)*k2);
k4=h*ff(x+(12/13)*h,w+(1932/2197)*k1-(7200/2197)*k2+(7296/2197)*k3);
k5=h*ff(x+h,w+(439/216)*k1-8*k2+(3680/513)*k3-(845/4104)*k4);
k6=h*ff(x+(1/2)*h,w-(8/27)*k1+2*k2-(3544/2565)*k3+(1859/4104)*k4-(11/40)*k5);
R=(1/h)*abs((1/360)*k1-(128/4275)*k3-(2197/75240)*k4+(1/50)*k5+(2/55)*k6);
if R<=tol
x=x+h;
wi=w+(16/135)*k1+(6656/12825)*k3+(28561/56430)*k4-(9/50)*k5+(2/55)*k6;
55
w=w+(25/216)*k1+(1408/2565)*k3+(2197/4104)*k4-(1/5)*k5;
fprintf(%12.7f,x);
fprintf(%12.7f,sol(x));
fprintf(%12.7f,w);
fprintf(%12.7f,h)
fprintf( %12.7e,abs(sol(x)-w));
fprintf(%12.7f,wi);
fprintf( %12.7e\n,abs(sol(x)-wi));
end
delt=0.84*(tol/R)^(1/4);
if delt<=0.1
h=0.1*h;
elseif delt>=4
h=4*h;
else h=delt*h;
end
if h>hmax
h=hmax;
end
if x>=b
band=0;
elseif (x+h)>b
h=b-x;
elseif h<hmin
band=0;
end
end
function y2=sol(x)
y2=x/(1+log(x));
Ejemplo
56
La entrada al algoritmo es la tolerancia T OL = 106 , un tama
no maximo de paso
hmax = 0.5 y un tama
no mnimo de paso hmin = 0.02
>>rungkufeh2
xi yi=y(xi) wi hi |yi-wi| wii |yi-wii|
1.000 1.000 1.000 0.000
1.1101946 1.0051237 1.0051237 0.1101946 5.0083437e-008 1.0051237 7.3572313e-009
1.2191314 1.0175211 1.0175212 0.1089368 6.3878024e-008 1.0175212 4.2901327e-008
1.3572694 1.0396749 1.0396749 0.1381381 8.0686697e-008 1.0396749 5.1900760e-008
1.5290112 1.0732756 1.0732757 0.1717417 9.6474346e-008 1.0732756 6.3566870e-008
1.7470584 1.1213947 1.1213948 0.2180472 1.1067125e-007 1.1213948 7.1637317e-008
2.0286416 1.1881700 1.1881702 0.2815832 1.2109483e-007 1.1881701 7.4469349e-008
2.3994350 1.2795395 1.2795396 0.3707934 1.2387333e-007 1.2795395 6.7626636e-008
2.8985147 1.4041842 1.4041843 0.4990798 1.1211799e-007 1.4041842 4.4005706e-008
3.3985147 1.5285638 1.5285639 0.5000000 1.1162287e-007 1.5285639 9.1614480e-008
3.8985147 1.6514962 1.6514963 0.5000000 1.1352301e-007 1.6514963 1.0649609e-007
4.0000000 1.6762391 1.6762393 0.1014853 1.1398408e-007 1.6762393 1.1398268e-007
Las dos u
ltimas columnas de la tabla contienen los resultados del metodo de quinto
orden. Con valores peque
nos de xi , el error es menor que el de cuarto orden, pero es
mayor cuando xi aumenta.
57
3. Aplique el metodo de Runge-Kutta-Fehlberg con la tolerarancia T OL = 104 ,
hmax = 0.25 y hmin = 0.05 para aproximar las soluciones de los siguientes problemas
de valor inicial. Despues compare los resultados con los valores reales.
1
a) y = cos2x + sin 3x, 0 x 1, y(0) = 1; solucion real y(x) = 2
sen 2x
1 4
3
cos3x + 3
58
Materiales y M
etodos
El texto se digito totalmente en Latex, que es uno de los procesadores de textos mas
potentes a la hora de elaborar complicadas formulas matematicas y con una gran calidad
de impresion final.
59
Resultados
60
a mantenerse constante a partir del t=1.5s y el instrumento sismico se observa que
sistema se tiene desplazamiento y velocidad oscilatorio.
61
Discusi
on
En ingeniera hay diferentes procesos que son modelados por ecuaciones diferenciales
lineales y no lineales, determinar su solucion mediante metodos analticos es muchas
veces implosible, pero utilizando una tecnica numerica y un software adecuado es facil
conseguir una solucion aproximada a la solucion real.
Los metodos de Runge Kutta logran la exactitud del procedimiento de una serie de
Taylor, en sus formulas no aparecen derivadas, lo cual facilita su implementacion en
un programa de Matlab. El metodo de Runge Kutta de cuarto orden es el mas usado,
pues en la tabla dada en el apendice C dise
nada por Butcher J.C. se indica por que los
metodos de de orden menor que cinco con un tama
no menor de paso se prefieren a los
de orden superior con un tama
no mayor de paso. Como el metodo de Runge-Kutta de
cuarto orden requiere realizar cuatro evaluaciones por paso, tiene respuestas mas exactas
que el resto de los metodos presentados.
62
iteraciones con h = 0.1.
En conclusion:
63
Bibliografa
[BAE 06] BAEZ LOPEZ, DAVID. Matlab con aplicaciones a la Ingenira, Fsica y
Finanzas,Mexico:Alfomega, Primera edicion, 2006
[COR 06] CORDERO B., ALICIA; HUESO P., JOSE L.; MARTINEZ M., EULALIA
Y TORREGOSA S.,JUAN RAMON. Problemas resueltos de Metodos
Numericos, Espa
na: Thomson, Primera edicion,2006.
[INF 08] INFANTE DEL RIO, J,A.; REY C.,JOSE M.. Metodos Numericos teora,
problemas y practicas con Matlab, Espa
na: Piramide, tercera edicion, 2008.
[MOO 07] MOORE, HOLLY. Matlab para ingenieros, Mexico: Pretince-Hall, Primera
edicion, 2007.
64
[KEN 92] KEN NAGLE,R..Fundamentos de Ecuaciones Diferenciales, U.S.A:
Addison-Wesley Iberoamericana, Segunda edicion,1992
[SET 70]
SETO, WILLIAM W.. VIBRACIONES MECANICAS,M
exico:McGraw-
Hill,primera edicion, 1970.
65
Apendice A:
Introducci
on al programa Matlab
A =
4 9 -10 22
>>b=10:2:30
b =
10 12 14 16 18 20 22 24 26 28 30
Las matrices se escriben como vectores, separando las filas mediante un punto y coma,
por ejemplo:
c =
1 2 3
5 9 2
4 5 6
A.2 Gr
afica de funciones
Se puede graficar los valores de un vector frente a otro de la misma longitud.
66
>> x=-pi:0.1:pi;
>> y=x.*cos(x);
>> plot(x,y);
>>grid
4
3 2 1 0 1 2 3
A.3 Programaci
on
1. Calcule la suma de los n primeros terminos de la sucesion x, 2x2 , 3x3 , nxn para
un valor de x,
Programa sumas.m
n=input(ingrese cuantos t
erminos quiere sumar);
x=input(dame el valor del numeros x);
suma=x;
for i=2:n
67
suma=suma+i*x^i;
end
disp(el valor pedido es)
fprintf(suma= %4.2f\n ,suma);
Es conveniente que el fichero que contenga la funcion se llame como ella; asi, la
funcion anterior debera guardarse como fun.m
Calcule Z 10
(x2 + 1)dx
0
Vamos a crear dos funciones
Programa fun21.m
function y=fun21(x)
y=x.^2+1;
end
Programa integra.m
function y=integra(f,ini,fin)
p=(fin-ini)/1000;
y=0;x=ini;
while x<=fin
y=y+p*feval(f,x);
x=x+p;
end
end
>>integra(fun21,0,10)
ans =
3.438434999999901e+002
68
Apendice B:Unicidad de la soluci
on
en un S.E.Diferenciales
B.1 Condici
on de Lipshitz
Se dice que la funcion f (t, u1 , u2 , . . . , um ) definida en el conjunto
(t, u1 , u2 , . . . , um ) y (t, z1 , z2 , . . . , zm ) en D
69
Ap
endice C:Orden del M
etodo de
Runge Kutta
Butcher J.C.1 establecio la relacion entre la cantidad de evaluaciones por paso y el orden
del error local de truncamiento que aparece en la tabla. En esta se indica por que los
metodos de orden menor que cinco con un tama
no menor de paso se prefieren a los de
orden superior con un tama
no mayor de paso.
Definici
on. sean las funciones G y F que verifican lm G(h) = 0 y lm F (h) = L.
h0 h0
Si existe una constante positiva K tal que |F (h) L| K |G(h)|, para h suficientemente
peque
na entonces escribimos F (h) = L + O(G(h)).
un, las funciones que usamos para la comparacion tiene la forma G(h) = hp ,
Por lo com
donde p > 0. Nos interesa el mayor valor de p para el que F (h) = L + O(hp )
1
profesor de matematicas en la Universidad de Auckland desde 1966 a 1998
70