Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Guia 3 matlab
1. GUIA #3 · ECUACIONES DIFERENCIALES EN MATLAB · CICLO 01 2013. PÁG. 1
Universidad de El Salvador.
Facultad de Ciencias Económicas
Departamento de Matemática y estadística.
Asignatura: Matemáticas 3 / ciclo 01 2013
Docente: Saúl Quintanilla.
Instructor: Aarón Meléndez
Guía #3
Ecuaciones diferenciales en
Matlab.
Matlab además de resolver integrales, matrices y derivadas; tiene capacidad para resolver ecuaciones diferenciales.
Aunque como en las guías anteriores, Matlab resuelve lo que se introduce; queda a interpretación del estudiante analizar
y saber muy bien que introduce y que debería obtener.
1. Utilización de Integrales y derivadas.
Para resolver una ecuación diferencial ordinaria EDO, podemos utilizar los conceptos que ya conocemos en Matlab. Como
demostración, examinemos la siguiente ecuación diferencial:
𝑑2
𝑦
𝑑𝑥2
= 8𝑥4
−
1
𝑥2
Integrando en ambos extremos con respecto a la variable independiente:
∫
𝑑2
𝑦
𝑑𝑥2
𝑑𝑥 = ∫ 8𝑥4
−
1
𝑥2
𝑑𝑥
Obtenemos:
𝑑𝑦
𝑑𝑥
=
8𝑥5
5
−
1
𝑥
+ 𝐶1
Integramos nuevamente:
∫
𝑑𝑦
𝑑𝑥
𝑑𝑥 = ∫
8𝑥5
5
−
1
𝑥
+ 𝐶1 𝑑𝑥
Obtenemos la ecuación General:
𝑦 =
4
15
𝑥6
+ 𝑙𝑛|𝑥| + 𝑥𝐶1 + 𝐶2
Realizando lo mismo en Matlab, podemos ingresar los siguientes comandos:
2. GUIA #3 · ECUACIONES DIFERENCIALES EN MATLAB · CICLO 01 2013. PÁG. 2
Como se aprecia, hemos llegado a la misma respuesta. Ahora bien, dado que Matlab no agrega las constantes de
integración, nosotros mismos debemos agregarlas, simplemente creándolas como variables aleatorias con syms, y
sumándolas en la operación de integración.
Para el ejemplo anterior, dado que debíamos integrar dos veces, había que sumar la primera constante de integración en
la primera operación, y la segunda constante de integración en la segunda operación.
2. Utilizando el método de separación de variables.
Sea la siguiente ecuación diferencial:
𝑑𝑦
𝑑𝑥
=
𝑥𝑦 + 3𝑥 − 𝑦 − 3
𝑥𝑦 − 2𝑥 + 4𝑦 − 8
Resolverla utilizando integración: En Matlab, utilizaremos los comandos simple para simplificar (o factorizar) la expresión:
Ahora en nuestra cabeza (o en nuestro cuaderno) reescribimos la ecuación para que nos quede en la forma deseada:
𝑦 − 2
𝑦 + 3
𝑑𝑦 =
𝑥 − 1
𝑥 + 4
𝑑𝑥
Para resolverla por este método, y obtener el valor de la constante de integración, debemos de igualar a cero:
𝑦 − 2
𝑦 + 3
𝑑𝑦 −
𝑥 − 1
𝑥 + 4
𝑑𝑥 = 0
Escribiendo en Matlab, tenemos:
3. GUIA #3 · ECUACIONES DIFERENCIALES EN MATLAB · CICLO 01 2013. PÁG. 3
Por lo que nuestra solución general es:
𝐶 = 𝑦 − 5 ln(𝑦 + 3) − 𝑥 + 5 ln(𝑥 + 4)
Ahora, necesitamos una solución particular para y(0)=1; por lo que se entiende que x=0 y y=1; entonces, simplemente le
damos valores fijos a las variables aleatorias x e y, y utilizamos eval para calcular nuevamente C:
La respuesta es 1. Tal como lo visto en clase.
3. Utilización del comando dsolve.
En ocasiones resulta complicado, y largo, resolver ecuaciones diferenciales en Matlab a través de integrales. Para ello
existe el comando dsolve el cual es un poco especial, pues hay que definir la ecuación como una cadena de texto.
Ahora, resolvamos nuevamente el primer ejercicio (Ingresando la ecuación diferencial en su forma diferencial):
Como puede apreciarse, escribimos la expresión en términos de t, no de x. Esto se debe a que en el área de investigación,
la mayoría de ecuaciones diferenciales, son en razón del tiempo, por lo que Matlab maneja que toda está en función de t.
Entonces, simplemente, sustituimos x por t en la expresión, y a la respuesta, la sustituimos en viceversa. Note también
que es importante la notación de la derivada de y. Guíese por esta tabla:
Escritura Equivale a
Dy
𝑑𝑦
𝑑𝑡
D2y
𝑑2𝑦
𝑑𝑡2
4. GUIA #3 · ECUACIONES DIFERENCIALES EN MATLAB · CICLO 01 2013. PÁG. 4
D3y
𝑑2
𝑦
𝑑𝑡3
DnY
𝑑 𝑛
𝑦
𝑑𝑡 𝑛
Ahora solucionemos el ejemplo 2:
Lamentablemente, dado que Matlab busca siempre la respuesta más exacta, es posible que algún resultado nos sea
expresado en una función llamada Lambert W1
, la cual, sale por completo de nuestro conocimiento matemático (e
innecesario), por fortuna, dicha función es una sencilla igualdad:
𝑓(𝑧) = 𝑊 · 𝑓(𝑧) · 𝑒 𝑊·𝑓(𝑧)
Es decir, cuando el elemento multiplicador de la función es igual al exponente de e entonces, equivale a únicamente la
expresión f(z). Al obtener esta respuesta, hay que realizar un simple truco, repitiendo el proceso, ponga mucha atención
(vamos a escribir la expresión en una forma derivativa):
Con el comando solve(función,’variable’) hemos despejado la respuesta de la ecuación diferencial en relación a C1. Con
ello obtenemos una respuesta compactada. Simplemente hacemos caso omiso a todas las (t) en la expresión.
De esto:
𝐶1 = −𝑦(𝑡) − 5 ∗ ln (
𝑥(𝑡) + 4
𝑦(𝑡) + 3
) + 𝑥(𝑡)
1
http://es.wikipedia.org/wiki/Funci%C3%B3n_W_de_Lambert
5. GUIA #3 · ECUACIONES DIFERENCIALES EN MATLAB · CICLO 01 2013. PÁG. 5
Llegamos a esto:
𝐶1 = −𝑦 − 5 ∗ ln (
𝑥 + 4
𝑦 + 3
) + 𝑥
Ahora expandimos el logaritmo:
𝐶1 = −𝑦 − 5(ln(𝑥 + 4) − ln(𝑦 + 3)) + 𝑥
Realizamos la multiplicación:
𝐶1 = −𝑦 − 5 ln(𝑥 + 4) + 5ln(𝑦 + 3) + 𝑥
Ordenamos y finalmente:
𝐶1 = −𝑦 + 5 ln(𝑦 + 3) + 𝑥 − 5 ln(𝑥 + 4)
Observe que es la misma respuesta obtenida por integrales, exceptuando que toda la expresión esta multiplicada por un
factor de (-1). Esto se debe a que dependiendo de la naturaleza de la función, posee sus propias restricciones en rango y
dominio, por lo que por simetría, la curva C1 es simétricamente equivalente a –C1; es decir es la misma traza, con signo
diferente.
Por ello, el software no puede sustituir las buenas prácticas de ejercicios manuales, aunque nos aporta gran ayuda.
No se preocupe, si su respuesta hecha a mano, es de signo contrario a la aportada por Matlab. ¡Su respuesta es
correcta!, solo que Matlab encontró la respuesta de la traza reflejada.
Ahora resuelva las siguientes ecuaciones diferenciales (tomada de la guía de estudio) y encuentre las soluciones generales:
PARTE III:
10.
𝑦2
𝑥
𝑑𝑥 + (𝑥 − 𝑦)𝑑𝑦 = 0
R/ 𝐶1 = − ln(𝑦) +
𝑦
𝑥
12.
𝑑𝑦
𝑑𝑥
= 𝑒 𝑥−𝑦
𝑅/𝐶1 = −𝑒 𝑥
+ 1
PARTE V.
2. 𝑦𝑒 𝑥
𝑑𝑥 + 𝑒 𝑥
𝑑𝑦 = 0
𝑅/ 𝐶1 = 𝑥 + ln(𝑦)
7.
1
(𝑥 − 𝑦)2
· (𝑦2
𝑑𝑥 − 𝑥2
𝑑𝑦) = 0
R/ 𝐶1 = −
1
𝑦
+
1
𝑥
PARTE IX.
2. 𝑦′
−
2𝑦
𝑥
=
𝑦′
𝑥
6. GUIA #3 · ECUACIONES DIFERENCIALES EN MATLAB · CICLO 01 2013. PÁG. 6
R/ 𝐶1 = 0
7. 𝑥𝑦′
− 𝑎𝑦 = 𝑏𝑥4
R/ 𝐶1 =
1
𝑎
𝑏𝑥4
𝑒−
𝑎𝑡
𝑥
4. Soluciones particulares con el comando dsolve.
A la sintaxis ya conocida de dsolve, se le agrega un nuevo argumento, que es la ecuación que define la condición inicial o
a evaluar:
dsolve(‘ecuación diferencial’, ‘condición inicial’)
Como ejemplo resolvamos la ecuación diferencial con las condiciones dadas, y obtener la solución particular del ejercicio
visto el miércoles 22 de mayo:
(𝑦3
− 𝑥3)𝑑𝑥 − (𝑥𝑦2)𝑑𝑦 = 0
Con 𝑦(1) = 2
Para que sea fácil su ingreso en la línea de comandos, hacemos un cambio de variable x por t:
(𝑦3
− 𝑡3
)𝑑𝑥 − (𝑡𝑦2
)𝑑𝑦 = 0
Ahora llevamos a la forma diferencial:
𝑑𝑦
𝑑𝑥
=
𝑦3
− 𝑡3
𝑡𝑦2
E ingresamos en Matlab (recordar que por default el comando dsolve asumo que todas las derivadas son en término de
t):
El sistema nos devuelve una respuesta en términos de las variables dependientes, es decir y, lo que se interpreta como:
𝑦 = 𝑡(−3 ln(𝑡) + 8)
(
1
3
)
Realizamos el cambio de variable:
𝑦 = 𝑥(−3 ln(𝑥) + 8)
(
1
3
)
7. GUIA #3 · ECUACIONES DIFERENCIALES EN MATLAB · CICLO 01 2013. PÁG. 7
Y así tenemos la solución particular de la ecuación. Pero si nos conviene la respuesta expresada en C (es decir el valor
numérico constante en la expresión) debemos trabajar la respuesta a mano:
𝑦
𝑥
= (−3 ln(𝑥) + 8)
(
1
3
)
𝑦3
𝑥3
= (−3 ln(𝑥) + 8)
Llegamos a la respuesta clásica, la vista en clase:
𝑦3
𝑥3
+ 3 ln(𝑥) = 8
Si se quiere ser más disciplinado y llegar a la misma respuesta vista en clase, entonces, dividir toda la expresión entre 3:
𝑦3
3𝑥3
+ ln(𝑥) =
8
3
Y tenemos la respuesta exacta a obtenida en clase.
Ahora, resolver los siguientes ítems extraídos de la guía de estudio, para encontrar la solución particular:
PARTE IV DE LA GUÍA.
1.
𝑑𝑦
𝑑𝑥
=
𝑥
𝑦
; 𝑦(1) = 3
Ingresando los comandos tenemos:
Entonces, la Solución particular al realizar el cambio de variable es:
𝑦 = (𝑥2
+ 8)
1
2
5. (𝑥𝑒
𝑦
𝑥 + 𝑦) 𝑑𝑥 = 𝑥𝑑𝑦 con y(1)=0
8. GUIA #3 · ECUACIONES DIFERENCIALES EN MATLAB · CICLO 01 2013. PÁG. 8
R/ SG: 𝐶1 = 𝑙𝑛(𝑥) + 1
SP: 1= 𝑙𝑛(𝑥) + 1
PARTE VI.
1. (
𝑦
𝑥−1
) 𝑑𝑥 + (ln(𝑥 − 1) + 2)𝑑𝑦 = 0 con y(2)=4
R/ SP:
8
ln(𝑥−1)+2
PARTE VIII.
1. 𝑥3
𝑦′ + 2𝑦 = 𝑒
1
𝑥2
con y(1)=e para obtener e en Matlab escriba exp(1)
R/ SG: 𝐶1 =
1
2𝑥2
SP:
1
2
=
1
2𝑥2
Como habrá podido observar, en ocasiones Matlab revuelve una respuesta muy complicada; por lo que es conveniente
en estos casos, solamente obtener la solución general, y por cuenta del estudiante, obtener la solución particular.
El comando solve no es infalible, ni es la verdad absoluta. Su característica es que siempre busca una respuesta explicita.
De no lograrla, devuelve la respuesta implícita, y de no lograr ninguna devuelve error. Esto no quiere decir que la ecuación
no pueda solucionarse, en ese caso, hay que resolverla por integrales.
Por ejemplo, pruebe con la siguiente ecuación diferencial:
𝑑𝑦 = (1 − 𝑦)𝑦2
Conclusiones.
Los comandos aquí utilizados se utilizan para resolver una Ecuación Diferencial Ordinaria EDO. Para ecuaciones
diferenciales Parciales EDP, también pueden resolverse con Matlab, utilizando dsolve, lamentablemente (y
afortunadamente para los perezosos) eso no forma parte del contenido de Matemáticas 3.
Para una sintaxis sin problemas con dsolve, debemos escribir la ecuación en su forma diferencial (
𝑑𝑦
𝑑𝑥
) y hacer un cambio
de variable de x a t.
Si no desea hacerse así, y se dispone de la ecuación en su forma derivativa (𝑀𝑑𝑥 − 𝑁𝑑𝑦 = 0) entonces no es necesario
hacer el cambio de variable, teniendo la precaución de a la respuesta omitir la expresiones (t).
Referencias:
Matlab Help Window 5.3
http://webs.uvigo.es/profe.jesus/MainED.pdf