Está en la página 1de 129

ECUACIONES DIFERENCIALES

A. Cachafeiro Lopez J. Illan Gonzalez

Departamento de
Matematica Aplicada I

Universidade de Vigo
SEGUNDA EDICION
Ano: 2009
Editores: Los autores
ISBN: 978-84-611-9916-7
INDICE GENERAL

1 Comandos simbolicos para resolver ecuaciones.


Campos de direcciones. Isoclinas 1
1.1 COMANDOS SIMBOLICOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.1 Comandos para la derivacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.2 Problemas resueltos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.3 El comando DSOLVE. Resolucion de PVI . . . . . . . . . . . . . . . . . . . . 2
1.1.4 Ejemplos de EEDD que no pueden ser resueltas por DSOLVE . . . . . . . . . 3
1.1.5 Funcion LAMBERTW(Z) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2 CAMPO DE DIRECCIONES DE UNA ED . . . . . . . . . . . . . . . . . . . . . . . 5
1.3 TRAYECTORIAS ISOCLINAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.3.1 Metodo de las isoclinas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2 Metodo de separacion de variables. Ecuaciones


homogeneas, exactas, implcitas y de Bernoulli 11
2.1 ECUACIONES EN VARIABLES SEPARADAS . . . . . . . . . . . . . . . . . . . . . 11
2.2 ECUACIONES DIFERENCIALES HOMOGENEAS . . . . . . . . . . . . . . . . . . 14
2.3 ECUACIONES DIFERENCIALES EXACTAS . . . . . . . . . . . . . . . . . . . . . . 14
2.4 ECUACION DE CLAIRAUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.5 ECUACION DE BERNOULLI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.6 FACTOR INTEGRANTE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

3 Resolucion simbolica de sistemas diferenciales 25


3.1 SISTEMA LINEAL HOMOGENEO DE
COEFICIENTES CONSTANTES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.2 SISTEMA LINEAL COMPLETO DE
COEFICIENTES CONSTANTES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

i
ii Indice General

3.3 RESOLUCION DE SISTEMAS DIFERENCIALES


LINEALES HOMOGENEOS DE COEFICIENTES
CONSTANTES POR LA VIA ESPECTRAL . . . . . . . . . . . . . . . . . . . . . . . 30
3.3.1 Calculo de valores y vectores propios via MATLAB . . . . . . . . . . . . . . . 30
3.3.2 El metodo espectral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.4 EEDD LINEALES DE ORDEN SUPERIOR . . . . . . . . . . . . . . . . . . . . . . . 32
3.4.1 EEDD lineales de orden superior homogeneas . . . . . . . . . . . . . . . . . . 32
3.4.2 EEDD lineales de orden superior completas . . . . . . . . . . . . . . . . . . . 32
3.5 ECUACION DE EULER Y DE EULER
GENERALIZADA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.6 CALCULO DE WRONSKIANOS Y APLICACIONES . . . . . . . . . . . . . . . . . 35
3.6.1 Wronskiano e independencia lineal . . . . . . . . . . . . . . . . . . . . . . . . 36
3.7 SOLUCIONES PARTICULARES DE EEDD
LINEALES COMPLETAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.7.1 Metodo de coeficientes indeterminados (MCI) . . . . . . . . . . . . . . . . . . 38
3.7.2 Metodo de variacion de parametros (MVP) . . . . . . . . . . . . . . . . . . . . 40
3.8 REDUCCION DE ORDEN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.9 EJERCICIOS COMPLEMENTARIOS . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.10 APENDICE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.10.1 Notas sobre funciones especiales . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.10.2 Sobre el metodo basado en el calculo aproximado de las races de la ecuacion
caracterstica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

4 Transformada de Laplace 49
4.1 DEFINICION Y CALCULO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.1.1 Definicion de la transformada de Laplace . . . . . . . . . . . . . . . . . . . . . 49
4.1.2 Calculo mediante comandos MATLAB. Ejemplos . . . . . . . . . . . . . . . . 50
4.1.3 Propiedades de la Transformada de Laplace . . . . . . . . . . . . . . . . . . . 51
4.2 TRANSFORMADA INVERSA DE LAPLACE . . . . . . . . . . . . . . . . . . . . . . 52
4.3 APLICACIONES A LA RESOLUCION DE
PROBLEMAS DE CONDICION INICIAL . . . . . . . . . . . . . . . . . . . . . . . . 54
4.4 PROBLEMAS DE VALORES INICIALES CON
DATOS DISCONTINUOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
4.4.1 Funcion escalon unitario (Heaviside) . . . . . . . . . . . . . . . . . . . . . . . 56
4.4.2 Representacion de funciones con discontinuidades de salto finito . . . . . . . . 58
4.5 TRANSFORMADA DE LAPLACE DE UNA
FUNCION PERIODICA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.6 LA FUNCION DE TRANSFERENCIA . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Indice general iii

5 Metodos numericos para PVI (I) 65


5.1 FUNCIONES ESPECIALES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
5.1.1 Funciones de Bessel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
5.2 ESTUDIO DE LAS SOLUCIONES DE UNA ED . . . . . . . . . . . . . . . . . . . . 67
5.2.1 Metodos numericos de resolucion de PVI . . . . . . . . . . . . . . . . . . . . . 68
5.2.2 Metodo de Euler o de la tangente . . . . . . . . . . . . . . . . . . . . . . . . . 68
5.2.3 Otra interpretacion del metodo de Euler . . . . . . . . . . . . . . . . . . . . . 69
5.2.4 Ejemplos en los que se aplica el metodo de Euler . . . . . . . . . . . . . . . . 70
5.2.5 Precision de los resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
5.3 METODO DE EULER MEJORADO . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
5.3.1 La formula de los trapecios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
5.3.2 Deduccion del metodo de Euler mejorado . . . . . . . . . . . . . . . . . . . . 79
5.3.3 Euler versus Euler mejorado . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
5.4 OTROS METODOS NUMERICOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
5.4.1 Ejemplo de metodo de dos pasos . . . . . . . . . . . . . . . . . . . . . . . . . 82
5.5 CONCLUSIONES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
5.6 EJERCICIOS ADICIONALES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
5.6.1 Aplicacion: calculo de la elasticidad b(x) . . . . . . . . . . . . . . . . . . . . . 84

6 Metodos numericos para PVI (II) 87


6.1 METODOS PARA RESOLVER PROBLEMAS
ASOCIADOS A SISTEMAS DE EEDD . . . . . . . . . . . . . . . . . . . . . . . . . 87
6.1.1 Metodo de Euler mejorado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
6.1.2 Sobre los programas S2 EULER y RK CELL . . . . . . . . . . . . . . . . . . . 88
6.1.3 Ejercicios con indicaciones para ser resueltos . . . . . . . . . . . . . . . . . . . 89
6.2 EJERCICIOS ADICIONALES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
6.2.1 Indicaciones para resolver los ejercicios (6.4)-(6.7) . . . . . . . . . . . . . . . . 95
6.3 SERIES DE FOURIER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
6.3.1 Programas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
6.3.2 Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
6.4 APENDICE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
6.4.1 Programa SN EULER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
6.4.2 Interpolacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

7 Metodos numericos para PVI (III) 105


7.1 METODOS DE RUNGE-KUTTA . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
7.1.1 Metodos de Taylor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
7.1.2 Metodo de Runge-Kutta de cuarto orden . . . . . . . . . . . . . . . . . . . . . 106
iv Indice General

7.1.3 Descripcion del programa RUNGEKUTTA . . . . . . . . . . . . . . . . . . . . 106


7.1.4 Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
7.1.5 Estabilidad de un metodo numerico . . . . . . . . . . . . . . . . . . . . . . . . 108
7.1.6 Descripcion del programa EJE7.4 . . . . . . . . . . . . . . . . . . . . . . . . . 109
7.2 PROBLEMAS DE CONTORNO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
7.2.1 Planteamiento matematico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
7.2.2 Aplicacion: Viga columna . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
7.3 ECUACIONES EN DERIVADAS PARCIALES . . . . . . . . . . . . . . . . . . . . . 111
7.3.1 Ecuacion del calor en una barra de longitud finita . . . . . . . . . . . . . . . . 111
7.3.2 Ecuacion de ondas sobre un intervalo acotado . . . . . . . . . . . . . . . . . . 114
7.3.3 Herramientas simbolicas para EDP . . . . . . . . . . . . . . . . . . . . . . . . 116

Bibliografa de practicas y sitios WEB 119


LISTA DE FIGURAS

1.1 Grafico de las soluciones de los ejemplos 1.3 y 1.4 . . . . . . . . . . . . . . . . . . . . 4


1.2 Campo de direcciones y solucion particular. Ejemplo 1.8 . . . . . . . . . . . . . . . . 6
1.3 Campo de direcciones y solucion particular. Ejemplo 1.9 . . . . . . . . . . . . . . . . 7
1.4 Representacion (a) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.5 Representacion (b) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.6 Ejemplo 1.10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.7 Grafico del ejemplo 1.11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.8 Grafico del ejemplo 1.12-a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.9 Grafico del ejemplo 1.12-b . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.10 Grafico del ejemplo 1.13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.1 Solucion del ejemplo 2.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12


2.2 Grafico del ejemplo 2.6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3 Grafico del ejemplo 2.7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.4 Grafico del ejemplo 2.8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.5 Grafico del ejemplo 2.9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.6 Grafico del ejemplo 2.10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.1 Evidencia grafica de que Prueba(2) debe ser nula en [1, 1] . . . . . . . . . . . . . . . 30


iv) iii) ii) i)
3.2 Graficas de Z = y1 6y1 + 9y1 24y1 20y1 en [2, 2] y [20, 60] . . . . . . . . . 47

4.1 Representacion grafica de (t) en [4, 4] . . . . . . . . . . . . . . . . . . . . . . . . . 52


4.2 Representacion grafica de la entrada g(t) y la salida I(t) . . . . . . . . . . . . . . . . 59

5.1 Grafica de J1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
5.2 Grafica de J0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
5.3 Graficas superpuestas de J1 y J0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
5.4 Graficas de Bessel J3/2 y J1/2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
5.5 Metodo de Euler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
5.6 Interpretacion del metodo de Euler . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
5.7 Soluciones exactas y aproximadas de los ejemplos 5.1 y 5.2 . . . . . . . . . . . . . . . 73
5.8 Soluciones exactas y aproximadas del ejemplo 5.2 para n = 100, 200 . . . . . . . . . . 73

v
vi Listado de figuras

5.9 Solucion aproximada del ejemplo 5.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . 74


5.10 Soluciones aproximadas del ejemplo 5.4 . . . . . . . . . . . . . . . . . . . . . . . . . 77
5.11 Regla del trapecio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
5.12 Soluciones exactas y aproximadas del ejemplo 5.5 (n = 21, 41) . . . . . . . . . . . . . 81
5.13 Ilustracion de un metodo de dos pasos . . . . . . . . . . . . . . . . . . . . . . . . . . 83

6.1 Grafico producido por S2 EULER al resolver el ejercicio 6.1 . . . . . . . . . . . . . . 90


6.2 Grafico producido por S2 EULER al resolver el ejercicio 6.2 . . . . . . . . . . . . . . 91
6.3 Grafico producido por S2 EULER al resolver el ejercicio 6.3 . . . . . . . . . . . . . . 92
6.4 Grafico obtenido al resolver el ejemplo 6.1 . . . . . . . . . . . . . . . . . . . . . . . . 93
6.5 Graficas de S2 EULER.M e INTERPOLA.M. Ejercicio 6.4 . . . . . . . . . . . . . . . 96
6.6 RK CELL e INTERPOLA.M aplicados al ejercicio 6.5 . . . . . . . . . . . . . . . . . 96
6.7 Solucion grafica del ejercicio 6.6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
6.8 Soluciones DSOLVE y RK CELL. Ejercicio 6.7 . . . . . . . . . . . . . . . . . . . . . . 98
6.9 Ejercicio 6.8. Sumas parciales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
6.10 Ejercicio 6.9. Sumas parciales N = 2, 26 . . . . . . . . . . . . . . . . . . . . . . . . . 100
6.11 Ilustracion grafica del metodo de interpolacion . . . . . . . . . . . . . . . . . . . . . . 103

7.1 Graficas producidas por EJE7.4.M . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110


7.2 Grafica producida por CALOR.M . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
7.3 Grafica producida por ONDA.M . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
INDICACIONES GENERALES

Antes de comenzar la sesion de trabajo con MATLAB (ML) y Adobe-Reader (PDF) debemos per-
sonalizar el entorno de trabajo.

1. (ML) Seleccionar adecuadamente, para no danar la vista, el tipo, tamano, color de las fuentes
y el color de fondo de las ventanas MATLAB.

2. (ML y PDF) Ajustar el tamano de ambas ventanas, Command Window de MATLAB y el guion
de la clase, para trabajar simultaneamente con ambas.

3. (ML) Crear carpetas personales temporales y declarar la correspondiente trayectoria (PATH)


mediante el menu principal: FILE\SET PATH. Esto es esencial para la ejecucion de programas.
Como alternativa basta ejecutar lo siguiente desde la ventana de comandos MATLAB
>>!mkdir C:\carpeta_personal
>>path(C:\carpeta_personal,path)
La primera lnea crea nuestra carpeta personal, mientras que la segunda informa a MATLAB
donde se encuentra esta, y la situa al comienzo de la lista de trayectorias.

4. (ML) Para disminuir el espacio vertical inter-lnea en la ventana de comandos ejecutar


>>format compact

5. (ML) Activar el interruptor MORE mediante


>>more on
para impedir el desplazamiento descontrolado de la ventana de comandos.

6. (ML) Desactivar el interruptor WARNING mediante


>>warning off
si se desea que el sistema no muestre en pantalla advertencias.

El alumno debe entregar por escrito la solucion de algunos ejercicios seleccionados, segun se indica
en la plantilla correspondiente. Para ello debe basarse en el desarrollo de los ejemplos que aparecen
resueltos en el guion de la clase.

vii
CLASE PRACTICA 1

Comandos simbolicos para resolver ecuaciones.


Campos de direcciones. Isoclinas

OBJETIVOS
Abordar la solucion de ecuaciones diferenciales (EEDD) y problemas de valor inicial desde
una perspectiva experimental, mediante la aplicacion de los recursos simbolicos del sistema
MATLABr .

Contribuir con el uso de herramientas graficas al estudio de las EEDD a traves de la visualiza-
cion del campo de direcciones asociado y las isoclinas.

1.1 COMANDOS SIMBOLICOS

1.1.1 Comandos para la derivacion


La siguiente secuencia halla la funcion derivada de f respecto a x.

>> syms x
>> diff(f,x)

Para hallar la derivada enesima hacemos

>>diff(f,x,n)

El smbolo Df representa simbolicamente la derivada de f . Para derivadas sucesivas usamos D2f,


D3f, etc.

1
2 Clase Practica 1

1.1.2 Problemas resueltos


Ejemplo 1.1 Dada la ecuacion
my 00 = mg + ky 0 ,
comprobar que
y(t) = A + Bekt/m + mgt/k,
es una solucion de dicha E.D

Solucion del ejemplo 1.1


1. Definir simbolicamente y(t).
2. Sustituir en la ED

>>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

Ejemplo 1.2 Comprobar que la funcion


2 c2 t/l2
u(x, t) = e sen(x/l)
es solucion de la ecuacion del calor
ut (x, t) = c2 uxx (x, t)

Solucion del ejemplo 1.2

>>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
Nota 1.1 No ha sido necesario declarar simbolicas a las variables u, t, x y l.

1.1.3 El comando DSOLVE. Resolucion de PVI


El comando DSOLVE es de tipo simbolico y permite obtener la solucion exacta de algunas EEDD y
de los correspondientes problemas de valor inicial.(1 El argumento de este comando es un STRING
de modo que no es necesario declarar simbolicas a las variables involucradas.
1
En lo que sigue usaremos las siglas PVI para problema(s) de valor(es) inicial(es).
Clase Practica 1 3

Ejemplo 1.3 Resolver la ED y 0 = 1 + y 2 , obtener la solucion local correspondiente a la C.I. (0, 1),
y representarla graficamente.

Resolucion del ejemplo 1.3


Paso 1 >>dsolve(Dy=1+y^2)
ans =tan(t+C1)
Paso 2 >>dsolve(Dy=1+y^2,y(0)=1)
ans =tan(t+1/4*pi)
Paso 3 >>ezplot(tan(t+pi/4),[-pi/4,pi/4]);
>> hold on
>> plot(0,1,*r)
Ejemplo 1.4 Resolver la ED y 0 = y 2t. Obtener la solucion local con la C.I. (2, 1) y represen-
tarla.

Resolucion del ejemplo 1.4

>>dsolve(Dy=-y-2*t)
ans = -2*t+2+exp(-t)*C1
>>dsolve(Dy=-y- 2*t,y(-2)=1)
ans = -2*t+2-5*exp(-t)/exp(2)
>>ezplot(-2*t+2-5*exp(-t)/exp(2),[-4,3]),
>>hold on
>>plot(-2,1,*g)

1.1.4 Ejemplos de EEDD que no pueden ser resueltas por DSOLVE


Ejemplo 1.5 Intentar resolver la ED y 0 = 2t y + cos(y) con DSOLVE.

Desarrollo del ejemplo 1.5


>>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 explcitamente la solucion, entonces el propio
DSOLVE ofrece, en algunos casos, la solucion en la forma implcita.
4 Clase Practica 1

Fig. 1.1: Grafico de las soluciones de los ejemplos 1.3 y 1.4

Ejemplo 1.6 Intentar resolver y 0 = y 2 (1 y) aplicando DSOLVE.

Resolucion del ejemplo 1.6

>>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
ans =
t+1/y-log(y)+log(-1+y)+C1=0

Ejemplo 1.7 Resolver la ED y 00 = y + cos(2x), con las condiciones iniciales y(0) = 1, y 0 (0) = 0.

Resolucion del ejemplo 1.7

>> 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)

Observar en las siguientes lneas el efecto del comando SIMPLIFY.


>> y=simplify(y)
y= -2/3*cos(x)^2+4/3*cos(x)+1/3

1.1.5 Funcion LAMBERTW(Z)


MATLAB se vale de una coleccion de funciones basicas elementales mas amplia que la que usualmente
utilizamos, con la cual nos puede dar una mayor cantidad de respuestas en forma cerrada. Una de
Clase Practica 1 5

estas funciones es w(z) = Lambertw(z) definida implcitamente por

w(z) exp(w(z)) = z

La definicion de cualquier funcion especial MATLAB puede ser consultada invocando en la lnea de
comandos
>>help+nombre
o bien, para aquellas especficas del nucleo MAPLE
>>mhelp+nombre
donde nombre es el nombre de la funcion.
Otras funciones especiales incorporadas al sistema MATLAB-MAPLE son BERNOULLI, BESSElJ,
DILOG, etc. Para ver el catalogo completo MAPLE ejecutamos la orden
>>mfunlist

Como evitar que Lambertw aparezca en la respuesta final?


Un caso en que podemos eliminar a Lambertw de la expresion que hemos obtenido al ejecutar
DSOLVE, es cuando podemos despejarle, es decir, cuando somos capaces de llegar a

lambertw(E1 (x)) = E2 (x),

donde E1 y E2 son ciertas expresiones en la variable x.


Entonces, atendiendo a la formulacion implcita que define a esta funcion, se tiene que

E2 (x) exp(E2 (x)) = E1 (x).

Ejercicio 1.1 Resolver las siguientes EEDD y PVI.

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


y(0) = 1/2

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

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

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

1.2 CAMPO DE DIRECCIONES DE UNA ED


Dada la ED y 0 = f (x, y) , si y = y(x) es solucion y (x0 , y0 ) es un punto de la grafica de y(x), entonces
la pendiente de y = y(x) en (x0 , y0 ) es y 0 (x0 ) que es igual a f (x0 , y0 ).
6 Clase Practica 1

Fig. 1.2: Campo de direcciones y solucion particular. Ejemplo 1.8

Lo anterior significa que, para conocer la pendiente de la solucion que pasa por (x0 , y0 ) no hace
falta conocer dicha solucion; 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 practica es imposible hacer esto con todos los
puntos del plano, pero nada nos impide hacerlo con tantos puntos como queramos, configurando un
grafico que llamaremos campo de direcciones de la ED.

Como construir el campo de direcciones asociado a una ED?


Consideremos la ED generica y 0 (x) = f (x, y(x)). Para construir su campo de direcciones procedemos
de la siguiente forma: por cada punto (x, y) de una red de puntos de R2 , convenientemente prefijada,
se dibuja un segmento de recta o vector de pendiente f (x, y). El resultado final de este trabajo
se interpreta como informacion grafica acerca de la solucion de la ED que aun no hemos intentado
resolver por otros medios. Para aumentar la eficiencia usaremos un programa MATLAB en el que
intervienen los comandos MESHGRID y QUIVER que permiten generar el grafico del campo de
direcciones.
Los vectores a considerar para obtener el campo de direcciones seran (1, y 0 ) = (1, f (x, y)).

Ejemplo 1.8 Construir el campo de direcciones de la ED y 0 = x, y representar la solucion particular


que cumple la condicion inicial y(0) = 0.

Resolucion del ejemplo 1.8


Las acciones MATLAB son las siguientes:

>>f=inline(x,x,y);
>>paso=0.5;
Clase Practica 1 7

Fig. 1.3: Campo de direcciones y solucion particular. Ejemplo 1.9

>>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)

La figura 1.2 (izquierda) muestra el campo de direcciones. La solucion particular se obtiene


artesanalmente como y = x2 /2, mediante separacion de variables, o bien, aplicando DSOLVE. A
continuacion aparecen las ordenes MATLAB necesarias (ver figura 1.2-derecha).

>>hold on % HOLD ON permite superponer los graficos


>>dsolve(Dy=x,y(0)=0, x)
>>ezplot(1/2*x^2,[-2.5,2.5]),
>>plot(0,0,*g)

Ejemplo 1.9 Construir el campo de direcciones asociado a y 0 = x/y y representar la solucion


particular que cumple la CI y(1) = 1.

Indicaciones para el ejemplo 1.9


La red creada con MESHGRID para el ejemplo 1.9 debe evitar y = 0 y contener al punto (1, 1) de
la condicion inicial. La expresion dentro de INLINE que define a la funcion debe escribirse entre
apostrofes, es decir, 0 x./y 0 . El punto debe preceder a /, y ^ pues se opera con vectores componente
a componente. La solucion grafica esta dada por las figuras en el cuadro 1.3.
8 Clase Practica 1

Ejercicio 1.2 Asociar cada una de las representaciones (a) y (b), mostradas en los cuadros 1.4 y
1.5, con el campo de direcciones de alguna de las siguientes EEDD:

i) y 0 = y x, ii) y 0 = 2x.

Fig. 1.4: Representacion (a) Fig. 1.5: Representacion (b)

1.3 TRAYECTORIAS ISOCLINAS


Definicion 1.1 Dada la ED y 0 = f (x, y) , se llaman curvas de nivel o isoclinas a las obtenidas
al imponer la condicion y 0 = k.

1.3.1 Metodo de las isoclinas


El metodo de las isoclinas es una variante de las ideas antes descritas. Los puntos del plano por los
que pasa una solucion con pendiente k, son los puntos de la curva de ecuacion f (x, y) = k (isoclina
de pendiente k).
Dibujando las distintas isoclinas se obtiene una representacion similar a la del campo de direc-
ciones. Puede tener interes identificar la isoclina para la pendiente 0 pues las soluciones tendran
generalmente un maximo o un mnimo al pasar por esta isoclina.

Ejemplo 1.10

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

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


Clase Practica 1 9

Desarrollo de la solucion del ejemplo 1.10


>>[x,y]=meshgrid(0:0.05:3,-2:0.05:2);
>> z=x+y.^2;
>> isoclinas=contour(x,y,z,20)

El resultado en pantalla es el que ofrece la figura 1.6.

Fig. 1.6: Ejemplo 1.10 Fig. 1.7: Grafico del ejemplo 1.11

Ejemplo 1.11 Representar las isoclinas de la ED y 0 = x2 + y 2 .

Solucion, paso a paso, del ejemplo 1.11 (ver fig. 1.7)


>>[x,y]=meshgrid(-4:0.05:4);
>>z=x.^2+y.^2;
>>isoclinas=contour(x,y,z,20);

Ejemplo 1.12

(a) Representar las isoclinas de la ED y 0 = 2x y.

(b) Que tipo de curvas son dichas isoclinas?

(c) Representar las isoclinas correspondientes a k = 0, y k = 2.

(d) Que particularidad tiene la correspondiente a k = 2?


10 Clase Practica 1

Fig. 1.8: Grafico del ejemplo 1.12-a Fig. 1.9: Grafico del ejemplo 1.12-b

Ejemplo 1.13 Construir el campo de di-


recciones y las curvas de nivel de la ED
y 0 = sen(x) + y.

Desarrollo, paso a paso, de la


solucion del ejemplo 1.13 (figura
1.10)
>>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);
Fig. 1.10: Grafico del ejemplo 1.13 >>quiver(x,y,dx,dy);
CLASE PRACTICA 2

Metodo de separacion de variables. Ecuaciones


homogeneas, exactas, implcitas y de Bernoulli

OBJETIVOS
1. Ejercitar el uso de herramientas simbolicas para la resolucion de ED.
2. Aplicar metodos de cuadraturas exactas estudiados en clase.

2.1 ECUACIONES EN VARIABLES SEPARADAS


Son de la forma
y 0 (x) = f (x)h(y).
Para resolver el PCI
y 0 = f (x)h(y),
y(x0 ) = y0 ,
escribimos la ED como sigue:
dy
= f (x)dx
h(y)
y si llamamos g = h1 , entonces queda g(y)dy = f (x)dx.
Integrando en ambos miembros de la igualdad anterior obtenemos
G(y) = F (x) + C, (Solucion general de la ED),
y calculamos el parametro C usando la CI. As
C = G(y0 ) F (x0 )
y por lo tanto
G(y) = F (x) + G(y0 ) F (x0 ), (Solucion del PCI).
Ejemplo 2.1 Resolver el PVI, y 0 = 2xy, y(0) = 2, y representar graficamente la solucion.

11
12 Clase Practica 2

Fig. 2.1: Solucion del ejemplo 2.1

Resolucion del ejemplo 2.1


Resolveremos el PVI con MATLAB siguiendo el metodo de separacion de variables.
>>syms F G x y c
>>f=-2*x; g=1/y;
>>x0=0;y0=2;
>>F=int(f); G=int(g);
>>sol=solve(G-F-c,y)% solucion general
>>c=solve(subs(sol,x0,x)-y0,c);
>>y=subs(sol,c,c)% solucion particular
Para obtener el grafico de la solucion del ejemplo 2.1 (figura 2.1), ejecutar en la lnea de comandos.
>>ezplot(y,[-2,2]), hold on, plot(0,2,+r)

Debemos distinguir entre la solucion general


sol =exp(-x^2+2*c)
y la solucion particular del PVI
y =exp(-x^2+log(2)).
El ejemplo 2.1 puede resolverse directamente usando el comando DSOLVE, en efecto
>>y=dsolve(Dy=-2*x*y,y(0)=2,x)
y =2*exp(-x^2)
Ejemplo 2.2 Resolver el PVI, y 0 = sen(x)(y 1), y(0) = 2.

Resolucion del ejemplo 2.2


>>f=sin(x)
Clase Practica 2 13

>>g=1/(y-1)
>>F=int(f,x,0,X)
F =-cos(X)+1
>>G=int(g,y,2,Y)
G =log(Y-1)
>>sol=solve(G-F,Y)
sol =exp(-cos(X)+1)+1

Ejemplo 2.3 Resolver y cos(x)dx (1 + y 2 )dy = 0, y(0) = 1.

Resolucion del ejemplo 2.3


Despejando obtenemos y 0 = y cos(x)/(1 + y 2 ) y usando DSOLVE

>>y=dsolve(Dy=y*cos(x)/(1+y^2),x)
y=-i*(-lambertw(exp(2*sin(x)+2*C1)))^(1/2)

La aceptacion de la anterior respuesta dependera del consumidor. Si tenemos en cuenta que


Lambertw(x)=w
es la funcion definida implcitamente por wew = x, lo que se obtiene es
y 2 exp(y 2 ) = K exp(2 sen(x)).

Ejemplo 2.4 Resolver la ED anterior, es decir, y cos(x)dx (1 + y 2 )dy = 0, y(0) = 1, separando


las variables.

Nota sobre el ejemplo 2.3. Supongamos que G(Lambertw(x), y, x, C) = 0, es la solucion gene-


ral (con parametro C), de una ED y 0 = f (x, y). Entonces podemos hallar una expresion equiva-
lente a la anterior si somos capaces de despejar a Lambertw(x) = w. En efecto, supongamos que
Lambertw(x) = F (x). Sabiendo que Lambertw(x) = w se caracteriza por satisfacer la ecuacion
w(x)ew(x) = x, entonces la nueva expresion de la solucion general es F (x)eF (x) = x.

Resolucion del ejemplo 2.4


Escribimos de una vez en la lnea de comandos

>> x=solve(int(cos(x),x)-int((1+y^2)/y,y))
x =
asin(1/2*y^2+log(y))

para obtener sen(x) = log(y) + y 2 /2 + c, que es la solucion general de la ED.


Para hallar la solucion correspondiente a las condiciones iniciales dadas hacemos

>>c=simple(sym(solve(subs(x=0,y=1,sin(x)=log(y)+1/2*y^2+c),c)))
c=-1/2
14 Clase Practica 2

es decir, de nuevo obtenemos la solucion particular: sen(x) = ln(y) + (y 2 1)/2.


Ejercicio 2.1 Aplicar herramientas MATLAB para resolver los siguientes ejercicios extrados del
Boletn 2.
a) y 0 + y 2 sen(x)
p =0 b) 4xy dx + (x2 + 1)dy = 0
c) xy 0 = y + x2 y 2 d) (x y)dy = (x + 3y)dx
e) (x + 1)dy = (y + 1)dx, y(0) = 1/2 f ) (1 + ex )yy 0 = ey , y(0) = 0
2 2

2.2 ECUACIONES DIFERENCIALES HOMOGENEAS


Ejemplo 2.5 Resolver la ED (x2 y 2 )dx + xydy = 0.

Resolucion del ejemplo 2.5


Es claro que es una ED homogenea pues P (x, y) = x2 y 2 y Q(x, y) = xy son funciones homogeneas
del mismo grado 2.
Se sabe entonces que el cambio de variable z = y/x la transforma en una ED en variables
separadas.
Para resolverla usando objetos simbolicos del MATLAB se escribe la ED en la forma
y 0 + (x2 y 2 )/(xy) = 0,
y se siguen los pasos siguientes:
>>syms x y z
>>y=x*z;
>>y=subs(y,z(x),z)
y =x*z(x)
>>subs(diff(y,x)+(x^2-y^2)/(x*y),y,y)
ans =z(x)+x*diff(z(x),x)+(x^2-x^2*z(x)^2)/x^2/z(x)
La respuesta ans es la ED de variables separables que, para simplificar, resolvemos directamente
usando el comando DSOLVE.
>>z=dsolve(z+x*Dz+(x^2-x^2*z^2)/x^2/z=0,x)
z =[ (-2*log(x)+C1)^(1/2)]
[ -(-2*log(x)+C1)^(1/2)]
Finalmente se deshace el cambio y se obtiene en forma implcita la solucion
(y/x)2 = 2 log(x) + C1.

2.3 ECUACIONES DIFERENCIALES EXACTAS


Consideremos la una ED de orden uno, que puede escribirse en la forma diferencial, es decir
P (x, y)dx + Q(x, y)dy = 0.
Clase Practica 2 15

Si P y Q tienen derivadas parciales primeras continuas en un abierto simplemente conexo D, entonces


en D equivalen:
1. P (x, y)dx + Q(x, y)dy = 0 es exacta.
2. P/y = Q/x.
Si la ED es exacta entonces existe el potencial F (x, y) tal que F/x = P y F/y = Q y la solucion
general es F (x, y) = C.
Para la obtencion de F se procede como sigue.
Integramos a F (x, y) respecto a una sola de sus variables, digamos x.
Z
F (x, y) = P (x, y)dx + f (y),

donde f (y) es una constante que depende de la variable y que ha permanecido constante durante la
integracion. Notar que para determinar a F (x, y) solo resta hallar a f (y)
Si derivamos con respecto a y
R
( P (x, y)dx)
Q= + f 0 (y).
y
Luego R
0 ( P (x, y)dx)
f (y) = Q .
y
Integrando respecto a y la anterior expresion obtenemos f (y). La solucion general es
F (x, y) = C, C R.
Ejemplo 2.6 Comprobar que la ED (2x + y)dx + (x 3y)dy = 0, es exacta. Resolver dicha ecuacion
y representar las soluciones.

Resolucion del ejemplo 2.6


Utilizamos las herramientas Matlab de la siguiente manera.
>>P=2*x+y;
>>Q=x-3*y;
>>test=diff(P,y)-diff(Q,x)
test =0
>>F1=int(P,x);
F1 =x^2+y*x
>>derf=Q-diff(F1,y)
derf =-3*y
>>f=int(derf,y)
f =-3/2*y^2
>>F=F1+f
F =x^2+y*x-3/2*y^2
16 Clase Practica 2

Fig. 2.2: Grafico del ejemplo 2.6

Por lo tanto la solucion general es x2 + xy 3/2y 2 = C.


Para representar graficamente las soluciones, o curvas de nivel, escribimos (ver figura 2.2)
>>[x,y]=meshgrid(0:0.1:3);
>>z=x.^2+y.*x-3/2*y.^2;
>>contour(x,y,z,15)

x2
Ejemplo 2.7 Comprobar que la ED y 0 = , es exacta. Resolver dicha ED y representar las solu-
y2
ciones.

Resolucion del ejemplo 2.7


>>P=x^2;
>>Q=-y^2;
>>test=diff(P,y)-diff(Q,x)
test =0
>>F1=int(P,x)
F1 =1/3*x^3
>>derf=Q-diff(F1,y)
derf =-y^2
>>f=int(derf,y)
f =-1/3*y^3
>>F=F1+f
F =1/3*x^3-1/3*y^3

Por lo tanto, la solucion general de la ED es 1/3x3 1/3y 3 = C.


Para representar las soluciones escribimos (ver figura 2.3)
Clase Practica 2 17

Fig. 2.3: Grafico del ejemplo 2.7

>>[x,y]=meshgrid(-3:0.05:3);
>>z=z=1/3*x.^3-1/3*y.^3;
>>contour(x,y,z,15)

Ejemplo 2.8 Comprobar que la ED cosh(x) sen(y) + senh(x) cos(y)y 0 = 0, es exacta. Resolver
dicha ecuacion y representar las soluciones.

Resolucion del ejemplo 2.8

>>P=cosh(x)*sin(y);
>>Q=sinh(x)*cos(y);
>>test=diff(P,y)-diff(Q,x)
test =0
>>F1=int(P,x)
F1 =sin(y)*sinh(x)
>>derf=Q-diff(F1,y)
derf =0
>>f=int(derf,y)
f =0
>>F=F1+f
F =sin(y)*sinh(x) Por lo tanto, la solucion del ejemplo 2.8 es sen(y) senh(x) = C. Para
representar las soluciones escribimos (ver figura 2.4)
>>[x,y]=meshgrid(0:0.05:2);
>>z=sin(y).*sinh(x);
>>contour(x,y,z,15)
18 Clase Practica 2

Fig. 2.4: Grafico del ejemplo 2.8

2.4 ECUACION DE CLAIRAUT


Recordemos que la ecuacion de Clairaut es de la forma

y = xy 0 + f (y 0 ). (2.1)

El metodo de resolucion es hacer y 0 = p y derivar respecto a x, teniendo en cuenta que p = p(x).


Nos queda entonces la expresion siguiente

dp
(x + f 0 (p)) = 0.
dx
dp
Si = 0 entonces y 0 = C y por tanto teniendo en cuenta (2.1) se obtiene que
dx
y = Cx + f (C), C R, (2.2)

siendo (2.2) un haz de rectas, todas ellas solucion de la ecuacion original (2.1).
Si x + f 0 (p) = 0, usando (2.1) se obtiene la solucion singular en forma parametrica:

x = f 0 (p),
y = f 0 (p)p + f (p).

En general no es necesario eliminar p para obtener una ecuacion de la forma G(x, y) = 0, y de hecho,
podra resultar muy difcil o imposible.

Ejemplo 2.9 Resolver la ecuacion de Clairaut y = xy 0 41 (y 0 )2 . Representar la solucion general


obtenida, as como la solucion singular.
Clase Practica 2 19

Fig. 2.5: Grafico del ejemplo 2.9

Resolucion del ejemplo 2.9


>>sol=dsolve(y=x*Dy-1/4*Dy^2,x)
sol = [ x*C1-1/4*C1^2]
[ x^2]
La segunda funcion es la envolvente de la familia integral de la ecuacion.
Para dar una idea grafica aproximada del conjunto solucion hacemos (ver figura 2.5)
>>x=(-4:0.1:4);
>>y=x.^2; z=0; %envolvente y recta para C1=0
>>w=x.*2-1; %recta para C1=2
>>u=x.*8-16; %recta para C1=8
>>v=x.*4- 4; %recta para C1=4
>>t=x.*3-9/4; %recta para C1=3
>>j=x.*(-2)-1; %recta para C1=-2
>>plot(x,y,x,z,x,w,x,u,x,v,x,t,x,j)
>>legend(Envolvente,C1=0,C1=2,C1=8,C1=4,C1=3,C1=-2)

Ejercicio 2.2 Resolver utilizando herramientas MATLAB, la ecuacion de Clairaut y = xy 0 + ln(y 0 ).

2.5 ECUACION DE BERNOULLI


La llamada ecuacion de Bernoulli es de la forma

y 0 + p(x)y = q(x)y n .

Ejemplo 2.10 Resolver el PVI y 0 + y/x = y 2 ln(x), y(1) = 1, y representar la solucion.


20 Clase Practica 2

Resolucion del ejemplo 2.10


>>sol=dsolve(Dy+y/x=y^2*log(x),y(1)=1,x)
sol =2/x/(-log(x)^2+2)
La grafica en el intervalo [1, 3] se obtiene ejecutando (ver figura 2.6)
>>ezplot(sol,[1,3])
Ejercicio 2.3

x3
1. Resolver la ED 3xy 0 2y = y2
.
x3
2. Resolver el PVI 3xy 0 2y = y2
, y(1) = 1.

Fig. 2.6: Grafico del ejemplo 2.10


La ED de Bernoulli
y 0 + p(x)y = q(x)y n
se resuelve transformandola en lineal, para lo cual se procede como sigue:
1
Se divide la ED por y n y se hace el cambio z = yn1 , obteniendo una ED lineal en z(x).
>>syms p q n
>>y=z^(1/(1-n));
>>y=subs(y,z(x),z)
y =z(x)^(1/(1-n))
>>op=diff(y,x)+p*y-q*y^n;
>>a=op/z(x)^(n/(1-n))
a=(z(x)^(1/(1-n))/(1-n)*diff(z(x),x)/z(x)p*+...
z(x)^(1/(1-n))-q*(z(x)^(1/(1-n)))^n)/(z(x)^(n/(1-n)))
Ejemplo 2.11 Resolver la ecuacion y 0 + y/x = log(x)y 3 , aplicando el metodo antes explicado.
Clase Practica 2 21

Resolucion del ejemplo 2.11


>>syms x
>>y=z^(1/(1-3));
>>y=subs(y,z(x),z)
y =z(x)^(1/(1-3))
>>op=diff(y,x)+y/x-log(x)*y^3
op =-1/2/z(x)^(3/2)*diff(z(x),x)+1/z(x)^(1/2)/x-log(x)/z(x)^(3/2)
>>a=op/z(x)^(3/(1-3));
>>a=simplify(a)
a =-1/2*(diff(z(x),x)*x-2*z(x)+2*log(x)*x)/x
A continuacion se resuelve la anterior ED lineal usando DSOLVE
>>z=dsolve(-1/2*Dz+z/x=log(x),x)
z =2*log(x)*x+2*x+x^2*C1
Finalmente se debe deshacer el cambio z = 1/y 2 para obtener la solucion.

2.6 FACTOR INTEGRANTE


Recordemos que si la ED P (x, y)dx + Q(x, y)dy = 0 no es exacta, siempre existe una funcion =
(x, y) tal que P (x, y)dx + Q(x, y)dy = 0 s es exacta. Los casos aparentemente mas sencillos son
aquellos en que puede encontrarse un factor , llamado factor integrante (f.i.), que solo depende
de x o solo depende de y. Un ejemplo de f.i. que depende de ambas variables x e y es aquel que
encontramos para la ED
(xy 2 yx2 )dx + x3 dy = 0. (2.3)
Si llamamos P (x, y) = xy 2 yx2 y Q(x, y) = x3 comprobaremos que

1 1
= 2 2
xP + yQ xy

es un f.i. para la ED (2.3).


La comprobacion de lo anteriormente dicho podemos hacerla facilmente con MATLAB.
>>syms x y
>>P=x*y^2-y*x^2;Q=x^3;
>>Test=diff(P,y)-diff(Q,x); %No es exacta
>>M=1/(x*P+y*Q); %f.i. en (x,y)
>>P=M*P;Q=M*Q ;
>>Test1=simplify(diff(P,y)-diff(Q,x))
Test1=0
La respuesta Test1 =0 demuestra experimentalmente que M = x2 y 2 es ciertamente un f.i.
para (2.3).
22 Clase Practica 2

El potencial F (x, y) se obtiene mediante las siguientes operaciones.


>>F1=int(P,x)
>>derf=Q-diff(F1,y);
>>f=int(derf,y)
>>F=F1+f
para obtener que F = log(x) x/y, por lo tanto la solucion es log(x) x/y = C.

Nota 2.1 El anterior procedimiento puede aplicarse a cualquier ecuacion homogenea. El alumno
puede comprobar que en el caso P = x2 y 2 , Q = xy, el f.i. que se obtiene depende de una sola
variable.

Ejemplo 2.12 Usar MATLAB para resolver la siguiente ED del Boletn 2.



y0 = x + y. (2.4)

Resolucion del ejemplo 2.12


0
La solucion puede obtenerse mediante
el cambio z = x + y, ya que es de la forma: y = G(ax + by + c)
con a = b = 1, c = 0 y G(t) = t. Sin embargo, aun no tenemos explicacion para el siguiente
resultado MATLAB:
>>dsolve(Dy=sqrt(x+y),x)
ans =0
Es simple comprobar que y = 0 no es solucion de la ecuacion. Sin embargo, si elevamos al cuadrado
ambos miembros, aunque introduzcamos soluciones adicionales, entonces s obtenemos respuesta:
>>dsolve(Dy^2=(x+y),x)
ans =
[ 1-x]
[ (-lambertw(-exp(-1-1/2*x+1/2*C1))-1)^2-x]
Notemos que ahora tenemos todas las soluciones de

y 0 = x + y.

Mediante comprobacion directa vemos que y = 1 x es solamente solucion de



y0 = x + y

Por otra parte, teniendo en cuenta que lambertw(x)=w(x) cumple

w(x)ew(x) = x,

obtenemos de la propia respuesta dada por MATLAB


(-lambertw(-exp(-1-1/2*x+1/2*C1))-1)^2-x
Clase Practica 2 23

la siguiente expresion:

(1 x + y) exp(1 x + y) = exp(x/2 + C)

Para nuestro problema original, tenemos como respuesta la siguiente ecuacion



(1 + x + y) exp(1 x + y) = exp(x/2 + C) (2.5)

a la cual podemos llegar con el cambio z = x + y, sin usar herramientas MATLAB.


Insistamos en el problema. La respuesta MATLAB se obtuvo al integrar la ecuacion

y = (y 0 )2 x,

que es de la forma, resuelta respecto a y, del tipo Lagrange

y = (1)x + (y 0 )2 .

Hacemos y 0 = p y derivamos con respecto a x para obtener la ecuacion lineal en x = x(p)

(p + 1)x0 = 2p,

que se integra facilmente obteniendo


x = 2p log(p + 1) + C,
(2.6)
y = p2 2p + log(p + 1) C,

teniendo en cuenta que y = p2 x.



Aunque parezca a primera vista que es difcil, en realidad es muy facil eliminar p = x + y de
las ecuaciones (2.6), para deducir (2.5).
Por lo tanto (2.4) puede ser considerada de dos maneras. A saber, como de la forma y 0 =
G(ax + by + c), y como Lagrange y = xf (y 0 ) + g(y 0 ).
Tambien podemos ver la ED del ejemplo (2.12) como la ecuacion no exacta

x + y dx dy = 0.

Lo mas interesante ahora es que resulta infructuoso el intento de hallar un f.i. que solo dependa de
x o que solo dependa de y. Comprobarlo!
En este caso la sugerencia es descubrir que la ED admite un f.i. de la forma (x, y) = (x + y).
Para obtenerlo procedemos de la forma siguiente.

Tenemos P = x + y y Q = 1. Si es de la forma anterior es f.i. entonces debe ser
(P ) (Q)
= ,
y x
es decir,
1
y x + y + = x ,
2 x+y
24 Clase Practica 2

o equivalentemente
1
0 (x + y) x + y + (x + y) = 0 (x + y).
2 x+y
Debido a la forma de , y a la expresion anteriormente calculada, si hacemos t = x + y, obtenemos,
separando las variables.
d dt
= (2.7)
2 t(1 + t)
En todo lo anterior, tener en cuenta que hemos usado la regla de la cadena para calcular las derivadas
de respecto a x e y, esto es,

(x, y) = 0 (x + y), (x, y) = 0 (x + y),
x y

siendo 0 la derivada ordinaria de la funcion (t).


Integrando (2.7) obtenemos que el f.i. de la ED es
1
(x, y) = .
1+ x+y

Notar que en este caso (t) = 1/(1 + t).
Sabiendo que P dx + Qdy = 0 es exacta procedemos al calculo del potencial F (x, y).
La integral general es F (x, y) = C.
r
0 y
Ejercicio 2.4 Resolver el siguiente PVI (Boletn 2) y = , y(1) = 4.
x
CLASE PRACTICA 3

Resolucion simbolica de sistemas diferenciales

OBJETIVOS
Ejercitar el uso combinado de tecnicas matematicas y herramientas simbolicas del MATLAB para el
estudio y resolucion de sistemas diferenciales lineales y ecuaciones lineales de orden superior.

3.1 SISTEMA LINEAL HOMOGENEO DE


COEFICIENTES CONSTANTES
Ejemplo 3.1 Resolver el sistema diferencial lineal siguiente
x0 = 5x + 3y
y 0 = 2x 10y
1. Mediante el comando DSOLVE.
2. Usando herramientas MATLAB pero siguiendo la via matricial.

Resolucion del ejemplo 3.1


I- MATLAB resuelve directamente este tipo de sistemas utilizando el comando DSOLVE con la sin-
taxis conocida. Si llamamos S a la solucion y escribimos

>>S=dsolve(Dx=-5*x+3*y,Dy=-2*x-10*y)

MATLAB devuelve las componentes simbolicas de la solucion:

S=
x: [1x1 sym]
y: [1x1 sym]

25
26 Clase Practica 3

Para obtener explcitamente la solucion S se pide cada una de sus componentes [S.x,S.y] o
pretty([S.x,S.y])

>>pretty([S.x,S.y])
[-2C1 exp(-8t)+3C1 exp(-7t)+3C2 exp(-7t)-3C2 exp(-8t),
-2C1 exp(-7t)+2C1 exp(-8t)+3C2 exp(-8t)-2C2 exp(-7t)]

es decir, la respuesta es
x = C1 (2e8t + 3e7t ) + 3C2 (e7t e8t )
y = 2C1 (e7t + e8t ) + C2 (3e8t 2e7t )
Alternativamente se puede obtener directamente la respuesta indicando las componentes del vector
solucion.
>>[x,y]=dsolve(Dx=-5*x+3*y,Dy=-2*x-10*y)

x=-2*C1*exp(-8*t)+3*C1*exp(-7*t)+
3*C2*exp(- 7*t)-3*C2*exp(-8*t)

y=-2*C1*exp(-7*t)+2*C1*exp(-8*t)+
3*C2*exp(- 8*t)-2*C2*exp(-7*t)
Otra va para resolver el anterior sistema lineal homogeneo, de coeficientes constantes, es seguir
la via matricial directa. Para ello comenzamos escribiendo el sistema en forma matricial:
 0     
x 5 3 x x
= =A
y 2 10 y y
Conocer la solucion general de este sistema significa conocer una matriz fundamental R(t) del mismo.
Eso es lo que calcularemos mediante comandos MATLAB.
II- Sabemos que R(t) = etA . Para calcular etA usaremos el comando EXPM de MATLAB.
>>A=[-5 3;-2 -10];%Crear la matriz A
>>syms t %declarar simbolica t
>>Rt=expm(t*A); %calcular matriz fundamental
>>X1=Rt(:,1); %opcional calculo de un SFS,
>>X2=Rt(:,2); %es decir, de las columnas de R(t)
>>diff(X1)-A*X1 %Pueden hacerse comprobaciones
ans = [ 0]
[ 0]
>>diff(X2)-A*X2
ans = [ 0]
[ 0]
Clase Practica 3 27

Visualizar Rt y comparar con los resultados anteriores

>>Rt
Rt =
[-2*exp(-8*t)+3*exp(-7*t),3*exp(-7*t)-3*exp(-8*t)]
[-2*exp(-7*t)+2*exp(-8*t),3*exp(-8*t)-2*exp(-7*t)]
>>X1
X1 =
[-2*exp(-8*t)+3*exp(-7*t)]
[-2*exp(-7*t)+2*exp(-8*t)]
>>X2
X2 =
[-3*exp(-8*t)+3*exp(-7*t)]
[-2*exp(-7*t)+3*exp(-8*t)]

3.2 SISTEMA LINEAL COMPLETO DE


COEFICIENTES CONSTANTES
Ejemplo 3.2 Resolver el sistema diferencial lineal siguiente:

x0 y = e t
y 0 + 5x + 2y = sen(3 + t),

con x(0) = 1, y(0) = 1.

1. Directamente usando DSOLVE.

2. Utilizando el MVP (1 .

Resolucion del ejemplo 3.2


1. Mediante DSOLVE
>>[x,y]=dsolve(Dx-y=exp(t),Dy+5*x+2*y=sin(3+t),x(0)=1,y(0)=-1)
x=
1/2*exp(-t)*sin(2*t)*(5/8-1/5*sin(3)+1/10*cos(3))+1/2*exp(-t)*...
sin(2*t)*(-3/8-1/5*cos(3)-1/10*sin(3))+(5/8-1/5*sin(3)+1/10*...
cos(3))*exp(-t)*cos(2*t)+3/8*exp(t)+1/5*sin(3+t)-1/10*cos(3+t)
y=
1
Metodo de Variacion de Parametros
28 Clase Practica 3

-5/2*exp(-t)*sin(2*t)*(5/8-1/5*sin(3)+1/10*cos(3))-1/2*...
exp(-t)*sin(2*t)*(-3/8-1/5*cos(3)-1/10*sin(3))+1/5*cos(3+t)...
+(-3/8-1/5*cos(3)-1/10*sin(3))*exp(-t)*cos(2*t)-5/8*exp(t)...
+1/10*sin(3+t)

2. Para la resolucion mediante el MVP usaremos la formula correspondiente para obtener una
solucion particular del sistema diferencial lineal X 0 = A(t)X + B(t). La solucion general del
mismo es Z t
X(t) = R(t)V + R(t) R(s)1 B(s)ds, (3.1)
0

siendo R(t) una matriz fundamental y V Rn .


La formula (3.1) corresponde al caso general A(t) de coeficientes variables. El caso particular
de coeficientes constantes aparece a continuacion.
Recordemos que, en caso de sistemas diferenciales homogeneos con coeficientes constantes,
X 0 = AX, una matriz fundamental esta dada por R(t) = etA .
Luego, si se trata de un sistema completo de coeficientes constantes X 0 = AX + B(t), una
solucion particular Xp esta dada por
Z t
Xp = e tA
esA B(s)ds.
0

Para resolver el sistema diferencial lineal del ejemplo 3.2, es decir

x0 y = et
y 0 + 5x + 2y = sen(3 + t),

con x(0) = 1, y(0) = 1, usaremos la formula general de variacion de parametros para hallar
una solucion particular Xp del sistema no homogeneo.

>>syms s t
>>A=[0 1;-5 -2];
>>Bt=[exp(t);sin(3+t)];
>>Bs=subs(Bt,s,t);
>>Rt=expm(t*A)
Rt=[exp(-t)*cos(2*t)+1/2*exp(-t)*sin(2*t),1/2*exp(-t)*sin(2*t)]
[-5/2*exp(-t)*sin(2*t), exp(-t)*cos(2*t)-1/2*exp(-t)*sin(2*t)]
>>Rs=subs(Rt,s,t)
Rs=[exp(-s)*cos(2*s)+1/2*exp(-s)*sin(2*s),1/2*exp(-s)*sin(2*s)]
Clase Practica 3 29

[-5/2*exp(-s)*sin(2*s),exp(-s)*cos(2*s)-1/2*exp(-s)*sin(2*s)]
>>Xp=Rt*int(Rs\Bs,s,0,t);
>>Prueba=diff(Xp)-A*Xp-Bt;% Comprobacion

Si

>>simplify(Prueba)

no produce [0;0], ejecutar

>>ezplot(Prueba(1),[-1,1]),
>>ezplot(Prueba(2),[-1,1])

para apreciar, con cierta significacion, que realmente Prueba es cero.(2


La formulacion explcita de la solucion particular Xp se compone de una cadena de caracteres
demasiado larga y por tanto de reducida utilidad, en efecto, si hacemos la conversion de SYM
a STRING mediante el comando CHAR, tendremos que

>>size(char(Xp))
ans =
1 1669
es decir, Xp esta compuesto de 1669 caracteres!
La figura 3.1 muestra graficamente el resultado de ejecutar ezplot(Prueba(2),[-1,1]). El rango
de variacion en el intervalo [1, 1] sugiere la nulidad con una significacion del orden de 1015 .
Ejemplo 3.3 Resolver el siguiente sistema lineal completo de coeficientes constantes
x0 + x + 2y = cos(t) + sen(t) + et
y 0 2x + y = sen(t) cos(t),
x(0) = 1, y(0) = 1.

Obtencion de la solucion del ejemplo 3.3 mediante DSOLVE


>>sis1=Dx+x+2*y=cos(t)+sin(t)+exp(-t);
>>sis2=Dy-2*x+y=sin(t)-cos(t);
>>[x,y]=dsolve(sis1,sis2,x(0)=1,y(0)=1)
x =cos(t)-1/2*exp(-t)*sin(2*t)
y =1/2*exp(-t)+sin(t)+1/2*exp(-t)*cos(2*t)
2
Los errores menores que eps 2.2e 16 se asume que son cero.
30 Clase Practica 3

Fig. 3.1: Evidencia grafica de que Prueba(2) debe ser nula en [1, 1]

3.3 RESOLUCION DE SISTEMAS DIFERENCIALES


LINEALES HOMOGENEOS DE COEFICIENTES
CONSTANTES POR LA VIA ESPECTRAL
Definicion 3.1 Valores y vectores propios.
Sea A una matriz constante, cuadrada de orden n. Decimos que es un valor propio o autovalor
de A si existe un vector u no nulo tal que Au = u. A este u se le llama vector propio o autovalor
asociado a .

3.3.1 Calculo de valores y vectores propios via MATLAB

Si A es una variable que contiene una matriz cuadrada, entonces

>>[V,D] = eig(A)

produce la matriz V = [u1 un ] de autovectores, y la matriz diagonal D, tales que AV = V D.


Es decir, la diagonal principal de D contiene a los autovalores de A.
Si hacemos

>>valores_propios=eig(A)

almacenamos en la variable vectorial valores_propios a los valores propios de A.


Clase Practica 3 31

3.3.2 El metodo espectral


El siguiente resultado nos ofrece la herramienta teorica para resolver un sistema diferencial lineal
homogeneo, de coeficientes constantes por la via de los valores y vectores propios.

Teorema 3.1 Si la matriz A tiene n valores propios diferentes 1 ,...,n , y uk es un vector propio
asociado a k , k = 1, ..., n, entonces

{e1 t u1 , , en t un },

es un sistema o conjunto fundamental de soluciones (SFS) para el sistema diferencial X 0 = AX.

Ejemplo 3.4 Resolver por la via espectral, y aplicando herramientas MATLAB, el siguiente pro-
blema con valores iniciales

1 2 1 1
X0 = 1 0 1 X(t) X(0) = 0
4 4 5 0

Indicaciones para resolver el ejemplo 3.4


Usar el comando EIG para calcular los valores y vectores propios de la matriz del sistema y verificar
si son diferentes dos a dos para aplicar el Teorema 3.1. Recordar que una vez tengamos una matriz
fundamental R(t), entonces
c1
X(t) = R(t) c2
c3
nos da la solucion general del sistema. Luego, la unica solucion estara dada por la solucion del
siguiente sistema
c1 1
X(0) = R(0) c2 = 0
c3 0
es decir,
c1 1
c2 = R(0)1 0
c3 0
32 Clase Practica 3

3.4 EEDD LINEALES DE ORDEN SUPERIOR


Las EEDD de orden superior pueden ser tratadas con el comando DSOLVE de una manera muy flexi-
ble. Se presentan a continuacion diversos ejemplos de EEDD homogeneas y completas de coeficientes
constantes para las que se obtiene la solucion general as como ciertas soluciones particulares.
Se presenta tambien un ejemplo de coeficientes variables que corresponde a una Euler.

3.4.1 EEDD lineales de orden superior homogeneas


Ejemplo 3.5 Resolver la ED y 00 + 4y 0 + 4y = 0

Resolucion mediante MATLAB del ejemplo 3.5


>>S=dsolve(D2y+4*Dy+4*y=0)
S =C1*exp(-2*t)+C2*exp(-2*t)*t %(sol. gral.)

Observese que 2 es una raz doble del polinomio caracterstico

Ejemplo 3.6 Resolver el PVI y 00 + 4y 0 + 4y = 0, y(0) = 1, y 0 (0) = 4.

Resolucion mediante MATLAB del ejemplo 3.6


>>S=dsolve(D2y+4*Dy+4*y=0,y(0)=1,Dy(0)=4)
S=exp(-2*t)+6*exp(-2*t)*t %(sol. part.)

Notar que se ha obtenido C1 = 1 y C2 = 6. En todos los casos las respuestas son exactas, con
formulas cerradas.

3.4.2 EEDD lineales de orden superior completas


Ejemplo 3.7 Resolver la ED y 00 + y 0 + 4y = 1.

Resolucion mediante MATLAB del ejemplo 3.7


>>S=dsolve(D2y+Dy+4*y-1=0)
S=1/4+C1*exp(-1/2*t)*cos(1/2*15^(1/2)*t)+C2*exp(-1/2*t)*...
sin(1/2*15^(1/2)*t)

Notar que el polinomio caracterstico tiene races complejas conjugadas (1 i 15)/2.

Ejemplo 3.8 Resolver y 000 = log(x)/x2 , y(1) = 0, y 0 (1) = 1, y 00 (1) = 2.


Clase Practica 3 33

Resolucion mediante MATLAB del ejemplo 3.8


>>y=dsolve(D3y=log(x)/x^2,y(1)=0,Dy(1)=1,D2y(1)=2,x)
y=-1/2*log(x)^2*x+3/2*x^2-2*x+1/2

COMO SOLVENTAR DIFICULTADES RELACIONADAS CON DSOLVE?


Si una ED no admite solucion exacta en terminos del catalogo de funciones elementales MATLAB,
entonces DSOLVE no puede ofrecer una solucion. Existen otras causas que impiden a DSOLVE
llegar a una respuesta exacta pero su consideracion queda fuera de nuestras posibilidades.
En algunos casos el comando DSOLVE puede producir respuestas poco amigables, es decir, ex-
cesivamente largas o expresadas en terminos de funciones especiales poco usuales. En tales casos
debemos hallar metodos alternativos que produzcan soluciones, quizas aproximadas pero mucho mas
potables. Para ilustrar lo dicho, a continuacion se ofrece un ejemplo de EDL homogenea de cuarto
orden, cuya solucion se obtiene de forma aproximada, siguiendo un metodo basado en nuestros
conocimientos teoricos. En el apendice se amplan los detalles tecnicos del metodo y se ejerce una
crtica necesaria.

Ejemplo 3.9 Considere la EDLH (3 L[y] = 0, donde

L[y] = y iv) 6y iii) + 9y ii) 24y i) 20y.

Intente resolverla, es decir, halle informacion util sobre la solucion.

Desarrollo del ejemplo 3.9


Tratemos de resolver L[y] = 0 utilizando DSOLVE.

>>y=dsolve(D4y-6*D3y+9*D2y-24*Dy-20*y=0);
>> size(char(y))
ans = 1 2765

La respuesta (4 consta de 2765 caracteres!


Siendo la EDL de coeficientes constantes, podemos intentar hallar una respuesta, satisfactoria en
cierto sentido (ver Apendice), calculando un SFS a partir del polinomio caracterstico

P = m4 6m3 + 9m2 24m 20.

Calculemos aproximadamente las races de P con alguno de los comandos SOLVE y ROOTS.
El comando SOLVE resuelve exactamente, en terminos de radicales, ecuaciones polinomicas
hasta el grado 4. ROOTS calcula aproximadamente las races de cualquier polinomio mediante un
3
Ecuacion Diferencial Lineal y Homogenea
4
La respuesta puede cambiar segun la version MATLAB o el software que se utilice
34 Clase Practica 3

procedimiento muy eficiente y preciso. No obstante, los resultados numericos obtenidos mediante
SOLVE deberan ser superiores, en algunos casos, a los producidos por ROOTS. El nivel de coin-
cidencia entre ambos es del orden 1015 en el caso que nos ocupa, segun se aprecia en las pruebas
numericas que se muestran a continuacion.

>>format long e
>>S=numeric(solve(x^4-6*x^3+9*x^2-24*x-20))
S =
5.291305619991860e+00
6.653067648628088e-01+2.373811784418384e+00i
6.653067648628088e-01-2.373811784418384e+00i
-6.219191497174775e-01
>>R=roots([1 -6 9 -24 -20])
R =
5.291305619991865e+00
6.653067648628106e-01+2.373811784418383e+00i
6.653067648628106e-01-2.373811784418383e+00i
-6.219191497174774e-01
>>max(abs(R-S))
ans= 5.329070518200751e-015

El correspondiente SFS es

y1 = e0.6653067648628088 t sen(2.373811784418384 t),


y2 = e 0.6653067648628088 t cos(2.373811784418384 t),
y3 = e5.291305619991860 t
y4 = e0.6219191497174775 t

Ver en el APENDICE como intentamos valorar la calidad de esta solucion aproximada.

Ejercicio 3.1 Dadas las siguientes EEDD

a.- y iv) 10y iii) + 3y ii) 2y i) 20y = 0,

b.- y iii) 2y ii) + 3y i) = 0,

c.- y iv) 6y iii) + 9y ii) 24y i) + 50y = 1,

obtener una solucion particular para la ED del apartado c) mediante el metodo de coeficientes inde-
terminados (MCI) sin ayuda del MATLAB, y un SFS para a), b) y c).
Clase Practica 3 35

3.5 ECUACION DE EULER Y DE EULER


GENERALIZADA
La ecuacion de Euler de segundo orden es de la forma
x2 y 00 (x) + xy 0 (x) + y(x) = (x)
Recordemos que esta se transforma en una ED de coeficientes constantes mediante el cambio x = et ,
y que la ecuacion de Euler generalizada de segundo orden es de la forma
(ax + b)2 y 00 (x) + (ax + b)y 0 (x) + y(x) = (x)
Ejemplo 3.10 Resolver
(2x + 1)2 y 00 (4x + 2)y 0 12y = 8x.

Resolucion del ejemplo 3.10 mediante MATLAB


Aplicando DSOLVE se obtiene que

>>y=dsolve((2*x+1)^2*D2y-(4*x+2)*Dy-12*y=8*x,x)
y=2/3*x^3*(2+x)/(2*x+1)+ C1*(2*x+1)^3+C2/(2*x+1)

Ejercicio 3.2 A cuales de las siguientes EEDD, despues de ser transformadas en EDL de coe-
ficientes constantes, puede aplicarse el MCI? Cual es la alternativa al MCI? Intentar resolverlas
mediante DSOLVE y mediante metodos artesanales. Contrastar los resultados.
1. (2x + 1)2 y 00 (4x + 2)y 0 12y = 8x
2. x2 y 00 + 5xy 0 2y = 5 log(x)
3. (10x + 50)2 y 00 3(x + 5)y 0 + 7y = x2
4. x3 y 00 6x2 y 0 + 2xy = x + 1
5. 5x2 y 00 6xy 0 + y = ex

3.6 CALCULO DE WRONSKIANOS Y APLICACIONES


En lo que sigue se utilizara el wronskiano para el estudio de la independencia lineal de sistemas de
funciones. Tambien se aplicara en la obtencion de una EDLH conocidas algunas de sus soluciones.
El wronskiano juega un papel relevante en la teora y practica de las EDL. Si y1 e y2 son funciones
definidas sobre el intervalo I, entonces el wronskiano W (y1 , y2 ) de estas se define como:
 
y1 (t) y2 (t)
W (y1 , y2 )(t) = det , t I.
y10 (t) y20 (t)
36 Clase Practica 3

3.6.1 Wronskiano e independencia lineal


Teorema 3.2 Sean x1 (t) y x2 (t) dos soluciones de una ED del tipo

x00 (t) + p(t)x0 (t) + q(t)x(t) = 0,

con p(t) y q(t) continuas en I.


Entonces se cumple que:
x1 y x2 son linealmente independientes en I
W (x1 , x2 )(t) 6= 0 t I
t I tal que W (x1 , x2 )(t) 6= 0.

Nota 3.1 Sean x1 y x2 de clase 1 en I, no necesariamente soluciones de una EDLH. Entonces


1) W (x1 , x2 )(t) 6= 0 para algun t I x1 y x2 son linealmente independientes en I.
2) Sin embargo, es posible que x1 y x2 sean linealmente independientes en I y W (x1 , x2 )(t) = 0
en algun I. Por ejemplo, t y t2 son l.i. en [1/2, 1/2] y W (t, t2 )(0) = 0.

Ejemplo 3.11 Calcular el Wronskiano de e2t y senh(t) 2 cosh(2t).

Resolucion del ejemplo 3.11


>>a=[exp(-2*t), sinh(t)-2*cosh(2*t)] ;
>> b=diff(a,t) % tambien diff(a)
b=[-2*exp(-2*t),cosh(t)-4*sinh(2*t)]
>> c=[a;b]
c=[exp(-2*t),sinh(t)-2*cosh(2*t)]
[-2*exp(-2*t),cosh(t)-4*sinh(2*t)]
>>d=det(c) %(es el Wronskiano pedido)
d=exp(-2*t)*cosh(t)-4*exp(-2*t)*sinh(2*t)+...
2*exp(-2*t)*sinh(t)-4*exp(-2*t)*cosh(2*t)

Para abreviar puede utilizarse el programa WRONSKY.M, que puede descargarse desde la Web
de la asignatura [15].

Ejemplo 3.12 Calcular el Wronskiano de ex , e2x y e3x .

Resolucion del ejemplo 3.12.


>>a=[exp(x),exp(2*x),exp(3*x)];
>>b=diff(a,x);
>>c=diff(b,x);
>>d=[a;b;c]
Clase Practica 3 37

d=[exp(x),exp(2*x),exp(3*x)]
[exp(x),2*exp(2*x),3*exp(3*x)]
[exp(x),4*exp(2*x),9*exp(3*x)]
>>W=det(d)%%%%(es el Wronskiano)
W=2*exp(x)*exp(2*x)*exp(3*x)

Ejemplo 3.13 Determinar si las siguientes funciones son linealmente independientes:


f (t) = et sen(2t) y g(t) = sen(t) cos(t) en el intervalo [1/2, 3/4].

Resolucion del ejemplo 3.13 usando MATLAB


>>syms a b c d t
>>a=[exp(t)*sin(2*t),sin(t)*cos(t)];
>>b=diff(a,t);
>>c=[a;b];
>>d=det(c);
>>d=simplify(d)
d=2*exp(t)*sin(2*t)*cos(t)^2-exp(t)*...
sin(2*t)- sin(t)*cos(t)*exp(t)*...
sin(2*t)-2*sin(t)*cos(t)*exp(t)*cos(2*t)
>>W=subs(d,3/4,t)
W=-1.05320353709056

Por lo tanto f y g son linealmente independientes.

Ejemplo 3.14 Estudiar la independencia lineal de f (t) = 1, g(t) = t + 1, h(t) = 3t2 + 2t 4 en


(1, 2).

Resolucion del ejemplo 3.14 usando MATLAB


>>syms t
>>a=[1,-t+1,3*t^2+2*t-4];
>>b=diff(a,t);
>>c=diff(b,t);
>>d=[a;b;c];
>>e=det(d)
e =-6

Por lo tanto las funciones son l.i.

Ejemplo 3.15 Dadas las familias de funciones


38 Clase Practica 3

a) y1 = ex , y2 = e2x , y3 = e3x
b) y1 = 1, y2 = x, y3 = 1/(1 + x2 )
c) y1 = sen(x), y2 = x
d) y1 = ex , y2 = cos(3x)
e) y1 = x, y2 = x2 + 1, y3 = x2 + 2x + 1
hallar para cada una la EDL homogenea con el menor orden posible para la cual las funciones {yi }
forman parte de un conjunto fundamental de soluciones, considerando por separado los casos
1. coeficientes constantes (cuando sea posible),
2. coeficientes variables.

Construccion de una EDLH de coeficientes variables teniendo a las funciones del ejemplo
3.15, apartado b) como SFS
Pueden ejecutarse comandos MATLAB en lnea tal como se muestra a continuacion, o utilizar el
programa WRONSKY.
>>syms x y dy d2y d3y
>>A=[1 x 1/(1+x^2)];
>>A1=[y,A];
>>A2=[dy,diff(A)];
>>A3=[d2y,diff(A,2)];
>>A4=[d3y,diff(A,3)];
>>W=det([A1;A2;A3;A4])
W=-2*(12*d2y*x^3-12*d2y*x+2*d3y*x^2+3*d3y*x^4-d3y)/(1+x^2)^4

La ecuacion es W = 0, siendo dy = y 0 , d2y = y 00 , etc. Si se selecciona un intervalo dominio I0 ,


entonces I0 no debe contener ceros del wronskiano.

3.7 SOLUCIONES PARTICULARES DE EEDD


LINEALES COMPLETAS
3.7.1 Metodo de coeficientes indeterminados (MCI)
El MCI es aplicable cuando la ED tiene coeficientes constantes y la parte completa es de tipo CI.
Ejemplo 3.16 Obtener una solucion particular de la ED
x00 + 3x0 4x = 3 sen(t) + 7e4t e2t
Clase Practica 3 39

Resolucion del ejemplo 3.16 con DSOLVE


>>y=dsolve(D2x+3*Dx-4*x=0)
y=C1*exp(t)+C2*exp(-4*t)
que es la solucion general de la homogenea.
Teniendo en cuenta la forma de la parte completa de la ED, se busca una solucion particular xp
que sea combinacion lineal de

x1 = sen(t), x2 = cos(t), x3 = te4t , y x4 = e2t .

>>syms t A B C D
>>xp=A*sin(t)+B*cos(t)+C*t*exp(-4*t)+D*exp(2*t);
que es la solucion particular buscada.

Para determinar los coeficientes A, B, C y D se debe sustituir xp en la ED.

>>l=diff(xp,2,t)+3*diff(xp,t)-4*xp
l=
-5*A*sin(t)-5*B*cos(t)-5*C*exp(-4*t)+6*D*exp(2*t)+3*A*cos(t)-3*B*sin(t)
>>eqn=l-3*sin(t)-7*exp(-4*t)+exp(2*t)
eqn=
-5*A*sin(t)-5*B*cos(t)-5*C*exp(-4*t)+6*D*exp(2*t)+3*A*cos(t)-3*B*sin(t)-...
3*sin(t)-7*exp(-4*t)+exp(2*t)

Para resolver eqn=0 y as obtener A, B, C, y D, se evalua eqn y sus derivadas 1ra, 2da y 3ra en
un punto (en este caso tomamos el punto 0), obteniendose un sistema cuya resolucion nos da A, B,
C, y D.

>>eqn1=subs(eqn,0,t)
eqn1=
-6-5*B-5*C+6*D+3*A
>>eqn2=subs(diff(eqn,t),0,t)
eqn2=
-5*A+27+20*C+12*D-3*B
>>eqn3=subs(diff(eqn,t,2),0,t)
eqn3=
-108+5*B-80*C+24*D-3*A
>>eqn4=subs(diff(eqn,t,3),0,t)
eqn4=
5*A+459+320*C+48*D+3*B
40 Clase Practica 3

A continuacion se resuelve el sistema lineal formado por las 4 ecuaciones eqn1, eqn2, eqn3 y
eqn4, con las incognitas A, B, C, y D.

>>[A B C D]=solve(eqn1,eqn2,eqn3,eqn4)
A =-15/34
B =-9/34
C =-7/5
D =-1/6

Una solucion particular es

xp=-15/34 *sin(t)-9/34 *cos(t)-7/5*t*exp(-4*t)-1/6 *exp(2*t)

El procedimiento anterior usado para el calculo de los coeficientes no es aconsejable sin la ayuda
de instrumentos de calculo, pero s parece ser mas adecuado para simular el proceso en el ordenador.
En su defecto puede usarse el programa MCI descargable desde la Web de la asignatura [15].

3.7.2 Metodo de variacion de parametros (MVP)


Ejemplo 3.17 Obtener una solucion particular de la ED

t2 x00 + tx0 x = sen(t).

Se utilizara que x1 = t y x2 = 1/t son soluciones l.i. de la ED homogenea. (Se pueden obtener con
DSOLVE)

Resolucion del ejemplo 3.17


La solucion general de la homogenea es

xh = At + B/t, A, B R

y se busca una particular de la completa de la forma

xp = A(t)t + B(t)/t.

Sabemos que A0 (t) y B 0 (t) son soluciones del sistema


  0   
t 1/t A (t) 0
=
1 1/t2 B 0 (t) sen(t)/t2

Procedemos a resolver dicho sistema.


Clase Practica 3 41

>>syms t
>>a=[t,1/t]
>>b=diff(a);
>>c=[a;b]
c = [t,1/t ]
[1,-1/t^2]
>>W=det(c)
W =-2/t
>>A=int(sin(t)/(2*t^2))
>>B=int(-sin(t)/2)
>>xp=A*t+B*1/t
xp=(-1/2*sin(t)/t+1/2*cosint(t))*t+1/2*cos(t)/t
>>pretty(sym(xp))
/ sin(t) \ cos(t)
|- 1/2 ------ + 1/2 cosint(t)| t + 1/2 ------
\ t / t
e3t
Ejemplo 3.18 Obtener una solucion particular de la ED x00 6x0 + 9x = .
t2

Resolucion del ejemplo 3.18


>>y=dsolve(D2x-6*Dx+9*x=0)
y=C1*exp(3*t)+C2*exp(3*t)*t %(sol. gral. homogenea)

Para obtener
xp=A(t)*exp(3*t)+B(t)*exp(3*t)*t,
nos basamos en que A0 (t) y B 0 (t) son soluciones del sistema
 3t  0   
e te3t A (t) 0
=
(e3t )0 (te3t )0 B 0 (t) e3t /t2
Por lo tanto, se procede a resolver dicho sistema

>>syms t
>>a=[exp(3*t),t*exp(3*t)]
>>b=diff(a,t);
>>c=[a;b]
c=[exp(3*t), t*exp(3*t)]
[3*exp(3*t),3*exp(3*t)*t+exp(3*t)]
>>W=det(c)
W =exp(3*t)^2
42 Clase Practica 3

>>A=int(-1/t)
A =-log(t)
>>B=int(1/t^2)
B =-1/t
>>xp=A*exp(3*t)+B*t*exp(3*t)
xp=-log(t)*exp(3*t)-exp(3*t)

Esta es la solucion particular obtenida.

Ejemplo 3.19 Resolver mediante el MVP la ED

x00 + 3x0 + 2x = e3t cos(5t) + 2t4 .

Resolucion del ejemplo 3.19

>>dsolve(D2x+3*Dx+2*x=0) % hallar un SFS


ans= C1*exp(-2*t)+C2*exp(-t)

Se buscan A(t) y B(t) para tener una solucion particular xp cuya expresion pretendemos que sea

xp = A(t)e2t + B(t)et .

El procedimiento interactivo (lnea de comandos) aparece a continuacion. Puede usarse el programa


MVP.M que se descarga desde la Web de la asignatura [15].

>>syms t
>>a=[exp(-2*t),exp(-t)];b=diff(a,t);c=[a;b]
c =[exp(-2*t),exp(-t)]
[-2*exp(-2*t),-exp(-t)]
>>H=[0;exp(3*t)*cos(5*t)+2*t^4];
>>S=inv(c)*H;A=int(S(1));B=int(S(2));
>>xp=simplify(A*exp(-2*t) +B*exp(-t))
xp=-8/205*cos(t)^5*exp(3*t)+72/205*cos(t)^4*sin(t)...
*exp(3*t)+2/41*cos(t)^3*exp(3*t)-54/205*cos(t)^2...
*sin(t)*exp(3*t)-1/82*cos(t)*exp(3*t)+9/410*...
sin(t)*exp(3*t)+t^4-6*t^3+21*t^2-45*t+93/2

Como alternativa podemos usar el MCI y el principio de superposicion, pero en cualquier caso es
mucho mas comodo usar directamente DSOLVE que aplica automaticamente el principio de super-
posicion.
Clase Practica 3 43

3.8 REDUCCION DE ORDEN


Ejemplo 3.20 Resolver la ED x00 + (2/t)x0 + x = 0, usando que f (t) = sen(t)/t es una solucion
particular.

Resolucion del ejemplo 3.20


Buscamos una solucion de la forma
x = sen(t)/t v(t).
Derivando y sustituyendo en la ED y haciendo v 0 = y se llega a una ED de primer orden en y.

y 0 + (2/t + 2f 0 (t)/f (t))y = 0.

Resolviendo esta ED se obtiene su solucion general.

y = F (t, C1 ).

Como y = v 0 , integrando se obtiene


v = G(t, C1 , C2 ).
Finalmente haciendo
x=f v
se obtiene la solucion general de la ED.
Los pasos con MATLAB se indican a continuacion.

>>syms t C2 %ecuacion original x+2/tx+x=0


>>f=sin(t)/t
>>diff(f)
ans=cos(t)/t-sin(t)/t^2
>>diff(f)/f
ans=(cos(t)/t-sin(t)/t^2)/sin(t)*t

Se resuelve la ED y 0 + (2/t + 2f 0 /f )y = 0 copiando f/f =diff(f)/f en DSOLVE

>>y=dsolve(Dy+2*(1/t+((cos(t)/t-sin(t)/...
t^2)/sin(t)*t))*y=0)
y =-2*C1/(-1+cos(2*t))

Como y = v 0 , se integra

>>v=int(y,t)+C2
44 Clase Practica 3

v =-C1/tan(t)+C2

Se usa que x = f v

>> x=sin(t)/t*v
x=sin(t)/t*(-C1/tan(t)+C2)
>>simplify(x)
ans=
-(C1*cos(t)-C2*sin(t))/t %(sol. gral.)

3.9 EJERCICIOS COMPLEMENTARIOS


Ejercicio 3.3

1. Investigar si las funciones y1 (t) = et , y2 (t) = tet , e y3 (t) = t2 et , son linealmente independientes
en [a, b].

2. Resolver el siguiente problema de CI

2y 00 + 5y 0 + 5y = 0, y(0) = 0, y 0 (0) = 1/2.

3. Resolver 9y iv) 6y iii) + 46y ii) 6y i) + 37y = 0.

4. Hallar la solucion general del sistema de ecuaciones

y 0 + z 0 = exp(x)
y + z 00 = x

5. Determinar la solucion del sistema


x0 = y
y0 = z
z 0 = y
x(0) = 1, y(0) = 1, z(0) = 0.

6. Calcular una matriz fundamental para el sistema del apartado 5).

7. Intentar hallar la solucion de las siguientes EEDD mediante MATLAB.

(a) y 00 4ty 0 + y = 1
(b) y 00 4t2 y 0 + y = 0
(c) y 00 4ty 0 + ty = 0
Clase Practica 3 45

(d) ty 00 4y 0 + y = 0
(e) x00 + 5x0 50x = 1/t

Ver en el APENDICE una notas relativas a las funciones especiales que pueden aparecer en la
solucion de algunos de los problemas anteriores.

3.10 APENDICE
3.10.1 Notas sobre funciones especiales
Para complementar lo dicho en la clase No. 1 -pag. 4 de este material- sobre la funcion Lambertw,
mencionaremos otras funciones basicas tambien incorporadas a MATLAB. Estas son: WhittakerW,
WhittakerM, besselj, bessely, Ei, dilog, la funcion de error erf, Heaviside, Dirac, etc, que
tambien pueden ser conocidas mediante MHELP. Se trata de funciones especiales para el matematico
y el fsico debido a que son la solucion de problemas especficos, frecuentes y de gran importancia en
determinados ambitos de la matematica, la ingeniera o la fsica.
La filosofa que sigue el MATLAB respecto a estas funciones es la usual. Expresar las soluciones
de una ED en terminos de ciertas funciones especiales que hemos adoptado, y que son bien conocidas
en el sentido de que tenemos suficiente informacion acerca de ellas: intervalos de convexidad y de
crecimiento, maximos y mnimos locales, comportamiento asintotico en el infinito, derivabilidad,
singularidades, desarrollo en serie de potencias, etc.
Las EEDD de coeficientes variables del ultimo listado de ejercicios seran estudiadas en el 2do
cuatrimestre utilizando un metodo relativamente simple, basado en asumir a priori que la solucion
admite un desarrollo en serie de potencias.(5
Con estos apuntes no se pretende que el alumno estudie detalladamente todas estas funciones
sino que aumente su cultura profesional, conociendo aun mejor cual es la tarea que desempenan las
funciones especiales y que estas no se reducen a las conocidas exponencial, seno, coseno, etc.

3.10.2 Sobre el metodo basado en el calculo aproximado de las races de


la ecuacion caracterstica
Para resolver la ecuacion lineal homogenea de coeficientes constantes

ay iv) + by iii) + cy ii) + dy i) + ey = 0

aplicamos el comando DSOLVE. Si la respuesta que se obtiene con DSOLVE no es satisfactoria, una
variante poco ortodoxa, que no recomendamos, consiste en tomar el polinomio caracterstico

P = as4 + bs3 + cs2 + ds + e


5
Notar que ninguna de las EEDD del problema (7) del ejercicio 3.3 es del tipo Euler.
46 Clase Practica 3

y calcular aproximadamente sus races mediante el comando SOLVE tal como se muestra a contin-
uacion
>>format long e % se sugiere formato largo
>>S=numeric(solve(a*x^4+b*x^3+c*x^2+d*x+e))
Finalmente damos como solucion el correspondiente SFS.
Es exacta la respuesta? Obviamente no lo es. En las siguientes lneas se reconsidera el ejemplo
3.9 de la pagina 33, para ilustrar el nivel de ajuste que se obtiene al calcular una solucion aproximada
y por este metodo.
Lo primero a tener en cuenta es que el criterio que aqu se sigue es el de medir el error en la
ecuacion: |L[y]|, en lugar del error en la solucion: ky yk.
Tomemos por caso a |L[y]| en los intervalos [2, 2] y [20, 60].
>>syms t;
>>y1=exp(t*0.6653067648628088)*sin(2.373811784418384*t);
y calculemos Z = L[y1 ].
>>Z=diff(y1,4)-6*diff(y1,3)+9*diff(y1,2)-24*diff(y1,1)-20*y1;
Hagamos (6
>>subplot(1,2,1);ezplot(Z,[-2,2]),title()
>>subplot(1,2,2);ezplot(Z,[20,60]),title()
para obtener los graficos que se muestran en la figura 3.2.

Tienen calidad los resultados?


El metodo alternativo a DSOLVE que hemos utilizado es aproximado, y concuerda con nuestros
conocimientos teoricos. Sin embargo, en el ambito experimental los baremos cambian. La calidad
de los resultados obtenidos se mide, en este caso, a partir de la estimacion que hagamos del residuo
|Z| = |L[y(t)]| sobre ciertos intervalos. Hemos comprobado que |Z| es del orden de 1015 10 = 1014
cuando y esta dada por
y(t) = e t sen( t), 2 t 2
siendo
= 0.6653067648628088, y = 2.373811784418384.
Podemos aceptar que Z = 0 en [2, 2]?
La respuesta podra ser afirmativa si tenemos en cuenta que los calculos MATLAB se hacen con
una precision finita.(7 Parece correcto aceptar que los errores experimentales son nulos cuando estos
son < eps 2.22e 016, y este no es el caso que nos ocupa.(8
Pero acaso 1014 no es suficientemente pequeno? Podemos aceptar como SFS al obtenido por
el metodo descrito anteriormente?
6
Agregando title() evitamos que en el ttulo de la grafica aparezcan cadenas interminables de caracteres.
7
Se llama precision al numero de dgitos que forman la mantisa.
8
Por eps se representa al epsilon de maquina, es decir, el numero positivo mas pequeno, representable internamente,
tal que 1 + eps > 1. Hacer >> eps para obtener su valor con 16 dgitos.
Clase Practica 3 47

iv) iii) ii) i)


Fig. 3.2: Graficas de Z = y1 6y1 + 9y1 24y1 20y1 en [2, 2] y [20, 60]

En principio la respuesta a la primera pregunta es afirmativa. Podemos aceptar un resultado


aproximado siempre que tengamos una medida de la calidad de dicha aproximacion y que esta, a su
vez, se corresponda con la tolerancia de nuestros instrumentos. En este caso tendremos presente que
no tenemos informacion acerca del error en la solucion

ky yk,

y que nuestra conclusion dependera del intervalo considerado.


La respuesta a la segunda pregunta es negativa, y es que en realidad hemos avanzado muy poco
pues la solucion general de la ED es de la forma(9

yG = C1 e3 t cos( t) + C2 e3 t sen( t) + C3 e1 t + C4 e2 t , (3.2)

de modo que las constantes C1 , ..., C4 pueden modificar sustancialmente la escala y por ello podra
ser aun mas difcil aceptar que el residuo relativo a yG sea cero.
A pesar de lo anterior, el criterio basado en medir directamente las discrepancias en la ecuacion
es una estrategia universalmente aceptada. El llamado metodo de los residuos (ponderados)(10
consiste en aceptar como solucion aquella que anula al residuo en un sentido mas debil que el aqu
utilizado.
9
Un serio inconveniente es que la funcion yG depende no linealmente de los parametros 1 ,..., 3 , y .
10
Estan disenados para resolver problemas de contorno (Tema 7). Ver 20.3 de [5]
48 Clase Practica 3

Para terminar de momento esta discusion, reiteremos que es posible para EEDD lineales y ho-
mogeneas de orden cuatro o menor, calcular exactamente las races del polinomio caracterstico
utilizando SOLVE sin aplicar NUMERIC, solo que la expresion literal de dichas races puede ser
un STRING con demasiados caracteres. En cualquier caso, las ventajas que se derivan del trabajo
con objetos simbolicos no parecen ser concluyentes, al menos con este enfoque. Para resolver este y
muchos otros problemas nos apuntamos al uso de los metodos numericos tradicionales cuyo estudio
sera abordado en las clases practicas 5, 6 y 7.
CLASE PRACTICA 4

Transformada de Laplace

OBJETIVOS
Ejercitar el uso combinado de tecnicas matematicas y herramientas simbolicas del MATLAB para
la resolucion, mediante la transformada de Laplace, de problemas de valores iniciales asociados a
sistemas diferenciales lineales y ecuaciones lineales de orden superior.

4.1 DEFINICION Y CALCULO


4.1.1 Definicion de la transformada de Laplace
La transformada de Laplace de una funcion f (t) definida en [0, +) es una nueva funcion que
denotaremos por F (s) o f(s) o L(f )(s), definida por la integral
Z +
f(s) = est f (t)dt. (4.1)
0

El dominio de f(s) esta formado por los valores de s para los cuales la integral (4.1) existe.
Recordar que si g es integrable en cada intervalo [0, b], entonces
Z + Z b
g(t)dt = lim g(t)dt. (4.2)
0 b+ 0

Decimos que g es integrable Riemann en [0, +] si el lmite de la derecha en (4.2) existe y es finito.
El smbolo de la izquierda recibe el nombre de integral impropia de primera especie.
Si |g| es integrable Riemann en [0, +] decimos que g es absolutamente integrable. En el resto
de esta clase solo trabajaremos con funciones f (t) tales que est f (t) es absolutamente integrable.
Atendiendo a los objetivos de la clase, en la siguiente subseccion abordaremos el calculo de f(s)
(y de la transformada inversa) utilizando comandos MATLAB-MAPLE.

49
50 Clase Practica 4

4.1.2 Calculo mediante comandos MATLAB. Ejemplos


Para el calculo automatizado de (4.1) MATLAB ofrece el comando LAPLACE de tipo simbolico, cuya
sintaxis es

>>F=laplace(f)

donde f es una funcion escalar de la variable simbolica t, previamente declarada y F es una funcion
cuya variable es por defecto s.
Tambien podemos formular

>> syms u v
>>F=laplace(u^2,v)
F = 2/v^3

lo que permite elegir las variables a utilizar.

Ejemplo 4.1 Calcular la transformada de Laplace de la funcion f (t) = 1.

Resolucion del ejemplo 4.1.


>>syms t s
>>laplace(1,t,s)
ans =1/s

Ejemplo 4.2 Calcular la transformada de Laplace de la funcion f (t) = eat y f (t) = eat sen(bt) .

Resolucion del ejemplo 4.2


>>syms a;
>>laplace(exp(-a*t),t,s)
ans =1/(s+a)

Alternativamente se puede crear la funcion como una cadena de caracteres (string)

>>syms t s
>>f=exp(-a*t)
>>laplace(f,t,s)
ans =1/(s+a)

De esta forma no tenemos que declarar previamente a ningun parametro como simbolico. Invocando
al nucleo MAPLE podemos trabajar exclusivamente con STRINGS.

>>maple(f:=t->exp(-a*t)*sin(b*t))
>>F=maple(laplace(f(x),x,s))
F=b/((s+a)^2+b^2)
Clase Practica 4 51

Ejercicio 4.1 Calcular, utilizando MATLAB, la transformada de Laplace de las funciones f (t) = t,
f (t) = t2 y f (t) = t3 .

Nota para el ejercicio 4.1 Recordar que para n N la formula general viene dada por la expresion:
n!
ten (s) = n+1 ,
s
y para r > 1, r R, se tiene, aun mas general, que
(r + 1)
ter (s) = ,
sr+1
donde (r) se define a continuacion. La funcion Gamma se define como
Z +
(t) = ut1 eu du, t > 0.
0

MATLAB posee el comando gamma que permite simular a (t).

Ejemplo 4.3 (a) Comprobar experimentalmente la igualdad (n) = (n 1)!, utilizando el comando
factorial.
(b) Calcular (1/2) y (17/3) por las diferentes vas que se sugieren a continuacion.

Resolucion del ejemplo 4.3.


>>gamma(1/2)
>>maple(gamma(1/2))
>>numeric(maple(gamma(1/2)))
>>int(t^(1/2-1)*exp(-t),0,inf)

Representacion grafica de la funcion (t)


La figura 4.1 sugiere que las rectas t = n, n = 0, 1, 2, 3 son asntotas verticales de la funcion
(t). Verdaderamente, esto es cierto para cualquier recta t = n, n = 0, 1, 2, ....

4.1.3 Propiedades de la Transformada de Laplace


El ejemplo 4.2 anterior se corresponde con la Propiedad de Traslacion:

at f (t)(s) = f(s a),


e^

que MATLAB aplica automaticamente.

Ejercicio 4.2 Calcular la transformada de Laplace de las funciones f (t) = eat cos(bt) y f (t) = eat t4
utilizando recursos MATLAB-MAPLE de modo que no intervengan variables SYM.
52 Clase Practica 4

Fig. 4.1: Representacion grafica de (t) en [4, 4]

Ejercicio 4.3 Calcular f en los siguientes casos y reconocer las propiedades que se han aplicado en
cada caso.
(a) f (t) = t1/3 (b) f (t) = e2t t5/6
(c) f (t) = g 0 (t) (d) f (t) = sen(t + a)
(e) f (t) = sen(t 1)u(t 1) (f ) f (t) = t2 senh(t)

En (c) hacer >>laplace(diff(sym(g(t)))). Notar que esta sintaxis no exige declaracion previa
SYMS.
Aplicar la misma tecnica al apartado (e), es decir,
laplace(sym(Heaviside(t-1)*sin(t-1))),
donde Heaviside(t-a) es el nombre codificado de la funcion de salto unitario u(t a).

4.2 TRANSFORMADA INVERSA DE LAPLACE


El comando ILAPLACE ha sido disenado para calcular exactamente, cuando ello sea posible, la
transformada inversa de Laplace. La sintaxis es como sigue.

>>ilaplace(expresion_simbolica,s,t)

o simplemente

>>ilaplace(expresion_simbolica)

Notar que ILAPLACE calcula la transformada inversa de Laplace de una expresion F(s), produciendo
otra expresion f(t).
La version MAPLE es la que sigue

>>maple(invlaplace(F(s),s,t))
Clase Practica 4 53

Ejemplo 4.4 Obtener la transformada inversa de la funcion

s+3
F (s) =
s2

Resolucion del ejemplo 4.4.

>>syms s
>>F=(s+3)/s^2;
>>ilaplace(F)
ans =3*t+1
Alternativamente con MAPLE
>>maple(invlaplace((s+3)/s^2,s,t))

Ejemplo 4.5 Calcular las transformadas inversas de Laplace de las siguientes funciones:

1 1 1
F (s) = , F (s) = 4 , F (s) = 5 .
s3 +1 s +1 s +1

Resolucion del ejemplo 4.5.

>>F=1/(s^3+1)
>>ilaplace(F)
ans =
1/3*exp(-t)- 1/3*exp(1/2*t)*cos(1/2*3^(1/2)*t)+1/3*3^(1/2)*exp(1/2*t)*...
sin(1/2*3^(1/2)*t)
Tambien puede utilizarse
>>F=1/(s^4+1)
>>pretty(ilaplace(F))
ans=
1/2*2^(1/2)*(sin(1/2*2^(1/2)*t)*cosh(1/2*2^(1/2)*t)-cos(1/2*2^(1/2)*t)*...
sinh(1/2*2^(1/2)*t))
El caso 1/(s5 + 1) MATLAB lo resuelve en el campo complejo, pues factoriza a s5 + 1 segun sus 5
ceros simples y complejos, de modo que todo sale por la va de exponenciales.
>>F=1/(s^5+1)
>>ilaplace(F)
ans=1/5*Sum(exp(1/5*i*pi*(2*k-1))*exp(-exp(1/5*i*pi*(2*k-1))*t),k=1..5)

Nota 4.1 exp(1/5*i*pi*(2*k-1)),k=1..5 son las 5 races complejas del numero 1


54 Clase Practica 4

4.3 APLICACIONES A LA RESOLUCION DE


PROBLEMAS DE CONDICION INICIAL
Ejemplo 4.6 Resolver el siguiente problema de valor inicial usando transformadas de Laplace.

x0 (t) + 3x(t) = 0, x(0) = 1.

Resolucion del ejemplo 4.6.


Se vera que el comando LAPLACE aplica automaticamente la propiedad

xe0 = se
x x(0)

>>syms t s lapx
>>diffeqn=diff(x(t),t)+3*x(t) % se introduce la ED
diffeqn=diff(x(t),t)+3*x(t)
>>a=laplace(diffeqn,t,s) % se transforma la ED
a =s*laplace(x(t),t,s)-x(0)+3*laplace(x(t),t,s)
>>a=subs(a,laplace(x(t),t,s),lapx) % por comodidad
a =s*lapx-x(0)+3*lapx
en la expresion transformada se sustituye laplace(x(t),t,s) por lapx
>>lapx=solve(a,lapx) % en a=0 se despeja lapx
lapx =x(0)/(s+3)
>>x=ilaplace(lapx,s,t) %se calcula x mediante
x =x(0)*exp(-3*t)
La transformada inversa
>>sol=subs(x,x(0),1)
en x(t) se sustituye x(0) por 1
sol =exp(-3*t)

Ejemplo 4.7 Resolver el siguiente problema de valor inicial


x00 (t) + 3x0 (t) + 2x(t) = sen(t),
x(0) = x0 (0) = 0.

Resolucion del ejemplo 4.7.


>>syms s t lapx x
>>diffeq=diff(x(t),t$2)+3*diff(x(t),t)+2*x(t)-sin(t);
>>a=laplace(diffeq,t,s)
a =s*(s*laplace(x(t),t,s)-x(0))-D(x)(0)+...
3*s*laplace(x(t),t,s)-3*x(0)+ 2*laplace(x(t),t,s)-1/(s^2+1)
Clase Practica 4 55

>>a=subs(a,laplace(x(t),t,s),lapx)
a=s*(s*lapx-x(0))-D(x)(0)+3*s*lapx-
3*x(0)+2*lapx-1/(s^2+1)
>>lapx=solve(a,lapx)
lapx=(x(0)*s^3+s*x(0)+D(x)(0)*s^2+D(x)(0)+...
3*x(0)*s^2+3*x(0)+1)/(s^4+3*s^2+3*s^3+3*s+2)
>>x=ilaplace(lapx,s,t)
>>x =-exp(-2*t)*x(0)-1/5*exp(-2*t)-
exp(-2*t)*D(x)(0)+2*exp(-t)*x(0)+...
1/2*exp(-t)+exp(-t)*D(x)(0)-
3/10*cos(t)+1/10*sin(t)
>>sol=subs(x,x(0),0);
>>sol=subs(sol,D(x)(0),0)
sol=-1/5*exp(-2*t)+1/2*exp(-t)-3/10*cos(t)+1/10*sin(t)
Ejercicio 4.4 Resolver el siguiente problema de valor inicial
x00 (t) 3x0 (t) + 2x(t) = 2e2t ,
x(0) = 1/6, x0 (0) = 5/3.

Ejemplo 4.8 Resolver el siguiente sistema


x0 = x y
y 0 = y + x
x(0) = 1,
y(0) = 2

Resolucion del ejemplo 4.8


>> syms s t lapx lapy
% Se introducen las dos ED.
>>diffeq1=diff(x(t),t)+x(t)+y(t);
>>diffeq2=diff(y(t),t)+y(t)-x(t);
A continuacion se transforman las dos ED.
>> a=laplace(diffeq1,t,s)
a =s*laplace(x(t),t,s)-x(0)+laplace(x(t),t,s)+ laplace(y(t),t,s)
>> b=laplace(diffeq2,t,s)
b=s*laplace(y(t),t,s)-y(0)+laplace(y(t),t,s)- laplace(x(t),t,s)
>>a=subs(a,laplace(x(t),t,s),lapx);
>>a=subs(a,laplace(y(t),t,s),lapy)
a=s*lapx-x(0)+lapx+lapy
>>b=subs(b,laplace(x(t),t,s),lapx);
56 Clase Practica 4

>>b=subs(b,laplace(y(t),t,s),lapy)
b=s*lapy-y(0)+lapy-lapx
% En las expresiones a=0 y b=0 se despejan
% las transformadas de x e y: lapx, lapy
>>[lapx,lapy]=solve(a,b,lapx,lapy)
lapx = (s*x(0)-y(0)+x(0))/(s^2+2*s+2)
lapy =(s*y(0)+x(0)+y(0))/(s^2+2*s+2)
% Se obtienen x e y mediante la transformada inversa
>>x=ilaplace(lapx,s,t)
x = exp(-t)*x(0)*cos(t)-exp(-t)*y(0)*sin(t)
>>y=ilaplace(lapy,s,t)
y =exp(-t)*x(0)*sin(t)+exp(-t)*y(0)*cos(t)
% En las expresiones de x e y se sustituyen
las condiciones iniciales
>>x=subs(x,x(0),1);
>>x=subs(x,y(0),-2)
x =exp(-t)*cos(t)+2*exp(-t)*sin(t)
>>y=subs(y,x(0),1);
y =exp(-t)*sin(t)-2*exp(-t)*cos(t)

Ejercicio 4.5 Resolver el siguiente sistema:

x00 (t) = x0 (t) 2y 0 (t) + 2y(t),


y 0 (t) = 3y(t) + x(t),
y(0) = 0, x(0) = 2, x0 (0) = 1.

4.4 PROBLEMAS DE VALORES INICIALES CON


DATOS DISCONTINUOS
4.4.1 Funcion escalon unitario (Heaviside)
La funcion de salto unitario
0 t<0
u(t) =
1 t0

se representa en notacion MATLAB como Heaviside(t) y es de gran utilidad para representar otras
funciones definidas a tramos.
Veamos como se calcula su transformada:
>>syms t s
>>f=Heaviside(t)
Clase Practica 4 57

>>laplace(f,t,s)
ans=1/s

Ejemplo 4.9 Calcular la transformada de la funcion u(t a). Teniendo en cuenta la notacion
a (f )(t) = f (t a)u(t a), y la terminologa al uso, podemos decir que u(t a) = a (1), es decir,
u(t a) es la trasladada paralelamente al eje OX de la funcion f = 1 al punto a.

Resolucion del ejemplo 4.9.


>>syms t s
>>f=Heaviside(t-1);
>>laplace(f,t,s)
ans=exp(-s)/s
Lo anterior es un resultado ya visto en clases, y facil de obtener.
Es oportuno recordar una importante propiedad vinculada a la funcion escalon unitario.

Propiedad de la traslacion en t.
Sea F (s) = f(s) y a > 0. Entonces

a)u(t a)(s) = eas F (s),


f (t ^ (4.3)

que se transforma en la siguiente igualdad cuando aplicamos en (4.3) la transformada inversa:

eas
^ F (s) = f (t a)u(t a).

Ejemplo 4.10 Resolver el siguiente problema de condicion inicial

x0 (t) + x(t) = 1 u(t 2),

x(0) = 0.
utilizando las herramientas MATLAB que simulan la transformada de Laplace.
Es posible resolverlo siguiendo los metodos anteriormente vistos?

Resolucion del ejemplo 4.10.


>>syms s t lapx
>>diffeqn=diff(x(t),t)+x(t)-1+Heaviside(t-2)
diffeqn =diff(x(t),t)+x(t)-1+Heaviside(t-2)
>>a=laplace(diffeqn,t,s)
a=s*laplace(x(t),t,s)-x(0)+laplace(x(t),t,s)
-1/s+exp(-2*s)/s
58 Clase Practica 4

>>a=subs(a,laplace(x(t),t,s),lapx)
a=s*lapx-x(0)+lapx-1/s+exp(-2*s)/s
>>lapx=solve(a,lapx)
lapx=(x(0)*s+1-exp(-2*s))/s/(1+s)
>>x=ilaplace(lapx,s,t)
x=x(0)*exp(-t)+1-exp(-t)-Heaviside(t-2)+
Heaviside(t-2)*exp(-t+2)
>>sol=subs(x,x(0),0)
sol=1-exp(-t)-Heaviside(t-2)+Heaviside(t-2)*exp(-t+2)

4.4.2 Representacion de funciones con discontinuidades de salto finito


Ejemplo 4.11 La corriente I(t) en un circuito RLC esta regida por el problema de valor inicial:

I 00 (t) + 4I(t) = g(t),

I(0) = I 0 (0) = 0,
siendo
1 0<t1
g(t) = 1 1<t2
0 t>2

Determinar I(t).

Nota 4.2 Observese que la funcion g(t) puede escribirse como g(t) = u(t) 2u(t 1) + u(t 2).

Resolucion del ejemplo 4.11.


>>syms s t a I lapI
>>diffeq=diff(I(t),t$2)+4*I(t)-Heaviside(t)+2*Heaviside(t-1)-Heaviside(t-2);
>>a=laplace(diffeq,t,s)
a=s*(s*laplace(I(t),t,s)-I(0))-D(I)(0)+...
4*laplace(I(t),t,s)-1/s+2*exp(-s)/s-exp(-2*s)/s
>>a=subs(a,laplace(I(t),t,s),lapI)
a=s*(s*lapI-I(0))-D(I)(0)+4*lapI-1/s+... 2*exp(-s)/s-exp(-2*s)/s
>>lapI=solve(a,lapI)
lapI=(s^2*I(0)+D(I)(0)*s+1-2*exp(-s)+exp(-2*s))/s/(s^2+4)
>>I=ilaplace(lapI,s,t)
I=I(0)*cos(2*t)+1/2*D(I)(0)*sin(2*t)+1/4-1/4*cos(2*t)-1/2*Heaviside(t-1)+...
1/2*Heaviside(t-1)*cos(2*t-2)+1/4*Heaviside(t-2)-1/4*Heaviside(t-2)*cos(2*t-4)
>>sol=subs(I,I(0),0) % condicion inicial I(0)=0
>>sol=subs(sol,D(I)(0),0) % condicion inicial I(0)=0
Clase Practica 4 59

sol=1/4-1/4*cos(2*t)-1/2*Heaviside(t-1)+1/2*Heaviside(t-1)*cos(2*t-2)+...
1/4*Heaviside(t-2)-1/4*Heaviside(t-2)*cos(2*t-4)
% fin de la resolucion del ejemplo 4.11

Fig. 4.2: Representacion grafica de la entrada g(t) y la salida I(t)

La representacion grafica conjunta de la entrada g(t) y la salida I(t), que pueden verse en la
figura 4.2, se obtiene como sigue:(1

>>maple(g:=t->1-2*Heaviside(t-1)+Heaviside(t-2));
>>maple(I:=t->1/4-1/4*cos(2*t)-1/2*Heaviside(t-1)+...
1/2*Heaviside(t-1)*cos(2*t-2)+1/4*Heaviside(t-2)-...
1/4*Heaviside(t-2)*cos(2*t-4));
>>x=linspace(0,6,500);
>>for k=1:500,a=num2str(x(k));...
h(k)=str2num(maple(strcat(evalf(g(,a,),12))));
j(k)=str2num(maple(strcat(evalf(I(,a,),12))));end
>>plot(x,h,r.);hold on;plot(x,j,r.)
>>axis([0 6 -2 2]);title(funciones g(t) e I(t))

La delta de Dirac
Sea a R. La delta de Dirac (t a), se caracteriza por las dos propiedades siguientes:

0 t 6= a
(t a) = (4.4)
t=a
1
Lo mas sencillo es copiar lo anterior en el Editor-Debugger, borrar los smbolos >> y ejecutar.
60 Clase Practica 4

y Z
f (t)(t a)dt = f (a), (4.5)

para cualquier funcion f (t) que sea continua en un intervalo abierto que contiene a t = a.
Observemos que (t a) no es una funcion en el sentido usual ya que toma el valor en un
punto.
De la propiedad (4.5) se obtiene que

^
(t a)(s) = eas (4.6)

La Delta de Dirac se relaciona con la funcion escalon unitario de la siguiente forma


Z t 
0 t<a
(u a)du = = u(t a), (4.7)
1 ta

lo que, formalmente, significa que (t a) = u0 (t a).


La delta de Dirac sirve para modelizar fenomenos en los que intervienen entidades fsicas de ndole
electrica o mecanica, cuyas magnitudes alcanzan en poco tiempo valores relativamente grandes. Ello
ocurre cuando se aplica una carga muy pesada concentrada en un punto de una viga, un golpe de
martillo a un sistema masa-resorte, picos de voltaje, etc.
Debido a razones historicas y practicas, la delta de Dirac se presenta tal como acabamos de hacer en
este guion, pero el alumno puede intentar conciliar las relaciones (4.5-4.7) asumiendo que da (t) =
(t a)dt es la medida de probabilidad concentrada en t = a.
Despues de un perodo oscuro pero exitoso, el uso de (t a) fue rigurosamente justificado en 1944
por Laurent Schwarz, al crear las distribuciones lo que le valio recibir en 1950 la Medalla Fields.
Sobre este tema se recomienda leer la seccion 7.8 del libro de Nagle-Saff [8], la 7.8 del Nagle-Saff-
Snider [9], o la 7.6 de D. G. Zill [11].

Ejemplo 4.12 Una masa sujeta a un resorte se suelta a partir del reposo 1 m por debajo de la
posicion de equilibrio del sistema resorte-masa, y empieza a vibrar. Despues de segundos la masa
es golpeada por un martillo que ejerce un impulso sobre la masa. El sistema esta regido por el
problema de valor inicial siguiente

x00 (t) + 9x(t) = 3(t )


x(0) = 1, x0 (0) = 0,

donde x(t) representa el desplazamiento a partir del equilibrio en el instante t. Hallar x(t).

Resolucion del ejemplo 4.12


>>syms s t lapx x % lapx=X
>>diffeq=diff(x(t),t$2)+9*x(t)-3*Dirac(t-pi)
diffeq =diff(x(t),t$2)+9*x(t)-3*Dirac(t-pi)
Clase Practica 4 61

>>a=laplace(diffeq,t,s)
a=s*(s*laplace(x(t),t,s)-x(0))-D(x)(0)+9*laplace(x(t),t,s)-3*exp(-pi*s)
>>a=subs(a,laplace(x(t),t,s),lapx)
a=s*(s*lapx-x(0))-D(x)(0)+9*lapx-3*exp(-pi*s)
>>lapx=solve(a,lapx)
lapx=(s*x(0)+D(x)(0)+3*exp(-pi*s))/(s^2+9)
>>lapx=subs(lapx,x(0),1) % cond. inicial x(0)=1
lapx=(s+D(x)(0)+3*exp(-pi*s))/(s^2+9)
>>lapx=subs(lapx,D(x)(0),0) %cond. inicial x(0)=0
lapx=(s+3*exp(-pi*s))/(s^2+9)
>>x=ilaplace(lapx,s,t)
x=cos(3*t)-Heaviside(t-pi)*sin(3*t)
% fin de la resolucion del ejemplo 4.12
Ejemplo 4.13 Resolver la siguiente ED de coeficientes variables, sujeta a ciertas condiciones.
tx00 (t) + (t 1)x0 (t) x(t) = 0,
x(0) = 5,
lim x(t) = 0.
t+

Nota 4.3 Esta ED es de 2do orden...pero no se establece condicion alguna sobre x0 (0)! En su lugar
se impone una condicion en el infinito... Notar que t = 0 es una singularidad (por que?). Quizas
esto ultimo este asociado a esas extranas condiciones que se imponen a la solucion. Una idea: si
t [, ] con > 0 muy pequeno, la ED es casi de orden uno...y para t grande es indudablemente
una ecuacion de orden dos.

Resolucion del ejemplo 4.13


>>syms s t a x
>>diffeq=t*diff(x(t),t$2)+(t-1)*diff(x(t),t)-x(t);
>>a=laplace(diffeq,t,s)
a=-2*s*laplace(x(t),t,s)+2*x(0)-...
s*(laplace(x(t),t,s)+s*diff(laplace(x(t),t,s),s))-...
2*laplace(x(t),t,s)-s*diff(laplace(x(t),t,s),s)
>>X=dsolve(-2*s*X+2*5-s*(X+s*DX)-2*X-s*DX=0, s)
X=5/(s+1)+1/(s+1)/s^2*C1%Ver nota sobre X y x
>>x=ilaplace(X,s,t) x=5*exp(-t)+C1*(t-1+exp(-t))
Nota 4.4 Hemos sido consecuentes con nuestra notacion habitual escribiendo X en lugar de x.
Aunque esto no es esencial a los efectos de la compilacion y el calculo, s facilita la lectura del
codigo. Es un ahorro innecesario de memoria usar la misma variable x para ambos papeles. Notar
que X se crea por asignacion y no por la declaracion SYMS.
62 Clase Practica 4

Finalmente, teniendo en cuenta el comportamiento de x en el punto del infinito se sigue que C1 debe
ser cero.
Por lo tanto la solucion del ejemplo 4.13 es x(t) = 5et .

4.5 TRANSFORMADA DE LAPLACE DE UNA


FUNCION PERIODICA
En primer lugar recordamos la expresion obtenida en clase para calcular la transformada de Laplace
de una funcion periodica f (t) con perodo T .
Z T
est f (t)dt
f(s) = 0 .
1 eT s
A continuacion la escribimos de nuevo utilizando ahora la notacion MATLAB.
1/(1-exp(-T*s))*(int(exp(-s*t)*f(t),0,T)

Ejemplo 4.14 Obtener la transformada de la funcion f (t), periodica de perodo 2, definida por

20 0t
f (t) =
20 < t < 2

Resolucion del ejemplo 4.14


>>Lf=1/(1-exp(-2*pi*s))*(int(20*exp(-s*t),0,pi)
-int(20*exp(-s*t),pi,2*pi));
>>Lf=simplify(Lf)
Lf=-20*(exp(-pi*s)-1)/s/(exp(-pi*s)+1)

4.6 LA FUNCION DE TRANSFERENCIA


La funcion de transferencia H(s) de un sistema lineal se define como la razon entre la transformada
de Laplace de la salida y(t) y la transformada de Laplace de la entrada g(t), asumiendo que las
condiciones iniciales son nulas. Supongamos que el sistema esta gobernado por la EDL de coeficientes
constantes siguiente
ay 00 + by 0 + cy = g(t), t > 0,
(4.8)
y(0) = y 0 (0) = 0.
Al aplicar transformadas en ambos miembros de la ecuacion, y reflejar las condiciones iniciales
nulas, se obtiene
(as2 + bs + c)Y (s) = G(s).
Clase Practica 4 63

Luego, obtenemos la siguiente formula para H(s) en terminos del polinomio caracterstico de la ED

Y (s) 1
H(s) = = 2
G(s) as + bs + c

de donde, si h = H, se sigue que

G(s)
Y (s) = = G(s)H(s) = g h. (4.9)
as2 + bs + c
Notar que H(s) no depende de la entrada g(t).
Definamos ahora la llamada funcion de respuesta al impulso como

h(t) = L1 H(t)

Notar que h(t), al igual que H(s), tampoco depende de la entrada g(t). El alumno esta en capacidad
de deducir de (4.9) que la solucion y(t) de la ecuacion (4.8) esta dada por (aplicar teorema de
convolucion) 
y(t) = g h (t) (4.10)
Lo anterior significa que h(t) juega el papel de nucleo resolvente de la ecuacion (4.8). Se halla de una
vez, y luego, convolucionado con cualquier g(t) de entrada nos produce la respuesta o salida y(t).

Ejercicio 4.6 Mediante calculo directo halle la funcion de transferencia H(s) del sistema. Con la
ayuda del MATLAB encuentre la funcion de respuesta al impulso h(t) de los siguientes PVI, con
condiciones nulas.
(i) y 00 + 9y = g(t) (ii) y 00 9y = g(t)
(iii) y 00 y 0 6y = g(t) (iv) y 00 + 2y 0 15y = g(t)
(v) y 00 + 2y 0 + 5y = g(t) (vi) y 00 4y 0 + 5y = g(t)

Los resultados que se piden ya sabemos que no dependen de g(t). Usar la formula (4.10) para calcular
la solucion y(t) de (i) cuando g(t) = 4t2 y de (vi) cuando g(t) = exp(3t). (Para calcular el producto
de convolucion ver las instrucciones que se dan a continuacion.)

Indicaciones sobre el ejercicio 4.6


El siguiente codigo puede ejecutarse en la lnea de comandos, o puede confeccionarse un programa.

>>syms s t u
>>h=ilaplace(H,s,t);
>>f=subs(h,t,t-u);
>>g=subs(g,t,u);
>>P=f*g;
>>y=int(P,u,0,t)
64 Clase Practica 4

Nota 4.5 Tener en cuenta que

eit eit eit + eit


sen(t) = , cos(t) =
2i 2
et et et + et
senh(t) = , cosh(t) =
2 2
Usar tentativamente el comando SIMPLIFY si fuese necesario
CLASE PRACTICA 5

Metodos numericos para PVI (I)

OBJETIVOS
Presentar los metodos numericos de Euler y Euler mejorado para aproximar la solucion de problemas
de valores iniciales. Resolver problemas concretos, obteniendo soluciones numericas y estimados del
error, mediante el manejo de programas domesticos MATLAB basados en los algoritmos correspon-
dientes.

5.1 FUNCIONES ESPECIALES


En Matematica Aplicada, Fsica e Ingeniera aparecen con frecuencia ED de segundo orden. Entre
ellas destacamos la Ecuacion de Bessel. Esta ED ha sido ampliamente estudiada y sus soluciones,
asi como las de otras EEDD que surgen en las aplicaciones, reciben el nombre de FUNCIONES
ESPECIALES. La ED lineal de segundo orden
x2 y 00 + xy 0 + (x2 q 2 )y = 0 (5.1)
donde q es un parametro fijo, se llama ecuacion de Bessel de orden q y tiene una unica singularidad
regular en x = 0. Aplicando el metodo de Frobenius se obtienen, si 2q
/ N, las 2 soluciones linealmente
independientes siguientes:

X (1)n x
Jq (x) = ( )2n+q
n=0
n!(1 + q + n) 2

X (1)n x
Jq (x) = ( )2nq
n=0
n!(1 q + n) 2
que son las funciones de Bessel de primera especie de ordenes q y q respectivamente.
Las Funciones de Bessel verifican diversas relaciones de recurrencia, a saber:
Jq+1 (x) + Jq1 (x) = 2q/xJq (x),
Jq+1 (x) Jq1 (x) = 2Jq0 (x).

65
66 Clase Practica 5

Si q Z, entonces Jq (x) y Jq (x) son linealmente dependientes. Ademas Jq (x) = (1)q Jq (x).
Si q = 1/2, 3/2, 5/2, , las funciones de Bessel Jq se pueden expresar como una combinacion
finita de senos, cosenos y potencias de x; es decir que son funciones elementales. En concreto se
cumple que:
 1/2
2
J1/2 (x) = sen(x)
x
y
 1/2
2
J1/2 (x) = cos(x).
x
Las Funciones de Bessel Jq para q N son analticas en 0. Ademas son funciones pares si q es par e
impares si q es impar. A continuacion se representan las funciones de Bessel J0 , J1 , J1/2 y J3/2 .

5.1.1 Funciones de Bessel


Dentro del grupo de funciones matematicas especializadas que contiene MATLAB se encuentran las
funciones de Bessel de primera clase: besselj(n, x).
A continuacion se representan la funciones de Bessel J1 y J0 .
>>ezplot(0+x*0,[-20,20])
>>hold on; ezplot(besselj(1,x),[-20,20])
>>ezplot(0+x*0,[-10,10])
>>hold on; ezplot(besselj(0,x),[-10,10])

Fig. 5.1: Grafica de J1 Fig. 5.2: Grafica de J0

Funciones de Bessel J0 y J1
Se representan conjuntamente en [20, 20] las dos funciones de Bessel J0 y J1 . Observese como se
alternan los ceros de J0 y J1 .
Clase Practica 5 67

>>x=linspace(-20, 20,300);
>>y=besselj(0,x);
>>z=besselj(1,x);
>>plot(x, y,b.,x,z, r-,x,zeros(1,max(size(x))),k)

Funciones de Bessel J1/2 y J3/2

Ejecutar en la lnea de comandos el codigo


>>subplot(2,1,1),ezplot(besselj(3/2,x),[0,100])
>>subplot(2,1,2),ezplot(besselj(1/2,x),[0,100])
Para lograr los efectos que se muestran en la figura 5.4 deben usarse los recursos que ofrece la
propia ventana grafica.

Fig. 5.3: Graficas superpuestas de J1 y J0 Fig. 5.4: Graficas de Bessel J3/2 y J1/2

5.2 ESTUDIO DE LAS SOLUCIONES DE UNA ED


Los metodos a utilizar se pueden clasificar como:

(1) Metodos analticos de cuadraturas exactas (Temas 2, 3, 4 y 5).

(2) Metodos cualitativos.

(3) Metodos numericos (Clases Practicas 5, 6 y 7).

Los metodos exactos hasta ahora estudiados tienen grandes limitaciones, pues la mayora de las ED
que se encuentran en las aplicaciones no se pueden resolver de forma exacta, mediante formulas
68 Clase Practica 5

implcitas o explcitas.(1 Para compensar estas limitaciones se introducen los metodos numericos que
son el objeto de esta practica.

5.2.1 Metodos numericos de resolucion de PVI


Consideremos el siguiente PVI
y 0 = f (x, y), y(x0 ) = y0 , (5.2)
siendo x0 [a, b] y f C([a, b] R).
f
Se asume que f y son continuas en un rectangulo que contiene al punto (x0 , y0 ), de modo que
y
el problema (5.2) tiene solucion unica.

Estrategia de los metodos numericos:


Si y(x) es la solucion exacta del problema (5.2), se trata de obtener valores aproximados yk de y en
ciertos puntos xk de [a, b].
Se trata de crear una tabla de valores de la variable dependiente y correspondientes a valores
conocidos de la variable independiente x en un intervalo [x0 , X] [a, b].
El primer paso para obtener una solucion numerica consiste en determinar una particion del
subintervalo [x0 , X], esto es,
x0 < x1 < < xN = X.
Se supone que los puntos estan distribuidos uniformemente, de modo que

xk+1 xk = h, k = 0, 1, ..., N 1.

Los metodos numericos que estudiaremos permiten determinar los valores yk que constituyen una
aproximacion del valor de la solucion de (5.2) en los puntos xk .
Definicion 5.1 El conjunto
{yk }k=0,...N
se llama Solucion Numerica de (5.2) relativa al paso h.

5.2.2 Metodo de Euler o de la tangente


Reconsideremos el problema (5.2). Sabemos que el punto P = (x0 , y0 ) esta en la curva solucion del
mismo y que la pendiente de la tangente a dicha curva en P es y 0 (x0 ) = f (x0 , y0 ).
El metodo de Euler aproxima el valor de la solucion exacta en x cercano a x0 usando la ecuacion
de la tangente en el punto P = (x0 , y0 ):

y(x) = y0 + f (x0 , y0 )(x x0 ) (5.3)


1
No se pueden resolver de forma exacta porque el catalogo disponible de funciones elementales no alcanza para
obtener una formula cerrada, o porque dicha expresion es muy difcil de encontrar.
Clase Practica 5 69

Si se denotan por y1 , , yN los valores aproximados correspondientes a los valores exactos y(x1 ), , y(xN ),
entonces, aplicando (5.3) se sigue que dado y0 se calcula y1 mediante

y1 = y0 + f (x0 , y0 )h,

e y2 mediante
y2 = y1 + f (x1 , y1 )h,
y asi sucesivamente hasta yN
yN = yN 1 + f (xN 1 , yN 1 )h,
En forma compacta se obtiene el siguiente esquema

yk+1 = yk + hf (xk , yk ), k = 0, , N 1. (5.4)

5.2.3 Otra interpretacion del metodo de Euler


Integrando ambas partes de la ecuacion

y 0 (x) = f (x, y(x))

en el intervalo [xk , xk+1 ], obtenemos


Z xk+1 Z xk+1
0
y(xk+1 ) y(xk ) = y (x)dx = f (x, y(x))dx,
xk xk

y sustituyendo la integral de la derecha por el area de cierto rectangulo Q se obtiene que

y(xk+1 ) y(xk ) + f (xk , y(xk ))(xk+1 xk ).

Si ponemos el paso h = xk+1 xk y sustituimos y(xk ) por yk obtenemos de nuevo el esquema (5.4)
del metodo de Euler.
yk+1 = yk + f (xk , yk )h, k = 0, , N 1. (5.5)
La formula (5.5), llamada ecuacion en diferencias finitas, permite predecir yk+1 en terminos del
valor de yk . El dato o condicion inicial (CI) es y0 y desde el marchamos en una direccion haciendo cada
vez una nueva estimacion sobre la base de predicciones anteriores. Esto ultimo introduce desviaciones
en nuestros sucesivos calculos, provocando que estos sean mas imprecisos a medida que nos alejamos
del punto inicial x0 .
La formulacion (5.5) anterior corresponde al llamado metodo de Euler. Este resulta ser el mas
sencillo entre los metodos que se establecen mediante diferencias finitas para resolver problemas de
valores iniciales. La simplicidad del metodo de Euler lo hace especialmente adecuado para intro-
ducirnos en el tema numerico-experimental, si bien su utilizacion profesional es nula.
Sea y(x; h) la solucion aproximada obtenida con paso h, mediante un metodo numerico, por
ejemplo Euler, de un PVI cuya solucion exacta es y(x).
70 Clase Practica 5

Principio 5.1 Si agregamos mas puntos en la malla (xk ), para que h sea mas pequeno, entonces la
expectativa es que los errores |y(x) y(x; h)| sean mas pequenos.(2

Que significa decir que el metodo utilizado converge? (ver el 7.6 de [3])

Definicion 5.2 Si
lim y(x; h) = y(x),
h0

entonces decimos que el metodo converge.

Lo anterior significa que las soluciones y(x; h) de las ecuaciones en diferencias finitas que caracterizan
al metodo considerado, aproximan a la solucion exacta y(x) de la ED cuando h 0.
Luego, teoricamente, deberamos obtener mejores respuestas considerando valores cada vez mas
pequenos de h. Desafortunadamente, la aritmetica de precision finita del ordenador no lo permite.
Para h muy pequeno los valores yk obtenidos podran estar muy lejos del valor exacto y(xk ).(3
En general, la velocidad con la que y(x; h) se acerca a la solucion exacta y(x) se expresa de la
siguiente forma:
y(x) y(x; h) = O(hp ),
lo que significa que
|y(x) y(x; h)| M |h|p
para h pequeno y M > 0 dependiendo de x.

Definicion 5.3 Al exponente p de la relacion anterior se le llama orden del metodo.

Nota 5.1 El metodo de Euler es de orden p = 1.

5.2.4 Ejemplos en los que se aplica el metodo de Euler


Ejemplo 5.1 Obtener una solucion aproximada del PVI

y 0 = y 2 + 2x x4 , 0 x 1, con y(0) = 0

En el programa EULER1.m que indicamos a continuacion, se calcula la solucion aproximada del PVI

y 0 = y 2 + 2x x4 , a x b,

con y(a) = y0 .
Se calcula tambien el error cometido comparando con la solucion exacta del PVI que es y = x2 .
2
Un principio es un enunciado metalingustico, mediante el cual se establecen expectativas, se resumen resultados,
se sugieren acciones,... Los principios surgen de la experiencia y conforman el criterio experto.
3
Es decir, la mantisa correspondiente a yk , podra no tener dgitos significativos coincidentes con la representacion
de punto flotante de y(xk ).
Clase Practica 5 71

Fig. 5.5: Metodo de Euler Fig. 5.6: Interpretacion del metodo de Euler

Resolucion del ejemplo 5.1

Programa EULER1.m
Datos:
n es el numero de puntos de la malla,
a, b: extremos del intervalo dominio.
Resultados (salida):
arreglo y = [y(1) y(n)] con los valores aproximados de la solucion en los puntos
x(k) = a + (k 1) h con k = 1, , n y donde
h = (b a)/(n 1) es el paso.
Error maximo maxk {y(k) y(x(k))}

>>clear x y
>>n=20
>>a=0, b=1, y0=0
>>tic % Se comienza a calcular el tiempo de ejecucion
>>x=linspace(a,b,n), y(1)=y0; h=(b-a)/(n-1)
>>fork=1:n-1
>>y(k+1)=y(k)=+h*(y(k)^2+2*x(k)-x(k)^4);
>>end
>>error=max(abs(x.^2-y));
>>toc % Se termina el computo del tiempo de ejecucion
>>y
>>disp(El error maximo es: ), disp(error)
>>xx=linspace(a,b,50);
>>plot(x,y,k*,xx,xx.^2,b-)
72 Clase Practica 5

>>title(Solucion exacta y aproximada de y=y^2+2*x-x^4)


>>gtext(Solucion exacta : --)
>>gtext(Solucion aproximada : *)

Solucion:
n = 20, a = 0, b = 1, y0 = 0, h = 5.263157894737e 02
El error maximo es: 8.093460004977e 02
Los valores aproximados se obtienen en la lnea de comandos segun se indica a continuacion.

>>[y(1:10) y(11:20)]
ans = 0 2.4775e-001
0 3.0234e-001
5.5398e-003 3.6218e-001
1.6615e-002 4.2720e-001
3.3218e-002 4.9729e-001
5.5333e-002 5.7235e-001
8.2942e-002 6.5225e-001
1.1602e-001 7.3682e-001
1.5454e-001 8.2584e-001
1.9847e-001 9.1907e-001

Ejemplo 5.2 Obtener en el ejemplo 5.1 las diferentes aproximaciones correspondientes a n = 10,
100, 200 y 400.
Calcular en cada caso el error comparando con la solucion exacta, y relacionar este con el paso h.
Apreciar graficamente los resultados obtenidos.

Resultados del ejemplo 5.2


n paso h Error max
10 0.111111 0.1579
100 0.010101 0.0166
200 0.005025 0.0083
400 0.002506 0.0042

Ejercicio 5.1 Modificar el programa EULER1 para calcular una solucion aproximada del PVI
y 0 = 2xy 2 , 0 x 1, con y(0) = 1.
Obtener los errores cometidos, comparando con la solucion exacta, considerendo los pasos h1 = 23
y h2 = 25 .
Clase Practica 5 73

Fig. 5.7: Soluciones exactas y aproximadas de los ejemplos 5.1 y 5.2

Fig. 5.8: Soluciones exactas y aproximadas del ejemplo 5.2 para n = 100, 200

A continuacion se presenta el siguiente codigo modificado para el metodo de Euler que llamaremos
EULER2.m. para resolver la ecuacion y 0 = F (x, y) con la CI y(a) = y0 , en el intervalo [a, b], en n
puntos
x(k) = a + (k 1)h,
con k = 1, , n y donde el paso es h = (b a)/(n 1).
La funcion F se define previamente mediante el comando inline. Se obtiene el grafico y el vector y
de la solucion.
El programa EULER2.m es un procedimiento de tipo FUNCTION y uno de sus argumentos es una
funcion que se debe crear previamente.
Una de las aplicaciones mas utiles de los ficheros .M se presenta en la definicion de funciones mediante
la directiva FUNCTION cuya sintaxis es
FUNCION PARAMETROS SALIDA=NOMBRE FUNCION(parametros entrada)
El codigo de EULER2.m es el siguiente
74 Clase Practica 5

function y=euler2(F,a,b,y0,n)
h=(b-a)/(n-1)
x=linspace(a,b,n);y(1)=y0;
for k=1:n-1
y(k+1)=y(k)+h*F(x(k),y(k));
end
disp(Solucion de dy/dx=F(x,y), donde),
disp(F es la funcion inline), disp(F)
disp(El numero de puntos es n=), disp(n)
disp(Paso h=), disp(h)
plot(x,y,k)
title(Solucion de la ED dy/dx=F(x,y))

Ejemplo 5.3 Calcular aproximadamente, usando EULER2.m, la solucion de la ED

y 0 = y + sen(x)

con y(0) = 1, 0 x 1.

Fig. 5.9: Solucion aproximada del ejemplo 5.3

Solucion del ejemplo 5.3


>>F=inline(y+sin(x))
F=Inline function:
F(x,y) = y+sin(x)
>>y=euler2(F,0,1,1,10)
Clase Practica 5 75

El numero de puntos es n = 10
Paso h = 0.11111111111111
>>y=
1.00000000000000
1.11111111111111
1.24688819329123
1.40991996404094
1.60293270413395
1.82880926720753
2.09061200642747
2.39160998526049
2.73531085875018
3.12549783431139

Nota 5.2 Observese que el programa EULER2 no permite juzgar la calidad de los resultados obtenidos.

Ejercicio 5.2 Aproximar, usando EULER2.m, la solucion de la ED


1
y0 = (y + y 2 ),
x (5.6)
y(1) = 1, 1 x 2

tomando el paso h = 22 .

5.2.5 Precision de los resultados


Todo calculo aproximado debe tener en cuenta un indicador que permita evaluar la calidad de los
resultados. En nuestro caso se trata de calcular la solucion aproximada de una ED y de poder decidir
sobre la precision del resultado.
El error exacto es imposible de conocer, de modo que se trata de obtener una estimacion del mismo.
Si dicha estimacion se obtiene despues de realizar los calculos y se basa en la utilizacion de estos, se
dice que es una estimacion del error a posteriori.
El siguiente programa EULER3 es una version mas flexible que la anterior, pues permite que el
usuario defina el dato F (x, y), el intervalo y la CI.
Como salida se obtienen los valores aproximados y las graficas de dos resultados calculados con
diferentes mallas de puntos, lo que permite estimar el error a posteriori si nos basamos en el siguiente
principio: Si d es la distancia entre dos aproximaciones de la solucion exacta de un PVI, entonces d
es una estimacion de la distancia entre una cualquiera y la solucion exacta.(4
El programa EULER3.m es un procedimiento de tipo FUNCTION y uno de sus argumentos es
una funcion que se debe crear previamente.
4
Se trata de un enunciado obviamente impreciso y aparentemente peligroso. Es frecuente en la practica cuando no
hay otra opcion. Se emplea en los comandos Matlab: ODE45 y ODE32.
76 Clase Practica 5

Resuelve la ecuacion y 0 = F (x, y) con la condicion inicial y(a) = y0 , en el intervalo [a, b], en N puntos
x(k), (k = 1, , N ), donde

h = (b a)/(N 1) y N = n, 2n 1.

La funcion F se define previamente mediante el comando INLINE.

Procedimiento para estimar el error


Se estima a posteriori el error tomando la diferencia maxima entre las soluciones obtenidas con los
pasos
h = (b a)/(n 1) y h1 = h/2 = (b a)/(2n 2).
Salida.
Se ofrece la estimacion del error a posteriori y los graficos de ambas aproximaciones numericas.
Codigo de EULER3.M

function [error,x1,y1]=euler3(F,a,b,y0,n)
N=n;
h=(b-a)/(N-1);
x=linspace(a,b,N);
y(1)=y0;
donde y es la solucion con N = n puntos.
for k=1:N-1
y(k+1)=y(k)+h*F(x(k),y(k));
end
N=2*n-1; h=(b-a)/(N-1)
x1=linspace(a,b,N)
y1(1)=y0
donde y1 es la solucion con N = 2n 1 puntos.
for k=1:N-1
y1(k+1)=y1(k)+h*F(x1(k),y1(k));
end
for k=1:n
e(k)=abs(y(k)-y1(2*(k-1)+1);
end
error=max(e)
plot(x,y,b,x1,y1,r)
legend(Aprox. con n puntos, Aprox. con 2n-1 puntos)
title(Solucion de la ecuacion dy/dx =F(x,y))
Clase Practica 5 77

Ejemplo 5.4 Obtener, usando EULER3.m, una solucion aproximada de la ED


y 0 = y 2 + 2x x4 , 0 x 1,
con la C.I. y(0) = 0. Estimar el error.

Resolucion del ejemplo 5.4


>>F=inline(y.^2+2.*x-x.^4)
Inline function:
F(x,y) = y.^2+2.*x-x.^4
>>[error,x1,y1]=euler3(F,0,1,0,10)
h =1.111111111111111e-001 h =5.555555555555555e-002
error = 7.285473724418645e-002

Fig. 5.10: Soluciones aproximadas del ejemplo 5.4

Ejercicio 5.3 Sea el PVI siguiente


y 0 = y 2 , 0 x 1/2, con y(0) = 1. (5.7)
A que tipos conocidos de ecuaciones corresponde la anterior ED?
Por que no es lineal?
Que metodos utilizaras para intentar hallar una solucion exacta?
Usando EULER3 obtener las soluciones aproximadas con N = 23 y N = 24 1 puntos y
estimar el error cometido.
Calcular el error exacto y compararlo con el error estimado teniendo en cuenta que la solucion
exacta es y = 1/(x 1).
78 Clase Practica 5

5.3 METODO DE EULER MEJORADO


Para disenar otro metodo numerico mas eficiente que el de Euler, utilizaremos una nueva formula de
integracion numerica de mayor orden de exactitud que la utilizada en el metodo de Euler.

5.3.1 La formula de los trapecios


La formula de los trapecios consiste en sustituir el valor exacto de la integral
Z b
f (x)dx,
a

por el numero
(f (a) + f (b))
(b a) ,
2
es decir, el area del trapecio cuyos vertices son (a, 0), (a, f (a)), (b, f (b)) y (b, 0).
Con ello se trata de efectuar calculos mas precisos en la aproximacion de la integral sobre cada
uno de los subintervalos [xk , xk+1 ]
Z xk+1
f (x, y(x))dx.
xk

Notar otra vez que el integrando de la expresion anterior tiene dentro de s a la incognita y(x) de
nuestro problema.

Fig. 5.11: Regla del trapecio

En resumen y dicho en terminos geometricos, el metodo de Euler consistio en sustituir el area


bajo la curva de g(x) = f (x, y(x)) por el area de cierto rectangulo, mientras que ahora, en lugar del
Clase Practica 5 79

rectangulo utilizaremos un trapecio para obtener la siguiente expresion(5


Z xk+1
h 
f (x, y(x))dx f (xk , y(xk )) + f (xk+1 , y(xk+1 )) ,
xk 2

donde h = xk+1 xk .
Surge as un metodo de calculo aproximado cuya formulacion es la siguiente.
h 
yk+1 = yk + f (xk , y(xk )) + f (xk+1 , yk+1 ) .
2
Se trata de un metodo implcito ya que la incognita yk+1 , no aparece despejada en la formula. Ademas
se prueba que el error global de discretizacion E(h) cumple

E(h) = O(h2 ),

y por tanto es de orden p = 2.

5.3.2 Deduccion del metodo de Euler mejorado


El metodo de Euler mejorado se obtiene realmente como el metodo predictor-corrector siguiente

(1) Se predice yk+1 mediante Euler



yk+1 = yk + hf (xk , yk ).

(2) Se corrige mediante la anterior relacion


 
h
yk+1 = yk + f (xk , yk ) + f (xk + h, yk + hf (xk , yk ))
2 | {z } | {z }

xk+1 yk+1

Resultando definitivamente el algoritmo de Euler mejorado


h
yk+1 = yk + [f (xk , yk ) + f (xk+1 , yk + hf (xk , yk ))] .
2

5.3.3 Euler versus Euler mejorado


El siguiente programa, EULER M, nos permite comparar entre s los dos metodos estudiados an-
teriormente. El procedimiento consiste en tratar de resolver una ED, cuya solucion es conocida,
mediante Euler y Euler mejorado. El experimento culmina con la estimacion del error global con
respecto a ambos metodos, y el trazado en pantalla de los respectivos graficos.
5
Ver seccion 3.5 del Nagle Saff y la figura 5.11.
80 Clase Practica 5

Descripcion del programa EULER M


El programa EULER M resuelve la ecuacion y 0 = F (x, y) con la C.I. y(a) = y0 , en el intervalo [a, b],
en n puntos x(k), (k = 1, , n), con el paso h = (b a)/(n 1), utilizando los metodos Euler y
Euler mejorado.
Las funciones F (campo de direcciones) y f (solucion exacta conocida) se definen previamente me-
diante el comando INLINE.
El programa estima los respectivos errores absolutos y los ofrece como salida, segun el formato que
mas abajo se explica. Estos errores se obtienen directamente en terminos del maximo de la distancias
entre cada estimacion yek y el valor exacto f (xk ). Los correspondientes graficos se despliegan en una
misma ventana para facilitar la apreciacion visual.

Codigo EULER M
function [es,em]=euler_m(F,f,a,b,y0,n)
h=(b-a)/(n-1);
x=linspace(a,b,n);
phi=f(x);
ys(1)=y0;
for k=1:n-1
ys(k+1)=ys(k)+h*F(x(k),ys(k));
end
ym(1)=y0;
for k=1:n-1
ym(k+1)=ym(k)+(h/2)*(F(x(k),ym(k))+F(x(k)+h,ym(k)+h*F(x(k),ym(k))));
end
% Errores absolutos
em=max(abs(ym-phi));
es=max(abs(ys-phi));
plot(x,phi,g*,x,ys,k,x,ym,b)
legend(Solucion exacta,Euler,Euler mejorado)
Ejemplo 5.5 Obtener una solucion aproximada de la ED
y 0 + y/x y 2 log(x) = 0,
en [1, 3] con la C.I. y(1) = 1, usando los metodos de Euler y de Euler mejorado.
Para el calculo del error, usar que la solucion exacta es
f (x) = 2/x/(log(x)2 2),
la cual se puede obtener usando el comando DSOLVE.
>>dsolve(Dy+y/x-y^2*log(x)=0,y(1)=1,x)
ans =-2/x/(log(x)^2-2)
Clase Practica 5 81

Resolucion del ejemplo 5.5


Se resuelve el ejercicio usando EULER M
>>F=inline(-y./x+y.^2.*log(x))
F =Inline function:
F(x,y) = -y./x+y.^2.*log(x)
>>f=inline(-2./x./(log(x).^2-2))
f =Inline function:
f(x) = -2./x./(log(x).^2-2)
>>[es,em]= euler_m(F,f,1,3,1,21)
es =1.4013e-001 em =4.6401e-003

Fig. 5.12: Soluciones exactas y aproximadas del ejemplo 5.5 (n = 21, 41)

Variando el numero de puntos de la particion se obtienen los resultados siguientes:


>>[es,em]=euler_m(F,f,1,3,1,41)
es = 7.4861e-002 em = 1.1086e-003
>>[es,em]=euler_m(F,f,1,3,1,81)
es = 3.8867e-002 em = 2.7031e-004
>>[es,em]=euler_m(F,f,1,3,1,101)
es = 3.1342e-002 em = 1.7211e-004
Ejercicio 5.4 Valorar el comportamiento del metodo Euler mejorado comparando este con Euler,
mediante el codigo EULER M, aplicado a los siguientes datos:
(a) F (x, y) = 2y, f (x) = exp(2x), 0 x d,
(b) F (x, y) = y, f (x) = exp(x), 0 x d,
ambos con y(0) = 1, siendo f (x) la solucion exacta en cada caso, considerando
(1) n = 24 , d = 1,
82 Clase Practica 5

(2) n = 24 , d = 100,

(3) n = 27 , d = 100.

Valorar los resultados numericos con el error absoluto, para lo cual el alumno debera utilizar la
plantilla donde aparece una tabla de resultados con las entradas ya organizadas.

Indicaciones para el Ejercicio 5.4. Separar los problemas segun el apartado al que pertenecen, por
ejemplo
>>Fa=inline(2*y+0*x);
>>fa=inline(exp(2*x));
>>[es,em]=euler_m(Fa,fa,0,1,1,2^4)
% no poner ; al final para producir eco en pantalla,
con lo cual obtenemos directamente y sin pausas los errores generados por el metodo de Euler y
Euler mejorado, es y em respectivamente, para el problema (a) con d = 1 y 24 nodos.
Definir F b y f b y proceder aplicando EULER M.
Las plantillas que el profesor ha entregado en clases deben rellenarse con los resultados para ser
entregadas al final.
La realizacion de este tipo de problemas debe permitirnos llegar a conclusiones experimentales y
teoricas, y ademas, ganar experiencia en la aplicacion de estos metodos.

5.4 OTROS METODOS NUMERICOS


Podemos disenar otros metodos numericos para resolver y 0 = f (x, y), y(x0 ) = y0 , calculando aproxi-
madamente la integral Z xk+1
f (x, y(x))dx,
xk

mediante nuevos procedimientos numericos. Segun sea el orden del error producido por la formula
de integracion que utilicemos, as sera el orden del metodo numerico que permitira calcular aproxi-
madamente la solucion del PVI.

5.4.1 Ejemplo de metodo de dos pasos


Para desarrollar ideas haremos la deduccion rapida de un tercer enfoque para resolver un PVI. El
nuevo metodo que veremos se clasifica como un metodo de dos pasos, le llamaremos metodo del
punto medio. Al igual que Euler aproximamos el area bajo la curva sustituyendola por el area de un
rectangulo, esta vez a la altura y(xk ) de la imagen del punto medio xk del intervalo [xk1 , xk+1 ] (ver
figura 5.13).
La formulacion del metodo del punto medio es la siguiente

yk+1 = yk1 + 2hf (xk , yk ). (5.8)


Clase Practica 5 83

Fig. 5.13: Ilustracion de un metodo de dos pasos

Notar que (5.8) es un metodo explcito porque yk+1 aparece despejado, y que la estimacion yk+1
depende de las estimaciones yk e yk1 (dos pasos). Esto ultimo indica que para iniciar el proceso,
tambien debemos conocer de antemano el valor de y1 . Recordar que y0 es un dato del propio problema.
No continuaremos tratando este metodo que el alumno interesado puede encontrar en [1].

5.5 CONCLUSIONES
En general podemos postular que

1. El orden de un metodo es un indicador que esta relacionado con el numero de operaciones


logico-aritmeticas que han de ejecutarse para alcanzar una precision dada. Es una referencia
vaga ya que en la practica experimental influyen diversos factores en la eficiencia de un metodo.
No obstante, permite hacer una primera comparacion entre dos metodos diferentes.

2. No existe un metodo numerico que sea de aplicabilidad universal.

3. Los estimados del error a posteriori, ya contemplados en el programa EULER M, permiten


juzgar acerca de la calidad de los resultados numericos al aplicar un metodo a un problema
concreto cuya solucion exacta es desconocida.

4. El metodo de Euler es un metodo muy simple, que no se utiliza en la practica, pero resulta
muy adecuado para introducirnos en el estudio general de los metodos numericos que resuelven
aproximadamente problemas de valor inicial. El metodo de Euler pertenece a una clase de
metodos llamados de un paso, y que en general se caracterizan por la siguiente relacion
recurrente:
yk+1 = yk + (h, xk , yk ).
84 Clase Practica 5

5.6 EJERCICIOS ADICIONALES


Ejercicio 5.5 Utilizar el programa EULER3 para calcular una solucion de
2x 2
y0 = y , 0 x < 3, con y(0) = 1. (5.9)
9
Detectar una anomala, en este caso la presencia de una singularidad en x = 3, calculando la
solucion para
n = 20, 100, 500, 1000, 1500, 3000,
y el correspondiente error (que debe crecer con n).
Se sugiere poner punto y coma al final de la lnea donde se ha invocado EULER3, para evitar el
eco incontrolado en pantalla, y dar unicamente salida al contenido de aquellas variables que deseamos
conocer, por ejemplo
>>[error,x1,y1]=euler3(F,0,3,1,3000);
>>error
error =2.2165e+002
La solucion exacta del problema es y = 9/(9 x2 ).

5.6.1 Aplicacion: calculo de la elasticidad b(x)


La elasticidad b(x) es un indicador utilizado por los economistas en algunas de sus versiones discretas
para analizar la llamada elasticidad de la demanda y = y(x), como funcion del precio x de un
producto. Este analisis puede conducir a decisiones arriesgadas como es la de subir los precios con
expectativas de mayores ingresos, aun cuando la demanda disminuye.

Ejercicio 5.6 Utilizar el codigo EULER3 para obtener soluciones aproximadas de

xy 0 = y b(x), y(1) = 1, (5.10)

en los dominios siguientes

(I) 1 x 2,

(II) 1 x 2 102 ,

(III) 1 x 2 1012 ,

considerando las elasticidades:

1. b(x) = 0.2,

2. b(x) = sen(x) 1.

Estimar el error global de discretizacion para n = 100 puntos.


Clase Practica 5 85

Ejercicio 5.7 Resuelva la ecuacion (5.10) mediante variables separables y responda con argumentos
a las siguientes preguntas.

1. Es (5.10) una ecuacion diferencial lineal?

2. Influyen el intervalo y el signo de b(x) en la calidad de la aproximacion numerica?

3. Se justifica aplicar un metodo numerico cuando b(x) es constante (apartado 1)?


CLASE PRACTICA 6

Metodos numericos para PVI (II)

OBJETIVOS
1. Aplicar los metodos numericos estudiados en la clase practica No. 5 a problemas de valores o
condiciones iniciales asociados a ecuaciones y sistemas diferenciales.

2. Profundizar en el estudio de las series de Fourier mediante ejemplos graficos.

En esta clase el alumno comprobara la importancia que tiene transformar ecuaciones y sistemas
diferenciales de orden superior en sistemas de primer orden. Al igual que la clase anterior, solo
utilizaremos herramientas graficas y numericas del sistema MATLAB.

6.1 METODOS PARA RESOLVER PROBLEMAS


ASOCIADOS A SISTEMAS DE EEDD
Para simplificar consideremos un sistema S de dos ecuaciones y dos incognitas x = x(t) e y = y(t).
0
x = f (t, x, y)
S: y 0 = g(t, x, y)
x(t0 ) = x0 , y(t0 ) = y0

Notemos que el anterior sistema S puede ser no-lineal. Si los terminos de la derecha no dependiesen
de t diramos que S es un sistema autonomo.

6.1.1 Metodo de Euler mejorado


Aplicaremos metodos como el de Euler mejorado(1 para estudiar numericamente la solucion del
sistema S.
No obstante, cualquiera sea el metodo que apliquemos a un sistema de EDs se tiene que:
1
Euler mejorado pertenece a la familia de metodos de Runge-Kutta que mas adelante estudiaremos.

87
88 Clase Practica 6

1. En cada etapa debe ser aplicado el metodo a todas las ecuaciones antes de pasar a la siguiente
etapa. Ademas, el paso h debe ser el mismo para todas las ecuaciones.

2. Otra cuestion que no podemos pasar por alto es que la solucion numerica de una ecuacion o
sistema diferencial de orden mayor que uno debe ser primero transformado en un sistema de
orden uno. A este ultimo se le aplica directamente el metodo numerico.

3. Cualquiera de los metodos de diferencias finitas que estudiemos para resolver el PVI escalar
y 0 = F (x, y), y(x0 ) = y0 , puede tambien ser aplicado a un sistema diferencial.

A continuacion recordamos como se transforma una ED de orden dos

y 00 = f (t, y 0 , y) (6.1)

en un sistema de EEDD de orden uno.


Si hacemos x = y 0 , entonces y 00 = x0 . Sustituyendo en (6.1) y agregando la nueva ecuacion y 0 = x,
originada por el propio cambio, obtenemos el sistema de primer orden

x0 = f (t, x, y)
y0 = x

De su solucion (x(t), y(t)) solo necesitamos la componente y = y(t) que es la solucion del problema
original. El algoritmo de Euler mejorado aplicado a un sistema diferencial generico S queda formulado
tal como se muestra a continuacion

Euler mejorado aplicado a un sistema


h
f (tk , xk , yk ) + f (tk+1 , xk+1 , yk+1


xk+1 = xk + )
2
(6.2)
h
g(tk , xk , yk ) + g(tk+1 , xk+1 , yk+1


yk+1 = yk + )
2
donde las predicciones para k + 1 estan dadas por

tk+1 = tk + h

xk+1 = xk + hf (tk , xk , yk ) (6.3)


yk+1 = yk + hg(tk , xk , yk )

6.1.2 Sobre los programas S2 EULER y RK CELL


El programa S2 EULER, descargable desde la Web de la asignatura [15], se compone de dos modulos.
El primero, a modo de interfaz logra que el codigo sea transparente al usuario. El alumno solo tiene
que saber que datos debe dar como entrada, e interpretar los resultados.
Clase Practica 6 89

Los datos relativos al campo de direcciones o a la entrada opcional de la solucion exacta se entregan
cuando lo solicita el programa, con la sintaxis o notacion usual, sin encerrar entre apostrofes ni poner
puntos delante de operadores. Esto ultimo es necesario para la ejecucion pero el propio programa se
encarga de hacerlo automaticamente.
Como sintaxis se admite una cualquiera de las siguientes:(2
s2_euler y=s2_euler [t,y]=s2_euler [t,x,y]=s2_euler
El segundo modulo esta constituido por dos sub-programas situados al final del codigo. Uno de
ellos, tal como se senalo anteriormente, se encarga de escribir el punto delante del operador division
\, la multiplicacion *, y la exponenciacion ^. La otra sub-funcion, de mayor interes para el alumno,
permite simular el metodo de Euler mejorado aplicado a un sistema diferencial de dos ecuaciones, y
se corresponde con la formulacion (6.2-6.3).
Los calculos se realizan atendiendo al paso h dado por el usuario, y para h/2, con la finalidad de
comparar los correspondientes resultados y obtener un estimado del error a posteriori.
Pueden entrarse varios pasos h, de modo que al final se dispone de una sola vez de los errores
correspondientes.
Los graficos de las soluciones aproximadas aparecen en pantalla superpuestos y solo corresponden
al ultimo paso.
El programa RK CELL, que tambien podemos obtener en la Web de la asignatura [15], es una
interfaz de usuario para facilitar el uso de la herramienta ODE45 de MATLAB aplicada a sistemas de
ecuaciones. El diseno de RK CELL se basa en usar objetos CELL para simular funciones vectoriales
de cualquier numero de dimensiones. El propio programa crea automaticamente el fichero FUNC-
TION correspondiente al campo vectorial, con las caractersticas exigidas por ODE45. Este comando
Matlab ejecuta algoritmos correspondientes a los metodos de Runge-Kutta que estudiaremos en la
clase practica 7.

6.1.3 Ejercicios con indicaciones para ser resueltos


Ejercicio 6.1 Dado el sistema diferencial lineal siguiente

x0 = x + y,
y 0 = x y,
x(0) = 1 + 2, (6.4)
y(0) = 1,

donde 0 t 1, emplear el programa S2 EULER con los pasos h = 0.05/2k , k = 0, 1, 2, 3, 4, para


resolverlo.

Indicaciones para el ejercicio 6.1


Escribir
2
Para mas informacion ejecutar help s2 euler
90 Clase Practica 6

>>s2_euler
y oprimir INTRO.
La solucion exacta del sistema (6.4), que es una entrada opcional, es la siguiente
t2
x(t) = (1 + 2)e , y(t) = et 2

El problema (6.4) es lineal y homogeneo. El alumno debera intentar resolverlo artesanalmente


mediante los metodos estudiados en clases. Ver la figura 6.1.

Fig. 6.1: Grafico producido por S2 EULER al resolver el ejercicio 6.1

Ejercicio 6.2 Resolver numericamente el sistema no lineal:

x0 = x2 + x + 5y
y 0 = y 2 + sen(x) + 3x y
x(0) = 0.001, 0 t 1.
y(0) = 0.001,

Obtener una estimacion del error para h = 0.05/2k , k = 0, 1, 2, 3, 4.

Indicaciones para el ejercicio 6.2

Escribimos de nuevo
>>s2_euler
oprimimos INTRO e introducimos lo datos del problema para despues obtener los resultados. No
cerramos el grafico de salida, cuyo aspecto podemos apreciar anticipadamente en la figura 6.2, para
poder comparar con el que produciremos en el ejercicio 6.3.
Clase Practica 6 91

Fig. 6.2: Grafico producido por S2 EULER al resolver el ejercicio 6.2

Ejercicio 6.3 Resolver numericamente el sistema lineal:


x0 = x + 5y
y 0 = 4x y
x(0) = 0.001, 0 t 1.
y(0) = 0.001,

Obtener una estimacion del error para h = 0.05/2k , k = 0, 1, 2, 3, 4.

Indicaciones para el ejercicio 6.3


Antes de ejecutar >>s2_euler aplicar HOLD ON para que el grafico anterior, del ejercicio 6.2, quede
superpuesto al grafico del ejercicio 6.3.

A continuacion se muestra como se ha perturbado localmente el problema 6.2 para


transformarle en el problema 6.3
Los problemas planteados en los ejercicios 6.2 y 6.3 estan relacionados entre s. El estudiante debe
apreciar que las ecuaciones diferenciales del ejercicio 6.2 son no lineales, mientras que las del 6.3
son todas lineales. Mostraremos como el campo de direcciones del sistema diferencial del ejercicio
6.2 se aproxima localmente mediante su diferencial, y como a partir de este ultimo se producen las
ecuaciones lineales del problema 6.3. Se dice que el sistema del ejercicio 6.3 es una aproximacion
lineal del sistema del ejercicio 6.2. Las expectativas son: que la solucion de 6.3 sea una aproximacion
aceptable de la correspondiente a 6.2 en un intervalo [0, ], con > 0 suficientemente pequeno,
y que el metodo numerico seleccionado sea mas efectivo resolviendo el problema lineal 6.3, que el
problema no lineal 6.2.(3
3
La frase suficientemente pequeno encierra otro problema cuya solucion no abordaremos en este material.
92 Clase Practica 6

Fig. 6.3: Grafico producido por S2 EULER al resolver el ejercicio 6.3

El calculo de los siguientes diferenciales en (0, 0)

D(x2 + x + 5y)(0, 0) = dx + 5dy

D(y 2 + sen(x) + 3x y)(0, 0) = 4dx dy


y la conocida formula
f (x, y) f (0, 0) + Df (0, 0)(x 0, y 0)
valida para x e y pequenos, nos muestran que

x2 + x + 5y x + 5y

y 2 + sen(x) + 3x y 4x y
Es oportuno senalar que los valores iniciales x(0) = 0.001, y(0) = 0.001 se han seleccionado inten-
cionadamente pequenos en correspondencia con el proceso anterior.

Ejemplo 6.1 El siguiente PVI, extrado del Boletn 7, consiste de una ED lineal y homogenea de
orden dos con coeficientes variables.

y 00 ty 0 + y = 0,
(6.5)
y(0) = 2, y 0 (0) = 1, t [0, 1],

Indicaciones para el ejemplo 6.1


El PVI (6.5) del ejemplo 6.1, puede ser resuelto mediante el metodo de las series de potencias. Ahora
nos proponemos aplicar el programa S2 EULER al sistema de orden uno que se le asocia, y que el
propio alumno debe calcular directamente.
Clase Practica 6 93

Fig. 6.4: Grafico obtenido al resolver el ejemplo 6.1

Como comprobacion de los resultados apreciaremos que la grafica de la solucion numerica, obtenida
segun Euler, es muy similar a la del polinomio

t4 t6
y(t) = 2 + t t2 , (6.6)
12 120

obtenido al truncar la serie de potencias que da la solucion exacta de este problema.(4

Resolucion del ejemplo 6.1

A continuacion expondremos el proceso de obtencion de la solucion exacta y los graficos de las


soluciones aproximadas.
Comencemos viendo que la solucion exacta del problema (6.5), expresada en terminos de una
serie de potencias en torno al punto x = 0, es

X
an tn ,
n=0

siendo los an definidos por la recurrencia a tres terminos

an (n 1)
an+2 = , n = 0, 1, 2, ...
(n + 2)(n + 1)

donde a0 = 2 y a1 = 1, segun se indica en las condiciones iniciales.


4
Observar que siendo t [0, 1], y atendiendo a la precision deseada, el termino con la potencia t6 tambien podra
despreciarse en la aproximacion (6.6).
94 Clase Practica 6

Sea P=[a_6,...,a_0], el vector formado por los coeficientes an , n = 0, ..., 6, de la suma parcial
que estamos considerando como una aproximacion de la solucion del problema (6.5)
6
X
an tn = a6 t6 + + a1 t + a0 .
n=0

El comando POLYVAL interpreta a P como un polinomio y permite evaluarlo en variables escalares o


vectoriales.(5
Para comparar los resultados obtenidos mediante series de potencias y el metodo Euler mejorado
aplicado al sistema asociado, ejecutar S2 EULER optando por la salida grafica y hacer
>>hold on
>>tt=linspace(0,1,50);
>>P=[-1/120, 0, -1/12, 0, -1, 1, 2];
>>yy=polyval(P,tt);
>>plot(tt,yy,+g)
El resultado en pantalla debera ser similar a la figura 6.4.

RESUMEN
Para resolver una ED o un sistema de EEDD de orden mayor que uno, estos deben ser convertidos
previamente en un sistema de orden uno, y aplicarle a este ultimo uno de los metodos estudiados
para el caso escalar.
La serie de potencias que representa a la solucion de un problema con datos analticos, puede
ser simulada numericamente utilizando una suma parcial seleccionada convenientemente, lo que, en
principio, constituye otro metodo para aproximar la solucion.

6.2 EJERCICIOS ADICIONALES


Ejercicio 6.4 Aproximar los valores de la solucion del PVI
y 00 + 2t2 y 0 + 5y = 0,
y(0) = 1, y 0 (0) = 1, t [0, 2].
en los puntos t = 0.21, 0.95, 1.31, 1.84.
Ejercicio 6.5 Aproximar los valores de la incognita y = y(t)
x0 = tx + 5y + t2 ,
y 0 = 2x + 6y + 4,
x(0) = 0, y(0) = 1, t [0, 1].
en los puntos t = 0.11, 0.23, 0.59, 0.82.
5
El comando POLYVAL es compatible con la arquitectura matricial del MatLab, es decir, admite matrices como
argumento de entrada.
Clase Practica 6 95

Ejercicio 6.6
x0 = tx 10y 4t 2t2 ,
y 0 = x + 6y,
x(0) = 1, y(0) = 1, t [0, 1].
Ejercicio 6.7
y 0 = x + 6y + 3,
x0 = 2x + y,
x(0) = 2, y(0) = 4, t [0, 2].

6.2.1 Indicaciones para resolver los ejercicios (6.4)-(6.7)


Indicaciones para el ejercicio 6.4
Si intentamos resolver el ejercicio 6.4 con DSOLVE obtenemos
>> dsolve(D2y+2*t^2*Dy+5*y=0,y(0)=1,Dy(0)=-1)
Warning: Explicit solution could not be found.
> In C:\MATLABR11\toolbox\symbolic\dsolve.m at line 326
ans =
[ empty sym ]
Abordemos la solucion por la va numerica. Para ello escribimos la EDLH de 2do orden del
ejercicio 6.4 como un sistema de primer orden
x0 = 2t2 x 5y,
y 0 = x,
x(0) = 1, y(0) = 1,
para aplicar S2 EULER.M o RK CELL.M.
Hagamos
>>[t,y]=s2_euler
porque solo nos interesa almacenar en memoria los valores aproximados de y = y(t), la incognita
del problema original. Entrar h = 0.2
Desplegamos el grafico para contrastarlo con el de la figura 6.5.
Los puntos t donde se nos pide el valor aproximado de la solucion no esta previsto que coincidan
con los de la red uniforme asociada al paso h escogido, por tanto, debemos interpolar.
Ejecutamos el programa INTERPOLA con la siguiente sintaxis
>>[T1,Y1]=interpola(t,y)
Entramos los puntos donde queremos interpolar segun se nos indica en la plantilla.
Entrar el vector T1=[t1,...,tm]=[.21 .95 1.31 1.84]
A continuacion aparecen las listas de los puntos interpolados (T1 , Y1 ) y el grafico que muestra su
posicion (ver figura 6.5).
La leyenda que aparece en la esquina superior izquierda puede moverse arrastrandola con el cursor.
96 Clase Practica 6

Fig. 6.5: Graficas de S2 EULER.M e INTERPOLA.M. Ejercicio 6.4

Indicaciones para el ejercicio 6.5


Para el ejercicio 6.5 tampoco DSOLVE ofrece respuesta. Es posible que el termino tx de la primera
ecuacion provoque una complejidad excesiva o no existe, de hecho, una solucion representable con el
catalogo de funciones MATLAB.
Nos queda la alternativa de aplicar S2 EULER o RK CELL al sistema anterior. Los resultados
graficos que se muestran en la figura 6.6 corresponden al metodo RK CELL.
Proceder tal como se hizo en el ejercicio 6.4, empleando el programa INTERPOLA (ver fig. 6.6).

Fig. 6.6: RK CELL e INTERPOLA.M aplicados al ejercicio 6.5

Indicaciones para el ejercicio 6.6


Aplicamos S2 EULER con h = 0.001 al ejercicio 6.6, y ejecutamos en la lnea de comandos
Clase Practica 6 97

>>hold on
Podemos comprobar experimentalmente la coincidencia de dos metodos vistos en clases. Si trans-
formamos el sistema del problema 6.6 en una EDL de 2do orden obtenemos

y 00 (t + 6)y 0 + (6t + 10)y = 4t 2t2 ,


y(0) = 1, y 0 (0) = 5.

La anterior ecuacion es excesivamente complicada para el nucleo simbolico de MATLAB. La ecuacion


homogenea asociada tiene solucion mediante el comando DSOLVE en terminos de la funcion especial
WhittakerM.(6
Notemos que la ED lineal

y 00 (t + 6)y 0 + (6t + 10)y = 4t 2t2 ,

puede ser resuelta mediante series de potencias aunque su proceso de resolucion es algo mas com-
plicado que los problemas vistos en clases. Sin embargo, lo aprendido nos sobra para abordar su
solucion en torno a t = 0. Despues de asumir que y(t) es analtica en x0 = 0, llegamos a que


X
y(t) = an tn
n=0

donde

Fig. 6.7: Solucion grafica del ejercicio 6.6

6
Usar mhelp en lugar de help para ver mas detalles sobre esta funcion especial.
98 Clase Practica 6

Fig. 6.8: Soluciones DSOLVE y RK CELL. Ejercicio 6.7

a0 = 1,
a1 = 5,
a2 = 3a1 5a0 = 10,
a3 = (12a2 9a1 6a0 4)/6,
a4 = (18a3 8a2 6a1 2)/12,

6(n + 1)an+1 + (n 10)an 6an1
an+2 = , n = 3, 4, 5, ...
(n + 2)(n + 1)
Ahora ejecutamos el programa TRUNCADA.M- que descargamos desde [15]- para calcular las
sumas parciales de la anterior serie de potencias.
Para obtener la suma parcial correspondiente al termino N = 12, procedemos como sigue.

>>t=linspace(0,1,100);
>>yy=truncada(t)
>>hold on
>>plot(t,yy,+)

En la figura 6.7 se comprueba graficamente el nivel de coincidencia entre las dos soluciones aproxi-
madas.

Indicaciones para el ejercicio 6.7


El ejercicio 6.7 tiene solucion calculable con DSOLVE pero con una expresion excesivamente extensa.(7
Los graficos de las soluciones exactas x(t) e y(t) pueden verse en la figura 6.8 y compararse con
las obtenidas usando S2 EULER o RK CELL.
Para hacer los graficos se recomienda usar EZPLOT.
7
Con otra version de MATLAB o con otro software el resultado puede variar.
Clase Practica 6 99

>>S=dsolve(Dy=x+6*y+3,Dx=2*x+y,x(0)=2,y(0)=4);
% En S.x y S.y estan las soluciones x(t) e y(t).
>>ezplot(S.x,[0,2])%cambiar el color de la grafica
>>hold on
>>ezplot(S.y,[0,2])
>>title( )% titulo vacio
>>legend(S.x,S.y)

6.3 SERIES DE FOURIER


6.3.1 Programas
Los ejercicios de esta seccion se basan en la utilizacion de los programas SERIE, SERIE1 y SE-
RIE2, todos descargables desde la Web de la asignatura [15].
El programa SERIE nos permite dibujar los graficos superpuestos de las 6 primeras sumas
parciales de la serie de Fourier trigonometrica de la funcion (6.7) (figura 6.9).
Mediante SERIE1 podemos dibujar los graficos no superpuestos de las 20 primeras sumas par-
ciales de la serie de Fourier trigonometrica de la funcion (6.7) (figura 6.9).
Con SERIE2 podemos visualizar la convergencia de las series de Fourier viendo los graficos sobre
(3, 3), de las primeras 25 sumas parciales de la funcion f (x) = x para < x < .

6.3.2 Ejercicios
Ejercicio 6.8 Dada la funcion

1 si x < 0,
f (x) = (6.7)
1 si 0 x <
representar graficamente la funcion f y las aproximaciones de su serie de Fourier trigonometrica
mediante las primeras sumas parciales.

Indicaciones para resolver el ejercicio 6.8


La serie de Fourier de f viene dada por

4 X sen((2n 1)x)
.
n=1 2n 1
Basta ejecutar los programas SERIE y SERIE1.
Ejercicio 6.9 Representar la funcion
f (x) = x en [, ]
y su extension 2-periodica al intervalo [3, 3].
100 Clase Practica 6

Fig. 6.9: Ejercicio 6.8. Sumas parciales

Fig. 6.10: Ejercicio 6.9. Sumas parciales N = 2, 26

Indicaciones para resolver el ejercicio 6.9

La serie de Fourier de f viene dada por


X sen(nx)
2 (1)n+1 .
n=1
n

Usar el programa SERIE2 para realizar esta tarea (ver figura 6.10).
Clase Practica 6 101

6.4 APENDICE
6.4.1 Programa SN EULER
A modo de complemento, el alumno puede utilizar el programa SN EULER para resolver sistemas de
ecuaciones diferenciales con un numero arbitrario de ecuaciones, utilizando el metodo Euler mejorado.
Este codigo consta de tres partes: la primera es una interfaz de usuario, y las dos restantes son sub-
funciones situadas al final del script. Una de las sub-funciones es de especial interes para el alumno
pues se corresponde con el procedimiento de Euler mejorado expresado en terminos vectoriales. La
otra subrutina FUNCTION, llamada CEVAL, permite la evaluacion numerica de campos vectoriales
almacenados como objetos CELL.
Este programa puede ser descargado de la Web de la asignatura [15], y se activa directamente en
la lnea de comandos haciendo
>>sn_euler
En caso de que deseemos almacenar en memoria los valores aproximados de las incognitas escribi-
mos
>>x=sn_euler;
Si ademas queremos almacenar en la variable t los valores de la red t0 ,...,tm , hacemos
>>[x,t]=sn_euler;
La variable x es una matriz con tantas columnas como ecuaciones tiene el sistema. El numero de
filas de x se corresponde con el numero de puntos t0 ,...,tm .
Para visualizar una breve descripcion del programa, en particular lo concerniente a la entrada-
salida, ejecutamos en lnea lo siguiente
>>help sn_euler
Para obtener la respuesta
...................
...................
ENTRADA
Numero de ecuaciones
Componentes del campo vectorial
Intervalo dominio
Condicion inicial
paso de integracion
SALIDA
Error a posteriori
Graficos de las soluciones aproximadas
SALIDAS OPCIONALES
-Para almacenar en memoria la solucion
[x1(1),...x1(m); x2(1),...,x2(m);... ;xn(1)...xn(m)]
escribir
>>x=sn_euler;
102 Clase Practica 6

-Para almacenar en memoria la solucion


[x1(1),...x1(m); x2(1),...,x2(m);... ;xn(1)...xn(m)]
y ademas: [t(1);t(2);....;t(m)]
escribir
>>[x,t]=sn_euler;

6.4.2 Interpolacion
Sea el PVI:
y 0 = F (x, y),
y(x0 ) = y0 .
Una vez calculados los valores aproximados de la solucion y(x) de un PVI, sean estos

yk y(xk ), k = 1, ..., n

nos puede interesar aproximar el valor de y(t) para t (xk1 , xk ).


Seguiremos el procedimiento mas sencillo consistente en interpolar linealmente, es decir unire-
mos los puntos
Pk1 = (xk1 , yk1 ), Pk = (xk , yk )
mediante el segmento de la recta y = mx + b que dichos puntos determinan. El valor aproximado es

mt + b = y (t) y(t).

Se trata pues, de construir un aproximante poligonal- lineal a tramos- continuo, de una funcion y(x)
que admite derivadas hasta el segundo orden (ver figura 6.11).
Existen otros metodos de interpolacion que aseguran la suavidad del aproximante, pero no los
trataremos en este curso. La figura 6.11 ilustra el proceso de interpolacion mediante poligonales.
Para realizar eficientemente los calculos usaremos el programa INTERPOLA.M -descargable
desde [15]- basado en el comando INTERP1 de MATLAB.
>>Y1=interp1(T,Y,T1);
donde
T = [x(1) x(n)],
Y = [y(1) y(n)],
T 1 = [t(1) t(n)],
Y 1 = [m(1) t(1) + b(1) m(n) t(n) + b(n)]
Notar que hasta ahora los metodos de diferencias finitas nos han ofrecido la solucion como un vector
de Rn , y que segun el procedimiento basado en interpolacion estamos hallando una solucion en la
forma de una funcion que, aunque continua, desafortunadamente no es derivable en todos los puntos.
A continuacion se muestra el codigo de INTERPOLA.
Clase Practica 6 103

Fig. 6.11: Ilustracion grafica del metodo de interpolacion

function interpola
disp(Se exige que x1<x2<...<xn)
disp( )
T=input(Entrar el vector T=[x1,...,xn]=);
disp( )
Y=input(Entrar el vector Y=[y1,...,yn]=);
disp( )
disp(Se exige que x1<=tk<=xn, k=1,...,m)
disp( )
T1=input(Entrar el vector T1=[t1,...,tm]=);
Y1=interp1(T,Y,T1);N=max(size(T1));
for k=1:N
disp( )
disp(sprintf(Y1(t%2.0g,%s%3.3g%s,k,)=,Y1(k),Oprime INTRO)),
pause
end
CLASE PRACTICA 7

Metodos numericos para PVI (III)

OBJETIVOS
Adquisicion de conocimientos teorico-experimentales sobre los metodos numericos de resolucion de
problemas de condicion inicial.
Visualizar las soluciones obtenidas mediante separacion de variables para las ecuaciones del calor y
de ondas.

7.1 METODOS DE RUNGE-KUTTA


7.1.1 Metodos de Taylor
Sea la ED y 0 = f (x, y), sujeta a la CI y(x0 ) = y0 .
Los metodos de Euler y Euler mejorado son de ordenes 1 y 2, respectivamente, y solo requieren
evaluaciones de la funcion f (x, y). A continuacion presentaremos brevemente a los Metodos de Taylor,
antes de pasar a los metodos de Runge-Kutta.
Los llamados metodos de Taylor consiguen ordenes altos para el error con el correspondiente
coste que supone tener que derivar repetidamente la funcion.
Para ello se parte del desarrollo de Taylor de la solucion y(x) en x0

y(x0 + h) = y(x0 ) + hy 0 (x0 ) + h2 /2!y 00 (x0 ) + + hn /n!y (n) (x0 ) + O(h(n+1) ),

y se sustituyen las derivadas hasta el orden n,

y 0 (x0 ) = f (x0 , y0 )
y 00 (x0 ) = fx (x0 , y0 ) + fy (x0 , y0 )f (x0 , y0 )
=

El metodo de Taylor de orden 1 es el ya conocido metodo de Euler explcito, estudiado en la anterior


clase practica, y en el mismo no intervienen derivadas. Los metodos de Taylor de orden n 2, que
no estudiaremos, s involucran a las derivadas de f (x, y).

105
106 Clase Practica 7

Sustituyendo las derivadas de y(x) en x0 hasta un orden n 3 arbitrario, podemos obtener un


metodo de mayor orden que el de Euler mejorado.
Estos metodos se llaman metodos de Taylor debido al papel jugado por el desarrollo de Taylor
de f (x, y) en su deduccion.
Aunque, tal como se ha mencionado, se pueden teoricamente alcanzar ordenes altos para el error,
estos dependen de que podamos derivar a f (x, y) repetidamente, lo cual en la practica no siempre es
factible, es impracticable con herramientas numericas y muy costoso con simbolicas.(1
El camino que se sigue para evitar el inconveniente de calcular derivadas de diferentes ordenes,
un proceso en el que ocurren graves problemas numericos, es el diseno de los llamados metodos de
Runge-Kutta. Estos combinan ingeniosamente los valores de f (x, y) para evitar la presencia de las
derivadas en los calculos y al mismo tiempo, producir ordenes similares a los que se obtienen con los
metodos de Taylor.

7.1.2 Metodo de Runge-Kutta de cuarto orden


Hay una variedad de metodos de Runge-Kutta que difieren entre s atendiendo a la forma en que
combinamos los valores de la funcion f (x, y) que define el PVI.
El que solo requieran evaluaciones de la funcion f (x, y) es una cualidad que los Runge-Kutta
comparten con Euler y Euler mejorado, pero llegando alcanzar mayores ordenes que estos ultimos.
Los metodos de Runge-Kutta estan considerados entre los mas adecuados para resolver problemas
de valores iniciales. Los de orden n = 2 incluyen entre otros al metodo de Euler mejorado.
El de orden 4 clasico es una buena eleccion por su precision y facil programacion. El esquema
del metodo clasico de Runge-Kutta de 4to orden es el siguiente:

yk+1 = yk + (k1 + 2k2 + 2k3 + k4 )/6

donde
k1 = hf (xk , yk )
k2 = hf (xk + h/2, yk + k1 /2)
k3 = hf (xk + h/2, yk + k2 /2)
k4 = hf (xk + h, yk + k3 )

7.1.3 Descripcion del programa RUNGEKUTTA


Se trata de un programa domestico que podemos descargar desde la Web de la asignatura [15], con
el cual intentaremos resolver EEDD de primer orden

y 0 = f (x, y)

con una condicion inicial y(a) = y0 , x [a, b].


1
La derivacion numerica es un problema mal acondicionado, lo que significa que pequenos errores en los datos
pueden producir grandes errores en los resultados.
Clase Practica 7 107

Tal como indica su nombre, este codigo permite simular un metodo de Runge-Kutta, particular-
mente el clasico de orden 4.
El programa cuenta con una interfaz de usuario desarrollada para facilitar el trabajo, que permite
opcionalmente introducir la solucion exacta si fuese conocida. En una sola ejecucion es capaz de
calcular los errores a posteriori para un vector de pasos [h1 , ..., hm ].
Tambien muestra los graficos de las aproximaciones para hm y hm /2. El error a posteriori lo
calcula como la mayor de las discrepancias entre las soluciones para h y h/2.
Para invocar a RUNGEKUTTA se oprime INTRO despues de escribir en la lnea de comandos
alguna de las siguientes sentencias

>>rungekutta >>Y=rungekutta >>[T,Y]=rungekutta

dependiendo de la informacion que deseamos almacenar en memoria.


Aqu T representa al vector cuyas componentes ordenadas forman la red de puntos T (k) del
dominio segun el paso h, e Y es el vector de las correspondientes aproximaciones Y (k) de la solucion.
En cualquier caso el programa permite opcionalmente ver en la pantalla los valores T (k) e Y (k)
(hasta 50 como maximo), pero no los almacena en memoria.

7.1.4 Ejercicios
Ejercicio 7.1 Aproximar la solucion del PVI
y0 = 1 + y2,
y(0) = 0

para x [0, 1], con pasos

h 0.05 0.05/2 0.05/4 0.05/8 0.05/16

utilizando el programa RUNGEKUTTA.


Teniendo en cuenta que la solucion exacta es y = tan(x), calcular el error exacto cometido y
compararlo con el estimado a posteriori.

Ejercicio 7.2 Aproximar la solucion del PVI


2y 0 = (x y),
y(0) = 1

para x [0, 3], con pasos

h 0.05 0.05/2 0.05/4 0.05/8 0.05/16

utilizando el programa RUNGEKUTTA.


Teniendo en cuenta que la solucion exacta es y = x 2 + 3ex/2 calcular el error exacto cometido
y compararlo con el estimado a posteriori.
108 Clase Practica 7

Ejercicio 7.3 Aproximar la solucion del PVI

(ex + 1)y 0 + y(ex 1) = 0,


y(0) = 3

para x [0, 1], con pasos

h 0.05 0.05/2 0.05/4 0.05/8 0.05/16

utilizando el programa RUNGEKUTTA


12ex
Teniendo en cuenta que la solucion exacta es y = calcular el error exacto cometido y
(ex + 1)2
compararlo con el estimado a posteriori.

7.1.5 Estabilidad de un metodo numerico


Un metodo numerico para resolver una EDO de primer orden, esta dado por una ecuacion en dife-
rencias finitas (EDF). Decimos que el metodo es estable si su EDF produce una solucion acotada
cuando la solucion exacta es acotada. Si la solucion obtenida no es acotada, siendo la exacta acotada,
decimos que el metodo es inestable. Solo analizamos la estabilidad cuando tratamos con EEDD ordi-
narias lineales y 0 + py = q(x), p R, en las que el termino q(x) no influye. Los siguientes enunciados
pueden verse en Hoffman [3], secciones 7.8-7.9.

Los metodos de Euler y Euler mejorado son estables cuando 0 < ph 2.

Runge-Kutta es estable cuando 0 < ph 2.784.

Ejercicio 7.4 Estudiar numericamente la solucion del siguiente problema de valor inicial (Hoffman
[3], 7.14) aplicando el programa EJE7.4 (Web de la asignatura [15]).

y 0 = p(y (x + 2)) + 1,
y(0) = 1,
x [0, +).

Considere los valores p = 1000 considerando los intervalos [0, b], b > 0, y los pasos h segun se
indica en la tabla 7.1.5.

a) Influyen los valores de p, b y h sobre el error y la estabilidad?

b) Tratar de explicar el papel que desempena p en los resultados calculando artesanalmente la


solucion de la homogenea asociada.

Segun se aprecia en la tabla 7.1.5, el tamano de h se selecciona mas pequeno para mostrar:

(A-B) como cambia la precision (p = 1000)


Clase Practica 7 109

b h p Euler RK-2 RK-4 ODE45


A 0.01 1e-03 1000
B 0.01 5e-04 1000
C 0.01 1e-03 -1000
D 1 1e-03 -1000
E 1 5e-03 -1000

Tabla 7.1: Informe de resultados segun los valores de b, h y p

(D-E) estabilidad condicional (p = 1000)

(Se detectan en los valores numericos del error)

(ODE45 no se afecta pues selecciona automaticamente el paso h)

Los diferentes valores de b revelan:

(C-D) la existencia de dos escalas relevantes para la variable independiente (p = 1000)

(Se detecta graficamente con los cuatro programas)

(En este ejemplo de PVI, el error producido por ODE45 se modifica algo con el cambio de intervalo)

hA hE
Notar que hB = y que hD = .
2 5

7.1.6 Descripcion del programa EJE7.4


Tal como sugiere su nombre, este codigo esta especialmente disenado para resolver el ejercicio 7.4 de
esta practica. Para facilitar el trabajo se cuenta con una interfaz de usuario que permite seleccionar
uno de los dos posibles PVI mediante una ventana-menu, atendiendo a que la ecuacion que le define
depende del valor de un parametro p. El programa se encarga de aplicar los metodos de Euler, Euler
mejorado y Runge-Kutta 4, mostrando al final los respectivos errores y los graficos (ver figura 7.1). Se
aplica adicionalmente la herramienta MATLAB ODE45, basada en Runge-Kutta 4 y 5. Esta ultima
adopta como tolerancia de entrada (error maximo permitido), al menor de los errores producidos por
los metodos anteriores.
Los principales objetivos de este experimento consisten en la deteccion experimental de inesta-
bilidad y escalas relevantes en el dominio.
110 Clase Practica 7

Fig. 7.1: Graficas producidas por EJE7.4.M

7.2 PROBLEMAS DE CONTORNO


7.2.1 Planteamiento matematico
Sea el operador diferencial lineal de segundo orden [y] = a(x)y 00 + b(x)y 0 + c(x)y, siendo a(x) > 0,
para todo x [a, b], y consideremos los operadores lineales de primer orden

B1 [y](x) = 1 y(x) + 2 y 0 (x),

B2 [y](x) = 1 y(x) + 2 y 0 (x).

Al siguiente problema
[y](x) = f (x), x [a, b],
B1 [y](a) = 0, (7.1)
B2 [y](b) = 0,
Clase Practica 7 111

se le llama problema de contorno con condiciones separadas. El problema de valores propios se


establece como el problema de hallar los tales que
[y] = y,
B1 [y](a) = 0, (7.2)
B2 [y](b) = 0,
admite soluciones no triviales y = y(x).
Sea w(x) el factor de simetrizacion asociado a [y], es decir
L[y] = w(x)[y] = (p(x)y 0 )0 + q(x)y,
entoces (7.2) se convierte en el Problema Regular de Sturm-Liouville
L[y](x) + w(x)y = 0,
B1 [y](a) = 0, (7.3)
B2 [y](b) = 0.

7.2.2 Aplicacion: Viga columna


Para calcular las cargas crticas que actuan longitudinalmente sobre una columna empotrada y las
deformaciones correspondientes disponemos del modelo matematico siguiente

y 00 (x) + y(x) = 0
EI (7.4)
y(0) = y(L) = 0,
donde EI es el momento flector y L es la longitud de la viga. En la Web de la asignatura, encon-
tramos el programa PANDEO que utiliza las soluciones del sistema de Sturm-Liouville formado por

y 00 (x) + y(x) = 0 y diferentes condiciones homogeneas de frontera, para mostrar graficamente las
EI
deformaciones (autofunciones) y calcular las cargas que producen deformacion (autovalores).

Ejemplo 7.1 Ejecutar en la lnea de comandos


>>pandeo
e introducir los datos segun se soliciten.

7.3 ECUACIONES EN DERIVADAS PARCIALES


7.3.1 Ecuacion del calor en una barra de longitud finita
Ejemplo 7.2 Representar graficamente la solucion del siguiente problema:
ut = 5uxx , 0 x 3, t 0,
u(0, t) = u(3, t) = 0, (7.5)
u(x, 0) = 5 sen(4x) 3 sen(8x) + 2 sen(10x).
112 Clase Practica 7

Fig. 7.2: Grafica producida por CALOR.M

Resolucion del ejemplo 7.2


La solucion exacta u(x, t) de (7.5) es
u(x, t) =
5 sen(4x) exp(5(122 ) 2 t/9) 3 sen(8x) exp(5(242 ) 2 t/9) + 2 sen(10x) exp(5(302 ) 2 t/9),
y se ha obtenido aplicando el metodo de separacion de variables.
El programa CALOR (se descarga en [15]) utiliza la solucion de (7.5) para hacer los graficos del
ejemplo 7.2.

Ejemplo 7.3 El flujo de calor a traves de una barra cilndrica de longitud , es solucion de:

ut = 2uxx ; 0 < x < , t > 0,


(7.6)
u(0, t) = u(, t) = 0,

x 0 < x /2,
u(x, 0) = (7.7)
x /2 < x < .

1. Obtener una aproximacion de la solucion (serie (7.8)) en el instante t = 0, en x = /2.


Clase Practica 7 113

2. Comparar la aproximacion con el dato inicial u(x, 0) = f (x)


3. Representar graficamente la temperatura en el instante t = 1.25 en toda la barra.
4. Ver la evolucion de la temperatura en dos instantes de tiempo. Para ello representar la dis-
tribucion de temperaturas para t = 1.25 y t = 2. (Notar el descenso de temperaturas conforme
avanza el tiempo.)

Recursos para resolver el ejemplo 7.3


El metodo de separacion de variables permite obtener la solucion como la suma de la serie

4X exp(2(2k + 1)2 t) sen((2k + 1)x)
u(x, t) = (1)k (7.8)
k=1 (2k + 1)2
Usar la funcion TEMP.M para aproximar la temperatura u(x, t) cualquiera sea el instante t y la
posicion x.
>>u=temp(x,t)
El programa F INICIO.M (ver Web de la asignatura [15]) vale para simular el dato inicial f (x).
>>y=f_inicio(x)
Los dos anteriores programas FUNCTION son compatibles con la arquitectura matricial de MAT-
LAB, y sus respectivos codigos se muestran a continuacion.
function u=temp(x,t)
mx=max(size(x));
mt=max(size(t));
k=0:400;n=2*k+1;
for jx=1:mx
for jt=1:mt
u(jx,jt)=sum((-1).^k.*exp(-2*n.^2.*...
t(jt)).*sin(n.*x(jx))./n.^2);
end
end
u=4*u/pi;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function y=f_inicio(x)
y=x.*(0<x & x<=pi/2)+(pi-x).*(pi/2<x & x<pi);
Ejercicio 7.5 Considerese el problema de conduccion del calor siguiente
Tt (x, t) 3Txx (x, t) = 0, 0 < x < , t > 0,
T (0, t) = T (, t) = 0, (7.9)
T (x, 0) = sen(x) 7 sen(3x) + sen(5x).
Si el tiempo t se mide en segundos, estime el momento en que la temperatura T se hace maxima en
los primeros 10 segundos, en el punto /6 de la barra.
114 Clase Practica 7

A continuacion se ofrecen indicaciones para seguir un metodo basado en la potencia grafica del
Matlab y en nuestra capacidad de apreciacion. El alumno puede seguir cualquier otro metodo, pero,
en tal caso, debe ofrecer una breve descripcion del mismo.
La solucion exacta de (7.9) puede obtenerse aplicando el metodo de separacion de variables y
viene dada por
T (x, t) = e3t sen(x) 7e27t sen(3x) + e75t sen(5x).
Hacer

>>T=sin(x).*exp(-3*t)-7*sin(3*x).*exp(-27*t)+sin(5*x).*exp(-75*t);
>>x=pi/6;t=linspace(0,10,50);Z=eval(T);plot(t,Z)

Apreciar el punto donde se sospecha se alcanza el maximo, y hacer de nuevo

>>x=pi/6;t=linspace(a,b,50);Z=eval(T);plot(t,Z)

donde esta vez los valores a y b son aproximaciones por defecto y por exceso, respectivamente, del
punto de maximo.
Repetir el proceso hasta obtener al menos dos dgitos correctos en la aproximacion, es decir, cuando
(b a)/a < (1e 02)/2.

7.3.2 Ecuacion de ondas sobre un intervalo acotado


Ejemplo 7.4 Sabiendo que la solucion del siguiente problema

ytt = a2 yxx , (a = 20)


yx (0, t) = yx (, t) = 0, t 0, (7.10)
y(x, 0) = 1, yt (x, 0) = cos(x), 0 x .
es
sen(at) cos(x)
y(x, t) = 1 + ,
a
hacer su grafico en R3 .

Resolucion del ejemplo 7.4


Usaremos el programa ONDA.M. que podemos descargar desde la Web de la asignatura [15] (ver
figura 7.3).

Ejercicio 7.6 El movimiento de una cuerda de longitud finita se rige por la EDP

ytt (x, t) = 4yxx (x, t)

con las condiciones de frontera

yx (0, t) = 0, y(, t) = 0, (t 0)
Clase Practica 7 115

Fig. 7.3: Grafica producida por ONDA.M

y las condiciones iniciales


y(x, 0) = 0, yt (x, 0) = 2, (0 x ).
Si la unidad de tiempo es el segundo, se pide:

1. Obtener la trayectoria del movimiento del punto de la cuerda cuya coordenada es x = /3,
durante los diez primeros segundos y estimar los valores maximo y mnimo alcanzados por
dicho punto en el perodo.

2. Representar graficamente la posicion de la cuerda pasadas dos horas despues del momento
inicial y calcular el desplazamiento del extremo x = 0 con respecto al nivel y = 0.

Resolucion del ejercicio 7.6


La solucion del ejercicio puede obtenerse aplicando el metodo de separacion de variables y viene dada
por

8(1)n
 
X (2n + 1)x 
y(x, t) = 2
cos sen (2n + 1)t . (7.11)
n=0
(2n + 1) 2

La serie (7.11) converge para todo x, t R.


Un analisis del resto arroja el siguiente resultado: la suma parcial de 400 sumandos aproxima uni-
116 Clase Practica 7

formemente2 al valor exacto de la serie con dos dgitos significativos correctos.


El programa CUERDA se ha disenado atendiendo al anterior analisis y permite aproximar hasta con
dos dgitos correctos a la serie (7.11).
A continuacion se muestra el codigo MatLab del programa CUERDA.M.
Entrada: vectores x y t. Salida: matriz u.

function u=cuerda(x,t)
mx=max(size(x));
mt=max(size(t));
k=0:400;
n=2*k+1;
for jx=1:mx
for jt=1:mt
u(jx,jt)=sum((-1).^k.*cos(n*x(jx)*.5).*...
sin(n*t(jt))./n.^2);
end
end
u=8*u/pi;

Para obtener los graficos ejecutar:


Primera parte del ejercicio 7.6.

>>t=linspace(0,10,100);
>>u=cuerda(pi/3,t);
>>plot(t,u)

Segunda parte del ejercicio 7.6.

>>x=linspace(0,pi,100);
>>u=cuerda(x,7200);
>>plot(x,u)

Obtener las aproximaciones numericas solicitadas a partir de los graficos, mediante los comandos max
y min o evaluando adecuadamente a CUERDA(x,t).

7.3.3 Herramientas simbolicas para EDP


MATLAB implementa varios comandos para EDP, a traves del nucleo MAPLE.
>>maple(pdesolve(ecuacion,func(var1,...,varn)))
resuelve la ecuacion en derivadas parciales identificada por ecuacion, para la funcion

f = f unc(x1 , ..., xn )
2
La precision que se obtiene no depende de x ni de t.
Clase Practica 7 117

Ejemplo 7.5 Intentar resolver las siguientes ecuaciones en derivadas parciales aplicando herramien-
tas simbolicas MAPLE-MATLAB.
a) fxx + 5fxy = 3

b) 3gx + 7gxy = xy

c) htt hxx = 0

d) uxx + uyy = x + y 2

Resolucion del ejemplo 7.5


En lo que sigue _F1 y _F2 son funciones arbitrarias.
a)
>>maple(pdesolve(diff(f(x,y),x,x)+5*diff(f(x,y),x,y)=3, f(x,y)))
ans = f(x,y) = 3/2*x^2+_F1(y)+_F2(y-5*x)
--------------------------------------
b)
>>maple(pdesolve(3*diff(g(x,y),x)+7*diff(g(x,y),x,y)=x*y,g(x,y)))
ans = g(x,y) = 1/6*x^2*y-7/18*x^2+_F1(y)+exp(-3/7*y)*_F2(x)
--------------------------------------
c)
>>maple(pdesolve(diff(h(t,x),t,t)-diff(h(t,x),x,x)=0,h(t,x)))
ans = h(t,x) = _F1(x+t)+_F2(x-t)

Ejercicio 7.7 Resolver la ecuacion en derivadas parciales del Ejemplo 7.5, apartado d), aplicando
herramientas simbolicas MAPLE-MATLAB.

d) uxx + uyy = x + y 2

Emplear la misma sintaxis MAPLE de los ejemplos resueltos 7.5-a), 7.5-b) y 7.5-c).
BIBLIOGRAFIA Y SITIOS WEB

[1] ATKINSON, K. E., Elementary numerical analysis, J. Wiley and Sons, 1999.
[2] COOMBES, K. R. et al., Differential equation with MATLAB. John Wiley and Sons,
1999.
[3] HOFFMAN, J. D., Numerical methods for engineers and scientists, McGraw-Hill,
1992.
[4] MALEK-MADANI, R., Advanced Engineering Mathematics with Mathematica and
MATLAB, vol I, Addison-Wesley, 1998.
[5] MARCELLAN, F., CASASUS, L. & ZARZO, A., Ecuaciones Diferenciales. Pro-
blemas lineales y aplicaciones, McGraw-Hill, 1990.
[6] MATHEWS J. H. y FINK, K. D., Metodos numericos con MATLAB. Prentice Hall,
2000.
[7] MATLAB, edicion estudiante. Prentice Hall, 1995.
[8] NAGLE, R. Y SAFF,E. Fundamentals of differential equations. Benjamin Cummings,
1986.
[9] NAGLE, R., SAFF, E. & SNIDER, A. D. Ecuaciones Diferenciales y Problemas
con valores en la frontera. Pearson Educacion, Mexico, 2001
[10] HANSELMAN, D. y LITTLEFIELD, B., The Student edition of MATLAB: version
5 users guide, Prentice Hall, 1997.
[11] ZILL, D. G. Ecuaciones diferenciales con aplicaciones de modelado, Internat. Thomsom
Editores, 1997.
[12] Web de MATLAB: http://www.mathworks.com/products/matlab/
[13] El rincon de MATLAB: http://matlab.universas.com/
[14] Wikipedia: http://es.wikipedia.org/wiki/MATLAB
[15] Web de la asignatura: http://webs.uvigo.es/ecuacionesdiferenciales/

119

También podría gustarte