1
___
,
_
2, 1,
__
1
1
____
Sistemas de Ecuaciones Diferenciales Lineales - Ctedra: Matemtica III - Mayo 2006
1
En ocasiones, el clculo de los autovectores falla con este comando, pero an puede resultar til
un clculo aproximado en punto flotante mediante la orden "[avec, M,
res]:=numeric::eigenvectors(A)". Devuelve los autovalores (avec), la matriz con los
autovectores en cada columna (M) y una estimacin del error cometido en el clculo de los
autovalores (res)
[avec, M, res]:=numeric::eigenvectors(A)
_
2.0, 1.0,
_
0.7071067812 0.4472135955
0.7071067812 0.894427191
_
,
_
2.424349759 10
19
, 5.427782896 10
19
_
Podemos utilizar la orden ode para generar nuestro sistema de ecuaciones y luego solve para
resolverlo.
A continuacin veremos como encontrar las soluciones del sistema:
Sistemas de Ecuaciones Diferenciales Lineales - Ctedra: Matemtica III - Mayo 2006
2
2
1 1 2
2 1
1 2
'( ) 5 ( ) 3 ( )
'( ) 6 ( ) 4 ( )
(0) 2, (0) 3.
x t x t x t
x t x t x
x x
= +
= =
t
( ) ( )
ecuaciones:=ode({x1'(t)=5*x1(t)+3*x2(t), x2'(t)=-6*x1(t)-4*x2(t),
x1(0)=2, x2(0)=3}, {x1(t), x2(t)} ):
solucion:=solve(ecuaciones);
x1 t = 7 e
2 t
5 e
t
, x2 t = 10 e
t
7 e
2 t
__
x2
_
t
_
= 10 e
t
7 e
2t
, x1
_
t
_
= 5 e
t
+ 7 e
2t
__
Tema: Resolucin de un sistema de ecuaciones diferenciales ordinarias lineales no
homogneas
Ejemplo 1
Se propone resolver una ecuacin no homognea, de la forma X' =AX +F(t). Para ello definimos
nuestras ecuaciones de modo que contengan las funciones de entrada F(t).
El sistema a resolver es el siguiente:
1 1 2
2 1 2
1 2
'( ) ( ) 3 ( ) cos( )
'( ) ( ) ( ) 2
(0) 0, (0) 0.
x t x t x t t
x t x t x t t
x x
= + +
= +
= =
delete x1, x2, ecuaciones, solucion:
ecuaciones:=ode({x1'(t)=x1(t)+3*x2(t)+ cos(t),
x2'(t)=x1(t)-x2(t)+2*t,
x1(0)=0, x2(0)=0},{x1(t), x2(t)} ):
solucion:=solve(ecuaciones)
Sistemas de Ecuaciones Diferenciales Lineales - Ctedra: Matemtica III - Mayo 2006
3
( )
__
x2(t) =
t
2
cos(t)
5
+
19
40 e
t 2
+
9 (e
t
)
2
40
1
2
, x1(t) =
sin(t)
5
cos(t)
5
3 t
2
19
40 e
t 2
( )
+
27 (e
t
)
2
40
__
Vea la ayuda de MuPAD para los comandos "ode" y "solve".
Resolvamos ahora el sistema:
'( ) ( )
'( ) ( ) 3 ( ) ( )
'( ) 2 ( ) 4 ( ) ( )
(0) 1, (0) 1, (0) 1.
x t x t
y t x t y t z t
z t x t y t z t
x y z
=
= + +
= = =
delete x, y, z, t:
sistema := {x'(t) = x(t), y'(t) = x(t)+3*y(t)+z(t), z'(t)=-2*x(t)-
4*y(t)-z(t),x(0)=1, y(0)=1, z(0)=1}:
solucion:= solve(ode(sistema, {x(t), y(t), z(t)}))
( ) ( ) ( )
( ) ( ) ( )
( ) ( ) ( )
t = e
t
8 t e
t
t , e
t
8 t e
t
x t = e
t
, y t = e
t
+ 4 t e
t
, z t = e
t
8 t e
t
Observe la estructura de "solucion":
solucion
x t = e
t
, y t = e
t
+ 4 t e
t
, z t = e
t
8 t e
t
Para acceder a los elementos de "solucion" utilizamos corchetes de la siguiente forma:
solucion[1]
x t = e
t
, y t = e
t
+ 4 t e
t
, z t = e
t
8 t e
t
Si queremos separar la tercera ecuacin, hacemos:
solucion[1][3]
z( )
Y si queremos separar z(t) de su expresin podemos escribir:
solucion[1][3][1], solucion[1][3][2]
z( )
De esta manera podemos graficar las curvas correspondientes a las funciones solucin del sistema
anterior. Vea la ayuda de la funcin "plot" para detalles.
x:=plot::Function2d(solucion[1][1][2], t=0..3, Color=RGB::Red,
LegendText="x(t)"):
y:=plot::Function2d(solucion[1][2][2], t=0..3, Color=RGB::Green,
LegendText="y(t)"):
z:=plot::Function2d(solucion[1][3][2], t=0..3, Color=RGB::Blue,
LegendText="z(t)"):
plot(x,y,z, LegendVisible=TRUE, XAxisTitle="t", YAxisTitle="x(t),
y(t), z(t)")
x(t)
y(t)
z(t)
0.5 1.0 1.5 2.0 2.5 3.0
-400
-300
-200
-100
0
100
200
t
x(t), y(t), z(t)
Ejemplo 2
Resolvamos ahora el sistema:
3 2
2 2
2
'( ) 2 ( ) 3 ( ) 4 ( ) 8
'( ) 2 ( ) 3 ( ) 6
'( ) ( ) 4
t
t
t
x t x t y t z t t e
y t y t z t t e
z t z t t e
= + + +
= + +
= +
delete x, y, z, t
SNH:={x'(t)=-2*x(t)+3*y(t)+4*z(t)+8*t^3*exp(-2*t),y'(t)=-
2*y(t)+3*z(t)+6*t^2*exp(-2*t),z'(t)=-2*z(t)+4*t*exp(-2*t)}:
solucion:= solve(ode(SNH, {x(t), y(t), z(t)}))
__
z(t) =
C3 e
2 t
9
+ 2 t
2
e
2 t
, x(t) = C1 e
2 t
+
8 t
3
e
2 t
3
+ 5 t
4
e
2 t
+ C2 t e
2 t
+
C3 t
2
e
2 t
2
, y(t) =
C2 e
2 t
3
4 C3 e
2 t
27
+ 4 t
3
e
2 t
+
C3 t e
2 t
3
__
Si tenemos las condiciones iniciales (0) 0, (0) 0, (0) 0 x y z = = = en el sistema anterior:
SNH:={x'(t)=-2*x(t)+3*y(t)+4*z(t)+8*t^3*exp(-2*t),y'(t)=-
2*y(t)+3*z(t)+6*t^2*exp(-2*t),z'(t)=-2*z(t)+4*t*exp(-2*t), x(0)=0,
y(0)=0, z(0)=0}:
solucion2:= solve(ode(SNH, {x(t), y(t), z(t)}))
__
x(t) =
8 t
3
e
2 t
3
+ 5 t
4
e
2 t
, z(t) = 2 t
2
e
2 t
, y(t) = 4 t
3
e
2 t
__
x:=plot::Function2d(solucion2[1][1][2], t=0..8, Color=RGB::Red,
LegendText="x(t)"):
Sistemas de Ecuaciones Diferenciales Lineales - Ctedra: Matemtica III - Mayo 2006
4
y:=plot::Function2d(solucion2[1][2][2], t=0..8, Color=RGB::Green,
LegendText="y(t)"):
z:=plot::Function2d(solucion2[1][3][2], t=0..8, Color=RGB::Blue,
LegendText="z(t)"):
plot(x,y,z, LegendVisible=TRUE, XAxisTitle="t", YAxisTitle="x(t),
y(t), z(t)")
x(t)
y(t)
z(t)
0 1 2 3 4 5 6 7 8
0.0
0.5
1.0
1.5
t
x(t), y(t), z(t)
MuPAD tambin nos permite incorporar funciones generalizadas. La funcin escaln, o funcin
de Heaviside, es provista por el comando "heaviside". En el siguiente ejemplo se resuelve un
sistema de ecuaciones diferenciales ordinarias lineales no homogneas con una funcin f(t)
definida con ayuda de la funcin de Heaviside.
'( ) 5 ( ) 4 ( ) ( ) 2( 1) ( 1) ( 2) ( 2)
'( ) 2 ( ) ( )
(0) 0, (0) 0.
x t x t y t t u t t u t t u t
y t x t y t
x y
= + + +
= +
= =
delete x, y, z, t:
f(t):=t*heaviside(t)-(2*t-2)*heaviside(t-1)+(t-2)*heaviside(t-2):
plot(plot::Function2d(f(t), t=0..4), XAxisTitle="t",
YAxisTitle="f(t)")
Sistemas de Ecuaciones Diferenciales Lineales - Ctedra: Matemtica III - Mayo 2006
5
0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0
0.0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1.0
t
f(t)
S:={x'(t)=-5*x(t)+4*y(t)+f(t),y'(t)=-2*x(t)+y(t),x(0)=0, y(0)=0}:
solucion:= simplify(solve(ode(S, {x(t), y(t)} ) )):
x:=plot::Function2d(solucion[1][1][2], t=0..8, Color=RGB::Red,
LegendText="x(t)"):
y:=plot::Function2d(solucion[1][2][2], t=0..8, Color=RGB::Green,
LegendText="y(t)"):
plot(x,y, LegendVisible=TRUE, XAxisTitle="t", YAxisTitle="x(t),
y(t)")
x(t)
y(t)
1 2 3 4 5 6 7 8
-0.3
-0.2
-0.1
0.0
0.1
t
x(t), y(t)
Sistemas de Ecuaciones Diferenciales Lineales - Ctedra: Matemtica III - Mayo 2006
6
Tema: Resolucin Numrica de Sistemas de Ecuaciones Diferenciales
Es importante tener en cuenta que en muchas ocasiones, as como el programa no puede encontrar
los autovalores, tampoco puede encontrar la solucin explcitamente. Sin embargo, en estos casos
podemos aproximarnos mediante el clculo numrico. Una forma de hacerlo es mediante la orden
numeric::odesolve y numeric::odesolve2 (vea las diferencias y similitudes en la
ayuda de MuPad). Anteriormente se introdujo la funcin de Heaviside, o funcin escaln:
heaviside(t). Esta funcin en MuPad devuelve 0 para valores negativos del argumento y uno
para valores positivos. En versiones anteriores a la V 3.1, no est definida para t=0. En caso de
poseer una versin 3.0 o anterior se puede utilizar el comando sysassign para asignar el valor
de 1 para heaviside(0). En MuPAD 3.1 y posteriores, esta dificultad est resuelta y este paso
no es necesario.
sysassign(heaviside(float(0)),1):
Para utilizar la resolucin numrica de un sistema de EDO lineales no homogneas, en primer
lugar definimos:
f:=(t,X)->[-0.2*X[1]+X[2]+5*heaviside(t-2), -5*X[1]-
0.2*X[2]+t]:t0:=0: X0:=[-2,2]:
En segundo lugar, lo resolvemos utilizando odesolve u odesolve2. (Vea la ayuda de MuPad
para tener ms detalles de su funcionamiento y opciones). Los argumentos son: el conjunto de
ecuaciones (f), el tiempo de inicio (t0=0) y las condiciones iniciales del problema (x1(0) = -2,
x2(0) = 2).
X:=numeric::odesolve2(f,0,[-2, 2]):
Podemos graficar las soluciones aproximadas del sistema de la siguiente manera:
plotfunc2d(X(t)[1], X(t)[2], t=0..10):
X(t)[1]
X(t)[2]
1 2 3 4 5 6 7 8 9 10
-6
-5
-4
-3
-2
-1
0
1
2
3
4
t
y
Sistemas de Ecuaciones Diferenciales Lineales - Ctedra: Matemtica III - Mayo 2006
7
Tema: Clculo de la Transformada de Laplace
Finalmente, un breve ejemplo de utilizacin de los comandos relacionados a la Transformada de
Laplace. Sugerencia: intente hallar la Transformada de Laplace de la funcin f(t) definida ms
arriba utilizando la funcin escaln.
Sistemas de Ecuaciones Diferenciales Lineales - Ctedra: Matemtica III - Mayo 2006
8
( )
F(s):=transform::laplace(exp(-t)*sin(3*t), t, s)
3
s + 1
2
+ 9
f(t):=transform::invlaplace(F(s), s, t)
e
t
sin 3 t ( )