Está en la página 1de 27

EDO con MATLAB

Cristian Amador Loli Prudencio


EDO con MATLAB

 MATLAB y Octave poseen librerías de solución de


Edo numéricamente y simbólicamente. El
resultado puede ser ploteado fácilmente en Matlab
y Octave.

2
Términos de la ED Simbólica

y y

dy Dy
dt
2
d y
2
D2y
dt
n
d y
n Dny
dt
3
Forma representativa
2
d y dy
b2 2  b1  b0 y  A sin at
dt dt
y(0)  C1 , y '(0)  C2
Solución:
y = dsolve('b2*D2y+b1*D1y+b0*y=A*sin(a*t)', 'y(0)=C1', 'Dy(0)=C2')
Gráfica:
ezplot(y, [t1 t2])

4
Ejm1. Resuelva con MATLAB:
dy
 2 y  12 y (0)  10
dt
>> y = dsolve('Dy + 2*y = 12', 'y(0)=10')
y=
6+4*exp(-2*t)
>> ezplot(y, [0 3])
>> axis([0 3 0 10])

5
6
Ejm2. Resuelva con MATLAB:
dy y (0)  10
 2 y  12sin 4t
dt
>> y = dsolve('Dy + 2*y = 12*sin(4*t)', 'y(0)=10')
y=
-12/5*cos(4*t)+6/5*sin(4*t)+62/5*exp(-2*t)
>> ezplot(y, [0 8])
>> axis([0 8 -3 10])

7
8
Ejm3. Resuelva con MATLAB:
2
d y dy
2
 3  2 y  24
dt dt
y (0)  10 y '(0)  0
>> y = dsolve('D2y+3*Dy+2*y = 24','y(0)=10','Dy(0)=0')
y=
12+2*exp(-2*t)-4*exp(-t)
>> ezplot(y, [0 6])

9
10
Ejm4. Resuelva con MATLAB:
2
d y dy
2
 2  5 y  20
dt dt
y (0)  0 y '(0)  10

>> y = dsolve('D2y + 2*Dy + 5*y = 20','y(0) = 0', 'Dy(0) = 10'


y=
4+3*exp(-t)*sin(2*t)-4*exp(-t)*cos(2*t)

>>ezplot(y, [0 5])

11
12
Transformada de Laplace Simbólica
Establecer t y s como variables simbolicas
>> syms t s
La transformada de Laplace:
>> F = laplace(f)
Algunas simplificacions de ayuda:
>> pretty(F)
>> simplify(F)

13
Transformada Inversa de Laplace Simbólica

Establecer t y s como variables simbolicas


>> syms t s
La transformada Inversa de Laplace:
>> f = ilaplace(F)
Simplificaciones:
>>f = simplify(f)

14
Ejm5.
Determine con MATLAB la transformada de Laplace de
f(t)=5t.

>>syms t s
>> f = 5*t
f=
5*t

>> F = laplace(f)
F=
5/s^2

15
Ejm6. Determine con MATLAB
la transformada de Laplace de
2t 2t
v(t )  3e sin 5t  4e cos5t
>> syms t s
>> v = 3*exp(-2*t)*sin(5*t)+ 4*exp(-2*t)*cos(5*t)
v=
3*exp(-2*t)*sin(5*t)+4*exp(-2*t)*cos(5*t)
>> V = laplace(v)
V=
15/((s+2)^2+25)+4*(s+2)/((s+2)^2+25)
>> V=simplify(V)
V=
(23+4*s)/(s^2+4*s+29)

16
Ejm7. Determine con MATLAB la transformada inversa
de Laplace de
100( s  3)
F (s) 
( s  1)( s  2)( s 2  2s  5)
>> syms t s
>> F=100*(s+3)/((s+1)*(s+2)*(s^2+2*s+5))
F=
(100*s+300)/(s+1)/(s+2)/(s^2+2*s+5)
>> f = ilaplace(F)
f=
50*exp(-t)-20*exp(-2*t)-30*exp(-t)*cos(2*t)-10*exp(-t)*sin(2*t)
>> pretty(f)
50 exp(-t) - 20 exp(-2 t) - 30 exp(-t) cos(2 t) - 10 exp(-t) sin(2 t)

17
Ejm8. Determine con MATLAB la
transformada inversa de Laplace de
10 48
Y ( s)  
s  2 ( s  2)( s 2  16)
>> syms t s
>> Y = 10/(s+2) + 48/((s+2)*(s^2+16))
Y=
10/(s+2)+48/(s+2)/(s^2+16)
>> y = ilaplace(Y)
y=
62/5*exp(-2*t)-12/5*cos(16^(1/2)*t)+3/10*16^(1/2)*sin(16^(1/2)*t)
>> y=simplify(y)
y=
62/5*exp(-2*t)-12/5*cos(4*t)+6/5*sin(4*t)
18
Solución Numérica de EDO
El problema a resolver es la EDO de primer orden:

dy ( x)
 f ( x, y ), y ( x0 )  y0
dx
Se estima la solución en diversos puntos

y( x0  h), y( x0  2h), y( x0  3h), ....

19
Métodos de Runge-Kutta
 Matlab tiene diferentes comandos de Runge Kutta
para EDO, recomendamos ode45.

 ode45 es la aplicacion del método de Runge-Kutta 45


(Runge Kutta Felberg).

20
Ejm1.
Problema:
dy
 1  y 2  x3 , y (1)  4, en [1,2].
dx
>>[x,y]=ode45(@(x,y) 1+y^2+x^3,[1,2],-4);
>> [x,y] 5

4
>> plot(x,y,'+') 3

>>plot(x,y,'o-') 2

-1

-2

-3

-4
1 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2
21
Sistema de EDO de primer orden
dy ( x)
Dado  f ( x, y ), y (a )  ya
dx
 y1 ( x) 
 y ( x) 
y ( x)   2  y es n 1 vector
 ... 
 
 n 
y ( x )
 d y1 
 dx 
   f1 ( x, y )   y1 (a ) 
 d y2     y (a) 
d y ( x) f ( x , y )
  dx    2   f ( x, y ), y (a)   2 
dx    ...   ... 
 ...   f ( x, y )   
 d yn   n   yn ( a ) 
 
 dx 
22
Ejm2: Depredador-Presa
Resuelva: dy1 1.2y1  0.6y1y2 dy2  0.8y2  0.3y1y2
dt dt
y1(0)=2 , y2(0)=1 para 20 segundos

>>[t,y] = ode45(@(t,y) [1.2*y(1)-0.6*y(1)*y(2);-0.8*y(2)+0.3*y(1)*y(2)], [0 20], [2; 1]);


>>[t,y]
>>figure(1); plot(t,y); legend('y1','y2') ;
>>figure(2); plot(y(:,1),y(:,2));

23
EDO de orden superior

EDO orden superior convert Sistema de EDO de 1er orden solve

 z1 '   z2 
 z '  1  3 z  6 z ,
y ' '3 y '6 y  1  2  2 1
convert solve
y ' (0)  1; y (0)  4 4
Z ( 0)   
1 
EDO de 2do orden Dos EDO de 1er orden

24
Ejm3:
y ''   xy  e x y ' 3sin 2 x, y(0)  2, y '(0)  8, en [0,4].

 Step 1: Convert(reducción de orden), sea z1=y, z2=y’:

 z1 '   z2 
   ,
 z 2 '  xz1  e z 2  3 sin 2 x 
x

 2
Z ( 0)   
8 

25
 Step 2: Resolver con ode45
>> [x, z] = ode45(@(x,z) [z(2);-x*z(1)+exp(x)*z(2)+3*sin(2*x)], [0 4], [2; 8])
>> [x,z(:,1)]
20

Ploteo de y versus x 18

16
>> plot(x, z(:,1))
14

12

10

2
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

26
¡Gracias!
 Cristian Loli Prudencio

 Email
clolip@unmsm.edu.pe

27

También podría gustarte