Documentos de Académico
Documentos de Profesional
Documentos de Cultura
2.1.1 Solución de una EDO de primer orden utilizando la función dsolve ............ 31
2.1.4 Solución de una EDO de segundo orden utilizando la función dsolve ......... 44
2.1 Solución analítica de ecuaciones diferenciales
Las Ecuaciones Diferenciales Ordinarias (EDO) se pueden resolver en forma analítica con
la función dsolve de Matlab. La sintaxis para utilizar la función puede ser: a)
especificando la ecuación a resolver como una expresión simbólica contenida en el
comando diff; b) como una ‘cadena de caracteres’ con la letra D para indicar la
diferenciación. Versiones actuales de Matlab, indican que la forma de escribir la ecuación
como una ‘cadena de caracteres’ se encuentra en desuso, por los cual estos apuntes se
enfocarán a la forma de escribir la ecuación como una expresión simbólica.
Cuando la EDO a resolver se presenta como una función simbólica, primero se definen la
variable dependiente y e independiente x como syms y(x). Se usa diff(y) para
indicar la diferenciación y el operador == para crear una ecuación.
syms y(x)
dy
Ejemplo: resolver = y con condición inicial (C.I.) a x = 0, y = y0
dx
syms y(x) y0
y =
y0*exp(x)
31
dy
Ejemplo: resolver = 3y + 5
dt
syms y(t)
y = dsolve(diff(y) == 3*y + 5)
y =
(C19*exp(3*t))/3 - 5/3
dy
= ( y + 2 ) x C.I . y ( 0 ) = −1
2
Ejemplo: resolver
dx
syms y(x) y0
y =
1
- 1/(x^2/2 - 1) – 2 y=− 2
−2
x
−1
2
32
2.1.2 Solución de una EDO utilizando la función int
En los ejemplos anteriores se ha visto que la función dsolve se utiliza para resolver EDO
de la forma de problemas de valor inicial (PVI) o problemas de valor a la frontera (PVF)
para obtener su solución explícita, sin embargo algunas EDO no lineales no son resueltas
con esta función.
dy (
2xy + x 3 )
Ejemplo: Resuelva dx = − 2
(
x + y2 )
syms y(x)
y =
[ empty sym ]
d 2c dc dc ( 0 )
Ejemplo: Resuelva 2 − c c − 1 = 0 c ( 0 ) = 0, =0
dt dt dt
syms c(t)
Dc = diff(c);
c =
[ empty sym ]
33
Si no se encuentra la solución explicita, se puede intentar separar variables y calcular la
integral indefinida por medio de la función int(expr,var), expr es la expresión
simbólica que va a integrar respecto a la variable var.
dy
Ejemplo: Resuelva = 1+ y
dt
syms y(x)
y = dsolve(diff(y) == 1 + y^0.5)
y =
[ empty sym ]
dy
= dt
(1 + y )
int(1/(1 + y^0.5))
ans =
2*y^(1/2) - 2*log(y^(1/2) + 1)
34
syms y
y1 = int(1/(1 + y^0.5), 0, 2)
y1 =
log(3 - 2*2^(1/2)) + 2*2^(1/2)
ans =
1.0657
La función integral(fun, xmin, xmax) integra numéricamente la función
definida como Anonymous function de xmin a xmax, el resultado es un escalar:
Ejemplo
dh Cal
= CP en
dT mol − K
a = 25.48
b = 1.52 10 −2
c = −0.715 10 −5
d = 1.312 10 −9
35
syms h(T) a b c d h0
dH = integral(Cp,300,1000);
cal
dH = 2.2828 104
mol
Si para una EDO no se puede encontrar su solución explicita por medio de dsolve y no
es de variables separables, se puede resolver mediante integración numérica.
36
2.1.3 Solución de sistemas de EDOs utilizando la función dsolve
dy A
= yB − 4 y A C.I . y A ( 0 ) = 25
dx
dyB
= 4 y A − 4 yB C.I . yB ( 0 ) = 0
dx
syms ya(x) yb(x)
M = dsolve(diff(ya) == yb-4*ya, diff(yb) == 4*ya-4*yb,
ya(0) == 25, yb(0) == 0)
M =
yb: [1x1 sym]
ya: [1x1 sym]
La solución del sistema está contenida en una estructura simbólica M, para que se
despliegue el resultado debe escribirse:
ya = M.ya
ya =
(25*exp(-2*x))/2 + (25*exp(-6*x))/2
yb = M.yb
yb =
25*exp(-2*x) - 25*exp(-6*x)
25 −2 x 25 −6 x
yA = e + e
2 2
yB = 25e − 25e −6 x
−2 x
37
Graficas utilizando la función plot
Es posible graficar dos o más series de datos (x,y) en la misma gráfica con la función
‘plot’, tomando la solución del ejemplo anterior, (Figura 16):
x = (0:0.02:3);
yae = eval(ya);
ybe = eval(yb);
plot(x, yae, x, ybe)
xlabel('Variable Independiente x')
ylabel('Variable Dependiente y')
legend('y_A', 'y_B')
38
Graficas utilizando la función subplot
1 1 2
2 3 4
Ejemplo: Graficar las funciones ya(x) y yb(x) del ejemplo anterior en la misma figura en el
intervalo x = [0 5], (Figura 17):
subplot(2,1,1);
plot(x,yae, ‘b’)
xlabel('x')
ylabel('y_A')
subplot(2,1,2)
plot(x,ybe, ‘m’)
xlabel('x')
ylabel('y_B')
39
Figura 17. Graficas generadas con la función subplot
Es posible realizar la gráfica de dos series de datos utilizando el eje y del lado izquierdo y
el del lado derecho utilizando la función plotyy(x1, y1, x2, y2), en la Figura 18
se muestra la gráfica del ejemplo anterior:
40
Figura 18. Gráfica utilizando la función plotyy(x, y1, x, y2)
Los nombres en los dos ejes y no es posible asignarlos solo con la instrucción ylabel, ni en
el menú de gráficas con Property Editor – Figure. Es necesario utilizar la notación:
[Y,f1,f2] = plotyy(...) con esto se producen los dos ejes creados en Y y los
objetos gráficos en f1 y f2. Y (1) es el eje izquierdo y Y (2) es el eje derecho. Enseguida se
puede asignar el nombre a cada eje y, por medio de ylabel, (Figura 19):
41
Figura 19. Gráfica utilizando la función
[Y, f1,f2] = plotyy(x, y1, x, y2)y asignando nombres a los ejes
42
Figura 20. Script para la solución del sistema
dy A
= yB − 4 y A C.I . y A ( 0 ) = 25
dx
dyB
= 4 y A − 4 yB C.I . yB ( 0 ) = 0
dx
43
2.1.4 Solución de una EDO de segundo orden utilizando la función dsolve
Para las EDO de segundo orden la notación es diff(y,2) para indicar dy2/dx2 además
si en las condiciones de frontera existe una primera derivada, se requiere definir variables
intermedias, utilizando diff.
d2y dy
Ejemplo: resolver 2
− 3 − 4 y = 4x 2
dx dx
syms y(x)
Dy = diff(y);
y =
3 13
y = C1e− x + C2e4 x − x 2 + x−
2 8
d 2 y dy dy ( 0 )
Ejemplo: Resolver + − 2 y = 2 x, C.I. y ( 0 ) = 0, =1
dx 2 dx dx
syms y(x)
Dy = diff(y);
y =
e −2 x 1
exp(x) - exp(-2*x)/2 - x - 1/2 y=e − x
−x−
2 2
pretty(y)
exp(-2 x) 1
exp(x) - --------- - x - -
2 2
44
Ejemplo: resolver
d 2T dT dT
=0 C.I . z = 0, − k = qz → ( 0 ) = −qz / k
dz 2 z dz
C.F . z = L, T = T0 → T ( L ) = T0
syms T(z) qz k L T0
DT = diff(T);
T =
Lqz + T0 K qz z
(L*qz + T0*k)/k - (qz*z)/k T= −
k k
pretty(T)
L qz + T0 k qz z
----------- - ----
k k
45