MainED Ecuaciones Diferenciales Matlab

129
ECUACIONES DIFERENCIALES A. Cachafeiro L´ opez – J. Ill´ an Gonz´ alez Departamento de Matem´ atica Aplicada I Universidade de Vigo

Transcript of MainED Ecuaciones Diferenciales Matlab

Page 1: MainED Ecuaciones Diferenciales Matlab

ECUACIONES DIFERENCIALES

A. Cachafeiro Lopez – J. Illan Gonzalez

Departamento deMatematica Aplicada I

Universidade de Vigo

Page 2: MainED Ecuaciones Diferenciales Matlab

SEGUNDA EDICION

Ano: 2009

Editores: Los autores

ISBN: 978-84-611-9916-7

Page 3: MainED Ecuaciones Diferenciales Matlab

INDICE GENERAL

1 Comandos simbolicos para resolver ecuaciones.

Campos de direcciones. Isoclinas 11.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, implıcitas y de Bernoulli 112.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 253.1 SISTEMA LINEAL HOMOGENEO DE

COEFICIENTES CONSTANTES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

3.2 SISTEMA LINEAL COMPLETO DECOEFICIENTES CONSTANTES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

i

Page 4: MainED Ecuaciones Diferenciales Matlab

ii Indice General

3.3 RESOLUCION DE SISTEMAS DIFERENCIALESLINEALES HOMOGENEOS DE COEFICIENTESCONSTANTES 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 EULERGENERALIZADA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

3.6 CALCULO DE WRONSKIANOS Y APLICACIONES . . . . . . . . . . . . . . . . . 35

3.6.1 Wronskiano e independencia lineal . . . . . . . . . . . . . . . . . . . . . . . . 36

3.7 SOLUCIONES PARTICULARES DE EEDDLINEALES 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 raıces de la ecuacioncaracterıstica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

4 Transformada de Laplace 494.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 DEPROBLEMAS DE CONDICION INICIAL . . . . . . . . . . . . . . . . . . . . . . . . 54

4.4 PROBLEMAS DE VALORES INICIALES CONDATOS 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 UNAFUNCION PERIODICA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

4.6 LA FUNCION DE TRANSFERENCIA . . . . . . . . . . . . . . . . . . . . . . . . . . 62

Page 5: MainED Ecuaciones Diferenciales Matlab

Indice general iii

5 Metodos numericos para PVI (I) 655.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) 876.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) 1057.1 METODOS DE RUNGE-KUTTA . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

7.1.1 Metodos de Taylor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

7.1.2 Metodo de Runge-Kutta de cuarto orden . . . . . . . . . . . . . . . . . . . . . 106

Page 6: MainED Ecuaciones Diferenciales Matlab

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

Bibliografıa de practicas y sitios WEB 119

Page 7: MainED Ecuaciones Diferenciales Matlab

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

3.2 Graficas de Z = yiv)1 − 6y

iii)1 + 9y

ii)1 − 24y

i)1 − 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

Page 8: MainED Ecuaciones Diferenciales Matlab

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

Page 9: MainED Ecuaciones Diferenciales Matlab

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 fuentesy el color de fondo de las ventanas MATLAB.

2. (ML y PDF) Ajustar el tamano de ambas ventanas, Command Window de MATLAB y el guionde 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 lınea crea nuestra carpeta personal, mientras que la segunda informa a MATLABdonde se encuentra esta, y la situa al comienzo de la lista de trayectorias.

4. (ML) Para disminuir el espacio vertical inter-lınea 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 indicaen la plantilla correspondiente. Para ello debe basarse en el desarrollo de los ejemplos que aparecenresueltos en el guion de la clase.

vii

Page 10: MainED Ecuaciones Diferenciales Matlab
Page 11: MainED Ecuaciones Diferenciales Matlab

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 desdeuna perspectiva experimental, mediante la aplicacion de los recursos simbolicos del sistemaMATLABr.

• 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 sımbolo Df representa simbolicamente la derivada de f . Para derivadas sucesivas usamos D2f,D3f, etc.

1

Page 12: MainED Ecuaciones Diferenciales Matlab

2 Clase Practica 1

1.1.2 Problemas resueltos

Ejemplo 1.1 Dada la ecuacionmy′′ = −mg + ky′,

comprobar quey(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

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

es solucion de la ecuacion del calor

ut(x, t) = c2uxx(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 yde los correspondientes problemas de valor inicial.(1 El argumento de este comando es un STRINGde modo que no es necesario declarar simbolicas a las variables involucradas.

1En lo que sigue usaremos las siglas PVI para problema(s) de valor(es) inicial(es).

Page 13: MainED Ecuaciones Diferenciales Matlab

Clase Practica 1 3

Ejemplo 1.3 Resolver la ED y′ = 1 + y2, 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′ = −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′ = −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 explıcitamente la solucion, entonces el propioDSOLVE ofrece, en algunos casos, la solucion en la forma implıcita.

Page 14: MainED Ecuaciones Diferenciales Matlab

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′ = y2(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′′ = −y + cos(2x), con las condiciones iniciales y(0) = 1, y′(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 lıneas 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 usualmenteutilizamos, con la cual nos puede dar una mayor cantidad de respuestas en forma cerrada. Una de

Page 15: MainED Ecuaciones Diferenciales Matlab

Clase Practica 1 5

estas funciones es w(z) = Lambertw(z) definida implıcitamente por

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

La definicion de cualquier funcion especial MATLAB puede ser consultada invocando en la lınea decomandos

>>help+nombre

o bien, para aquellas especıficas 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 ejecutarDSOLVE, 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 implıcita 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 + (y2 + 1)dx = 0,y(0) = 1/2

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

c) y′′′ − 3y′′ + 3y′ − y = x

d) y′′′ − 3y′′ + 3y′ − y = x,y(0) = 0, y′(0) = 1, y′′(0) = 0

1.2 CAMPO DE DIRECCIONES DE UNA ED

Dada la ED y′ = f(x, y) , si y = y(x) es solucion y (x0, y0) es un punto de la grafica de y(x), entoncesla pendiente de y = y(x) en (x0, y0) es y′(x0) que es igual a f(x0, y0).

Page 16: MainED Ecuaciones Diferenciales Matlab

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 hacefalta 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 quepasan por cada punto del plano. Naturalmente, en la practica es imposible hacer esto con todos lospuntos del plano, pero nada nos impide hacerlo con tantos puntos como queramos, configurando ungrafico que llamaremos campo de direcciones de la ED.

¿Como construir “el campo de direcciones” asociado a una ED?

Consideremos la ED generica y′(x) = f(x, y(x)). Para construir su campo de direcciones procedemosde 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 trabajose interpreta como informacion grafica acerca de la solucion de la ED que aun no hemos intentadoresolver por otros medios. Para aumentar la eficiencia usaremos un programa MATLAB en el queintervienen los comandos MESHGRID y QUIVER que permiten generar el grafico del campo dedirecciones.

Los vectores a considerar para obtener el campo de direcciones seran (1, y′) = (1, f(x, y)).

Ejemplo 1.8 Construir el campo de direcciones de la ED y′ = x, y representar la solucion particularque 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;

Page 17: MainED Ecuaciones Diferenciales Matlab

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 obtieneartesanalmente como y = x2/2, mediante separacion de variables, o bien, aplicando DSOLVE. Acontinuacion 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′ = −x/y y representar la solucionparticular 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) dela condicion inicial. La expresion dentro de INLINE que define a la funcion debe escribirse entreapostrofes, es decir, ′−x./y′. El punto debe preceder a /, ∗ y ^ pues se opera con vectores componentea componente. La solucion grafica esta dada por las figuras en el cuadro 1.3.

Page 18: MainED Ecuaciones Diferenciales Matlab

8 Clase Practica 1

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

i) y′ = y − x, ii) y′ = 2x.

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

1.3 TRAYECTORIAS ISOCLINAS

Definicion 1.1 Dada la ED y′ = f(x, y) , se llaman curvas de nivel o isoclinas a las obtenidasal imponer la condicion y′ = 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 losque pasa una solucion con pendiente k, son los puntos de la curva de ecuacion f(x, y) = k (isoclinade 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 tendrangeneralmente un maximo o un mınimo al pasar por esta isoclina.

Ejemplo 1.10

1 Representar las isoclinas de la ED y′ = x+ y2.

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

Page 19: MainED Ecuaciones Diferenciales Matlab

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′ = x2 + y2.

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′ = 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?

Page 20: MainED Ecuaciones Diferenciales Matlab

10 Clase Practica 1

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

Fig. 1.10: Grafico del ejemplo 1.13

Ejemplo 1.13 Construir el campo de di-recciones y las curvas de nivel de la EDy′ = sen(x) + y.

Desarrollo, paso a paso, de lasolucion del ejemplo 1.13 (figura1.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);

>>quiver(x,y,dx,dy);

Page 21: MainED Ecuaciones Diferenciales Matlab

CLASE PRACTICA 2

Metodo de separacion de variables. Ecuaciones

homogeneas, exactas, implıcitas 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 formay′(x) = f(x)h(y).

Para resolver el PCI

y′ = f(x)h(y),

y(x0) = y0,

escribimos la ED como sigue:dy

h(y)= f(x)dx

y si llamamos g = 1h, 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 tantoG(y) = F (x) +G(y0)− F (x0), (Solucion del PCI).

Ejemplo 2.1 Resolver el PVI, y′ = −2xy, y(0) = 2, y representar graficamente la solucion.

11

Page 22: MainED Ecuaciones Diferenciales Matlab

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 lınea 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′ = sen(x)(y − 1), y(0) = 2.

Resolucion del ejemplo 2.2

>>f=’sin(x)’

Page 23: MainED Ecuaciones Diferenciales Matlab

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 + y2)dy = 0, y(0) = 1.

Resolucion del ejemplo 2.3

Despejando obtenemos y′ = y cos(x)/(1 + y2) 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 implıcitamente por wew = x, lo que se obtiene esy2 ∗ exp(y2) = K ∗ exp(2 ∗ sen(x)).

Ejemplo 2.4 Resolver la ED anterior, es decir, y cos(x)dx − (1 + y2)dy = 0, y(0) = 1, separandolas 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′ = 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 queLambertw(x) = F (x). Sabiendo que Lambertw(x) = w se caracteriza por satisfacer la ecuacionw(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 lınea 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) + y2/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

Page 24: MainED Ecuaciones Diferenciales Matlab

14 Clase Practica 2

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

Ejercicio 2.1 Aplicar herramientas MATLAB para resolver los siguientes ejercicios extraıdos delBoletın 2.

a) y′ + y2 sen(x) = 0 b) 4xy dx+ (x2 + 1)dy = 0

c) xy′ = y +√x2 − y2 d) (x− y)dy = (x+ 3y)dx

e) (x2 + 1)dy = (y2 + 1)dx, y(0) = 1/2 f) (1 + ex)yy′ = ey, y(0) = 0

2.2 ECUACIONES DIFERENCIALES HOMOGENEAS

Ejemplo 2.5 Resolver la ED (x2 − y2)dx+ xydy = 0.

Resolucion del ejemplo 2.5

Es claro que es una ED homogenea pues P (x, y) = x2− y2 y Q(x, y) = xy son funciones homogeneasdel mismo grado 2.

Se sabe entonces que el cambio de variable z = y/x la transforma en una ED en variablesseparadas.

Para resolverla usando objetos simbolicos del MATLAB se escribe la ED en la forma

y′ + (x2 − y2)/(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 directamenteusando 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 implıcita 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.

Page 25: MainED Ecuaciones Diferenciales Matlab

Clase Practica 2 15

Si P y Q tienen derivadas parciales primeras continuas en un abierto simplemente conexo D, entoncesen 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 soluciongeneral 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.

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 laintegracion. Notar que para determinar a F (x, y) solo resta hallar a f(y)

Si derivamos con respecto a y

Q =∂(∫P (x, y)dx)

∂y+ f ′(y).

Luego

f ′(y) = Q−∂(∫P (x, y)dx)

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

Page 26: MainED Ecuaciones Diferenciales Matlab

16 Clase Practica 2

Fig. 2.2: Grafico del ejemplo 2.6

Por lo tanto la solucion general es x2 + xy − 3/2y2 = 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)

Ejemplo 2.7 Comprobar que la ED y′ =x2

y2, es exacta. Resolver dicha ED y representar las solu-

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/3y3 = C.

Para representar las soluciones escribimos (ver figura 2.3)

Page 27: MainED Ecuaciones Diferenciales Matlab

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, es exacta. Resolverdicha 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. Pararepresentar las soluciones escribimos (ver figura 2.4)

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

>>z=sin(y).*sinh(x);

>>contour(x,y,z,15)

Page 28: MainED Ecuaciones Diferenciales Matlab

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′ + f(y′). (2.1)

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

Nos queda entonces la expresion siguiente

dp

dx(x+ f ′(p)) = 0.

Sidp

dx= 0 entonces y′ = C y por tanto teniendo en cuenta (2.1) se obtiene que

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 ′(p) = 0, usando (2.1) se obtiene la solucion singular en forma parametrica:

x = −f ′(p),y = −f ′(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,podrıa resultar muy difıcil o imposible.

Ejemplo 2.9 Resolver la ecuacion de Clairaut y = xy′ − 14(y′)2. Representar la solucion general

obtenida, ası como la solucion singular.

Page 29: MainED Ecuaciones Diferenciales Matlab

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′+ ln(y′).

2.5 ECUACION DE BERNOULLI

La llamada ecuacion de Bernoulli es de la forma

y′ + p(x)y = q(x)yn.

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

Page 30: MainED Ecuaciones Diferenciales Matlab

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

1. Resolver la ED 3xy′ − 2y = x3

y2.

2. Resolver el PVI 3xy′ − 2y = x3

y2, y(−1) = 1.

Fig. 2.6: Grafico del ejemplo 2.10

La ED de Bernoulliy′ + p(x)y = q(x)yn

se resuelve transformandola en lineal, para lo cual se procede como sigue:

Se divide la ED por yn y se hace el cambio z = 1yn−1 , 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′ + y/x = log(x)y3, aplicando el metodo antes explicado.

Page 31: MainED Ecuaciones Diferenciales Matlab

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/y2 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 sonaquellos en que puede encontrarse un factor µ, llamado “factor integrante” (f.i.), que solo dependede x o solo depende de y. Un ejemplo de f.i. que depende de ambas variables x e y es aquel queencontramos para la ED

(xy2 − yx2)dx+ x3dy = 0. (2.3)

Si llamamos P (x, y) = xy2 − yx2 y Q(x, y) = x3 comprobaremos que

1

xP + yQ=

1

x2y2

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 = x−2y−2 es ciertamente un f.i.para (2.3).

Page 32: MainED Ecuaciones Diferenciales Matlab

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 alumnopuede comprobar que en el caso P = x2 − y2, Q = xy, el f.i. que se obtiene depende de una solavariable.

Ejemplo 2.12 Usar MATLAB para resolver la siguiente ED del Boletın 2.

y′ =√x+ y. (2.4)

Resolucion del ejemplo 2.12

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 cuadradoambos 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′ = ±√x+ y.

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

y′ = −√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

Page 33: MainED Ecuaciones Diferenciales Matlab

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′)2 − x,

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

y = (−1)x+ (y′)2.

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

(p+ 1)x′ = 2p,

que se integra facilmente obteniendo

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

teniendo en cuenta que y = p2 − x.

Aunque parezca a primera vista que es difıcil, 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′ =G(ax+ by + c), y como Lagrange y = xf(y′) + g(y′).

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

∂y=∂(µQ)

∂x,

es decir,

µy√x+ y + µ

1

2√x+ y

= −µx,

Page 34: MainED Ecuaciones Diferenciales Matlab

24 Clase Practica 2

o equivalentemente

ϕ′(x+ y)√x+ y + ϕ(x+ y)

1

2√x+ y

= −ϕ′(x+ y).

Debido a la forma de µ , y a la expresion anteriormente calculada, si hacemos t = x+ y, obtenemos,separando las variables.

ϕ= − dt

2√t(1 +

√t)

(2.7)

En todo lo anterior, tener en cuenta que hemos usado la regla de la cadena para calcular las derivadasde µ respecto a x e y, esto es,

∂µ

∂x(x, y) = ϕ′(x+ y),

∂µ

∂y(x, y) = ϕ′(x+ y),

siendo ϕ′ la derivada ordinaria de la funcion ϕ(t).

Integrando (2.7) obtenemos que el f.i. de la ED es

µ(x, y) =1

1 +√x+ y

.

Notar que en este caso ϕ(t) = 1/(1 +√t).

Sabiendo que µPdx+ µQdy = 0 es exacta procedemos al calculo del potencial F (x, y).

La integral general es F (x, y) = C.

Ejercicio 2.4 Resolver el siguiente PVI (Boletın 2) y′ =

√y

x, y(1) = 4.

Page 35: MainED Ecuaciones Diferenciales Matlab

CLASE PRACTICA 3

Resolucion simbolica de sistemas diferenciales

OBJETIVOS

Ejercitar el uso combinado de tecnicas matematicas y herramientas simbolicas del MATLAB para elestudio 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

x′ = −5x+ 3yy′ = −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

Page 36: MainED Ecuaciones Diferenciales Matlab

26 Clase Practica 3

Para obtener explıcitamente la solucion S se pide cada una de sus componentes [S.x,S.y] opretty([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(−2e−8t + 3e−7t) + 3C2(e−7t − e−8t)

y = 2C1(−e−7t + e−8t) + C2(3e−8t − 2e−7t)

Alternativamente se puede obtener directamente la respuesta indicando las componentes del vectorsolucion.

>>[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 vıa para resolver el anterior sistema lineal homogeneo, de coeficientes constantes, es seguirla via matricial directa. Para ello comenzamos escribiendo el sistema en forma matricial:(

xy

)′=

(−5 3−2 −10

)(xy

)= A

(xy

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

Page 37: MainED Ecuaciones Diferenciales Matlab

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:

x′ − y = et

y′ + 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=

1Metodo de Variacion de Parametros

Page 38: MainED Ecuaciones Diferenciales Matlab

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 unasolucion particular del sistema diferencial lineal X ′ = A(t)X + B(t). La solucion general delmismo es

X(t) = R(t)V +R(t)

∫ t

0

R(s)−1B(s)ds, (3.1)

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

La formula (3.1) corresponde al caso general A(t) de coeficientes variables. El caso particularde coeficientes constantes aparece a continuacion.

Recordemos que, en caso de sistemas diferenciales homogeneos con coeficientes constantes,X ′ = AX, una matriz fundamental esta dada por R(t) = etA.

Luego, si se trata de un sistema completo de coeficientes constantes X ′ = AX + B(t), unasolucion particular Xp esta dada por

Xp = etA∫ t

0

e−sAB(s)ds.

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

x′ − y = et

y′ + 5x+ 2y = sen(3 + t),

con x(0) = 1, y(0) = −1, usaremos la formula general de variacion de parametros para hallaruna 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)]

Page 39: MainED Ecuaciones Diferenciales Matlab

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 explıcita de la solucion particular Xp se compone de una cadena de caracteresdemasiado larga y por tanto de reducida utilidad, en efecto, si hacemos la conversion de SYMa 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 rangode variacion en el intervalo [−1, 1] sugiere la nulidad con una significacion del orden de 10−15.

Ejemplo 3.3 Resolver el siguiente sistema lineal completo de coeficientes constantes

x′ + x+ 2y = cos(t) + sen(t) + e−t

y′ − 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)

2Los errores menores que eps ≈ 2.2e− 16 se asume que son cero.

Page 40: MainED Ecuaciones Diferenciales Matlab

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 autovalorde A si existe un vector u no nulo tal que Au = λu. A este u se le llama vector propio o autovalorasociado 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.

Page 41: MainED Ecuaciones Diferenciales Matlab

Clase Practica 3 31

3.3.2 El metodo espectral

El siguiente resultado nos ofrece la herramienta teorica para resolver un sistema diferencial linealhomogeneo, 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 propioasociado a λk, k = 1, ..., n, entonces

{eλ1tu1, · · · , eλntun},

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

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

X ′ =

1 2 −11 0 14 −4 5

X(t) X(0) =

−100

Indicaciones para resolver el ejemplo 3.4

Usar el comando EIG para calcular los valores y vectores propios de la matriz del sistema y verificarsi son diferentes dos a dos para aplicar el Teorema 3.1. Recordar que una vez tengamos una matrizfundamental R(t), entonces

X(t) = R(t)

c1c2c3

nos da la solucion general del sistema. Luego, la unica solucion estara dada por la solucion delsiguiente sistema

X(0) = R(0)

c1c2c3

=

−100

es decir, c1

c2c3

= R(0)−1

−100

Page 42: MainED Ecuaciones Diferenciales Matlab

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 coeficientesconstantes 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′′ + 4y′ + 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 raız doble del polinomio caracterıstico

Ejemplo 3.6 Resolver el PVI y′′ + 4y′ + 4y = 0, y(0) = 1, y′(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, conformulas cerradas.

3.4.2 EEDD lineales de orden superior completas

Ejemplo 3.7 Resolver la ED y′′ + y′ + 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 caracterıstico tiene raıces complejas conjugadas (−1± i√

15)/2.

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

Page 43: MainED Ecuaciones Diferenciales Matlab

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 DSOLVEllegar 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 casosdebemos hallar metodos alternativos que produzcan soluciones, quizas aproximadas pero mucho maspotables. Para ilustrar lo dicho, a continuacion se ofrece un ejemplo de EDL homogenea de cuartoorden, cuya solucion se obtiene de forma aproximada, siguiendo un metodo basado en nuestrosconocimientos teoricos. En el apendice se amplıan los detalles tecnicos del metodo y se ejerce unacrıtica necesaria.

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

L[y] = yiv) − 6yiii) + 9yii) − 24yi) − 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 encierto sentido (ver Apendice), calculando un SFS a partir del polinomio caracterıstico

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

Calculemos aproximadamente las raıces de P con alguno de los comandos SOLVE y ROOTS.

El comando SOLVE resuelve exactamente, en terminos de radicales, ecuaciones polinomicashasta el grado 4. ROOTS calcula aproximadamente las raıces de cualquier polinomio mediante un

3Ecuacion Diferencial Lineal y Homogenea4La respuesta puede cambiar segun la version MATLAB o el software que se utilice

Page 44: MainED Ecuaciones Diferenciales Matlab

34 Clase Practica 3

procedimiento muy eficiente y preciso. No obstante, los resultados numericos obtenidos medianteSOLVE deberıan ser superiores, en algunos casos, a los producidos por ROOTS. El nivel de coin-cidencia entre ambos es del orden 10−15 en el caso que nos ocupa, segun se aprecia en las pruebasnumericas 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 = e−0.6219191497174775 t

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

Ejercicio 3.1 Dadas las siguientes EEDD

a.- yiv) − 10yiii) + 3yii) − 2yi) − 20y = 0,

b.- yiii) − 2yii) + 3yi) = 0,

c.- yiv) − 6yiii) + 9yii) − 24yi) + 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).

Page 45: MainED Ecuaciones Diferenciales Matlab

Clase Practica 3 35

3.5 ECUACION DE EULER Y DE EULER

GENERALIZADA

La ecuacion de Euler de segundo orden es de la forma

αx2y′′(x) + βxy′(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)2y′′(x) + β(ax+ b)y′(x) + γy(x) = δ(x)

Ejemplo 3.10 Resolver(2x+ 1)2y′′ − (4x+ 2)y′ − 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 resolverlasmediante DSOLVE y mediante metodos artesanales. Contrastar los resultados.

1. (2x+ 1)2y′′ − (4x+ 2)y′ − 12y = 8x

2. x2y′′ + 5xy′ − 2y = −5 log(x)

3. (10x+ 50)2y′′ − 3(x+ 5)y′ + 7y = x−2

4. x3y′′ − 6x2y′ + 2xy = x+ 1

5. 5x2y′′ − 6xy′ + 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 defunciones. Tambien se aplicara en la obtencion de una EDLH conocidas algunas de sus soluciones.

El wronskiano juega un papel relevante en la teorıa y practica de las EDL. Si y1 e y2 son funcionesdefinidas sobre el intervalo I, entonces el wronskiano W (y1, y2) de estas se define como:

W (y1, y2)(t) = det

(y1(t) y2(t)y′1(t) y′2(t)

), t ∈ I.

Page 46: MainED Ecuaciones Diferenciales Matlab

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

x′′(t) + p(t)x′(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) = 0en 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 e−2t 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 Webde 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]

Page 47: MainED Ecuaciones Diferenciales Matlab

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

Page 48: MainED Ecuaciones Diferenciales Matlab

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 ejemplo3.15, apartado b) como SFS

Pueden ejecutarse comandos MATLAB en lınea tal como se muestra a continuacion, o utilizar elprograma 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′, d2y = y′′, 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

x′′ + 3x′ − 4x = 3 sen(t) + 7e−4t − e2t

Page 49: MainED Ecuaciones Diferenciales Matlab

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 xpque sea combinacion lineal de

x1 = sen(t), x2 = cos(t), x3 = te−4t, 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 enun 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

Page 50: MainED Ecuaciones Diferenciales Matlab

40 Clase Practica 3

A continuacion se resuelve el sistema lineal formado por las 4 ecuaciones eqn1, eqn2, eqn3 yeqn4, 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 ayudade 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

t2x′′ + tx′ − x = sen(t).

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

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 A′(t) y B′(t) son soluciones del sistema(t 1/t1 −1/t2

)(A′(t)B′(t)

)=

(0

sen(t)/t2

)Procedemos a resolver dicho sistema.

Page 51: MainED Ecuaciones Diferenciales Matlab

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

Ejemplo 3.18 Obtener una solucion particular de la ED x′′ − 6x′ + 9x =e3t

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 A′(t) y B′(t) son soluciones del sistema(e3t te3t

(e3t)′ (te3t)′

)(A′(t)B′(t)

)=

(0

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

Page 52: MainED Ecuaciones Diferenciales Matlab

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

x′′ + 3x′ + 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)e−2t +B(t)e−t.

El procedimiento interactivo (lınea de comandos) aparece a continuacion. Puede usarse el programaMVP.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 esmucho mas comodo usar directamente DSOLVE que aplica automaticamente el principio de super-posicion.

Page 53: MainED Ecuaciones Diferenciales Matlab

Clase Practica 3 43

3.8 REDUCCION DE ORDEN

Ejemplo 3.20 Resolver la ED x′′ + (2/t)x′ + x = 0, usando que f(t) = sen(t)/t es una solucionparticular.

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′ = y se llega a una ED de primer orden en y.

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

Resolviendo esta ED se obtiene su solucion general.

y = F (t, C1).

Como y = v′, 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′ + (2/t+ 2f ′/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′, se integra

>>v=int(y,t)+C2

Page 54: MainED Ecuaciones Diferenciales Matlab

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) = t2et, son linealmente independientesen [a, b].

2. Resolver el siguiente problema de CI

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

3. Resolver 9yiv) − 6yiii) + 46yii) − 6yi) + 37y = 0.

4. Hallar la solucion general del sistema de ecuaciones

y′ + z′ = exp(x)y + z′′ = x

5. Determinar la solucion del sistema

x′ = yy′ = zz′ = −yx(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′′ − 4ty′ + y = 1

(b) y′′ − 4t2y′ + y = 0

(c) y′′ − 4ty′ + ty = 0

Page 55: MainED Ecuaciones Diferenciales Matlab

Clase Practica 3 45

(d) ty′′ − 4y′ + y = 0

(e) x′′ + 5x′ − 50x = 1/t

Ver en el APENDICE una notas relativas a las funciones especiales que pueden aparecer en lasolucion 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, quetambien pueden ser conocidas mediante MHELP. Se trata de funciones especiales para el matematicoy el fısico debido a que son la solucion de problemas especıficos, frecuentes y de gran importancia endeterminados ambitos de la matematica, la ingenierıa o la fısica.

La filosofıa que sigue el MATLAB respecto a estas funciones es la usual. Expresar las solucionesde una ED en terminos de ciertas funciones especiales que hemos adoptado, y que son bien conocidasen el sentido de que tenemos suficiente informacion acerca de ellas: intervalos de convexidad y decrecimiento, maximos y mınimos 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 2docuatrimestre utilizando un metodo relativamente simple, basado en asumir a priori que la solucionadmite un desarrollo en serie de potencias.(5

Con estos apuntes no se pretende que el alumno estudie detalladamente todas estas funcionessino que aumente su cultura profesional, conociendo aun mejor cual es la tarea que desempenan lasfunciones 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 raıces dela ecuacion caracterıstica

Para resolver la ecuacion lineal homogenea de coeficientes constantes

ayiv) + byiii) + cyii) + dyi) + ey = 0

aplicamos el comando DSOLVE. Si la respuesta que se obtiene con DSOLVE no es satisfactoria, unavariante poco ortodoxa, que no recomendamos, consiste en tomar el polinomio caracterıstico

P = as4 + bs3 + cs2 + ds+ e

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

Page 56: MainED Ecuaciones Diferenciales Matlab

46 Clase Practica 3

y calcular aproximadamente sus raıces 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 lıneas se reconsidera el ejemplo3.9 de la pagina 33, para ilustrar el nivel de ajuste que se obtiene al calcular una solucion aproximaday por este metodo.

Lo primero a tener en cuenta es que el criterio que aquı se sigue es el de medir el error en laecuacion: |L[y]|, en lugar del error en la solucion: ‖y − y‖.

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 nuestrosconocimientos teoricos. Sin embargo, en el ambito experimental los baremos cambian. La calidadde 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 10−15×10 = 10−14

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 podrıa ser afirmativa si tenemos en cuenta que los calculos MATLAB se hacen conuna precision finita.(7 Parece correcto aceptar que los errores experimentales son nulos cuando estosson < eps ≈ 2.22e− 016, y este no es el caso que nos ocupa.(8

¿Pero acaso 10−14 no es suficientemente pequeno? ¿Podemos aceptar como SFS al obtenido porel metodo descrito anteriormente?

6Agregando title(”) evitamos que en el tıtulo de la grafica aparezcan cadenas interminables de caracteres.7Se llama precision al numero de dıgitos que forman la mantisa.8Por 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 dıgitos.

Page 57: MainED Ecuaciones Diferenciales Matlab

Clase Practica 3 47

Fig. 3.2: Graficas de Z = yiv)1 − 6y

iii)1 + 9y

ii)1 − 24y

i)1 − 20y1 en [−2, 2] y [20, 60]

En principio la respuesta a la primera pregunta es afirmativa. Podemos aceptar un resultadoaproximado siempre que tengamos una medida de la calidad de dicha aproximacion y que esta, a suvez, se corresponda con la tolerancia de nuestros instrumentos. En este caso tendremos presente queno tenemos informacion acerca del error en la solucion

‖y − y‖,

y que nuestra conclusion dependera del intervalo considerado.

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

yG = C1eα3 t cos(β t) + C2e

α3 t sen(β t) + C3eα1 t + C4e

α2 t, (3.2)

de modo que las constantes C1, ..., C4 pueden modificar sustancialmente la escala y por ello podrıaser aun mas difıcil aceptar que el residuo relativo a yG sea cero.

A pesar de lo anterior, el criterio basado en medir directamente las discrepancias en la ecuaciones 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.

9Un serio inconveniente es que la funcion yG depende no linealmente de los parametros α1,..., α3, y β.10Estan disenados para resolver problemas de contorno (Tema 7). Ver § 20.3 de [5]

Page 58: MainED Ecuaciones Diferenciales Matlab

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 raıces del polinomio caracterısticoutilizando SOLVE sin aplicar NUMERIC, solo que la expresion literal de dichas raıces puede serun STRING con demasiados caracteres. En cualquier caso, las ventajas que se derivan del trabajocon objetos simbolicos no parecen ser concluyentes, al menos con este enfoque. Para resolver este ymuchos otros problemas nos apuntamos al uso de los metodos numericos tradicionales cuyo estudiosera abordado en las clases practicas 5, 6 y 7.

Page 59: MainED Ecuaciones Diferenciales Matlab

CLASE PRACTICA 4

Transformada de Laplace

OBJETIVOS

Ejercitar el uso combinado de tecnicas matematicas y herramientas simbolicas del MATLAB parala resolucion, mediante la transformada de Laplace, de problemas de valores iniciales asociados asistemas 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 quedenotaremos por F (s) o f(s) o L(f)(s), definida por la integral

f(s) =

∫ +∞

0

e−stf(t)dt. (4.1)

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∫ +∞

0

g(t)dt = limb→+∞

∫ b

0

g(t)dt. (4.2)

Decimos que g es integrable Riemann en [0,+∞] si el lımite de la derecha en (4.2) existe y es finito.El sımbolo 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 restode esta clase solo trabajaremos con funciones f(t) tales que e−stf(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

Page 60: MainED Ecuaciones Diferenciales Matlab

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, cuyasintaxis es

>>F=laplace(f)

donde f es una funcion escalar de la variable simbolica t, previamente declarada y F es una funcioncuya 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) = e−at y f(t) = e−at 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. Invocandoal 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)

Page 61: MainED Ecuaciones Diferenciales Matlab

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:

tn(s) =n!

sn+1,

y para r > −1, r ∈ R, se tiene, aun mas general, que

tr(s) =Γ(r + 1)

sr+1,

donde Γ(r) se define a continuacion. La funcion Gamma se define como

Γ(t) =

∫ +∞

0

ut−1e−udu, t > 0.

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

Ejemplo 4.3 (a) Comprobar experimentalmente la igualdad Γ(n) = (n− 1)!, utilizando el comandofactorial.(b) Calcular Γ(1/2) y Γ(17/3) por las diferentes vıas 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 asıntotas 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:

eatf(t)(s) = f(s− a),

que MATLAB aplica automaticamente.

Ejercicio 4.2 Calcular la transformada de Laplace de las funciones f(t) = e−at cos(bt) y f(t) = eatt4

utilizando recursos MATLAB-MAPLE de modo que no intervengan variables SYM.

Page 62: MainED Ecuaciones Diferenciales Matlab

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 encada caso.

(a) f(t) = t1/3 (b) f(t) = e−2tt5/6

(c) f(t) = g′(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 previaSYMS.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, latransformada 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), produciendootra expresion f(t).La version MAPLE es la que sigue

>>maple(’invlaplace(F(s),s,t)’)

Page 63: MainED Ecuaciones Diferenciales Matlab

Clase Practica 4 53

Ejemplo 4.4 Obtener la transformada inversa de la funcion

F (s) =s+ 3

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:

F (s) =1

s3 + 1, F (s) =

1

s4 + 1, F (s) =

1

s5 + 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 5ceros simples y complejos, de modo que todo sale por la vıa 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 raıces complejas del numero −1

Page 64: MainED Ecuaciones Diferenciales Matlab

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.

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

Resolucion del ejemplo 4.6.

Se vera que el comando LAPLACE aplica automaticamente la propiedad

x′ = sx− 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

x′′(t) + 3x′(t) + 2x(t) = sen(t),x(0) = x′(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)

Page 65: MainED Ecuaciones Diferenciales Matlab

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

x′′(t)− 3x′(t) + 2x(t) = 2e−2t,x(0) = 1/6, x′(0) = 5/3.

Ejemplo 4.8 Resolver el siguiente sistema

x′ = −x− yy′ = −y + xx(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);

Page 66: MainED Ecuaciones Diferenciales Matlab

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:

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

4.4 PROBLEMAS DE VALORES INICIALES CON

DATOS DISCONTINUOS

4.4.1 Funcion escalon unitario (Heaviside)

La funcion de salto unitario

u(t) =

0 t < 0

1 t ≥ 0

se representa en notacion MATLAB como Heaviside(t) y es de gran utilidad para representar otrasfunciones definidas a tramos.Veamos como se calcula su transformada:

>>syms t s

>>f=’Heaviside(t)’

Page 67: MainED Ecuaciones Diferenciales Matlab

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 terminologıa 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

˜f(t− a)u(t− a)(s) = e−asF (s), (4.3)

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

˜e−asF (s) = f(t− a)u(t− a).

Ejemplo 4.10 Resolver el siguiente problema de condicion inicial

x′(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

Page 68: MainED Ecuaciones Diferenciales Matlab

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 ′′(t) + 4I(t) = g(t),

I(0) = I ′(0) = 0,

siendo

g(t) =

1 0 < t ≤ 1−1 1 < t ≤ 20 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

Page 69: MainED Ecuaciones Diferenciales Matlab

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

δ(t− a) =

{0 t 6= a∞ t = a

(4.4)

1Lo mas sencillo es copiar lo anterior en el Editor-Debugger, borrar los sımbolos >> y ejecutar.

Page 70: MainED Ecuaciones Diferenciales Matlab

60 Clase Practica 4

y ∫ ∞−∞

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

De la propiedad (4.5) se obtiene que

˜δ(t− a)(s) = e−as (4.6)

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

−∞δ(u− a)du =

{0 t < a1 t ≥ a

= u(t− a), (4.7)

lo que, formalmente, significa que δ(t− a) = u′(t− a).

La delta de Dirac sirve para modelizar fenomenos en los que intervienen entidades fısicas de ındoleelectrica o mecanica, cuyas magnitudes alcanzan en poco tiempo valores relativamente grandes. Elloocurre cuando se aplica una carga muy pesada concentrada en un punto de una viga, un golpe demartillo 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 eneste guion, pero el alumno puede intentar conciliar las relaciones (4.5-4.7) asumiendo que dδa(t) =δ(t− a)dt es la medida de probabilidad concentrada en t = a.Despues de un perıodo oscuro pero exitoso, el uso de δ(t− a) fue rigurosamente justificado en 1944por 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 laposicion de equilibrio del sistema resorte-masa, y empieza a vibrar. Despues de π segundos la masaes golpeada por un martillo que ejerce un impulso sobre la masa. El sistema esta regido por elproblema de valor inicial siguiente

x′′(t) + 9x(t) = 3δ(t− π)x(0) = 1, x′(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)

Page 71: MainED Ecuaciones Diferenciales Matlab

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.

tx′′(t) + (t− 1)x′(t)− x(t) = 0,x(0) = 5,limt→+∞

x(t) = 0.

Nota 4.3 Esta ED es de 2do orden...¡pero no se establece condicion alguna sobre x′(0)! En su lugarse impone una condicion en el infinito... Notar que t = 0 es una singularidad (¿por que?). Quizasesto ultimo este asociado a esas “extranas condiciones” que se imponen a la solucion. Una idea: sit ∈ [−ε, ε] con ε > 0 muy pequeno, la ED es casi de orden uno...y para t grande es indudablementeuna 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 delcodigo. Es un ahorro innecesario de memoria usar la misma variable x para ambos papeles. Notarque X se crea por asignacion y no por la declaracion SYMS.

Page 72: MainED Ecuaciones Diferenciales Matlab

62 Clase Practica 4

Finalmente, teniendo en cuenta el comportamiento de x en el punto del infinito se sigue que C1 debeser cero.

Por lo tanto la solucion del ejemplo 4.13 es x(t) = 5e−t.

4.5 TRANSFORMADA DE LAPLACE DE UNA

FUNCION PERIODICA

En primer lugar recordamos la expresion obtenida en clase para calcular la transformada de Laplacede una funcion periodica f(t) con perıodo T .

f(s) =

∫ T

0

e−stf(t)dt

1− e−Ts.

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 perıodo 2π, definida por

f(t) =

20 0 ≤ 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 transferenciaH(s) de un sistema lineal se define como la razon entre la transformadade Laplace de la salida y(t) y la transformada de Laplace de la entrada g(t), asumiendo que lascondiciones iniciales son nulas. Supongamos que el sistema esta gobernado por la EDL de coeficientesconstantes siguiente

ay′′ + by′ + cy = g(t), t > 0,y(0) = y′(0) = 0.

(4.8)

Al aplicar transformadas en ambos miembros de la ecuacion, y reflejar las condiciones inicialesnulas, se obtiene

(as2 + bs+ c)Y (s) = G(s).

Page 73: MainED Ecuaciones Diferenciales Matlab

Clase Practica 4 63

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

H(s) =Y (s)

G(s)=

1

as2 + bs+ c

de donde, si h = H, se sigue que

Y (s) =G(s)

as2 + bs+ c= G(s)H(s) = gh. (4.9)

Notar que H(s) no depende de la entrada g(t).Definamos ahora la llamada funcion de respuesta al impulso como

h(t) = L−1H(t)

Notar que h(t), al igual que H(s), tampoco depende de la entrada g(t). El alumno esta en capacidadde deducir de (4.9) que la solucion y(t) de la ecuacion (4.8) esta dada por (aplicar teorema deconvolucion)

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 unavez, 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 laayuda del MATLAB encuentre la funcion de respuesta al impulso h(t) de los siguientes PVI, concondiciones nulas.

(i) y′′ + 9y = g(t) (ii) y′′ − 9y = g(t)(iii) y′′ − y′ − 6y = g(t) (iv) y′′ + 2y′ − 15y = g(t)(v) y′′ + 2y′ + 5y = g(t) (vi) y′′ − 4y′ + 5y = g(t)

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

Indicaciones sobre el ejercicio 4.6

El siguiente codigo puede ejecutarse en la lınea 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)

Page 74: MainED Ecuaciones Diferenciales Matlab

64 Clase Practica 4

Nota 4.5 Tener en cuenta que

sen(t) =eit − e−it

2i, cos(t) =

eit + e−it

2

senh(t) =et − e−t

2, cosh(t) =

et + e−t

2

Usar tentativamente el comando SIMPLIFY si fuese necesario

Page 75: MainED Ecuaciones Diferenciales Matlab

CLASE PRACTICA 5

Metodos numericos para PVI (I)

OBJETIVOS

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

5.1 FUNCIONES ESPECIALES

En Matematica Aplicada, Fısica e Ingenierıa aparecen con frecuencia ED de segundo orden. Entreellas 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 FUNCIONESESPECIALES. La ED lineal de segundo orden

x2y′′ + xy′ + (x2 − q2)y = 0 (5.1)

donde q es un parametro fijo, se llama ecuacion de Bessel de orden q y tiene una unica singularidadregular en x = 0. Aplicando el metodo de Frobenius se obtienen, si 2q /∈ N, las 2 soluciones linealmenteindependientes siguientes:

Jq(x) =∞∑n=0

(−1)n

n!Γ(1 + q + n)(x

2)2n+q

J−q(x) =∞∑n=0

(−1)n

n!Γ(1− q + n)(x

2)2n−q

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) + Jq−1(x) = 2q/xJq(x),

Jq+1(x)− Jq−1(x) = 2J ′q(x).

65

Page 76: MainED Ecuaciones Diferenciales Matlab

66 Clase Practica 5

Si q ∈ Z, entonces Jq(x) y J−q(x) son linealmente dependientes. Ademas J−q(x) = (−1)qJq(x).

Si q = ±1/2,±3/2,±5/2, · · · , las funciones de Bessel Jq se pueden expresar como una combinacionfinita de senos, cosenos y potencias de x; es decir que son funciones elementales. En concreto secumple que:

J1/2(x) =

(2

πx

)1/2

sen(x)

y

J−1/2(x) =

(2

πx

)1/2

cos(x).

Las Funciones de Bessel Jq para q ∈ N son analıticas en 0. Ademas son funciones pares si q es par eimpares 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 lasfunciones 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 sealternan los ceros de J0 y J1.

Page 77: MainED Ecuaciones Diferenciales Matlab

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 lınea 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 lapropia 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 analıticos 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 mayorıa de las EDque se encuentran en las aplicaciones no se pueden resolver de forma exacta, mediante formulas

Page 78: MainED Ecuaciones Diferenciales Matlab

68 Clase Practica 5

implıcitas o explıcitas.(1 Para compensar estas limitaciones se introducen los metodos numericos queson el objeto de esta practica.

5.2.1 Metodos numericos de resolucion de PVI

Consideremos el siguiente PVIy′ = f(x, y), y(x0) = y0, (5.2)

siendo x0 ∈ [a, b] y f ∈ C([a, b]× R).

Se asume que f y∂f

∂yson continuas en un rectangulo que contiene al punto (x0, y0), de modo que

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 enciertos puntos xk de [a, b].

Se trata de crear una tabla de valores de la variable dependiente y correspondientes a valoresconocidos 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 delsubintervalo [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 unaaproximacion 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 delmismo y que la pendiente de la tangente a dicha curva en P es y′(x0) = f(x0, y0).

El metodo de Euler aproxima el valor de la solucion exacta en x cercano a x0 usando la ecuacionde la tangente en el punto P = (x0, y0):

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

1No se pueden resolver de forma exacta porque el catalogo disponible de “funciones elementales” no alcanza paraobtener una formula cerrada, o porque dicha expresion es “muy difıcil” de encontrar.

Page 79: MainED Ecuaciones Diferenciales Matlab

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 mediantey2 = y1 + f(x1, y1)h,

y asi sucesivamente hasta yNyN = 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′(x) = f(x, y(x))

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

y(xk+1)− y(xk) =

∫ xk+1

xk

y′(x)dx =

∫ xk+1

xk

f(x, y(x))dx,

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 delvalor de yk. El dato o condicion inicial (CI) es y0 y desde el marchamos en una direccion haciendo cadavez una nueva estimacion sobre la base de predicciones anteriores. Esto ultimo introduce desviacionesen nuestros sucesivos calculos, provocando que estos sean mas imprecisos a medida que nos alejamosdel punto inicial x0.

La formulacion (5.5) anterior corresponde al llamado metodo de Euler. Este resulta ser el massencillo entre los metodos que se establecen mediante diferencias finitas para resolver problemas devalores 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, porejemplo Euler, de un PVI cuya solucion exacta es y(x).

Page 80: MainED Ecuaciones Diferenciales Matlab

70 Clase Practica 5

Principio 5.1 Si agregamos mas puntos en la malla (xk), para que h sea mas pequeno, entonces laexpectativa 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 Silimh→0

y(x;h) = y(x),

entonces decimos que el metodo converge.

Lo anterior significa que las soluciones y(x;h) de las ecuaciones en diferencias finitas que caracterizanal metodo considerado, aproximan a la solucion exacta y(x) de la ED cuando h→ 0.

Luego, teoricamente, deberıamos obtener mejores respuestas considerando valores cada vez maspequenos de h. Desafortunadamente, la aritmetica de precision finita del ordenador no lo permite.Para h muy pequeno los valores yk obtenidos podrıan 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 lasiguiente 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′ = y2 + 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′ = y2 + 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.

2Un principio es un enunciado metalinguıstico, mediante el cual se establecen expectativas, se resumen resultados,se sugieren acciones,... Los principios surgen de la experiencia y conforman el criterio experto.

3Es decir, la mantisa correspondiente a yk, podrıa no tener dıgitos significativos coincidentes con la representacionde punto flotante de y(xk).

Page 81: MainED Ecuaciones Diferenciales Matlab

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 puntosx(k) = a+ (k − 1) ∗ h con k = 1, · · · , n y dondeh = (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-’)

Page 82: MainED Ecuaciones Diferenciales Matlab

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− 02El error maximo es: 8.093460004977e− 02Los valores aproximados se obtienen en la lınea 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 max10 0.111111 0.1579

100 0.010101 0.0166200 0.005025 0.0083400 0.002506 0.0042

Ejercicio 5.1 Modificar el programa EULER1 para calcular una solucion aproximada del PVI

y′ = 2xy2, 0 ≤ x ≤ 1, con y(0) = −1.

Obtener los errores cometidos, comparando con la solucion exacta, considerendo los pasos h1 = 2−3

y h2 = 2−5.

Page 83: MainED Ecuaciones Diferenciales Matlab

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 llamaremosEULER2.m. para resolver la ecuacion y′ = F (x, y) con la CI y(a) = y0, en el intervalo [a, b], en npuntos

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 yde la solucion.El programa EULER2.m es un procedimiento de tipo FUNCTION y uno de sus argumentos es unafuncion que se debe crear previamente.Una de las aplicaciones mas utiles de los ficheros .M se presenta en la definicion de funciones mediantela directiva FUNCTION cuya sintaxis es

FUNCION PARAMETROS SALIDA=NOMBRE FUNCION(parametros entrada)

El codigo de EULER2.m es el siguiente

Page 84: MainED Ecuaciones Diferenciales Matlab

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

Page 85: MainED Ecuaciones Diferenciales Matlab

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

y′ =1

x(y + y2),

y(1) = 1, 1 ≤ x ≤ 2(5.6)

tomando el paso h = 2−2.

5.2.5 Precision de los resultados

Todo calculo aproximado debe tener en cuenta un indicador que permita evaluar la calidad de losresultados. En nuestro caso se trata de calcular la solucion aproximada de una ED y de poder decidirsobre 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, sedice que es una estimacion del error a posteriori.El siguiente programa EULER3 es una version mas flexible que la anterior, pues permite que elusuario 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 condiferentes mallas de puntos, lo que permite estimar el error a posteriori si nos basamos en el siguienteprincipio: Si d es la distancia entre dos aproximaciones de la solucion exacta de un PVI, entonces des 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 esuna funcion que se debe crear previamente.

4Se trata de un enunciado obviamente impreciso y aparentemente peligroso. Es frecuente en la practica cuando nohay otra opcion. Se emplea en los comandos Matlab: ODE45 y ODE32.

Page 86: MainED Ecuaciones Diferenciales Matlab

76 Clase Practica 5

Resuelve la ecuacion y′ = F (x, y) con la condicion inicial y(a) = y0, en el intervalo [a, b], en N puntosx(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 lospasos

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

Page 87: MainED Ecuaciones Diferenciales Matlab

Clase Practica 5 77

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

y′ = y2 + 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′ = −y2, 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 utilizarıas para intentar hallar una solucion exacta?

• Usando EULER3 obtener las soluciones aproximadas con N = 23 y N = 24 − 1 puntos yestimar el error cometido.

• Calcular el error exacto y compararlo con el error estimado teniendo en cuenta que la solucionexacta es y = 1/(x− 1).

Page 88: MainED Ecuaciones Diferenciales Matlab

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 deintegracion 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∫ b

a

f(x)dx,

por el numero

(b− a)(f(a) + f(b))

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 cadauno de los subintervalos [xk, xk+1] ∫ xk+1

xk

f(x, y(x))dx.

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

Fig. 5.11: Regla del trapecio

En resumen y dicho en terminos geometricos, el metodo de Euler consistio en sustituir el areabajo la curva de g(x) = f(x, y(x)) por el area de cierto rectangulo, mientras que ahora, en lugar del

Page 89: MainED Ecuaciones Diferenciales Matlab

Clase Practica 5 79

rectangulo utilizaremos un trapecio para obtener la siguiente expresion(5∫ xk+1

xk

f(x, y(x))dx ≈ h

2

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

),

donde h = xk+1 − xk.Surge ası un metodo de calculo aproximado cuya formulacion es la siguiente.

yk+1 = yk +h

2

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

).

Se trata de un metodo implıcito ya que la incognita yk+1, no aparece despejada en la formula. Ademasse 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

y∗k+1 = yk + hf(xk, yk).

(2) Se corrige mediante la anterior relacion

yk+1 = yk +h

2

(f(xk, yk) + f(xk + h︸ ︷︷ ︸, yk + hf(xk, yk)︸ ︷︷ ︸)

)xk+1 y∗k+1

Resultando definitivamente el algoritmo de Euler mejorado

yk+1 = yk +h

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

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 conrespecto a ambos metodos, y el trazado en pantalla de los respectivos graficos.

5Ver seccion 3.5 del Nagle Saff y la figura 5.11.

Page 90: MainED Ecuaciones Diferenciales Matlab

80 Clase Practica 5

Descripcion del programa EULER M

El programa EULER M resuelve la ecuacion y′ = 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 yEuler 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 quemas abajo se explica. Estos errores se obtienen directamente en terminos del maximo de la distanciasentre cada estimacion yk y el valor exacto f(xk). Los correspondientes graficos se despliegan en unamisma 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′ + y/x− y2 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)

Page 91: MainED Ecuaciones Diferenciales Matlab

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,

Page 92: MainED Ecuaciones Diferenciales Matlab

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 laplantilla 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, porejemplo

>>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 yEuler mejorado, es y em respectivamente, para el problema (a) con d = 1 y 24 nodos.Definir Fb y fb y proceder aplicando EULER M.Las plantillas que el profesor ha entregado en clases deben rellenarse con los resultados para serentregadas al final.La realizacion de este tipo de problemas debe permitirnos llegar a conclusiones experimentales yteoricas, y ademas, ganar experiencia en la aplicacion de estos metodos.

5.4 OTROS METODOS NUMERICOS

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

xk

f(x, y(x))dx,

mediante nuevos procedimientos numericos. Segun sea el orden del error producido por la formulade 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. Elnuevo metodo que veremos se clasifica como un metodo de dos pasos, le llamaremos metodo delpunto medio. Al igual que Euler aproximamos el area bajo la curva sustituyendola por el area de unrectangulo, esta vez a la altura y(xk) de la imagen del punto medio xk del intervalo [xk−1, xk+1] (verfigura 5.13).

La formulacion del metodo del punto medio es la siguiente

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

Page 93: MainED Ecuaciones Diferenciales Matlab

Clase Practica 5 83

Fig. 5.13: Ilustracion de un metodo de dos pasos

Notar que (5.8) es un metodo explıcito porque yk+1 aparece despejado, y que la estimacion yk+1

depende de las estimaciones yk e yk−1 (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 operacioneslogico-aritmeticas que han de ejecutarse para alcanzar una precision dada. Es una referenciavaga 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, permitenjuzgar acerca de la calidad de los resultados numericos al aplicar un metodo a un problemaconcreto cuya solucion exacta es desconocida.

4. El metodo de Euler es un metodo muy simple, que no se utiliza en la practica, pero resultamuy adecuado para introducirnos en el estudio general de los metodos numericos que resuelvenaproximadamente problemas de valor inicial. El metodo de Euler pertenece a una clase demetodos llamados de “un paso”, y que en general se caracterizan por la siguiente relacionrecurrente:

yk+1 = yk + φ(h, xk, yk).

Page 94: MainED Ecuaciones Diferenciales Matlab

84 Clase Practica 5

5.6 EJERCICIOS ADICIONALES

Ejercicio 5.5 Utilizar el programa EULER3 para calcular una solucion de

y′ =2x

9y2, 0 ≤ x < 3, con y(0) = 1. (5.9)

Detectar una anomalıa, en este caso la presencia de una “singularidad” en x = 3, calculando lasolucion 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 lınea donde se ha invocado EULER3, para evitar eleco incontrolado en pantalla, y dar unicamente salida al contenido de aquellas variables que deseamosconocer, 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 discretaspara analizar la llamada elasticidad de la demanda y = y(x), como funcion del precio x de unproducto. Este analisis puede conducir a decisiones arriesgadas como es la de subir los precios conexpectativas de mayores ingresos, aun cuando la demanda disminuye.

Ejercicio 5.6 Utilizar el codigo EULER3 para obtener soluciones aproximadas de

xy′ = 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.

Page 95: MainED Ecuaciones Diferenciales Matlab

Clase Practica 5 85

Ejercicio 5.7 Resuelva la ecuacion (5.10) mediante variables separables y responda con argumentosa 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)?

Page 96: MainED Ecuaciones Diferenciales Matlab
Page 97: MainED Ecuaciones Diferenciales Matlab

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 ocondiciones 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 sistemasdiferenciales de orden superior en sistemas de primer orden. Al igual que la clase anterior, soloutilizaremos 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).

S :

x′ = f(t, x, y)y′ = 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 dependiesende t dirıamos 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 delsistema S.

No obstante, cualquiera sea el metodo que apliquemos a un sistema de EDs se tiene que:

1Euler mejorado pertenece a la familia de metodos de Runge-Kutta que mas adelante estudiaremos.

87

Page 98: MainED Ecuaciones Diferenciales Matlab

88 Clase Practica 6

1. En cada etapa debe ser aplicado el metodo a todas las ecuaciones antes de pasar a la siguienteetapa. 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 osistema diferencial de orden mayor que uno debe ser primero transformado en un sistema deorden 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 escalary′ = 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′′ = f(t, y′, y) (6.1)

en un sistema de EEDD de orden uno.

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

x′ = f(t, x, y)y′ = x

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

Euler mejorado aplicado a un sistema

xk+1 = xk +h

2

(f(tk, xk, yk) + f(t∗k+1, x

∗k+1, y

∗k+1)

)yk+1 = yk +

h

2

(g(tk, xk, yk) + g(t∗k+1, x

∗k+1, y

∗k+1)

) (6.2)

donde las predicciones para k + 1 estan dadas por

t∗k+1 = tk + h

x∗k+1 = xk + hf(tk, xk, yk)

y∗k+1 = yk + hg(tk, xk, yk)

(6.3)

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 tieneque saber que datos debe dar como entrada, e interpretar los resultados.

Page 99: MainED Ecuaciones Diferenciales Matlab

Clase Practica 6 89

Los datos relativos al campo de direcciones o a la entrada opcional de la solucion exacta se entregancuando lo solicita el programa, con la sintaxis o notacion usual, sin encerrar entre apostrofes ni ponerpuntos delante de operadores. Esto ultimo es necesario para la ejecucion pero el propio programa seencarga 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 deellos, 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, yse 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 decomparar 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 errorescorrespondientes.

Los graficos de las soluciones aproximadas aparecen en pantalla superpuestos y solo correspondenal ultimo paso.

El programa RK CELL, que tambien podemos obtener en la Web de la asignatura [15], es unainterfaz de usuario para facilitar el uso de la herramienta ODE45 de MATLAB aplicada a sistemas deecuaciones. El diseno de RK CELL se basa en usar objetos CELL para simular funciones vectorialesde cualquier numero de dimensiones. El propio programa crea automaticamente el fichero FUNC-TION correspondiente al campo vectorial, con las caracterısticas exigidas por ODE45. Este comandoMatlab ejecuta algoritmos correspondientes a los metodos de Runge-Kutta que estudiaremos en laclase practica 7.

6.1.3 Ejercicios con indicaciones para ser resueltos

Ejercicio 6.1 Dado el sistema diferencial lineal siguiente

x′ = x+ y,y′ = x− y,x(0) = 1 +

√2,

y(0) = 1,(6.4)

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

Indicaciones para el ejercicio 6.1

Escribir

2Para mas informacion ejecutar �help s2 euler

Page 100: MainED Ecuaciones Diferenciales Matlab

90 Clase Practica 6

>>s2_euler

y oprimir INTRO.

La solucion exacta del sistema (6.4), que es una entrada opcional, es la siguiente

x(t) = (1 +√

2)et√

2, y(t) = et√

2

El problema (6.4) es lineal y homogeneo. El alumno deberıa intentar resolverlo artesanalmentemediante 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:

x′ = x2 + x+ 5yy′ = y2 + sen(x) + 3x− yx(0) = 0.001,y(0) = 0.001,

0 ≤ t ≤ 1.

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. Nocerramos el grafico de salida, cuyo aspecto podemos apreciar anticipadamente en la figura 6.2, parapoder comparar con el que produciremos en el ejercicio 6.3.

Page 101: MainED Ecuaciones Diferenciales Matlab

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:

x′ = x+ 5yy′ = 4x− yx(0) = 0.001,y(0) = 0.001,

0 ≤ t ≤ 1.

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, quedesuperpuesto al grafico del ejercicio 6.3.

A continuacion se muestra como se ha “perturbado localmente” el problema 6.2 paratransformarle en el problema 6.3

Los problemas planteados en los ejercicios 6.2 y 6.3 estan relacionados entre sı. El estudiante debeapreciar que las ecuaciones diferenciales del ejercicio 6.2 son no lineales, mientras que las del 6.3son todas lineales. Mostraremos como el campo de direcciones del sistema diferencial del ejercicio6.2 se aproxima localmente mediante su diferencial, y como a partir de este ultimo se producen lasecuaciones lineales del problema 6.3. Se dice que el sistema del ejercicio 6.3 es una aproximacionlineal del sistema del ejercicio 6.2. Las expectativas son: que la solucion de 6.3 sea una aproximacionaceptable 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 elproblema no lineal 6.2.(3

3La frase “suficientemente pequeno” encierra otro problema cuya solucion no abordaremos en este material.

Page 102: MainED Ecuaciones Diferenciales Matlab

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(y2 + 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

y2 + 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, extraıdo del Boletın 7, consiste de una ED lineal y homogenea deorden dos con coeficientes variables.

y′′ − ty′ + y = 0,y(0) = 2, y′(0) = 1, t ∈ [0, 1],

(6.5)

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. Ahoranos proponemos aplicar el programa S2 EULER al sistema de orden uno que se le asocia, y que elpropio alumno debe calcular directamente.

Page 103: MainED Ecuaciones Diferenciales Matlab

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, obtenidasegun Euler, es muy similar a la del polinomio

y(t) = 2 + t− t2 − t4

12− t6

120, (6.6)

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 lassoluciones aproximadas.

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

∞∑n=0

antn,

siendo los an definidos por la recurrencia a tres terminos

an+2 =an(n− 1)

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

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

4Observar que siendo t ∈ [0, 1], y atendiendo a la precision deseada, el termino con la potencia t6 tambien podrıadespreciarse en la aproximacion (6.6).

Page 104: MainED Ecuaciones Diferenciales Matlab

94 Clase Practica 6

Sea P=[a_6,...,a_0], el vector formado por los coeficientes an, n = 0, ..., 6, de la suma parcialque estamos considerando como una aproximacion de la solucion del problema (6.5)

6∑n=0

antn = a6t

6 + · · ·+ a1t+ a0.

El comando POLYVAL interpreta a P como un polinomio y permite evaluarlo en variables escalares ovectoriales.(5

Para comparar los resultados obtenidos mediante series de potencias y el metodo Euler mejoradoaplicado 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 deberıa 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 convertidospreviamente en un sistema de orden uno, y aplicarle a este ultimo uno de los metodos estudiadospara el caso escalar.

La serie de potencias que representa a la solucion de un problema con datos analıticos, puedeser simulada numericamente utilizando una suma parcial seleccionada convenientemente, lo que, enprincipio, constituye otro metodo para aproximar la solucion.

6.2 EJERCICIOS ADICIONALES

Ejercicio 6.4 Aproximar los valores de la solucion del PVI

y′′ + 2t2y′ + 5y = 0,y(0) = 1, y′(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)

x′ = tx+ 5y + t2,y′ = −2x+ 6y + 4,x(0) = 0, y(0) = −1, t ∈ [0, 1].

en los puntos t = 0.11, 0.23, 0.59, 0.82.

5El comando POLYVAL es compatible con la arquitectura matricial del MatLab, es decir, admite matrices comoargumento de entrada.

Page 105: MainED Ecuaciones Diferenciales Matlab

Clase Practica 6 95

Ejercicio 6.6x′ = tx− 10y − 4t− 2t2,y′ = x+ 6y,x(0) = 1, y(0) = −1, t ∈ [0, 1].

Ejercicio 6.7y′ = x+ 6y + 3,x′ = 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 vıa numerica. Para ello escribimos la EDLH de 2do orden delejercicio 6.4 como un sistema de primer orden

x′ = −2t2x− 5y,y′ = 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 incognitadel 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 coincidancon 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 suposicion (ver figura 6.5).

La leyenda que aparece en la esquina superior izquierda puede moverse arrastrandola con el cursor.

Page 106: MainED Ecuaciones Diferenciales Matlab

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 primeraecuacion provoque una complejidad excesiva o no existe, de hecho, una solucion representable con elcatalogo de funciones MATLAB.

Nos queda la alternativa de aplicar S2 EULER o RK CELL al sistema anterior. Los resultadosgraficos 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 lınea de comandos

Page 107: MainED Ecuaciones Diferenciales Matlab

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′′ − (t+ 6)y′ + (6t+ 10)y = −4t− 2t2,y(0) = −1, y′(0) = −5.

La anterior ecuacion es excesivamente complicada para el nucleo simbolico de MATLAB. La ecuacionhomogenea asociada tiene solucion mediante el comando DSOLVE en terminos de la funcion especialWhittakerM.(6

Notemos que la ED lineal

y′′ − (t+ 6)y′ + (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 susolucion en torno a t = 0. Despues de asumir que y(t) es analıtica en x0 = 0, llegamos a que

y(t) =∞∑n=0

antn

donde

Fig. 6.7: Solucion grafica del ejercicio 6.6

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

Page 108: MainED Ecuaciones Diferenciales Matlab

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

an+2 =6(n+ 1)an+1 + (n− 10)an − 6an−1

(n+ 2)(n+ 1), n = 3, 4, 5, ...

Ahora ejecutamos el programa TRUNCADA.M- que descargamos desde [15]- para calcular lassumas 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 conlas obtenidas usando S2 EULER o RK CELL.

Para hacer los graficos se recomienda usar EZPLOT.

7Con otra version de MATLAB o con otro software el resultado puede variar.

Page 109: MainED Ecuaciones Diferenciales Matlab

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

f(x) =

{−1 si −π ≤ x < 0,

1 si 0 ≤ x < π(6.7)

representar graficamente la funcion f y las aproximaciones de su serie de Fourier trigonometricamediante las primeras sumas parciales.

Indicaciones para resolver el ejercicio 6.8

La serie de Fourier de f viene dada por

4

π

∞∑n=1

sen((2n− 1)x)

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π].

Page 110: MainED Ecuaciones Diferenciales Matlab

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

2∞∑n=1

(−1)n+1 sen(nx)

n.

Usar el programa SERIE2 para realizar esta tarea (ver figura 6.10).

Page 111: MainED Ecuaciones Diferenciales Matlab

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 deecuaciones 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 alumnopues se corresponde con el procedimiento de Euler mejorado expresado en terminos vectoriales. Laotra subrutina FUNCTION, llamada CEVAL, permite la evaluacion numerica de campos vectorialesalmacenados como objetos CELL.

Este programa puede ser descargado de la Web de la asignatura [15], y se activa directamente enla lınea 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 defilas 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 lınea 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;

Page 112: MainED Ecuaciones Diferenciales Matlab

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′ = 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 ∈ (xk−1, xk).

Seguiremos el procedimiento mas sencillo consistente en “interpolar linealmente”, es decir unire-mos los puntos

Pk−1 = (xk−1, yk−1), 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 lostrataremos en este curso. La figura 6.11 ilustra el proceso de interpolacion mediante poligonales.

Para realizar eficientemente los calculos usaremos el programa INTERPOLA.M -descargabledesde [15]- basado en el comando INTERP1 de MATLAB.

>>Y1=interp1(T,Y,T1);

dondeT = [x(1) · · ·x(n)],

Y = [y(1) · · · y(n)],

T1 = [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 vectorde Rn, y que segun el procedimiento basado en interpolacion estamos hallando una solucion en laforma de una funcion que, aunque continua, desafortunadamente no es derivable en todos los puntos.

A continuacion se muestra el codigo de INTERPOLA.

Page 113: MainED Ecuaciones Diferenciales Matlab

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

Page 114: MainED Ecuaciones Diferenciales Matlab
Page 115: MainED Ecuaciones Diferenciales Matlab

CLASE PRACTICA 7

Metodos numericos para PVI (III)

OBJETIVOS

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

7.1 METODOS DE RUNGE-KUTTA

7.1.1 Metodos de Taylor

Sea la ED y′ = 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 requierenevaluaciones 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 correspondientecoste 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′(x0) + h2/2!y′′(x0) + · · ·+ hn/n!y(n)(x0) +O(h(n+1)),

y se sustituyen las derivadas hasta el orden n,

y′(x0) = f(x0, y0)y′′(x0) = fx(x0, y0) + fy(x0, y0)f(x0, y0)· · · = · · · · · ·

El metodo de Taylor de orden 1 es el ya conocido metodo de Euler explıcito, estudiado en la anteriorclase practica, y en el mismo no intervienen derivadas. Los metodos de Taylor de orden n ≥ 2, queno estudiaremos, sı involucran a las derivadas de f(x, y).

105

Page 116: MainED Ecuaciones Diferenciales Matlab

106 Clase Practica 7

Sustituyendo las derivadas de y(x) en x0 hasta un orden n ≥ 3 arbitrario, podemos obtener unmetodo de mayor orden que el de Euler mejorado.

Estos metodos se llaman metodos de Taylor debido al papel jugado por el desarrollo de Taylorde 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 esfactible, 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 deRunge-Kutta. Estos combinan ingeniosamente los valores de f(x, y) para evitar la presencia de lasderivadas en los calculos y al mismo tiempo, producir ordenes similares a los que se obtienen con losmetodos 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 quecombinamos 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-Kuttacomparten 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 problemasde 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 esquemadel metodo clasico de Runge-Kutta de 4to orden es el siguiente:

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

dondek1 = 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], conel cual intentaremos resolver EEDD de primer orden

y′ = f(x, y)

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

1La derivacion numerica es un problema mal acondicionado, lo que significa que pequenos errores en los datospueden producir grandes errores en los resultados.

Page 117: MainED Ecuaciones Diferenciales Matlab

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 permiteopcionalmente introducir la solucion exacta si fuese conocida. En una sola ejecucion es capaz decalcular 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 localcula 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 lınea de comandosalguna 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) deldominio 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

y′ = 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 ycompararlo con el estimado a posteriori.

Ejercicio 7.2 Aproximar la solucion del PVI

2y′ = (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 + 3e−x/2 calcular el error exacto cometidoy compararlo con el estimado a posteriori.

Page 118: MainED Ecuaciones Diferenciales Matlab

108 Clase Practica 7

Ejercicio 7.3 Aproximar la solucion del PVI

(ex + 1)y′ + 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

Teniendo en cuenta que la solucion exacta es y =12ex

(ex + 1)2calcular el error exacto cometido y

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 acotadacuando 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′+ py = q(x), p ∈ R, en las que el termino q(x) no influye. Los siguientes enunciadospueden 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′ = 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 seindica 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 lasolucion 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)

Page 119: MainED Ecuaciones Diferenciales Matlab

Clase Practica 7 109

b h p Euler RK-2 RK-4 ODE45

A 0.01 1e-03 1000B 0.01 5e-04 1000C 0.01 1e-03 -1000D 1 1e-03 -1000E 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)

Notar que hB =hA2

y que hD =hE5

.

7.1.6 Descripcion del programa EJE7.4

Tal como sugiere su nombre, este codigo esta especialmente disenado para resolver el ejercicio 7.4 deesta practica. Para facilitar el trabajo se cuenta con una interfaz de usuario que permite seleccionaruno de los dos posibles PVI mediante una ventana-menu, atendiendo a que la ecuacion que le definedepende del valor de un parametro p. El programa se encarga de aplicar los metodos de Euler, Eulermejorado y Runge-Kutta 4, mostrando al final los respectivos errores y los graficos (ver figura 7.1). Seaplica adicionalmente la herramienta MATLAB ODE45, basada en Runge-Kutta 4 y 5. Esta ultimaadopta como tolerancia de entrada (error maximo permitido), al menor de los errores producidos porlos metodos anteriores.

Los principales objetivos de este experimento consisten en la deteccion experimental de inesta-bilidad y escalas relevantes en el dominio.

Page 120: MainED Ecuaciones Diferenciales Matlab

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′′ + b(x)y′ + c(x)y, siendo a(x) > 0,para todo x ∈ [a, b], y consideremos los operadores lineales de primer orden

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

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

Al siguiente problema

Λ[y](x) = f(x), x ∈ [a, b],B1[y](a) = 0,B2[y](b) = 0,

(7.1)

Page 121: MainED Ecuaciones Diferenciales Matlab

Clase Practica 7 111

se le llama problema de contorno con condiciones separadas. El problema de valores propios seestablece como el problema de hallar los λ tales que

Λ[y] = −λy,B1[y](a) = 0,B2[y](b) = 0,

(7.2)

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′)′ + 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,B2[y](b) = 0.

(7.3)

7.2.2 Aplicacion: Viga columna

Para calcular las cargas crıticas que actuan longitudinalmente sobre una columna empotrada y lasdeformaciones correspondientes disponemos del modelo matematico siguiente

y′′(x) +λ

EIy(x) = 0

y(0) = y(L) = 0,

(7.4)

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′′(x) +λ

EIy(x) = 0 y diferentes condiciones homogeneas de frontera, para mostrar graficamente las

deformaciones (autofunciones) y calcular las cargas que producen deformacion (autovalores).

Ejemplo 7.1 Ejecutar en la lınea 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,u(x, 0) = 5 sen(4πx)− 3 sen(8πx) + 2 sen(10πx).

(7.5)

Page 122: MainED Ecuaciones Diferenciales Matlab

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) esu(x, t) =

5 sen(4πx) exp(−5(122)π2t/9)− 3 sen(8πx) exp(−5(242)π2t/9) + 2 sen(10πx) exp(−5(302)π2t/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 delejemplo 7.2.

Ejemplo 7.3 El flujo de calor a traves de una barra cilındrica de longitud π, es solucion de:

ut = 2uxx; 0 < x < π, t > 0,u(0, t) = u(π, t) = 0,

(7.6)

u(x, 0) =

{x 0 < x ≤ π/2,π − x π/2 < x < π.

(7.7)

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

Page 123: MainED Ecuaciones Diferenciales Matlab

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

u(x, t) =4

π

∞∑k=1

(−1)kexp(−2(2k + 1)2t) sen((2k + 1)x)

(2k + 1)2(7.8)

Usar la funcion TEMP.M para aproximar la temperatura u(x, t) cualquiera sea el instante t y laposicion 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,T (x, 0) = sen(x)− 7 sen(3x) + sen(5x).

(7.9)

Si el tiempo t se mide en segundos, estime el momento en que la temperatura T se hace maxima enlos primeros 10 segundos, en el punto π/6 de la barra.

Page 124: MainED Ecuaciones Diferenciales Matlab

114 Clase Practica 7

A continuacion se ofrecen indicaciones para seguir un metodo basado en la potencia grafica delMatlab 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 yviene dada por

T (x, t) = e−3t sen(x)− 7e−27t sen(3x) + e−75t 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, delpunto de maximo.Repetir el proceso hasta obtener al menos dos dıgitos 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 = a2yxx, (a = 20)yx(0, t) = yx(π, t) = 0, t ≥ 0,y(x, 0) = 1, yt(x, 0) = cos(x), 0 ≤ x ≤ π.

(7.10)

es

y(x, t) = 1 +sen(at) cos(x)

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] (verfigura 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)

Page 125: MainED Ecuaciones Diferenciales Matlab

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 mınimo alcanzados pordicho punto en el perıodo.

2. Representar graficamente la posicion de la cuerda pasadas dos horas despues del momentoinicial 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 dadapor

y(x, t) =∞∑n=0

8(−1)n

π(2n+ 1)2cos

((2n+ 1)x

2

)sen((2n+ 1)t

). (7.11)

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-

Page 126: MainED Ecuaciones Diferenciales Matlab

116 Clase Practica 7

formemente”2 al valor exacto de la serie con dos dıgitos significativos correctos.El programa CUERDA se ha disenado atendiendo al anterior analisis y permite aproximar hasta condos dıgitos 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 maxy 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 = func(x1, ..., xn)

2La precision que se obtiene no depende de x ni de t.

Page 127: MainED Ecuaciones Diferenciales Matlab

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

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), aplicandoherramientas simbolicas MAPLE-MATLAB.

d) uxx + uyy = x+ y2

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

Page 128: MainED Ecuaciones Diferenciales Matlab
Page 129: MainED Ecuaciones Diferenciales Matlab

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 andMATLAB, 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 Problemascon valores en la frontera. Pearson Educacion, Mexico, 2001

[10] HANSELMAN, D. y LITTLEFIELD, B., The Student edition of MATLAB: version5 user’s guide, Prentice Hall, 1997.

[11] ZILL, D. G. Ecuaciones diferenciales con aplicaciones de modelado, Internat. ThomsomEditores, 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