Facultad de Ciencias Exactas y Aplicadas
Departamento de Educación y Ciencias Básicas
Taller: Ecuaciones diferenciales
Solución punto 1 (30 %)
Dada la ecuación diferencial
(2xy 2 + 2xy + 4x3 ) dx + (2x2 y + x2 ) dy = 0.
(a) Se verifica que en este caso la ED es en efecto exacta
Sea
M (x, y) = 2xy 2 + 2xy + 4x3 , N (x, y) = 2x2 y + x2 .
Calculemos las derivadas parciales:
∂M ∂
= (2xy 2 + 2xy + 4x3 ) = 4xy + 2x,
∂y ∂y
∂N ∂
= (2x2 y + x2 ) = 4xy + 2x.
∂x ∂x
∂M ∂N
Como = en el dominio natural, entonces la ecuación es exacta.
∂y ∂x
(b) Factor integrante y solución
Dado que la ecuación ya es exacta, un factor integrante puede tomarse como µ(x, y) = 1.
Pasamos a encontrar la función Φ(x, y) tal que
∂Φ ∂Φ
= M (x, y), = N (x, y).
∂x ∂y
Integramos M respecto a x:
Z Z
Φ(x, y) = M (x, y) dx = (2xy 2 + 2xy + 4x3 ) dx = x2 y 2 + x2 y + x4 + h(y),
donde h(y) es una función a determinar. Ahora derivamos la función ya encontrada Φ(x, y)
respecto a y, e imponemos que ésta debe ser igual a N (x, y)
∂Φ !
= 2x2 y + x2 + h′ (y) = N (x, y) = 2x2 y + x2 .
∂y
De esto se obtiene h′ (y) = 0 ⇒ h(y) = C1 . Es decir que h(y) es simplemente una constante.
Por lo tanto, la función Φ(x, y) es
Φ(x, y) = x2 y 2 + x2 y + x4 + C1 .
Así, la solución implícita general se obtiene fijando Φ(x, y) = C:
x2 y 2 + x2 y + x4 = D , donde D es un constante D = C − C1
1
(c) Solución usando MATLAB
A continuación se muestra la solución que nos da MATLAB, teniendo en cuenta que el comando
dsolve intenta resolver la ecuación diferencial de manera explícita, es decir, despejando y(x)
siempre que sea posible. En nuestro caso, la ecuación implícita encontrada en los apartados
anteriores puede verse como una cuadrática en la variable y, razón por la cual el software devuelve
dos ramas de la solución correspondientes a los signos ± en la fórmula cuadrática.
1 % =====================================================
2 % Problema 1: Resolver EDO exacta con dsolve
3 % =====================================================
4
5 syms x y ( x )
6
7 % Definimos la EDO en forma dy / dx = f (x , y )
8 ode = diff (y , x ) == -(2* x * y ^2 + 2* x * y + 4* x ^3) / (2* x ^2* y + x ^2) ;
9
10 % Resolver s i m b l i c a m e n t e
11 sol = dsolve ( ode ) ;
12
13 disp ( ’ Solucion implicita encontrada por dsolve : ’)
14 disp ( sol )
Código 1: Resolución simbólica con dsolve en MATLAB
La salida de dsolve es: q
1 x2 (4x2 −1)
y(x) = − 21 ± C1 − 4 .
x
Si llevamos el término − 12 al otro lado y elevamos al cuadrado, obtenemos
x2 (4x2 − 1)
q
1 x2 (4x2 −1)
2
y+ 1
2 = C1 − 4 =⇒ x2 y + 12 = C1 − .
x 4
Expandiendo y simplificando, resulta
C1 = x2 y 2 + x2 y + x4 .
Por lo tanto, la solución implícita que ya habíamos obtenido mediante el método de ecuaciones
exactas se recupera también con dsolve:
x2 y 2 + x2 y + x4 = D .
(recordar que la notación de las constantes puede variar, pero al final son solo eso, constantes)
En conclusión, MATLAB entrega una forma explícita para y(x) con dos ramas, pero estas se
equivalen a la solución implícita general encontrada de manera analítica.
2
Figura 1: Código ejecutado en MATLAB para el ejercicio 1
Solución punto 2 (35 %)
Dada la ecuación diferencial
x2 y dx − (x3 + y 3 ) dy = 0.
(a) Solución general analítica
Reescribimos la ecuación en la forma diferencial ordinaria:
dy x2 y
x2 y dx = (x3 + y 3 ) dy =⇒ = 3 .
dx x + y3
3
Obsérvese que esta ecuación es homogénea (cada término del numerador y del denominador tiene
el mismo grado 3), por lo que podemos usar la sustitución y = vx (donde v = v(x)). Entonces
dy dv
=v+x .
dx dx
Sustituimos en la EDO:
dv x2 (vx) x3 v v
v+x = 3 = = .
dx x + v 3 x3 x3 (1 + v 3 ) 1 + v3
De aquí,
1 − (1 + v 3 ) v4
dv v 1
x = −v =v − 1 = v = − .
dx 1 + v3 1 + v3 1 + v3 1 + v3
Separamos variables:
1 + v3 dx
4
dv = − .
v x
Note que
1 + v3
= v −4 + v −1 .
v4
Integramos: Z Z
−4 −1
dx
v +v dv = − .
x
Calculamos integrales: Z Z
1
v −4 dv = − v −3 , v −1 dv = ln |v|.
3
Por lo tanto
1
− v −3 + ln |v| = − ln |x| + C.
3
y
Sustituimos v = . Como v −3 = (x/y)3 = x3 /y 3 y ln |v| = ln |y| − ln |x|, obtenemos:
x
1 x3
− + ln |y| − ln |x| = − ln |x| + C.
3 y3
Sumando ln |x| a ambos lados se simplifica y queda la solución implícita general:
x3
ln |y| − =C.
3y 3
(b) Solución particular con la condición y(0) = 1
Sustituimos x = 0, y = 1 en la solución implícita para encontrar la constante C:
03
ln(1) − = 0 ⇒ C = 0.
3 · 13
Por tanto la solución particular (implícita) es
x3 x3
ln |y| − =0 o bien ln |y| = .
3y 3 3y 3
4
(c) Solución y gráficas en MATLAB
A continuación se dan instrucciones MATLAB para:
Resolver la EDO con dsolve la cual produce una solución explicita usando la función
WrightOmega. Esta solución entonces se debe volver numérica, para luego proceder a gra-
ficar.
Se grafica la solución implícita que hallamos analíticamente, para distinto valores de C,
usando los métodos de las guías: meshgrid y contour.
Se gráfica una familia de soluciones con el parámetro C variando desde -10 hasta 10 con
pasos de a 1. La gráfica muestra 11 curvas, pues las demás empiezan a crecer muy rápido.
1 % ================================================
2 % Punto 2( c ) : Resolver la EDO usando dsolve
3 % EDO : x ^2* y dx - ( x ^3 + y ^3) dy = 0
4 % Forma normal : dy / dx = ( x ^2 * y ) / ( x ^3 + y ^3)
5 % ================================================
6
7 syms x y ( x ) C1
8 ode = diff (y , x ) == ( x ^2 * y ) / ( x ^3 + y ^3) ;
9
10 % Resolver s i m b l i c a m e n t e
11 sol = dsolve ( ode ) ;
12 y_sol = sol (1) ;
13 display ( y_sol ) ;
14
15 % Convertir a f u n c i n n u m r i c a
16 y_fun = matlabFunction ( y_sol , ’ Vars ’ , [ x C1 ]) ;
17
18 % Definir rango de x y constantes
19 x_vals = linspace (0.2 , 2 , 200) ;
20 C1_list = -[Link];
Código 2: Solución explícita del Punto 2(c) con dsolve en MATLAB
1 % =====================================================
2 % Punto 2( c ) : Graficar solucion implicita con contour
3 % EDO : x ^2* y dx - ( x ^3 + y ^3) dy = 0
4 % Solucion implicita : Phi (x , y ) = log ( y ) - x ^3/(3* y ^3) = C
5 % =====================================================
6
7 % Definimos Phi (x , y ) como funcion anonima
8 Phi = @ (x , y ) log ( y ) - ( x .^3) ./(3* y .^3) ;
9
10 % Dominio para graficar
11 x_vals = linspace (0.1 , 2 , 200) ; % evitar x =0 y y =0 por singularidades
12 y_vals = linspace (0.1 , 2 , 200) ;
13
14 [X , Y ] = meshgrid ( x_vals , y_vals ) ;
15
16 % Evaluamos Phi
17 Phi_vals = Phi (X , Y ) ;
18
19 % Definimos niveles de C
20 C_levels = -[Link];
21
22 % Graficamos las curvas de nivel ( soluciones implicitas )
23 figure ; hold on ;
24 contour (X , Y , Phi_vals , C_levels , ’ LineWidth ’ , 1.5) ;
25
5
26 xlabel ( ’x ’) ; ylabel ( ’y ’) ;
27 title ( ’ Familia de soluciones implicitas : log ( y ) - x ^3/(3 y ^3) = C ’) ;
28 grid on ;
Código 3: Graficación de la solución implícita del Punto 2(c) con contour en MATLAB
(a) Gráfica 1: Familia de curvas para la solución explícita
(b) Gráfica 2: Familia de curvas para la solución implícita
Figura 2: Comparación entre las soluciones del Punto 2(c).
Confirmamos pues que efectivamente ambas gráficas corresponden a la misma solución de la
EDO, donde los valores del parámetro C recorren desde -10 hasta 10 con un paso de 1.
6
Figura 3: Código ejecutado en MATLAB para el ejercicio 2
Problema 3 (35 %)
Un tanque tiene 60 galones de agua pura. Entra una salmuera que contiene 3 lb de sal por
galón a 2 gal/min y la mezcla, bien agitada, sale a 2,5 gal/min.
Planteamiento Sea S(t) la cantidad de sal (en libras) en el tanque en el tiempo t (minutos).
El volumen en el tanque varía porque la tasa de entrada y salida difieren:
V (t) = 60 + 2t − 2,5t = 60 − 0,5t, 0 ≤ t < 120.
La tasa de entrada de sal es 2 (gal/min) × 3 (lb/gal) = 6 lb/min. La concentración de la mezcla
S(t)
en el tanque es S(t)/V (t), por tanto la tasa de salida de sal es 2,5 · (lb/min). Así la EDO
V (t)
para S es:
dS 2,5 S
=6− .
dt 60 − 0,5t
(a) Hallar S(t)
Poniendo la EDO en forma lineal:
dS 2,5
+ S = 6,
dt 60 − 0,5t
el factor integrante es
Z 2,5
µ(t) = exp dt = (60 − 0,5t)−5 .
60 − 0,5t
Multiplicando por µ y realizando la integración se obtiene la solución general
S(t) = 3(60 − 0,5t) + C(60 − 0,5t)5 .
7
Imponiendo la condición inicial (tanque con agua pura) S(0) = 0:
180
0 = 3 · 60 + C · 605 =⇒ C=− .
605
t
Factorizamos (60 − 0,5t) = 60 1 − . Usando esto podemos reescribir la solución particular
120
como
180
S(t) = 3(60 − 0,5t) + − 5 (60 − 0,5t)5
60
t 5
= 3(60 − 0,5t) − 180 1 − .
120
Simplificando el primer término,
t 5
S(t) = 180 − 1,5 t − 180 1 − , 0 ≤ t < 120.
120
(b) Concentración cuando el tanque contiene 30 galones
El volumen es V (t) = 60 − 0,5t. Para tener V = 30 se requiere t = 60 min. Sustituimos:
60 5 5
S(60) = 180 − 1,5 · 60 − 180 1 − = 180 − 90 − 180 12 .
120
5
Como 12 = 32 1
,
180
S(60) = 90 − = 90 − 5,625 = 84,375 lb.
32
La concentración (lb/gal) cuando V = 30 es
S(60) 84,375 45
conc = = = 2,8125 = lb/gal.
30 30 16
(c) Código MATLAB y gráfica
2,5S
El siguiente script resuelve el PVI S ′ (t) = 6 − , S(0) = 0 y grafica la solución
60 − 0,5t
particular obtenida S(t).
1 % =====================================================
2 % Punto 3( c ) : Resolver PVI con dsolve y graficar
3 % EDO : dS / dt = 6 - (2.5 S ) /(60 - 0.5 t ) , S (0) =0
4 % =====================================================
5
6 syms S ( t )
7
8 % Definir la EDO
9 ode = diff (S , t ) == 6 - (2.5* S ) /(60 - 0.5* t ) ;
10
11 % C o n d i c i n inicial : S (0) =0
12 cond = S (0) == 0;
13
14 % Resolver con dsolve ( s o l u c i n particular )
15 S_part = dsolve ( ode , cond ) ;
16
17 disp ( ’ S o l u c i n particular encontrada por dsolve : ’)
18 pretty ( S_part )
19
20 % Convertir a f u n c i n n u m r i c a
21 S_fun = matlabFunction ( S_part ) ;
22
23 % Evaluar y graficar en el intervalo 0 <= t < 120
8
24 t_vals = linspace (0 ,119 ,500) ; % 500 puntos
25 S_vals = S_fun ( t_vals ) ;
26
27 figure ;
28 plot ( t_vals , S_vals , ’ LineWidth ’ , 1.5) ;
29 xlabel ( ’t ( min ) ’) ; ylabel ( ’S ( t ) ( lb ) ’) ;
30 title ( ’ S o l u c i n particular del PVI ( dsolve ) ’) ;
31 grid on ;
Código 4: MATLAB: solución particular del PVI con dsolve (Punto 3c)
Figura 4: Gráfica de la solución particular para el ejercicio 3
9
Figura 5: Código ejecutado en MATLAB para el ejercicio 3
10