You are on page 1of 10

- 1-

Ecuaciones diferenciales con Matlab


dsolve
Comando principal para Ecuaciones diferenciales ordinarias y el sistema solucionador.
Sintaxis
S = dsolve (eqn)
S = dsolve(ecuacin, cond)
S = dsolve(ecuacin, cond, Nombre, Valor) Y = dsolve (eqn1, ..., eqnN)
Y = dsolve(eqn1, ..., eqnN, cond1, ..., condN)
Y = dsolve(eqn1, ..., eqnN, cond1, ..., condN, Nombre, Valor)
[y1, ..., yn] = dsolve(eqn1, ..., eqnN)
[y1, ..., yn] = dsolve(eqn1, ..., eqnN, cond1, ..., condN)
[y1, ..., yn]=dsolve(eqn1, ..., eqnN, cond1, ..., condN, Nombre, Valor)
Descripcin
S = dsolve(ecuacin) Resuelve la ecuacin diferencial ordinaria ecuacin. Aqu ecuacin
es una ecuacin simblica que contiene di para indicar derivadas. Como alternativa, se
puede utilizar una cadena de texto con la letra D indicando derivadas. Por ejemplo,
syms y(x); dsolve(diff(y) == y + 1) y dsolve(Dy = y + 1,x) ambas re-
suelven la ecuacin dy/dx = y + 1 con respecto a la variable x . Adems, ecuacin
puede ser una matriz de tales ecuaciones o cadenas.
S = dsolve(ecuacin, cond) resuelve la ecuacin diferencial ordinaria de ecuacin con
la condicin inicial o lmite cond.
S = dsolve(ecuacin, cond ,Nombre, Valor) Utiliza las opciones adicionales especi-
cadas por uno o ms pares de argumentos nombre-valor.
Y = dsolve(eqn1, ..., eqnN) resuelve el sistema de ecuaciones diferenciales ordinarias
eqn1, ..., eqnN y devuelve una matriz de estructura que contiene las soluciones. El
nmero de campos en la matriz de estructura se corresponde con el nmero de variables
independientes en el sistema.
Ampliacin de Clculo 2012-2013 Emilio Surez. Uniovi
- 2-
Y = dsolve(eqn1, ..., eqnN , cond1, ..., condN) resuelve el sistema de ecuaciones
diferenciales ordinarias eqn1, ..., eqnN con las condiciones iniciales o de frontera cond1,
..., condN
Y = dsolve(eqn1, ..., eqnN , cond1, ..., condN , Nombre, Valor) Utiliza las op-
ciones adicionales especicadas por uno o ms pares de argumentos nombre-valor.
[y1, ..., yn] = dsolve ( eqn1, ..., eqnN) resuelve el sistema de ecuaciones difer-
enciales ordinarias eqn1, ..., eqnN y asigna las soluciones a las variables y1, ...,
yn.
[y1, ..., yn] = dsolve(eqn1, ..., eqnN , cond1, ..., condN) resuelve el sistema
de ecuaciones diferenciales ordinarias eqn1, ..., eqnN con las condiciones iniciales o
de frontera cond1, ..., condN.
[y1, ..., yn] = dsolve(eqn1, ..., eqnN , cond1, ..., condN , Nombre, Valor)
Utiliza las opciones adicionales especicadas por uno o ms pares de argumentos nombre-
valor.
Argumentos de entrada
ecuacin
Puede ser una ecuacin simblica, una cadena de caracteres (que representa
una ecuacin diferencial), o una matriz de ecuaciones simblicas o cadenas
de caracteres.
Si representa ecuacin como una ecuacin simblica, debe crear
una funcin simblica, Por ejemplo, y(x). Aqu x es la variable indepen-
diente. Utilice el operador == para crear una ecuacin. Utilice la funcin
diff para indicar diferenciacin. Por ejemplo, para resolver y

= xy ,
con x variable independiente, escriba:
syms y(x) dsolve(diff(y, 2) == x*y)
Si opta por representar ecuacin por una cadena de caracteres, use
la letra D para indicar diferenciacin. De forma predeterminada, dsolve
toma la variable independiente t . As, Dy signica dy/dt. Se puede
especicar la variable independiente. La letra D seguida de un dgito in-
dica diferenciacin repetida. Por ejemplo, para resolver y

= xy , con x
variable independiente escriba:
dsolve(d2y = x*y, x) o dsolve(d2y == x*y, x)
Ampliacin de Clculo 2012-2013 Emilio Surez. Uniovi
- 3-
cond
Ecuacin o cadena de caracteres que representa una condicin inicial.
Si utiliza ecuaciones, asigne expresiones con diff mediante variables
intermedias. Por ejemplo, utilice Dy, D2y, y as sucesivamente como
variables intermedias:
Dy = diff(y) ;
D2y = diff(y,2) ;
A continuacin, dena las condiciones iniciales usando ecuaciones simbli-
cas, como y(a) == b y Dy(a) == b . Aqu a y b son constantes.
Si trabaja mediante cadenas de caracteres, no es necesario crear va-
riables intermedias. En este caso, siga las mismas reglas que para una
ecuacin como cadena de caracteres. Por ejemplo, especique y(a) =
b y Dy(a) = b. Cuando use cadenas, puede utilizar = o == en las
ecuaciones.
eqn1,.., eqnN Ecuaciones simblicas o cadenas separadas por comas y que representa un
sistema de ecuaciones diferenciales ordinarias.
cond1,..,condN Ecuaciones simblicas o cadenas separadas por comas que representan
condiciones iniciales en un sistema de escuaciones. Cada ecuacin o cadena
representa una condicin inicial. Si el nmero de las condiciones especi-
cadas es menor que el nmero de variables dependientes, las soluciones
resultantes contienen constantes arbitrarias C1, C2,..
Argumentos de salida
S Matriz simblica que contiene las soluciones encontradas de una ecuacin. El
tamao de la matriz simblica se corresponde con el nmero de soluciones.
Y Matriz de estructura que contiene las soluciones encontradas de
un sistema de ecuaciones. El nmero de campos en esa matriz se corresponde con
el nmero de variables independientes en un sistema.
y1,...,yN Alternativa del caso anterior. Variables a las que el solucionador asigna las solu-
ciones de un sistema de ecuaciones. El nmero de variables de salida o matrices
simblicas debe ser igual al nmero de variables independientes en un sistema.
El toolbox ordena las variables independientes alfabticamente, y luego asigna las
soluciones para estas variables en las variables de salida o matrices simblicas.
Ampliacin de Clculo 2012-2013 Emilio Surez. Uniovi
- 4-
Ejemplos
1
o
) Resuelva la ecuacin diferencial y

(x) = ax. Use == para crear una ecuacin, y diff


para indicar diferenciacin:
syms a x(t)
dsolve(diff(x) == -a*x)
ans =C2*exp(-a*t)
2
o
) Resuelva la ecuacin diferencial
df
dt
= f +sen(t)
syms f(t)
dsolve(diff(f) == -f + sin(t))
ans = sin(t)/2 - cos(t)/2 + C2*exp(-t)
3
o
) Resuelva la siguiente ecuacin diferencial ordinaria y

(t) = ay(t) con la condicin


inicial y(0) = b
syms a b y(t)
dsolve(diff(y) == a*y, y(0) == b)
(Especicar la condicin inicial le permite eliminar las constantes arbitrarias, como C1 , C2 , ...
)
ans = b*exp(a*t)
4
o
) Resuelva la ecuacin diferencial ordinaria
d
2
y
dt
2
= a
2
y con las condiciones de contorno
y(0) = 1; y

(/a) = 0.
Para especicar una condicin que contiene una derivada, asigne la derivada a una variable:
syms a y(t)
Dy = diff(y) ;
dsolve(diff(y,2)==-a^2*y, y (0)==1, Dy(pi/a)==0)
(debido a que la ecuacin contiene la derivada de segundo orden
d
2
y
dt
2
, especicando dos
condiciones le permite eliminar constantes arbitrarias en la solucin)
ans =exp(-a*t*i)/2 + exp(a*t*i)/2
5
o
) Resuelva el sistema de ecuaciones diferenciales ordinarias:

dx
dt
= y(t)
dy
dt
= x(t)
syms x(t) y(t)
z=dsolve(diff(x)==y, diff(y)==-x)
Cuando se asigna la solucin de un sistema de ecuaciones a una sola salida, dsolve devuelve
una estructura que contiene las soluciones:
z =
Ampliacin de Clculo 2012-2013 Emilio Surez. Uniovi
- 5-
y: [1x1 sym]
x: [1x1 sym]
Para ver los resultados, ingrese z.x y z.y:
z.x
ans =
C11*cos(t) + C12*sin (t)
z.y
ans =
C12*cos(t)-C11*sin (t)
6
o
) Resuelva la ecuacin (y

)
2
+y
2
= 1.
Vamos a usar ahora el mtodo de cadenas de caracteres. Por defecto, dsolve asume que la
variable independiente es t :
dsolve(Dy^2 + y^2 == 1)
Nos da todas la soluciones en matriz:
ans =
1
-1
cosh(C45 + t*i)
cosh(C41 - t*i)
La transformada de Laplace
Sintaxis
L=laplace(F)
L=laplace(F,t)
L=laplace(F,w,z)
Descripcin
L = laplace (F) calcula la transformada de Laplace de la expresin simblica F . En
esta sintaxis se supone que F es una funcin de la variable t, y el valor devuelto L es
una funcin de s.
F = F(t) L = L(s)
Si F es una funcin de s entonces laplace(F) devuelve una funcin de t.
Por denicin, la transformada de Laplace es:
L(s) =

0
F(t) e
st
dt
Ampliacin de Clculo 2012-2013 Emilio Surez. Uniovi
- 6-
L = laplace (F, t) calcula la transformada de Laplace L como una funcin de t
en lugar de la variable por defecto s
L(t) =

0
F(x) e
xt
dx
L = laplace(F, w, z) calcula la transformada de Laplace L y le permite especicar
que L es una funcin de z y F es una funcin de w.
Ejemplos
Ampliacin de Clculo 2012-2013 Emilio Surez. Uniovi
- 7-
La transformada inversa de Laplace
Sintaxis
F=ilaplace(L)
F=ilaplace(L,y)
F=ilaplace(L,w,z)
Descripcin
La transformada inversa de Laplace de la funcin L(s) es otra funcin F(t) tal que su
transformada de Laplace sea L(s).
F = ilaplace (L) calcula la transformada inversa de Laplace de la expresin simblica
L. En esta sintaxis se supone que L es una funcin de la variable s y el valor devuelto
L es una funcin de t.
Si L = L (t), ilaplace devuelve una funcin de x.
F= ilaplace (L, y) calcula la transformada inversa de Laplace L como una funcin
de y en lugar de la variable por defecto t
L = ilaplace(L, y, x) calcula la transformada de Laplace L y le permite especicar
que L es una funcin de x y L es una funcin de y.
Ejemplos:
1
o
) La transformada inversa de f(s) =
1
s
2
ser:
syms f(s)
f(s)=1/s ^ 2
ilaplace(f)
ans(s) =
t
2
o
) La transformada inversa de g(t) =
1
(t a)
2
ser:
syms a g(t)
g(t)=1/(t-a) ^ 2
ilaplace(g)
ans(s) =
x*exp(a+x)
Al usar variable t la transformada inversa la devuelve con variable x.
Ampliacin de Clculo 2012-2013 Emilio Surez. Uniovi
- 8-
3
o
) La transformada inversa de f(u) =
1
u
2
a
2
, con a R ser:
syms x f(u)
syms a real
f(u)=1/(u^2-a^2)
simplify(ilaplace(f,x))
ans=
sinh(a*x)/a
Resolucin de EDOS usando las transformadas de Laplace
Los operadores laplace y ilaplace son lineales e inversos. Adems se cumple que si
y = y(t) , las transformadas de Laplace de sus derivadas son:
L(y

) = s L(y) y(0)
L(y

) = s L(y

) y

(0)
L(y

) = s L(y

) y

(0)

En EDOS con coecientes constantes, podemos hallar la transformada de Laplace en ambos
lados de una ecuacin diferencial y aplicando las propiedades anteriores, obtener L(y) para
luego calcular su transforma da inversa.
Ejemplo:
Resuelva la ecuacin de valores iniciales:
2y

(t) 2y

(t) +y(t) = e
t
, con y(0) = 1, y

(0) = 1
%Definimos variables simblicas. L es la transformada de y(t) :
syms L f(t) s;
f(t)=exp(t); %trmino independiente
h=laplace(f); %hallamos la transformada del trmino independiente
L1=s*L-1; %Ponemos las transformadas de las derivadas
L2=s*L1+1;
%Aplicamos el operador L en ambos lados de la ecuacin y lo despejamos :
p=solve(2*L2-2*L1+L-h,L); % Calculamos L(y)
sol=ilaplace(p) %hallamos la trasformada inversa (solucin)
sol =
exp(t) - 4*sin(t/2)*exp(t/2)
Ampliacin de Clculo 2012-2013 Emilio Surez. Uniovi
- 9-
Mediante el mtodo dsolve obtendremos la misma solucin:
sol =dsolve(2*D2y-2*Dy+y==exp(t),y(0)==1,Dy(0)==-1)
sol =
exp(t/2)*(exp(t/2) - 4*sin(t/2))
Ejercicios
1
o
) Resuelva las siguientes ecuaciones diferenciales;
a) (2x
3
+3y) dx +(3x +y 1) dy = 0
b) y

=
y +x
3
+3x
2
2x
x
c) y

(x
4
3) 2xy
2
+6x = 0
2
o
) Resuelva la EDO y

=
2x +y
y x
con los valores iniciales y(2) = 3. Dibuje la solucin.
3
o
) Resuelva la EDO y

= a
2
y siendo t la variable independiente, con los valores iniciales
y(0) = 1; y

= 0.
4
o
) Resuelva, respecto a la variable t , el sistema:
x

=
x +3y
4
y

=
9x 5y
4
5
o
) Resuelva el sistema anterior con las condiciones iniciales x(0) =
2
10
; y(0) =
5
100
.
Dibuje la solucin.
6
o
) Mediante la transformada de Laplace y su inversa, resuelva los problemas de valor inicial:
a) y

(t) +y

(t) = t
2
+2y con y(0) = 4; y

(0) = 2
b) y

(t) +y(t) = e
t
con y(0) = y

(0) = y

(0) = 0
7
o
) Dibuje, en el intervalo [0, 10] , la solucin de la ecuacin y

(x) +3y

(x) +2y = f(x)


con y(0) = 2 ; y

(0) = 3 siendo f(x) la funcin:


f(x) =

1 si x < 3
x 2 si 3 x < 6
2 si x 6
Ampliacin de Clculo 2012-2013 Emilio Surez. Uniovi
- 10-
Nota: consulte en Matlab la funcin heaviside(x) y escriba:
f(x)=1+((x-2)-1)*heaviside(x-3)+(2-(x-2))*heaviside(x-6)
Soluciones:
1
o
) a)

x
4
+9x
2
6x +C2 +1 3x +1 = 0 (el radicando debe ser positivo)
b) C2x +x

x 2log(x)
3
x
+
x
2
2

con x > 0
c)

3e
log(x
2

3)log(x
2
+

3)+2

3C3
+

3
e
log(x
2

3)log(x
2
+

3)+2

3C3
1
con |x| >

3
2
o
) x +

3x
2
11
3
o
)
e
at i
2
+
e
at i
2
= cos(at)
4
o
)

x = C1e
t

C2e
2t
3
y = C1e
t
+C2e
2t
5
o
)

x =
e
2t

39e
3t
80
+
9
80

3
y = e
2t

13e
3t
80

9
80

6
o
) a)
3e
2t
4

t
2
+4e
t

t
2
2

3
4
b)
e
t
2

e
t
6

e
t
2

cos

3t
2

3 sin

3t
2

3
7
o
)
Ampliacin de Clculo 2012-2013 Emilio Surez. Uniovi