Está en la página 1de 40

CLASE PRÁCTICA 1

ECUACIONES DIFERENCIALES
CURSO 2008-09
Isoclinas.
Campos de direcciones
Bibliografı́a de prácticas
ATKINSON, K. E., Elementary numerical analysis, J. Wiley and Sons,
1999.

COOMBES, K. R. et al., Differential equation with MATLAB. John


Wiley and Sons, 1999.

HOFFMAN, J. D., Numerical methods for engineers and scientists,


McGraw-Hill, 1992.

MALEK-MADANI, R., Advanced Engineering Mathematics with


Mathematica and MATLAB, vol I, Addison-Wesley, 1998.

MATHEWS J. H. y FINK, K. D., Métodos numéricos con MATLAB.


Prentice Hall, 2000.

MATLAB, edición estudiante. Prentice Hall, 1995.

HANSELMAN, D. y LITTLEFIELD, B., The Student edition of


MATLAB: version 5 user’s guide, Prentice Hall, 1997.
ECUACIONES DIFERENCIALES Práctica 1

-EJEMPLOS DE E.D. Y SOLUCIONES.

-EL COMANDO DSOLVE. RESOLUCIÓN DE PROBLEMAS DE


CONDICIÓN INICIAL.

-CAMPOS DE DIRECCIONES.

-TRAYECTORIAS ISOCLINAS.

-E.D. EN VARIABLES SEPARADAS.


COMANDOS PARA LA DERIVACIÓN

>> syms x

>> diff(f,x)

Halla la función derivada de f respecto a x.

>> diff(f,x,n)

Halla la función derivada enésima de f respecto a x.

>> Df

Representa simbólicamente la derivada de f . Para derivadas sucesivas D2,


D3, etc.
EJEMPLOS DE EEDD. Y SOLUCIONES

EJERCICIO 1. Sea la ecuación

my 00 = −mg + ky 0

Comprobar que

y(t) = A + Bekt/m + mgt/k

es una solución de dicha E.D.


SOLUCIÓN EN LA LÍNEA DE COMANDOS

1. Definir simbólicamente y(t).


2. Sustituir en la E.D.

>> syms t y k m g A B
>> y = A + B*exp(k*t/m) + m*g/k*t;
>> a=m*diff(y,t,2)-k*diff(y,t)+m*g

a=1/m*B*k^2*exp(k*t/m)-k*(B*k/m*exp(k*t/m)
+m*g/k)+m
>> simplify(a)

ans =0
EJERCICIO 2. Comprobar que la función

−π 2c2t/l2
u(x, t) = e sen(πx/l)

es solución de la ecuación del calor

ut(x, t) = c2uxx(x, t)
SOLUCIÓN EN LA LÍNEA DE COMANDOS

>> syms c

>> u=’exp(-pi^2*c^2*t/l^2)*sin(pi*x/l)’

>> diff(u,’t’)-c^2*diff(u,’x’,2)

ans=0

Notar que no ha sido necesario declarar simbólicas a las


variables u, t, x y l.
El comando DSOLVE. Resolución de P.V.I.

El comando DSOLVE permite obtener la formulación exacta


de la solución general de algunas E.D., sin necesidad de
declarar simbólicas a las variables involucradas.
EJERCICIO 3. PASO 1) Resolver la E.D. y 0 = 1 + y 2

>> y=dsolve(’Dy=1+y^2’)

y =tan(t+C1)

PASO 2) Obtener la solución local con la C.I. (0, 1)

>> y=dsolve(’Dy=1+y^2’,’y(0)=1’)

y =tan(t+1/4*pi)

Representar dicha solución local


>>ezplot(’tan(t+pi/4)’,[-pi/4,pi/4]);
>> hold on
>> plot(0,1,’*r’)
EJERCICIO 4

Resolver la E.D. y 0 = −y − 2t

>> y=dsolve(’Dy=-y-2*t’)
y = -2*t+2+exp(-t)*C1

Obtener la solución local con la C.I. (−2, 1)

>> y=dsolve(’Dy=-y- 2*t’,’y(-2)=1’)


y =
-2*t+2-5*exp(-t)/exp(2)

Representar dicha solución local


>> ezplot(’-2*t+2-5*exp(-t)/exp(2)’,[-4,3]),
>> hold on,
>> plot (-2,1,’*g’)
Algunas E.D. resolubles no pueden ser resueltas por
Matlab.

EJEMPLO. y 0 = −2t − y + cos(y)

>> dsolve(’Dy=-2*t-y+cos(y)’)

Warning:
Explicit solution could not be found.

>In C:\MATLABR11\toolbox\symbolic\dsolve.m at line 326

ans = [ empty sym ]


Si el comando DSOLVE no puede obtener explı́citamente
la solución, entonces el propio DSOLVE ofrece la
solución en la forma implı́cita.

EJEMPLO. y 0 = y 2(1 − y)

>> dsolve(’Dy=y^2*(1-y)’)
Warning: Explicit solution could not be found;

implicit solution returned.

> In C:\MATLABR11\toolbox\symbolic\dsolve.m

at line 292

t+1/y-log(y)+log(-1+y)+C1=0
EJERCICIO 5

Resolver la E.D. y 00 = −y + cos(2x)


con la C.I. y(0) = 1, y 0(0) = 0.

>> y=dsolve(’D2y=-y+ cos(2*x)’,’y(0)=1’,’Dy(0)=0’,’x’)

y =

(1/2*sin(x)+1/6*sin(3*x))*sin(x)+(1/6*cos(3*x)-

1/2*cos(x))*cos(x)+4/3*cos(x)

Notar el efecto del comando SIMPLIFY

>> y=simplify(y)

y= -2/3*cos(x)^2+4/3*cos(x)+1/3
MatLab se vale de una colección de funciones básicas
elementales más amplia que la nuestra, con la cual nos puede
dar una mayor cantidad de respuestas en forma cerrada. Una
de estas funciones es w(z) = Lambertw(z) definida
implı́citamente por

Lambertw(z) ∗ exp(Lambertw(z)) = z

La definición de cualquier función especial MatLab puede ser


consultada invocando en la lı́nea de comandos help+nombre
de función. En este caso, hacer

>> help lambertw


>>help lambertw
LAMBERTW Lambert’s W function.
W = LAMBERTW(X) is the solution to w*exp(w) = x.
W = LAMBERTW(K,X) is the K-th branch of this multi-valued
function.
Reference: Robert M. Corless, G. H. Gonnet, D. E. G. Hare,
D. J. Jeffrey, and D. E. Knuth, "On the Lambert W Function",
Advances in Computational Mathematics, volume 5, 1996,
pp. 329-359.
Also available from:
http://pineapple.apmaths.uwo.ca/~rmc/papers/LambertW
/index.html

Overloaded methods
help sym/lambertw.m
EJERCICIO 6. Resolver las siguientes ED y
PCI.

(a) (x2 + 1)dy + (y 2 + 1)dx = 0, con y(0) = 1/2

(b) y 0 = ycos(x)/(1 + y 2), con y(0) = 1

(c) y 000 − 3y 00 + 3y 0 − y = x

(d) y 000 − 3y 00 + 3y 0 − y = x, con


y(0) = 0, y 0(0) = 1, y 00(0) = 0
Campo de direcciones de una ED.
Dada la ED y 0 = f (x, y) , si y = y(x) es solución y
(x0, y0) es un punto de la gráfica de y(x), entonces la
pendiente de y = y(x) en (x0, y0) es y 0(x0) que es igual a
f (x0, y0).

Ası́ pues, para conocer la pendiente de la solución que pasa


por (x0, y0) no hace falta conocer dicha solución; basta con
calcular f (x0, y0).

Si esto se hace con todos los puntos del plano, tendremos las
pendientes de las soluciones que pasan por cada punto del
plano. Naturalmente, en la práctica es imposible hacer esto
con todos los puntos del plano, pero nada nos impide hacerlo
con tantos puntos como queramos, configurando un dibujo
que se llama campo de direcciones de la ED.
CAMPOS DE DIRECCIONES
Sea n = 1 y sea y 0(x) = f (x, y(x)). Para construir el
CAMPO DE DIRECCIONES de la ED, por cada punto
(x, y) de una red de puntos de R2 se dibuja un segmento o
vector de pendiente f (x, y).

Para el estudio gráfico de las soluciones de una ED sin haberla


resuelto, usaremos un programa en el que intervienen los
comandos
meshgrid y quiver,
que permiten dibujar el campo de direcciones.

Los vectores a considerar para obtener el campo de direcciones


serán (1, y 0) = (1, f (x, y)).
EJERCICIO 7. Construir el campo de
direcciones de la ED y 0 = x.

>> f=inline(’x’,’x’,’y’);

>> paso=0.5;iz=-3;der=3;

>> [x,y]=meshgrid(iz:paso:der,iz:paso:der);

>> [n,m]=size(x);

>> dx=ones(n,m);

>> z=f(x,y);dy=z;

>> quiver(x,y,dx,dy)
Representar además la solución particular que cumple la
condición inicial y(0) = 0.

>> dsolve(’Dy=x’,’y(0)=0’, ’x’)

>> ezplot(’1/2*x^2’,[-2.5,2.5]),

>> hold on

% HOLD ON permite superponer los graficos

>> plot(0,0,’*g’)
Ejercicio 8

1 Construir el campo de direcciones de y 0 = −x/y.


2 Representar además la solución particular que cumple la CI
y(1) = 1.

Atención: La red creada con MESHGRID debe evitar y = 0 y


contener al punto (1, 1) de la condición inicial. La expresión
dentro de INLINE que define a la función debe escribirse entre
apóstrofes, es decir, 0 − x./y 0. El punto debe preceder a /, ∗
y ^ pues se opera con vectores componente a componente.
Ejercicio 9
Asociar cada una de las representaciones (a) y (b) siguientes
con el campo de direcciones de las ED:

y0 = y − x

y 0 = 2x
: Representación (a)
: Representación (b)
TRAYECTORIAS ISOCLINAS
Dada la ED y 0 = f (x, y) , se llaman curvas de nivel o
isoclinas a las obtenidas al imponer la condición y 0 = k.
Método de las isoclinas.
Es una variante de las ideas antes descritas. Los puntos del
plano por los que pasa una solución con pendiente k, son los
puntos de la curva de ecuación f (x, y) = k (isoclina de
pendiente k).

Dibujando las distintas isoclinas se obtiene una representación


similar a la del campo de direcciones. Puede tener interés
identificar la isoclina para la pendiente 0 pues las soluciones
tendrán generalmente un máximo o un mı́nimo al pasar por
esta isoclina.
Ejercicio 10

1 Representar las isoclinas de la ED y 0 = x + y 2.


2 Representar el gráfico de contorno (curvas de nivel o
isoclinas) de la superficie z = x + y 2.

Desarrollo de la solución:

>>[x,y]=meshgrid(0:0.05:3,-2:0.05:2);

>> z=x+y.^2;

>> isoclinas=contour(x,y,z,20)
Ejercicio 11
Representar las isoclinas de la E.D.

y 0 = x2 + y 2

>> [x,y]=meshgrid(-4:0.05:4);

>> z=x.^2+y.^2;

>> isoclinas=contour(x,y,z,20);
Ejercicio 12

(a) Representar las isoclinas de la E.D.

y 0 = 2x − y

(b) ¿Qué tipo de curvas son dichas isoclinas?


(c) Representar las isoclinas correspondientes a
k = 0, y k = 2.
(d) ¿Qué particularidad tiene la correspondiente a
k = 2?
Ejercicio 13
Construir el campo de direcciones y las curvas de nivel de la
ED
y 0 = sen(x) + y
Desarrollo paso a paso

>> f=inline(’sin(x)+y’, ’x’,’y’);


>> paso=0.5;iz=-3;der=3;
>> [x,y]=meshgrid(iz:paso:der,iz:paso:der);
>> [n,m]=size(x); dx=ones(n,m); z=f(x,y); dy=z;
>> hold on,contour(x,y,z,20);quiver(x,y,dx,dy);

También podría gustarte