Está en la página 1de 129

ECUACIONES DIFERENCIALES

A. Cachafeiro López – J. Illán González

Departamento de
Matemática Aplicada I

Universidade de Vigo
SEGUNDA EDICIÓN
Año: 2009
Editores: Los autores
ISBN: 978-84-611-9916-7
ÍNDICE GENERAL

1 Comandos simbólicos para resolver ecuaciones.


Campos de direcciones. Isoclinas 1
1.1 COMANDOS SIMBÓLICOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.1 Comandos para la derivación . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.2 Problemas resueltos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.3 El comando DSOLVE. Resolución de PVI . . . . . . . . . . . . . . . . . . . . 2
1.1.4 Ejemplos de EEDD que no pueden ser resueltas por DSOLVE . . . . . . . . . 3
1.1.5 Función LAMBERTW(Z) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2 CAMPO DE DIRECCIONES DE UNA ED . . . . . . . . . . . . . . . . . . . . . . . 5
1.3 TRAYECTORIAS ISOCLINAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.3.1 Método de las isoclinas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2 Método de separación de variables. Ecuaciones


homogéneas, exactas, implı́citas y de Bernoulli 11
2.1 ECUACIONES EN VARIABLES SEPARADAS . . . . . . . . . . . . . . . . . . . . . 11
2.2 ECUACIONES DIFERENCIALES HOMOGÉNEAS . . . . . . . . . . . . . . . . . . 14
2.3 ECUACIONES DIFERENCIALES EXACTAS . . . . . . . . . . . . . . . . . . . . . . 14
2.4 ECUACIÓN DE CLAIRAUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.5 ECUACIÓN DE BERNOULLI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.6 FACTOR INTEGRANTE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

3 Resolución simbólica de sistemas diferenciales 25


3.1 SISTEMA LINEAL HOMOGÉNEO DE
COEFICIENTES CONSTANTES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.2 SISTEMA LINEAL COMPLETO DE
COEFICIENTES CONSTANTES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

i
ii Índice General

3.3 RESOLUCIÓN DE SISTEMAS DIFERENCIALES


LINEALES HOMOGÉNEOS DE COEFICIENTES
CONSTANTES POR LA VIA ESPECTRAL . . . . . . . . . . . . . . . . . . . . . . . 30
3.3.1 Cálculo de valores y vectores propios via MATLAB . . . . . . . . . . . . . . . 30
3.3.2 El método espectral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.4 EEDD LINEALES DE ORDEN SUPERIOR . . . . . . . . . . . . . . . . . . . . . . . 32
3.4.1 EEDD lineales de orden superior homogéneas . . . . . . . . . . . . . . . . . . 32
3.4.2 EEDD lineales de orden superior completas . . . . . . . . . . . . . . . . . . . 32
3.5 ECUACIÓN DE EULER Y DE EULER
GENERALIZADA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.6 CÁLCULO DE WRONSKIANOS Y APLICACIONES . . . . . . . . . . . . . . . . . 35
3.6.1 Wronskiano e independencia lineal . . . . . . . . . . . . . . . . . . . . . . . . 36
3.7 SOLUCIONES PARTICULARES DE EEDD
LINEALES COMPLETAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.7.1 Método de coeficientes indeterminados (MCI) . . . . . . . . . . . . . . . . . . 38
3.7.2 Método de variación de parámetros (MVP) . . . . . . . . . . . . . . . . . . . . 40
3.8 REDUCCIÓN DE ORDEN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.9 EJERCICIOS COMPLEMENTARIOS . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.10 APÉNDICE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.10.1 Notas sobre funciones especiales . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.10.2 Sobre el método basado en el cálculo aproximado de las raı́ces de la ecuación
caracterı́stica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

4 Transformada de Laplace 49
4.1 DEFINICIÓN Y CÁLCULO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.1.1 Definición de la transformada de Laplace . . . . . . . . . . . . . . . . . . . . . 49
4.1.2 Cálculo 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 RESOLUCIÓN DE
PROBLEMAS DE CONDICIÓN INICIAL . . . . . . . . . . . . . . . . . . . . . . . . 54
4.4 PROBLEMAS DE VALORES INICIALES CON
DATOS DISCONTINUOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
4.4.1 Función escalón unitario (Heaviside) . . . . . . . . . . . . . . . . . . . . . . . 56
4.4.2 Representación de funciones con discontinuidades de salto finito . . . . . . . . 58
4.5 TRANSFORMADA DE LAPLACE DE UNA
FUNCIÓN PERIÓDICA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.6 LA FUNCIÓN DE TRANSFERENCIA . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Índice general iii

5 Métodos numéricos para PVI (I) 65


5.1 FUNCIONES ESPECIALES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
5.1.1 Funciones de Bessel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
5.2 ESTUDIO DE LAS SOLUCIONES DE UNA ED . . . . . . . . . . . . . . . . . . . . 67
5.2.1 Métodos numéricos de resolución de PVI . . . . . . . . . . . . . . . . . . . . . 68
5.2.2 Método de Euler o de la tangente . . . . . . . . . . . . . . . . . . . . . . . . . 68
5.2.3 Otra interpretación del método de Euler . . . . . . . . . . . . . . . . . . . . . 69
5.2.4 Ejemplos en los que se aplica el método de Euler . . . . . . . . . . . . . . . . 70
5.2.5 Precisión de los resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
5.3 MÉTODO DE EULER MEJORADO . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
5.3.1 La fórmula de los trapecios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
5.3.2 Deducción del método de Euler mejorado . . . . . . . . . . . . . . . . . . . . 79
5.3.3 Euler versus Euler mejorado . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
5.4 OTROS MÉTODOS NUMÉRICOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
5.4.1 Ejemplo de método de dos pasos . . . . . . . . . . . . . . . . . . . . . . . . . 82
5.5 CONCLUSIONES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
5.6 EJERCICIOS ADICIONALES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
5.6.1 Aplicación: cálculo de la elasticidad b(x) . . . . . . . . . . . . . . . . . . . . . 84

6 Métodos numéricos para PVI (II) 87


6.1 MÉTODOS PARA RESOLVER PROBLEMAS
ASOCIADOS A SISTEMAS DE EEDD . . . . . . . . . . . . . . . . . . . . . . . . . 87
6.1.1 Método 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 APÉNDICE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
6.4.1 Programa SN EULER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
6.4.2 Interpolación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

7 Métodos numéricos para PVI (III) 105


7.1 MÉTODOS DE RUNGE-KUTTA . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
7.1.1 Métodos de Taylor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
7.1.2 Método de Runge-Kutta de cuarto orden . . . . . . . . . . . . . . . . . . . . . 106
iv Índice General

7.1.3 Descripción del programa RUNGEKUTTA . . . . . . . . . . . . . . . . . . . . 106


7.1.4 Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
7.1.5 Estabilidad de un método numérico . . . . . . . . . . . . . . . . . . . . . . . . 108
7.1.6 Descripción del programa EJE7.4 . . . . . . . . . . . . . . . . . . . . . . . . . 109
7.2 PROBLEMAS DE CONTORNO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
7.2.1 Planteamiento matemático . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
7.2.2 Aplicación: Viga columna . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
7.3 ECUACIONES EN DERIVADAS PARCIALES . . . . . . . . . . . . . . . . . . . . . 111
7.3.1 Ecuación del calor en una barra de longitud finita . . . . . . . . . . . . . . . . 111
7.3.2 Ecuación de ondas sobre un intervalo acotado . . . . . . . . . . . . . . . . . . 114
7.3.3 Herramientas simbólicas para EDP . . . . . . . . . . . . . . . . . . . . . . . . 116

Bibliografı́a de prácticas y sitios WEB 119


LISTA DE FIGURAS

1.1 Gráfico de las soluciones de los ejemplos 1.3 y 1.4 . . . . . . . . . . . . . . . . . . . . 4


1.2 Campo de direcciones y solución particular. Ejemplo 1.8 . . . . . . . . . . . . . . . . 6
1.3 Campo de direcciones y solución particular. Ejemplo 1.9 . . . . . . . . . . . . . . . . 7
1.4 Representación (a) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.5 Representación (b) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.6 Ejemplo 1.10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.7 Gráfico del ejemplo 1.11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.8 Gráfico del ejemplo 1.12-a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.9 Gráfico del ejemplo 1.12-b . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.10 Gráfico del ejemplo 1.13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.1 Solución del ejemplo 2.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12


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

3.1 Evidencia gráfica de que Prueba(2) debe ser nula en [−1, 1] . . . . . . . . . . . . . . . 30


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

4.1 Representación gráfica de γ(t) en [−4, 4] . . . . . . . . . . . . . . . . . . . . . . . . . 52


4.2 Representación gráfica de la entrada g(t) y la salida I(t) . . . . . . . . . . . . . . . . 59

5.1 Gráfica de J1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
5.2 Gráfica de J0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
5.3 Gráficas superpuestas de J1 y J0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
5.4 Gráficas de Bessel J3/2 y J1/2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
5.5 Método de Euler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
5.6 Interpretación del método de Euler . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
5.7 Soluciones exactas y aproximadas de los ejemplos 5.1 y 5.2 . . . . . . . . . . . . . . . 73
5.8 Soluciones exactas y aproximadas del ejemplo 5.2 para n = 100, 200 . . . . . . . . . . 73

v
vi Listado de figuras

5.9 Solución 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 Ilustración de un método de dos pasos . . . . . . . . . . . . . . . . . . . . . . . . . . 83

6.1 Gráfico producido por S2 EULER al resolver el ejercicio 6.1 . . . . . . . . . . . . . . 90


6.2 Gráfico producido por S2 EULER al resolver el ejercicio 6.2 . . . . . . . . . . . . . . 91
6.3 Gráfico producido por S2 EULER al resolver el ejercicio 6.3 . . . . . . . . . . . . . . 92
6.4 Gráfico obtenido al resolver el ejemplo 6.1 . . . . . . . . . . . . . . . . . . . . . . . . 93
6.5 Gráficas 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 Solución gráfica 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 Ilustración gráfica del método de interpolación . . . . . . . . . . . . . . . . . . . . . . 103

7.1 Gráficas producidas por EJE7.4.M . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110


7.2 Gráfica producida por CALOR.M . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
7.3 Gráfica producida por ONDA.M . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
INDICACIONES GENERALES

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

1. (ML) Seleccionar adecuadamente, para no dañar la vista, el tipo, tamaño, color de las fuentes
y el color de fondo de las ventanas MATLAB.

2. (ML y PDF) Ajustar el tamaño de ambas ventanas, Command Window de MATLAB y el guión
de la clase, para trabajar simultáneamente con ambas.

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


mediante el menú principal: FILE\SET PATH. Esto es esencial para la ejecución 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 MATLAB
dónde se encuentra ésta, y la sitúa 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 solución de algunos ejercicios seleccionados, según se indica
en la plantilla correspondiente. Para ello debe basarse en el desarrollo de los ejemplos que aparecen
resueltos en el guión de la clase.

vii
CLASE PRÁCTICA 1

Comandos simbólicos para resolver ecuaciones.


Campos de direcciones. Isoclinas

OBJETIVOS
• Abordar la solución de ecuaciones diferenciales (EEDD) y problemas de valor inicial desde
una perspectiva experimental, mediante la aplicación de los recursos simbólicos del sistema
MATLABr .

• Contribuir con el uso de herramientas gráficas al estudio de las EEDD a través de la visualiza-
ción del campo de direcciones asociado y las isoclinas.

1.1 COMANDOS SIMBÓLICOS

1.1.1 Comandos para la derivación


La siguiente secuencia halla la función derivada de f respecto a x.

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

Para hallar la derivada enésima hacemos

>>diff(f,x,n)

El sı́mbolo Df representa simbólicamente la derivada de f . Para derivadas sucesivas usamos D2f,


D3f, etc.

1
2 Clase Práctica 1

1.1.2 Problemas resueltos


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

Solución del ejemplo 1.1


1. Definir simbólicamente 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 función


2 c2 t/l2
u(x, t) = e−π sen(πx/l)
es solución de la ecuación del calor
ut (x, t) = c2 uxx (x, t)

Solución 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 simbólicas a las variables u, t, x y l.

1.1.3 El comando DSOLVE. Resolución de PVI


El comando DSOLVE es de tipo simbólico y permite obtener la solución exacta de algunas EEDD y
de los correspondientes problemas de valor inicial.(1 El argumento de este comando es un STRING
de modo que no es necesario declarar simbólicas a las variables involucradas.
1
En lo que sigue usaremos las siglas PVI para problema(s) de valor(es) inicial(es).
Clase Práctica 1 3

Ejemplo 1.3 Resolver la ED y 0 = 1 + y 2 , obtener la solución local correspondiente a la C.I. (0, 1),
y representarla gráficamente.

Resolución del ejemplo 1.3


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

Resolución del ejemplo 1.4

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

1.1.4 Ejemplos de EEDD que no pueden ser resueltas por DSOLVE


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

Desarrollo del ejemplo 1.5


>>dsolve(’Dy=-2*t-y+cos(y)’)
Warning:
Explicit solution could not be found.
>In C:\MATLABR11\toolbox\symbolic\dsolve.m at line 326
ans =
[ empty sym ]
Si el comando DSOLVE no puede obtener explı́citamente la solución, entonces el propio
DSOLVE ofrece, en algunos casos, la solución en la forma implı́cita.
4 Clase Práctica 1

Fig. 1.1: Gráfico de las soluciones de los ejemplos 1.3 y 1.4

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

Resolución del ejemplo 1.6

>>dsolve(’Dy=y^2*(1-y)’)
Warning: Explicit solution could not be found; implicit solution returned.
> In C:\MATLABR11\toolbox\symbolic\dsolve.m at line 292
ans =
t+1/y-log(y)+log(-1+y)+C1=0

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

Resolución 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 Función LAMBERTW(Z)


MATLAB se vale de una colección de funciones básicas elementales más amplia que la que usualmente
utilizamos, con la cual nos puede dar una mayor cantidad de respuestas en forma cerrada. Una de
Clase Práctica 1 5

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

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

La definición de cualquier función especial MATLAB puede ser consultada invocando en la lı́nea de
comandos
>>help+nombre
o bien, para aquellas especı́ficas del núcleo MAPLE
>>mhelp+nombre
donde nombre es el nombre de la función.
Otras funciones especiales incorporadas al sistema MATLAB-MAPLE son BERNOULLI, BESSElJ,
DILOG, etc. Para ver el catálogo completo MAPLE ejecutamos la orden
>>mfunlist

¿Cómo evitar que Lambertw aparezca en la respuesta final?


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

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

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


Entonces, atendiendo a la formulación implı́cita que define a esta función, se tiene que

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

Ejercicio 1.1 Resolver las siguientes EEDD y PVI.

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


y(0) = 1/2

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

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

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

1.2 CAMPO DE DIRECCIONES DE UNA ED


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

Fig. 1.2: Campo de direcciones y solución particular. Ejemplo 1.8

Lo anterior significa que, para conocer la pendiente de la solución que pasa por (x0 , y0 ) no hace
falta conocer dicha solución; basta con calcular f (x0 , y0 ).
Si esto se hace con todos los puntos del plano, tendremos las pendientes de las soluciones que
pasan por cada punto del plano. Naturalmente, en la práctica es imposible hacer esto con todos los
puntos del plano, pero nada nos impide hacerlo con tantos puntos como queramos, configurando un
gráfico que llamaremos campo de direcciones de la ED.

¿Cómo construir “el campo de direcciones” asociado a una ED?


Consideremos la ED genérica y 0 (x) = f (x, y(x)). Para construir su campo de direcciones procedemos
de la siguiente forma: por cada punto (x, y) de una red de puntos de R2 , convenientemente prefijada,
se dibuja un segmento de recta o vector de pendiente f (x, y). El resultado final de este trabajo
se interpreta como información gráfica acerca de la solución de la ED que aún no hemos intentado
resolver por otros medios. Para aumentar la eficiencia usaremos un programa MATLAB en el que
intervienen los comandos MESHGRID y QUIVER que permiten generar el gráfico del campo de
direcciones.
Los vectores a considerar para obtener el campo de direcciones serán (1, y 0 ) = (1, f (x, y)).

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


que cumple la condición inicial y(0) = 0.

Resolución del ejemplo 1.8


Las acciones MATLAB son las siguientes:

>>f=inline(’x’,’x’,’y’);
>>paso=0.5;
Clase Práctica 1 7

Fig. 1.3: Campo de direcciones y solución 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 solución particular se obtiene


artesanalmente como y = x2 /2, mediante separación de variables, o bien, aplicando DSOLVE. A
continuación aparecen las órdenes MATLAB necesarias (ver figura 1.2-derecha).

>>hold on % HOLD ON permite superponer los graficos


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

Ejemplo 1.9 Construir el campo de direcciones asociado a y 0 = −x/y y representar la solución


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

Indicaciones para el ejemplo 1.9


La red creada con MESHGRID para el ejemplo 1.9 debe evitar y = 0 y contener al punto (1, 1) de
la condición inicial. La expresión dentro de INLINE que define a la función debe escribirse entre
apóstrofes, es decir, 0 −x./y 0 . El punto debe preceder a /, ∗ y ^ pues se opera con vectores componente
a componente. La solución gráfica está dada por las figuras en el cuadro 1.3.
8 Clase Práctica 1

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

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

Fig. 1.4: Representación (a) Fig. 1.5: Representación (b)

1.3 TRAYECTORIAS ISOCLINAS


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

1.3.1 Método de las isoclinas


El método de las isoclinas es una variante de las ideas antes descritas. Los puntos del plano por los
que pasa una solución con pendiente k, son los puntos de la curva de ecuación f (x, y) = k (isoclina
de pendiente k).
Dibujando las distintas isoclinas se obtiene una representación similar a la del campo de direc-
ciones. Puede tener interés identificar la isoclina para la pendiente 0 pues las soluciones tendrán
generalmente un máximo o un mı́nimo al pasar por esta isoclina.

Ejemplo 1.10

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

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


Clase Práctica 1 9

Desarrollo de la solución 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: Gráfico del ejemplo 1.11

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

Solución, paso a paso, del ejemplo 1.11 (ver fig. 1.7)


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

Ejemplo 1.12

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

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

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

(d) ¿Qué particularidad tiene la correspondiente a k = 2?


10 Clase Práctica 1

Fig. 1.8: Gráfico del ejemplo 1.12-a Fig. 1.9: Gráfico del ejemplo 1.12-b

Ejemplo 1.13 Construir el campo de di-


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

Desarrollo, paso a paso, de la


solución del ejemplo 1.13 (figura
1.10)
>>f=inline(’sin(x)+y’,’x’,’y’);
>>paso=0.5;iz=-3;der=3;
>>[x,y]=meshgrid(iz:paso:der,iz:paso:der);
>>[n,m]=size(x);dx=ones(n,m);
>>z=f(x,y);dy=z;
>>hold on,contour(x,y,z,20);
Fig. 1.10: Gráfico del ejemplo 1.13 >>quiver(x,y,dx,dy);
CLASE PRÁCTICA 2

Método de separación de variables. Ecuaciones


homogéneas, exactas, implı́citas y de Bernoulli

OBJETIVOS
1. Ejercitar el uso de herramientas simbólicas para la resolución de ED.
2. Aplicar métodos de cuadraturas exactas estudiados en clase.

2.1 ECUACIONES EN VARIABLES SEPARADAS


Son de la forma
y 0 (x) = f (x)h(y).
Para resolver el PCI
y 0 = f (x)h(y),
y(x0 ) = y0 ,
escribimos la ED como sigue:
dy
= f (x)dx
h(y)
y si llamamos g = h1 , entonces queda g(y)dy = f (x)dx.
Integrando en ambos miembros de la igualdad anterior obtenemos
G(y) = F (x) + C, (Solución general de la ED),
y calculamos el parámetro C usando la CI. Ası́
C = G(y0 ) − F (x0 )
y por lo tanto
G(y) = F (x) + G(y0 ) − F (x0 ), (Solución del PCI).
Ejemplo 2.1 Resolver el PVI, y 0 = −2xy, y(0) = 2, y representar gráficamente la solución.

11
12 Clase Práctica 2

Fig. 2.1: Solución del ejemplo 2.1

Resolución del ejemplo 2.1


Resolveremos el PVI con MATLAB siguiendo el método de separación 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 gráfico de la solución 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 solución general


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

Resolución del ejemplo 2.2


>>f=’sin(x)’
Clase Práctica 2 13

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

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

Resolución del ejemplo 2.3


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

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

La aceptación de la anterior respuesta dependerá del consumidor. Si tenemos en cuenta que


Lambertw(x)=w
es la función definida implı́citamente por wew = x, lo que se obtiene es
y 2 ∗ exp(y 2 ) = K ∗ exp(2 ∗ sen(x)).

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


las variables.

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


ral (con parámetro C), de una ED y 0 = f (x, y). Entonces podemos hallar una expresión equiva-
lente a la anterior si somos capaces de despejar a Lambertw(x) = w. En efecto, supongamos que
Lambertw(x) = F (x). Sabiendo que Lambertw(x) = w se caracteriza por satisfacer la ecuación
w(x)ew(x) = x, entonces la nueva expresión de la solución general es F (x)eF (x) = x.

Resolución 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) + y 2 /2 + c, que es la solución general de la ED.


Para hallar la solución correspondiente a las condiciones iniciales dadas hacemos

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

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


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

2.2 ECUACIONES DIFERENCIALES HOMOGÉNEAS


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

Resolución del ejemplo 2.5


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

2.3 ECUACIONES DIFERENCIALES EXACTAS


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

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


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

donde f (y) es una constante que depende de la variable y que ha permanecido constante durante la
integración. Notar que para determinar a F (x, y) sólo resta hallar a f (y)
Si derivamos con respecto a y
R
∂( P (x, y)dx)
Q= + f 0 (y).
∂y
Luego R
0 ∂( P (x, y)dx)
f (y) = Q − .
∂y
Integrando respecto a y la anterior expresión obtenemos f (y). La solución 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 ecuación
y representar las soluciones.

Resolución del ejemplo 2.6


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

Fig. 2.2: Gráfico del ejemplo 2.6

Por lo tanto la solución general es x2 + xy − 3/2y 2 = C.


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

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

Resolución 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 solución general de la ED es 1/3x3 − 1/3y 3 = C.


Para representar las soluciones escribimos (ver figura 2.3)
Clase Práctica 2 17

Fig. 2.3: Gráfico del ejemplo 2.7

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

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

Resolución 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 solución del ejemplo 2.8 es sen(y) ∗ senh(x) = C. Para
representar las soluciones escribimos (ver figura 2.4)
>>[x,y]=meshgrid(0:0.05:2);
>>z=sin(y).*sinh(x);
>>contour(x,y,z,15)
18 Clase Práctica 2

Fig. 2.4: Gráfico del ejemplo 2.8

2.4 ECUACIÓN DE CLAIRAUT


Recordemos que la ecuación de Clairaut es de la forma

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

El método de resolución es hacer y 0 = p y derivar respecto a x, teniendo en cuenta que p = p(x).


Nos queda entonces la expresión siguiente

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

siendo (2.2) un haz de rectas, todas ellas solución de la ecuación original (2.1).
Si x + f 0 (p) = 0, usando (2.1) se obtiene la solución singular en forma paramétrica:

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

En general no es necesario eliminar p para obtener una ecuación de la forma G(x, y) = 0, y de hecho,
podrı́a resultar muy difı́cil o imposible.

Ejemplo 2.9 Resolver la ecuación de Clairaut y = xy 0 − 41 (y 0 )2 . Representar la solución general


obtenida, ası́ como la solución singular.
Clase Práctica 2 19

Fig. 2.5: Gráfico del ejemplo 2.9

Resolución 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 función es la envolvente de la familia integral de la ecuación.
Para dar una idea gráfica aproximada del conjunto solución 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 ecuación de Clairaut y = xy 0 + ln(y 0 ).

2.5 ECUACIÓN DE BERNOULLI


La llamada ecuación de Bernoulli es de la forma

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

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


20 Clase Práctica 2

Resolución 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 gráfica en el intervalo [1, 3] se obtiene ejecutando (ver figura 2.6)
>>ezplot(sol,[1,3])
Ejercicio 2.3

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

Fig. 2.6: Gráfico del ejemplo 2.10


La ED de Bernoulli
y 0 + p(x)y = q(x)y n
se resuelve transformándola en lineal, para lo cual se procede como sigue:
1
Se divide la ED por y n y se hace el cambio z = yn−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 ecuación y 0 + y/x = log(x)y 3 , aplicando el método antes explicado.
Clase Práctica 2 21

Resolución 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 continuación se resuelve la anterior ED lineal usando DSOLVE
>>z=dsolve(’-1/2*Dz+z/x=log(x)’,’x’)
z =2*log(x)*x+2*x+x^2*C1
Finalmente se debe deshacer el cambio z = 1/y 2 para obtener la solución.

2.6 FACTOR INTEGRANTE


Recordemos que si la ED P (x, y)dx + Q(x, y)dy = 0 no es exacta, siempre existe una función µ =
µ(x, y) tal que µP (x, y)dx + µQ(x, y)dy = 0 sı́ es exacta. Los casos aparentemente más sencillos son
aquellos en que puede encontrarse un factor µ, llamado “factor integrante” (f.i.), que sólo depende
de x o sólo depende de y. Un ejemplo de f.i. que depende de ambas variables x e y es aquél que
encontramos para la ED
(xy 2 − yx2 )dx + x3 dy = 0. (2.3)
Si llamamos P (x, y) = xy 2 − yx2 y Q(x, y) = x3 comprobaremos que

1 1
= 2 2
xP + yQ xy

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


La comprobación de lo anteriormente dicho podemos hacerla fácilmente 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−2 y −2 es ciertamente un f.i.
para (2.3).
22 Clase Práctica 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 solución es log(x) − x/y = C.

Nota 2.1 El anterior procedimiento puede aplicarse a cualquier ecuación homogénea. El alumno
puede comprobar que en el caso P = x2 − y 2 , Q = xy, el f.i. que se obtiene depende de una sola
variable.

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



y0 = x + y. (2.4)

Resolución del ejemplo 2.12


0
La solución 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, aún no tenemos explicación para el siguiente
resultado MATLAB:
>>dsolve(’Dy=sqrt(x+y)’,’x’)
ans =0
Es simple comprobar que y = 0 no es solución de la ecuación. Sin embargo, si elevamos al cuadrado
ambos miembros, aunque introduzcamos soluciones adicionales, entonces sı́ obtenemos respuesta:
>>dsolve(’Dy^2=(x+y)’,’x’)
ans =
[ 1-x]
[ (-lambertw(-exp(-1-1/2*x+1/2*C1))-1)^2-x]
Notemos que ahora tenemos todas las soluciones de

y 0 = ± x + y.

Mediante comprobación directa vemos que y = 1 − x es solamente solución de



y0 = − x + y

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

w(x)ew(x) = x,

obtenemos de la propia respuesta dada por MATLAB


(-lambertw(-exp(-1-1/2*x+1/2*C1))-1)^2-x
Clase Práctica 2 23

la siguiente expresión:
√ √
(1 ± x + y) exp(−1 ± x + y) = exp(−x/2 + C)

Para nuestro problema original, tenemos como respuesta la siguiente ecuación


√ √
(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 ecuación

y = (y 0 )2 − x,

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

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

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

(p + 1)x0 = 2p,

que se integra fácilmente obteniendo


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

teniendo en cuenta que y = p2 − x.



Aunque parezca a primera vista que es difı́cil, en realidad es muy fácil eliminar p = x + y de
las ecuaciones (2.6), para deducir (2.5).
Por lo tanto (2.4) puede ser considerada de dos maneras. A saber, como de la forma y 0 =
G(ax + by + c), y como Lagrange y = xf (y 0 ) + g(y 0 ).
También podemos ver la ED del ejemplo (2.12) como la ecuación no exacta

x + y dx − dy = 0.

Lo más interesante ahora es que resulta infructuoso el intento de hallar un f.i. que sólo dependa de
x o que sólo dependa de y. ¡Comprobarlo!
En este caso la sugerencia es descubrir que la ED admite un f.i. de la forma µ(x, y) = ϕ(x + y).
Para obtenerlo procedemos de la forma siguiente.

Tenemos P = x + y y Q = −1. Si µ es de la forma anterior es f.i. entonces debe ser
∂(µP ) ∂(µQ)
= ,
∂y ∂x
es decir,
√ 1
µy x + y + µ √ = −µx ,
2 x+y
24 Clase Práctica 2

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

siendo ϕ0 la derivada ordinaria de la función ϕ(t).


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

Notar que en este caso ϕ(t) = 1/(1 + t).
Sabiendo que µP dx + µQdy = 0 es exacta procedemos al cálculo del potencial F (x, y).
La integral general es F (x, y) = C.
r
0 y
Ejercicio 2.4 Resolver el siguiente PVI (Boletı́n 2) y = , y(1) = 4.
x
CLASE PRÁCTICA 3

Resolución simbólica de sistemas diferenciales

OBJETIVOS
Ejercitar el uso combinado de técnicas matemáticas y herramientas simbólicas del MATLAB para el
estudio y resolución de sistemas diferenciales lineales y ecuaciones lineales de orden superior.

3.1 SISTEMA LINEAL HOMOGÉNEO DE


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

Resolución 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 solución y escribimos

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

MATLAB devuelve las componentes simbólicas de la solución:

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

25
26 Clase Práctica 3

Para obtener explı́citamente la solución S se pide cada una de sus componentes [S.x,S.y] o
pretty([S.x,S.y])

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

es decir, la respuesta es
x = C1 (−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 vector
solución.
>>[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 homogéneo, de coeficientes constantes, es seguir
la via matricial directa. Para ello comenzamos escribiendo el sistema en forma matricial:
 0     
x −5 3 x x
= =A
y −2 −10 y y
Conocer la solución general de este sistema significa conocer una matriz fundamental R(t) del mismo.
Eso es lo que calcularemos mediante comandos MATLAB.
II- Sabemos que R(t) = etA . Para calcular etA usaremos el comando EXPM de MATLAB.
>>A=[-5 3;-2 -10];%Crear la matriz A
>>syms t %declarar simbolica t
>>Rt=expm(t*A); %calcular matriz fundamental
>>X1=Rt(:,1); %opcional calculo de un SFS,
>>X2=Rt(:,2); %es decir, de las columnas de R(t)
>>diff(X1)-A*X1 %Pueden hacerse comprobaciones
ans = [ 0]
[ 0]
>>diff(X2)-A*X2
ans = [ 0]
[ 0]
Clase Práctica 3 27

Visualizar Rt y comparar con los resultados anteriores

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

3.2 SISTEMA LINEAL COMPLETO DE


COEFICIENTES CONSTANTES
Ejemplo 3.2 Resolver el sistema diferencial lineal siguiente:

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

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

1. Directamente usando DSOLVE.

2. Utilizando el MVP (1 .

Resolución del ejemplo 3.2


1. Mediante DSOLVE
>>[x,y]=dsolve(’Dx-y=exp(t),Dy+5*x+2*y=sin(3+t)’,’x(0)=1,y(0)=-1’)
x=
1/2*exp(-t)*sin(2*t)*(5/8-1/5*sin(3)+1/10*cos(3))+1/2*exp(-t)*...
sin(2*t)*(-3/8-1/5*cos(3)-1/10*sin(3))+(5/8-1/5*sin(3)+1/10*...
cos(3))*exp(-t)*cos(2*t)+3/8*exp(t)+1/5*sin(3+t)-1/10*cos(3+t)
y=
1
Método de Variación de Parámetros
28 Clase Práctica 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 resolución mediante el MVP usaremos la fórmula correspondiente para obtener una
solución particular del sistema diferencial lineal X 0 = A(t)X + B(t). La solución general del
mismo es Z t
X(t) = R(t)V + R(t) R(s)−1 B(s)ds, (3.1)
0

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


La fórmula (3.1) corresponde al caso general A(t) de coeficientes variables. El caso particular
de coeficientes constantes aparece a continuación.
Recordemos que, en caso de sistemas diferenciales homogéneos con coeficientes constantes,
X 0 = AX, una matriz fundamental está dada por R(t) = etA .
Luego, si se trata de un sistema completo de coeficientes constantes X 0 = AX + B(t), una
solución particular Xp está dada por
Z t
Xp = e tA
e−sA B(s)ds.
0

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

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

con x(0) = 1, y(0) = −1, usaremos la fórmula general de variación de parámetros para hallar
una solución particular Xp del sistema no homogéneo.

>>syms s t
>>A=[0 1;-5 -2];
>>Bt=[exp(t);sin(3+t)];
>>Bs=subs(Bt,s,t);
>>Rt=expm(t*A)
Rt=[exp(-t)*cos(2*t)+1/2*exp(-t)*sin(2*t),1/2*exp(-t)*sin(2*t)]
[-5/2*exp(-t)*sin(2*t), exp(-t)*cos(2*t)-1/2*exp(-t)*sin(2*t)]
>>Rs=subs(Rt,s,t)
Rs=[exp(-s)*cos(2*s)+1/2*exp(-s)*sin(2*s),1/2*exp(-s)*sin(2*s)]
Clase Práctica 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 significación, que realmente Prueba es cero.(2


La formulación explı́cita de la solución particular Xp se compone de una cadena de caracteres
demasiado larga y por tanto de reducida utilidad, en efecto, si hacemos la conversión de SYM
a STRING mediante el comando CHAR, tendremos que

>>size(char(Xp))
ans =
1 1669
es decir, ¡Xp está compuesto de 1669 caracteres!
La figura 3.1 muestra gráficamente el resultado de ejecutar ezplot(Prueba(2),[-1,1]). El rango
de variación en el intervalo [−1, 1] sugiere la nulidad con una significación del orden de 10−15 .
Ejemplo 3.3 Resolver el siguiente sistema lineal completo de coeficientes constantes
x0 + x + 2y = cos(t) + sen(t) + e−t
y 0 − 2x + y = sen(t) − cos(t),
x(0) = 1, y(0) = 1.

Obtención de la solución del ejemplo 3.3 mediante DSOLVE


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

Fig. 3.1: Evidencia gráfica de que Prueba(2) debe ser nula en [−1, 1]

3.3 RESOLUCIÓN DE SISTEMAS DIFERENCIALES


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

3.3.1 Cálculo de valores y vectores propios via MATLAB

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

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

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


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

>>valores_propios=eig(A)

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


Clase Práctica 3 31

3.3.2 El método espectral


El siguiente resultado nos ofrece la herramienta teórica para resolver un sistema diferencial lineal
homogéneo, de coeficientes constantes por la via de los valores y vectores propios.

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

{eλ1 t u1 , · · · , eλn t un },

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

Ejemplo 3.4 Resolver por la via espectral, y aplicando herramientas MATLAB, el siguiente pro-
blema con valores iniciales
   
1 2 −1 −1
X0 =  1 0 1  X(t) X(0) =  0 
4 −4 5 0

Indicaciones para resolver el ejemplo 3.4


Usar el comando EIG para calcular los valores y vectores propios de la matriz del sistema y verificar
si son diferentes dos a dos para aplicar el Teorema 3.1. Recordar que una vez tengamos una matriz
fundamental R(t), entonces  
c1
X(t) = R(t)  c2 
c3
nos da la solución general del sistema. Luego, la única solución estará dada por la solución del
siguiente sistema    
c1 −1
X(0) = R(0)  c2  =  0 
c3 0
es decir,    
c1 −1
 c2  = R(0)−1  0 
c3 0
32 Clase Práctica 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 continuación diversos ejemplos de EEDD homogéneas y completas de coeficientes
constantes para las que se obtiene la solución general ası́ como ciertas soluciones particulares.
Se presenta también un ejemplo de coeficientes variables que corresponde a una Euler.

3.4.1 EEDD lineales de orden superior homogéneas


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

Resolución 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.)

Obsérvese que −2 es una raı́z doble del polinomio caracterı́stico

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

Resolución mediante MATLAB del ejemplo 3.6


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

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

3.4.2 EEDD lineales de orden superior completas


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

Resolución 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 000 = log(x)/x2 , y(1) = 0, y 0 (1) = 1, y 00 (1) = 2.


Clase Práctica 3 33

Resolución 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

¿CÓMO SOLVENTAR DIFICULTADES RELACIONADAS CON DSOLVE?


Si una ED no admite solución exacta en términos del catálogo de funciones elementales MATLAB,
entonces DSOLVE no puede ofrecer una solución. Existen otras causas que impiden a DSOLVE
llegar a una respuesta exacta pero su consideración queda fuera de nuestras posibilidades.
En algunos casos el comando DSOLVE puede producir respuestas poco amigables, es decir, ex-
cesivamente largas o expresadas en términos de funciones especiales poco usuales. En tales casos
debemos hallar métodos alternativos que produzcan soluciones, quizás aproximadas pero mucho más
potables. Para ilustrar lo dicho, a continuación se ofrece un ejemplo de EDL homogénea de cuarto
orden, cuya solución se obtiene de forma aproximada, siguiendo un método basado en nuestros
conocimientos teóricos. En el apéndice se amplı́an los detalles técnicos del método y se ejerce una
crı́tica necesaria.

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

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

Intente resolverla, es decir, halle información útil sobre la solución.

Desarrollo del ejemplo 3.9


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

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

¡La respuesta (4 consta de 2765 caracteres!


Siendo la EDL de coeficientes constantes, podemos intentar hallar una respuesta, satisfactoria en
cierto sentido (ver Apéndice), 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 términos de radicales, ecuaciones polinómicas
hasta el grado 4. ROOTS calcula aproximadamente las raı́ces de cualquier polinomio mediante un
3
Ecuación Diferencial Lineal y Homogénea
4
La respuesta puede cambiar según la versión MATLAB o el software que se utilice
34 Clase Práctica 3

procedimiento muy eficiente y preciso. No obstante, los resultados numéricos obtenidos mediante
SOLVE 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, según se aprecia en las pruebas
numéricas que se muestran a continuación.

>>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 APÉNDICE cómo intentamos valorar la calidad de esta solución aproximada.

Ejercicio 3.1 Dadas las siguientes EEDD

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

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

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

obtener una solución particular para la ED del apartado c) mediante el método de coeficientes inde-
terminados (MCI) sin ayuda del MATLAB, y un SFS para a), b) y c).
Clase Práctica 3 35

3.5 ECUACIÓN DE EULER Y DE EULER


GENERALIZADA
La ecuación de Euler de segundo orden es de la forma
αx2 y 00 (x) + βxy 0 (x) + γy(x) = δ(x)
Recordemos que ésta se transforma en una ED de coeficientes constantes mediante el cambio x = et ,
y que la ecuación de Euler generalizada de segundo orden es de la forma
α(ax + b)2 y 00 (x) + β(ax + b)y 0 (x) + γy(x) = δ(x)
Ejemplo 3.10 Resolver
(2x + 1)2 y 00 − (4x + 2)y 0 − 12y = 8x.

Resolución 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 cuáles de las siguientes EEDD, después de ser transformadas en EDL de coe-
ficientes constantes, puede aplicarse el MCI? ¿Cuál es la alternativa al MCI? Intentar resolverlas
mediante DSOLVE y mediante métodos artesanales. Contrastar los resultados.
1. (2x + 1)2 y 00 − (4x + 2)y 0 − 12y = 8x
2. x2 y 00 + 5xy 0 − 2y = −5 log(x)
3. (10x + 50)2 y 00 − 3(x + 5)y 0 + 7y = x−2
4. x3 y 00 − 6x2 y 0 + 2xy = x + 1
5. 5x2 y 00 − 6xy 0 + y = ex

3.6 CÁLCULO DE WRONSKIANOS Y APLICACIONES


En lo que sigue se utilizará el wronskiano para el estudio de la independencia lineal de sistemas de
funciones. También se aplicará en la obtención de una EDLH conocidas algunas de sus soluciones.
El wronskiano juega un papel relevante en la teorı́a y práctica de las EDL. Si y1 e y2 son funciones
definidas sobre el intervalo I, entonces el wronskiano W (y1 , y2 ) de éstas se define como:
 
y1 (t) y2 (t)
W (y1 , y2 )(t) = det , t ∈ I.
y10 (t) y20 (t)
36 Clase Práctica 3

3.6.1 Wronskiano e independencia lineal


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

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

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


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

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


1) W (x1 , x2 )(t) 6= 0 para algún t ∈ I ⇒ x1 y x2 son linealmente independientes en I.
2) Sin embargo, es posible que x1 y x2 sean linealmente independientes en I y W (x1 , x2 )(t) = 0
en algún 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).

Resolución del ejemplo 3.11


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

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

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

Resolución del ejemplo 3.12.


>>a=’[exp(x),exp(2*x),exp(3*x)]’;
>>b=diff(a,’x’);
>>c=diff(b,’x’);
>>d=[a;b;c]
Clase Práctica 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].

Resolución 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).

Resolución del ejemplo 3.14 usando MATLAB


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

Por lo tanto las funciones son l.i.

Ejemplo 3.15 Dadas las familias de funciones


38 Clase Práctica 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 homogénea 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.

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

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


entonces I0 no debe contener ceros del wronskiano.

3.7 SOLUCIONES PARTICULARES DE EEDD


LINEALES COMPLETAS
3.7.1 Método 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 solución particular de la ED
x00 + 3x0 − 4x = 3 sen(t) + 7e−4t − e2t
Clase Práctica 3 39

Resolución 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 solución general de la homogénea.
Teniendo en cuenta la forma de la parte completa de la ED, se busca una solución particular xp
que sea combinación 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 solución 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 evalúa eqn y sus derivadas 1ra, 2da y 3ra en
un punto (en este caso tomamos el punto 0), obteniéndose un sistema cuya resolución nos da A, B,
C, y D.

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

A continuación se resuelve el sistema lineal formado por las 4 ecuaciones eqn1, eqn2, eqn3 y
eqn4, con las incógnitas 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 solución 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 cálculo de los coeficientes no es aconsejable sin la ayuda
de instrumentos de cálculo, pero sı́ parece ser más 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 Método de variación de parámetros (MVP)


Ejemplo 3.17 Obtener una solución particular de la ED

t2 x00 + tx0 − x = sen(t).

Se utilizará que x1 = t y x2 = 1/t son soluciones l.i. de la ED homogénea. (Se pueden obtener con
DSOLVE)

Resolución del ejemplo 3.17


La solución general de la homogénea es

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

y se busca una particular de la completa de la forma

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

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


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

Procedemos a resolver dicho sistema.


Clase Práctica 3 41

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

Resolución del ejemplo 3.18


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

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

>>syms t
>>a=[exp(3*t),t*exp(3*t)]
>>b=diff(a,t);
>>c=[a;b]
c=[exp(3*t), t*exp(3*t)]
[3*exp(3*t),3*exp(3*t)*t+exp(3*t)]
>>W=det(c)
W =exp(3*t)^2
42 Clase Práctica 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)

Ésta es la solución particular obtenida.

Ejemplo 3.19 Resolver mediante el MVP la ED

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

Resolución 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 solución particular xp cuya expresión pretendemos que sea

xp = A(t)e−2t + B(t)e−t .

El procedimiento interactivo (lı́nea de comandos) aparece a continuación. Puede usarse el programa


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

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

Como alternativa podemos usar el MCI y el principio de superposición, pero en cualquier caso es
mucho más cómodo usar directamente DSOLVE que aplica automáticamente el principio de super-
posición.
Clase Práctica 3 43

3.8 REDUCCIÓN DE ORDEN


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

Resolución del ejemplo 3.20


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

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

Resolviendo esta ED se obtiene su solución general.

y = F (t, C1 ).

Como y = v 0 , integrando se obtiene


v = G(t, C1 , C2 ).
Finalmente haciendo
x=f ∗v
se obtiene la solución general de la ED.
Los pasos con MATLAB se indican a continuación.

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


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

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

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

Como y = v 0 , se integra

>>v=int(y,t)+C2
44 Clase Práctica 3

v =-C1/tan(t)+C2

Se usa que x = f ∗ v

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

3.9 EJERCICIOS COMPLEMENTARIOS


Ejercicio 3.3

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

2. Resolver el siguiente problema de CI

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

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

4. Hallar la solución general del sistema de ecuaciones

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

5. Determinar la solución del sistema


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

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

7. Intentar hallar la solución de las siguientes EEDD mediante MATLAB.

(a) y 00 − 4ty 0 + y = 1
(b) y 00 − 4t2 y 0 + y = 0
(c) y 00 − 4ty 0 + ty = 0
Clase Práctica 3 45

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

Ver en el APÉNDICE una notas relativas a las funciones especiales que pueden aparecer en la
solución de algunos de los problemas anteriores.

3.10 APÉNDICE
3.10.1 Notas sobre funciones especiales
Para complementar lo dicho en la clase No. 1 -pag. 4 de este material- sobre la función Lambertw,
mencionaremos otras funciones básicas también incorporadas a MATLAB. Estas son: WhittakerW,
WhittakerM, besselj, bessely, Ei, dilog, la función de error erf, Heaviside, Dirac, etc, que
también pueden ser conocidas mediante MHELP. Se trata de funciones especiales para el matemático
y el fı́sico debido a que son la solución de problemas especı́ficos, frecuentes y de gran importancia en
determinados ámbitos de la matemática, la ingenierı́a o la fı́sica.
La filosofı́a que sigue el MATLAB respecto a estas funciones es la usual. Expresar las soluciones
de una ED en términos de ciertas funciones especiales que hemos adoptado, y que son bien conocidas
en el sentido de que tenemos suficiente información acerca de ellas: intervalos de convexidad y de
crecimiento, máximos y mı́nimos locales, comportamiento asintótico en el infinito, derivabilidad,
singularidades, desarrollo en serie de potencias, etc.
Las EEDD de coeficientes variables del último listado de ejercicios serán estudiadas en el 2do
cuatrimestre utilizando un método relativamente simple, basado en asumir a priori que la solución
admite un desarrollo en serie de potencias.(5
Con estos apuntes no se pretende que el alumno estudie detalladamente todas estas funciones
sino que aumente su cultura profesional, conociendo aún mejor cuál es la tarea que desempeñan las
funciones especiales y que éstas no se reducen a las conocidas exponencial, seno, coseno, etc.

3.10.2 Sobre el método basado en el cálculo aproximado de las raı́ces de


la ecuación caracterı́stica
Para resolver la ecuación lineal homogénea de coeficientes constantes

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

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

P = as4 + bs3 + cs2 + ds + e


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

y calcular aproximadamente sus raı́ces mediante el comando SOLVE tal como se muestra a contin-
uación
>>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 solución el correspondiente SFS.
¿Es exacta la respuesta? Obviamente no lo es. En las siguientes lı́neas se reconsidera el ejemplo
3.9 de la página 33, para ilustrar el nivel de ajuste que se obtiene al calcular una solución aproximada
ỹ por este método.
Lo primero a tener en cuenta es que el criterio que aquı́ se sigue es el de medir el error en la
ecuación: |L[ỹ]|, en lugar del error en la solución: kỹ − yk.
Tomemos por caso a |L[ỹ]| 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 gráficos que se muestran en la figura 3.2.

¿Tienen calidad los resultados?


El método alternativo a DSOLVE que hemos utilizado es aproximado, y concuerda con nuestros
conocimientos teóricos. Sin embargo, en el ámbito experimental los baremos cambian. La calidad
de los resultados obtenidos se mide, en este caso, a partir de la estimación que hagamos del residuo
|Z| = |L[ỹ(t)]| sobre ciertos intervalos. Hemos comprobado que |Z| es del orden de 10−15 ×10 = 10−14
cuando ỹ está dada por
ỹ(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 cálculos MATLAB se hacen con
una precisión finita.(7 Parece correcto aceptar que los errores experimentales son nulos cuando éstos
son < eps ≈ 2.22e − 016, y éste no es el caso que nos ocupa.(8
¿Pero acaso 10−14 no es suficientemente pequeño? ¿Podemos aceptar como SFS al obtenido por
el método descrito anteriormente?
6
Agregando title(”) evitamos que en el tı́tulo de la gráfica aparezcan cadenas interminables de caracteres.
7
Se llama precisión al número de dı́gitos que forman la mantisa.
8
Por eps se representa al epsilon de máquina, es decir, el número positivo más pequeño, representable internamente,
tal que 1 + eps > 1. Hacer >> eps para obtener su valor con 16 dı́gitos.
Clase Práctica 3 47

iv) iii) ii) i)


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

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


aproximado siempre que tengamos una medida de la calidad de dicha aproximación y que ésta, a su
vez, se corresponda con la tolerancia de nuestros instrumentos. En este caso tendremos presente que
no tenemos información acerca del error en la solución

kỹ − yk,

y que nuestra conclusión dependerá del intervalo considerado.


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

ỹG = C1 eα3 t cos(β t) + C2 eα3 t sen(β t) + C3 eα1 t + C4 eα2 t , (3.2)

de modo que las constantes C1 , ..., C4 pueden modificar sustancialmente la escala y por ello podrı́a
ser aún más difı́cil aceptar que el residuo relativo a ỹG sea cero.
A pesar de lo anterior, el criterio basado en medir directamente las discrepancias en la ecuación
es una estrategia universalmente aceptada. El llamado “método de los residuos (ponderados)”(10
consiste en aceptar como solución aquella que anula al residuo en un sentido más débil que el aquı́
utilizado.
9
Un serio inconveniente es que la función ỹG depende no linealmente de los parámetros α1 ,..., α3 , y β.
10
Están diseñados para resolver problemas de contorno (Tema 7). Ver § 20.3 de [5]
48 Clase Práctica 3

Para terminar de momento esta discusión, reiteremos que es posible para EEDD lineales y ho-
mogéneas de orden cuatro o menor, calcular exactamente las raı́ces del polinomio caracterı́stico
utilizando SOLVE sin aplicar NUMERIC, solo que la expresión literal de dichas raı́ces puede ser
un STRING con demasiados caracteres. En cualquier caso, las ventajas que se derivan del trabajo
con objetos simbólicos no parecen ser concluyentes, al menos con este enfoque. Para resolver éste y
muchos otros problemas nos apuntamos al uso de los métodos numéricos tradicionales cuyo estudio
será abordado en las clases prácticas 5, 6 y 7.
CLASE PRÁCTICA 4

Transformada de Laplace

OBJETIVOS
Ejercitar el uso combinado de técnicas matemáticas y herramientas simbólicas del MATLAB para
la resolución, mediante la transformada de Laplace, de problemas de valores iniciales asociados a
sistemas diferenciales lineales y ecuaciones lineales de orden superior.

4.1 DEFINICIÓN Y CÁLCULO


4.1.1 Definición de la transformada de Laplace
La transformada de Laplace de una función f (t) definida en [0, +∞) es una nueva función que
denotaremos por F (s) o f˜(s) o L(f )(s), definida por la integral
Z +∞
f˜(s) = e−st f (t)dt. (4.1)
0

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

Decimos que g es integrable Riemann en [0, +∞] si el 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 resto
de esta clase sólo trabajaremos con funciones f (t) tales que e−st f (t) es absolutamente integrable.
Atendiendo a los objetivos de la clase, en la siguiente subsección abordaremos el cálculo de f˜(s)
(y de la transformada inversa) utilizando comandos MATLAB-MAPLE.

49
50 Clase Práctica 4

4.1.2 Cálculo mediante comandos MATLAB. Ejemplos


Para el cálculo automatizado de (4.1) MATLAB ofrece el comando LAPLACE de tipo simbólico, cuya
sintaxis es

>>F=laplace(f)

donde f es una función escalar de la variable simbólica t, previamente declarada y F es una función
cuya variable es por defecto s.
También 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 función f (t) = 1.

Resolución del ejemplo 4.1.


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

Ejemplo 4.2 Calcular la transformada de Laplace de la función f (t) = e−at y f (t) = e−at sen(bt) .

Resolución del ejemplo 4.2


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

Alternativamente se puede crear la función 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 ningún parámetro como simbólico. Invocando
al núcleo MAPLE podemos trabajar exclusivamente con STRINGS.

>>maple(’f:=t->exp(-a*t)*sin(b*t)’)
>>F=maple(’laplace(f(x),x,s)’)
F=b/((s+a)^2+b^2)
Clase Práctica 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 fórmula general viene dada por la expresión:
n!
ten (s) = n+1 ,
s
y para r > −1, r ∈ R, se tiene, aún más general, que
Γ(r + 1)
ter (s) = ,
sr+1
donde Γ(r) se define a continuación. La función Gamma se define como
Z +∞
Γ(t) = ut−1 e−u du, t > 0.
0

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

Ejemplo 4.3 (a) Comprobar experimentalmente la igualdad Γ(n) = (n − 1)!, utilizando el comando
factorial.
(b) Calcular Γ(1/2) y Γ(17/3) por las diferentes vı́as que se sugieren a continuación.

Resolución 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)

Representación gráfica de la función Γ(t)


La figura 4.1 sugiere que las rectas t = n, n = 0, −1, −2, −3 son ası́ntotas verticales de la función
Γ(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 Traslación:

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


e^

que MATLAB aplica automáticamente.

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

Fig. 4.1: Representación gráfica de γ(t) en [−4, 4]

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

En (c) hacer >>laplace(diff(sym(’g(t)’))). Notar que esta sintaxis no exige declaración previa
SYMS.
Aplicar la misma técnica al apartado (e), es decir,
laplace(sym(’Heaviside(t-1)*sin(t-1)’)),
donde Heaviside(t-a) es el nombre codificado de la función de salto unitario u(t − a).

4.2 TRANSFORMADA INVERSA DE LAPLACE


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

>>ilaplace(expresion_simbolica,s,t)

o simplemente

>>ilaplace(expresion_simbolica)

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

>>maple(’invlaplace(F(s),s,t)’)
Clase Práctica 4 53

Ejemplo 4.4 Obtener la transformada inversa de la función

s+3
F (s) =
s2

Resolución del ejemplo 4.4.

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

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

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

Resolución 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)
También 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 según sus 5
ceros 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 número −1


54 Clase Práctica 4

4.3 APLICACIONES A LA RESOLUCIÓN DE


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

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

Resolución del ejemplo 4.6.


Se verá que el comando LAPLACE aplica automáticamente la propiedad

xe0 = se
x − x(0)

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

Ejemplo 4.7 Resolver el siguiente problema de valor inicial


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

Resolución del ejemplo 4.7.


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

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

Ejemplo 4.8 Resolver el siguiente sistema


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

Resolución del ejemplo 4.8


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

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

Ejercicio 4.5 Resolver el siguiente sistema:

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


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

4.4 PROBLEMAS DE VALORES INICIALES CON


DATOS DISCONTINUOS
4.4.1 Función escalón unitario (Heaviside)
La función de salto unitario 
 0 t<0
u(t) =
1 t≥0

se representa en notación MATLAB como Heaviside(t) y es de gran utilidad para representar otras
funciones definidas a tramos.
Veamos cómo se calcula su transformada:
>>syms t s
>>f=’Heaviside(t)’
Clase Práctica 4 57

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

Ejemplo 4.9 Calcular la transformada de la función u(t − a). Teniendo en cuenta la notación
τ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 función f = 1 al punto a.

Resolución 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 fácil de obtener.
Es oportuno recordar una importante propiedad vinculada a la función escalón unitario.

Propiedad de la traslación en t.
Sea F (s) = f˜(s) y a > 0. Entonces

a)u(t − a)(s) = e−as F (s),


f (t −^ (4.3)

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

e−as
^ F (s) = f (t − a)u(t − a).

Ejemplo 4.10 Resolver el siguiente problema de condición inicial

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

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

Resolución del ejemplo 4.10.


>>syms s t lapx
>>diffeqn=’diff(x(t),t)+x(t)-1+Heaviside(t-2)’
diffeqn =diff(x(t),t)+x(t)-1+Heaviside(t-2)
>>a=laplace(diffeqn,t,s)
a=s*laplace(x(t),t,s)-x(0)+laplace(x(t),t,s)
-1/s+exp(-2*s)/s
58 Clase Práctica 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 Representación de funciones con discontinuidades de salto finito


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

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

I(0) = I 0 (0) = 0,
siendo 
 1 0<t≤1
g(t) = −1 1<t≤2
0 t>2

Determinar I(t).

Nota 4.2 Obsérvese que la función g(t) puede escribirse como g(t) = u(t) − 2u(t − 1) + u(t − 2).

Resolución del ejemplo 4.11.


>>syms s t a I lapI
>>diffeq=’diff(I(t),t$2)+4*I(t)-Heaviside(t)+2*Heaviside(t-1)-Heaviside(t-2)’;
>>a=laplace(diffeq,t,s)
a=s*(s*laplace(I(t),t,s)-I(0))-D(I)(0)+...
4*laplace(I(t),t,s)-1/s+2*exp(-s)/s-exp(-2*s)/s
>>a=subs(a,’laplace(I(t),t,s)’,lapI)
a=s*(s*lapI-I(0))-D(I)(0)+4*lapI-1/s+... 2*exp(-s)/s-exp(-2*s)/s
>>lapI=solve(a,lapI)
lapI=(s^2*I(0)+D(I)(0)*s+1-2*exp(-s)+exp(-2*s))/s/(s^2+4)
>>I=ilaplace(lapI,s,t)
I=I(0)*cos(2*t)+1/2*D(I)(0)*sin(2*t)+1/4-1/4*cos(2*t)-1/2*Heaviside(t-1)+...
1/2*Heaviside(t-1)*cos(2*t-2)+1/4*Heaviside(t-2)-1/4*Heaviside(t-2)*cos(2*t-4)
>>sol=subs(I,’I(0)’,0) % condicion inicial I(0)=0
>>sol=subs(sol,’D(I)(0)’,0) % condicion inicial I’(0)=0
Clase Práctica 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: Representación gráfica de la entrada g(t) y la salida I(t)

La representación gráfica conjunta de la entrada g(t) y la salida I(t), que pueden verse en la
figura 4.2, se obtiene como sigue:(1

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

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

0 t 6= a
δ(t − a) = (4.4)
∞ t=a
1
Lo más sencillo es copiar lo anterior en el Editor-Debugger, borrar los sı́mbolos >> y ejecutar.
60 Clase Práctica 4

y Z ∞
f (t)δ(t − a)dt = f (a), (4.5)
−∞

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

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

La Delta de Dirac se relaciona con la función escalón unitario de la siguiente forma


Z t 
0 t<a
δ(u − a)du = = u(t − a), (4.7)
−∞ 1 t≥a

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


La delta de Dirac sirve para modelizar fenómenos en los que intervienen entidades fı́sicas de ı́ndole
eléctrica o mecánica, cuyas magnitudes alcanzan en poco tiempo valores relativamente grandes. Ello
ocurre cuando se aplica una carga muy pesada concentrada en un punto de una viga, un golpe de
martillo a un sistema masa-resorte, picos de voltaje, etc.
Debido a razones históricas y prácticas, la delta de Dirac se presenta tal como acabamos de hacer en
este guión, 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.
Después de un perı́odo oscuro pero exitoso, el uso de δ(t − a) fue rigurosamente justificado en 1944
por Laurent Schwarz, al crear las distribuciones lo que le valió recibir en 1950 la Medalla Fields.
Sobre este tema se recomienda leer la sección 7.8 del libro de Nagle-Saff [8], la 7.8 del Nagle-Saff-
Snider [9], o la 7.6 de D. G. Zill [11].

Ejemplo 4.12 Una masa sujeta a un resorte se suelta a partir del reposo 1 m por debajo de la
posición de equilibrio del sistema resorte-masa, y empieza a vibrar. Después de π segundos la masa
es golpeada por un martillo que ejerce un impulso sobre la masa. El sistema está regido por el
problema de valor inicial siguiente

x00 (t) + 9x(t) = 3δ(t − π)


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

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

Resolución del ejemplo 4.12


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

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

Nota 4.3 Esta ED es de 2do orden...¡pero no se establece condición alguna sobre x0 (0)! En su lugar
se impone una condición en el infinito... Notar que t = 0 es una singularidad (¿por qué?). Quizás
esto último esté asociado a esas “extrañas condiciones” que se imponen a la solución. Una idea: si
t ∈ [−ε, ε] con ε > 0 muy pequeño, la ED es casi de orden uno...y para t grande es indudablemente
una ecuación de orden dos.

Resolución 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 notación habitual escribiendo X en lugar de x.
Aunque esto no es esencial a los efectos de la compilación y el cálculo, sı́ facilita la lectura del
código. Es un ahorro innecesario de memoria usar la misma variable x para ambos papeles. Notar
que X se crea por asignación y no por la declaración SYMS.
62 Clase Práctica 4

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

4.5 TRANSFORMADA DE LAPLACE DE UNA


FUNCIÓN PERIÓDICA
En primer lugar recordamos la expresión obtenida en clase para calcular la transformada de Laplace
de una función periódica f (t) con perı́odo T .
Z T
e−st f (t)dt
f˜(s) = 0 .
1 − e−T s
A continuación la escribimos de nuevo utilizando ahora la notación MATLAB.
1/(1-exp(-T*s))*(int(exp(-s*t)*f(t),0,T)

Ejemplo 4.14 Obtener la transformada de la función f (t), periódica de perı́odo 2π, definida por

 20 0≤t≤π
f (t) =
−20 π < t < 2π

Resolución 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 FUNCIÓN DE TRANSFERENCIA


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

Luego, obtenemos la siguiente fórmula para H(s) en términos del polinomio caracterı́stico de la ED

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

de donde, si h̃ = H, se sigue que

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

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

Notar que h(t), al igual que H(s), tampoco depende de la entrada g(t). El alumno está en capacidad
de deducir de (4.9) que la solución y(t) de la ecuación (4.8) está dada por (aplicar teorema de
convolución) 
y(t) = g ∗ h (t) (4.10)
Lo anterior significa que h(t) juega el papel de núcleo resolvente de la ecuación (4.8). Se halla de una
vez, y luego, convolucionado con cualquier g(t) de entrada nos produce la respuesta o salida y(t).

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

Los resultados que se piden ya sabemos que no dependen de g(t). Usar la fórmula (4.10) para calcular
la solución y(t) de (i) cuando g(t) = 4t2 y de (vi) cuando g(t) = exp(3t). (Para calcular el producto
de convolución ver las instrucciones que se dan a continuación.)

Indicaciones sobre el ejercicio 4.6


El siguiente código 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)
64 Clase Práctica 4

Nota 4.5 Tener en cuenta que

eit − e−it eit + e−it


sen(t) = , cos(t) =
2i 2
et − e−t et + e−t
senh(t) = , cosh(t) =
2 2
Usar tentativamente el comando SIMPLIFY si fuese necesario
CLASE PRÁCTICA 5

Métodos numéricos para PVI (I)

OBJETIVOS
Presentar los métodos numéricos de Euler y Euler mejorado para aproximar la solución de problemas
de valores iniciales. Resolver problemas concretos, obteniendo soluciones numéricas y estimados del
error, mediante el manejo de programas domésticos MATLAB basados en los algoritmos correspon-
dientes.

5.1 FUNCIONES ESPECIALES


En Matemática Aplicada, Fı́sica e Ingenierı́a aparecen con frecuencia ED de segundo orden. Entre
ellas destacamos la Ecuación de Bessel. Esta ED ha sido ampliamente estudiada y sus soluciones,
asi como las de otras EEDD que surgen en las aplicaciones, reciben el nombre de FUNCIONES
ESPECIALES. La ED lineal de segundo orden
x2 y 00 + xy 0 + (x2 − q 2 )y = 0 (5.1)
donde q es un parámetro fijo, se llama ecuación de Bessel de orden q y tiene una única singularidad
regular en x = 0. Aplicando el método de Frobenius se obtienen, si 2q ∈
/ N, las 2 soluciones linealmente
independientes siguientes:

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

X (−1)n x
J−q (x) = ( )2n−q
n=0
n!Γ(1 − q + n) 2
que son las funciones de Bessel de primera especie de órdenes 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) = 2Jq0 (x).

65
66 Clase Práctica 5

Si q ∈ Z, entonces Jq (x) y J−q (x) son linealmente dependientes. Además J−q (x) = (−1)q Jq (x).
Si q = ±1/2, ±3/2, ±5/2, · · · , las funciones de Bessel Jq se pueden expresar como una combinación
finita de senos, cosenos y potencias de x; es decir que son funciones elementales. En concreto se
cumple que:
 1/2
2
J1/2 (x) = sen(x)
πx
y
 1/2
2
J−1/2 (x) = cos(x).
πx
Las Funciones de Bessel Jq para q ∈ N son analı́ticas en 0. Además son funciones pares si q es par e
impares si q es impar. A continuación se representan las funciones de Bessel J0 , J1 , J1/2 y J3/2 .

5.1.1 Funciones de Bessel


Dentro del grupo de funciones matemáticas especializadas que contiene MATLAB se encuentran las
funciones de Bessel de primera clase: besselj(n, x).
A continuación se representan la funciónes 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: Gráfica de J1 Fig. 5.2: Gráfica de J0

Funciones de Bessel J0 y J1
Se representan conjuntamente en [−20, 20] las dos funciones de Bessel J0 y J1 . Obsérvese cómo se
alternan los ceros de J0 y J1 .
Clase Práctica 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 código


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

Fig. 5.3: Gráficas superpuestas de J1 y J0 Fig. 5.4: Gráficas de Bessel J3/2 y J1/2

5.2 ESTUDIO DE LAS SOLUCIONES DE UNA ED


Los métodos a utilizar se pueden clasificar como:

(1) Métodos analı́ticos de cuadraturas exactas (Temas 2, 3, 4 y 5).

(2) Métodos cualitativos.

(3) Métodos numéricos (Clases Prácticas 5, 6 y 7).

Los métodos exactos hasta ahora estudiados tienen grandes limitaciones, pues la mayorı́a de las ED
que se encuentran en las aplicaciones no se pueden resolver de forma exacta, mediante fórmulas
68 Clase Práctica 5

implı́citas o explı́citas.(1 Para compensar estas limitaciones se introducen los métodos numéricos que
son el objeto de esta práctica.

5.2.1 Métodos numéricos de resolución de PVI


Consideremos el siguiente PVI
y 0 = f (x, y), y(x0 ) = y0 , (5.2)
siendo x0 ∈ [a, b] y f ∈ C([a, b] × R).
∂f
Se asume que f y son continuas en un rectángulo que contiene al punto (x0 , y0 ), de modo que
∂y
el problema (5.2) tiene solución única.

Estrategia de los métodos numéricos:


Si y(x) es la solución exacta del problema (5.2), se trata de obtener valores aproximados yk de y en
ciertos puntos xk de [a, b].
Se trata de crear una tabla de valores de la variable dependiente y correspondientes a valores
conocidos de la variable independiente x en un intervalo [x0 , X] ⊂ [a, b].
El primer paso para obtener una solución numérica consiste en determinar una partición del
subintervalo [x0 , X], esto es,
x0 < x1 < · · · < xN = X.
Se supone que los puntos están distribuidos uniformemente, de modo que

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

Los métodos numéricos que estudiaremos permiten determinar los valores yk que constituyen una
aproximación del valor de la solución de (5.2) en los puntos xk .
Definición 5.1 El conjunto
{yk }k=0,...N
se llama Solución Numérica de (5.2) relativa al paso h.

5.2.2 Método de Euler o de la tangente


Reconsideremos el problema (5.2). Sabemos que el punto P = (x0 , y0 ) está en la curva solución del
mismo y que la pendiente de la tangente a dicha curva en P es y 0 (x0 ) = f (x0 , y0 ).
El método de Euler aproxima el valor de la solución exacta en x cercano a x0 usando la ecuación
de la tangente en el punto P = (x0 , y0 ):

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


1
No se pueden resolver de forma exacta porque el catálogo disponible de “funciones elementales” no alcanza para
obtener una fórmula cerrada, o porque dicha expresión es “muy difı́cil” de encontrar.
Clase Práctica 5 69

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

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

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

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

5.2.3 Otra interpretación del método de Euler


Integrando ambas partes de la ecuación

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

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


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

y sustituyendo la integral de la derecha por el área de cierto rectángulo 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 método de Euler.
yk+1 = yk + f (xk , yk )h, k = 0, · · · , N − 1. (5.5)
La fórmula (5.5), llamada “ecuación en diferencias finitas”, permite predecir yk+1 en términos del
valor de yk . El dato o condición inicial (CI) es y0 y desde él marchamos en una dirección haciendo cada
vez una nueva estimación sobre la base de predicciones anteriores. Esto último introduce desviaciones
en nuestros sucesivos cálculos, provocando que éstos sean más imprecisos a medida que nos alejamos
del punto inicial x0 .
La formulación (5.5) anterior corresponde al llamado método de Euler. Éste resulta ser el más
sencillo entre los métodos que se establecen mediante diferencias finitas para resolver problemas de
valores iniciales. La simplicidad del método de Euler lo hace especialmente adecuado para intro-
ducirnos en el tema numérico-experimental, si bien su utilización profesional es nula.
Sea y(x; h) la solución aproximada obtenida con paso h, mediante un método numérico, por
ejemplo Euler, de un PVI cuya solución exacta es y(x).
70 Clase Práctica 5

Principio 5.1 Si agregamos más puntos en la malla (xk ), para que h sea más pequeño, entonces la
expectativa es que los errores |y(x) − y(x; h)| sean más pequeños.(2

¿Qué significa decir que el método utilizado converge? (ver el §7.6 de [3])

Definición 5.2 Si
lim y(x; h) = y(x),
h→0

entonces decimos que el método converge.

Lo anterior significa que las soluciones y(x; h) de las ecuaciones en diferencias finitas que caracterizan
al método considerado, aproximan a la solución exacta y(x) de la ED cuando h → 0.
Luego, teóricamente, deberı́amos obtener mejores respuestas considerando valores cada vez más
pequeños de h. Desafortunadamente, la aritmética de precisión finita del ordenador no lo permite.
Para h muy pequeño 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 solución exacta y(x) se expresa de la
siguiente forma:
y(x) − y(x; h) = O(hp ),
lo que significa que
|y(x) − y(x; h)| ≤ M |h|p
para h pequeño y M > 0 dependiendo de x.

Definición 5.3 Al exponente p de la relación anterior se le llama orden del método.

Nota 5.1 El método de Euler es de orden p = 1.

5.2.4 Ejemplos en los que se aplica el método de Euler


Ejemplo 5.1 Obtener una solución aproximada del PVI

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

En el programa EULER1.m que indicamos a continuación, se calcula la solución aproximada del PVI

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

con y(a) = y0 .
Se calcula también el error cometido comparando con la solución exacta del PVI que es y = x2 .
2
Un 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.
3
Es decir, la mantisa correspondiente a yk , podrı́a no tener dı́gitos significativos coincidentes con la representación
de punto flotante de y(xk ).
Clase Práctica 5 71

Fig. 5.5: Método de Euler Fig. 5.6: Interpretación del método de Euler

Resolución del ejemplo 5.1

Programa EULER1.m
Datos:
n es el número 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 solución en los puntos
x(k) = a + (k − 1) ∗ h con k = 1, · · · , n y donde
h = (b − a)/(n − 1) es el paso.
Error máximo maxk {y(k) − y(x(k))}

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

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


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

Solución:
n = 20, a = 0, b = 1, y0 = 0, h = 5.263157894737e − 02
El error máximo es: 8.093460004977e − 02
Los valores aproximados se obtienen en la lı́nea de comandos según se indica a continuación.

>>[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 solución exacta, y relacionar éste con el paso h.
Apreciar gráficamente los resultados obtenidos.

Resultados del ejemplo 5.2


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

Ejercicio 5.1 Modificar el programa EULER1 para calcular una solución aproximada del PVI
y 0 = 2xy 2 , 0 ≤ x ≤ 1, con y(0) = −1.
Obtener los errores cometidos, comparando con la solución exacta, considerendo los pasos h1 = 2−3
y h2 = 2−5 .
Clase Práctica 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 continuación se presenta el siguiente código modificado para el método de Euler que llamaremos
EULER2.m. para resolver la ecuación y 0 = F (x, y) con la CI y(a) = y0 , en el intervalo [a, b], en n
puntos
x(k) = a + (k − 1)h,
con k = 1, · · · , n y donde el paso es h = (b − a)/(n − 1).
La función F se define previamente mediante el comando inline. Se obtiene el gráfico y el vector y
de la solución.
El programa EULER2.m es un procedimiento de tipo FUNCTION y uno de sus argumentos es una
función que se debe crear previamente.
Una de las aplicaciones más útiles de los ficheros .M se presenta en la definición de funciones mediante
la directiva FUNCTION cuya sintaxis es
FUNCION PARAMETROS SALIDA=NOMBRE FUNCION(parametros entrada)
El código de EULER2.m es el siguiente
74 Clase Práctica 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 solución de la ED

y 0 = y + sen(x)

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

Fig. 5.9: Solución aproximada del ejemplo 5.3

Solución del ejemplo 5.3


>>F=inline(’y+sin(x)’)
F=Inline function:
F(x,y) = y+sin(x)
>>y=euler2(F,0,1,1,10)
Clase Práctica 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 Obsérvese que el programa EULER2 no permite juzgar la calidad de los resultados obtenidos.

Ejercicio 5.2 Aproximar, usando EULER2.m, la solución de la ED


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

tomando el paso h = 2−2 .

5.2.5 Precisión de los resultados


Todo cálculo aproximado debe tener en cuenta un indicador que permita evaluar la calidad de los
resultados. En nuestro caso se trata de calcular la solución aproximada de una ED y de poder decidir
sobre la precisión del resultado.
El error exacto es imposible de conocer, de modo que se trata de obtener una estimación del mismo.
Si dicha estimación se obtiene después de realizar los cálculos y se basa en la utilización de éstos, se
dice que es una estimación del error a posteriori.
El siguiente programa EULER3 es una versión más flexible que la anterior, pues permite que el
usuario defina el dato F (x, y), el intervalo y la CI.
Como salida se obtienen los valores aproximados y las gráficas de dos resultados calculados con
diferentes mallas de puntos, lo que permite estimar el error a posteriori si nos basamos en el siguiente
principio: Si d es la distancia entre dos aproximaciones de la solución exacta de un PVI, entonces d
es una estimación de la distancia entre una cualquiera y la solución exacta.(4
El programa EULER3.m es un procedimiento de tipo FUNCTION y uno de sus argumentos es
una función que se debe crear previamente.
4
Se trata de un enunciado obviamente impreciso y aparentemente peligroso. Es frecuente en la práctica cuando no
hay otra opción. Se emplea en los comandos Matlab: ODE45 y ODE32.
76 Clase Práctica 5

Resuelve la ecuación y 0 = F (x, y) con la condición inicial y(a) = y0 , en el intervalo [a, b], en N puntos
x(k), (k = 1, · · · , N ), donde

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

La función F se define previamente mediante el comando INLINE.

Procedimiento para estimar el error


Se estima a posteriori el error tomando la diferencia máxima entre las soluciones obtenidas con los
pasos
h = (b − a)/(n − 1) y h1 = h/2 = (b − a)/(2n − 2).
Salida.
Se ofrece la estimación del error a posteriori y los gráficos de ambas aproximaciones numéricas.
Código 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 solución 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 solución con N = 2n − 1 puntos.
for k=1:N-1
y1(k+1)=y1(k)+h*F(x1(k),y1(k));
end
for k=1:n
e(k)=abs(y(k)-y1(2*(k-1)+1);
end
error=max(e)
plot(x,y,’b’,x1,y1,’r’)
legend(’Aprox. con n puntos’, ’Aprox. con 2n-1 puntos’)
title(’Solucion de la ecuacion dy/dx =F(x,y)’)
Clase Práctica 5 77

Ejemplo 5.4 Obtener, usando EULER3.m, una solución aproximada de la ED


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

Resolución del ejemplo 5.4


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

Fig. 5.10: Soluciones aproximadas del ejemplo 5.4

Ejercicio 5.3 Sea el PVI siguiente


y 0 = −y 2 , 0 ≤ x ≤ 1/2, con y(0) = −1. (5.7)
• ¿A qué tipos conocidos de ecuaciones corresponde la anterior ED?
• ¿Por qué no es lineal?
• ¿Qué métodos utilizarı́as para intentar hallar una solución exacta?
• Usando EULER3 obtener las soluciones aproximadas con N = 23 y N = 24 − 1 puntos y
estimar el error cometido.
• Calcular el error exacto y compararlo con el error estimado teniendo en cuenta que la solución
exacta es y = 1/(x − 1).
78 Clase Práctica 5

5.3 MÉTODO DE EULER MEJORADO


Para diseñar otro método numérico más eficiente que el de Euler, utilizaremos una nueva fórmula de
integración numérica de mayor orden de exactitud que la utilizada en el método de Euler.

5.3.1 La fórmula de los trapecios


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

por el número
(f (a) + f (b))
(b − a) ,
2
es decir, el área del trapecio cuyos vértices son (a, 0), (a, f (a)), (b, f (b)) y (b, 0).
Con ello se trata de efectuar cálculos más precisos en la aproximación de la integral sobre cada
uno de los subintervalos [xk , xk+1 ]
Z xk+1
f (x, y(x))dx.
xk

Notar otra vez que el integrando de la expresión anterior tiene dentro de sı́ a la incógnita y(x) de
nuestro problema.

Fig. 5.11: Regla del trapecio

En resumen y dicho en términos geométricos, el método de Euler consistió en sustituir el área


bajo la curva de g(x) = f (x, y(x)) por el área de cierto rectángulo, mientras que ahora, en lugar del
Clase Práctica 5 79

rectángulo utilizaremos un trapecio para obtener la siguiente expresión(5


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

donde h = xk+1 − xk .
Surge ası́ un método de cálculo aproximado cuya formulación es la siguiente.
h 
yk+1 = yk + f (xk , y(xk )) + f (xk+1 , yk+1 ) .
2
Se trata de un método implı́cito ya que la incógnita yk+1 , no aparece despejada en la fórmula. Además
se prueba que el error global de discretización E(h) cumple

E(h) = O(h2 ),

y por tanto es de orden p = 2.

5.3.2 Deducción del método de Euler mejorado


El método de Euler mejorado se obtiene realmente como el método predictor-corrector siguiente

(1) Se predice yk+1 mediante Euler



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

(2) Se corrige mediante la anterior relación


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

xk+1 yk+1

Resultando definitivamente el algoritmo de Euler mejorado


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

5.3.3 Euler versus Euler mejorado


El siguiente programa, EULER M, nos permite comparar entre sı́ los dos métodos estudiados an-
teriormente. El procedimiento consiste en tratar de resolver una ED, cuya solución es conocida,
mediante Euler y Euler mejorado. El experimento culmina con la estimación del error global con
respecto a ambos métodos, y el trazado en pantalla de los respectivos gráficos.
5
Ver sección 3.5 del Nagle Saff y la figura 5.11.
80 Clase Práctica 5

Descripción del programa EULER M


El programa EULER M resuelve la ecuación y 0 = F (x, y) con la C.I. y(a) = y0 , en el intervalo [a, b],
en n puntos x(k), (k = 1, · · · , n), con el paso h = (b − a)/(n − 1), utilizando los métodos Euler y
Euler mejorado.
Las funciones F (campo de direcciones) y f (solución exacta conocida) se definen previamente me-
diante el comando INLINE.
El programa estima los respectivos errores absolutos y los ofrece como salida, según el formato que
más abajo se explica. Estos errores se obtienen directamente en términos del máximo de la distancias
entre cada estimación yek y el valor exacto f (xk ). Los correspondientes gráficos se despliegan en una
misma ventana para facilitar la apreciación visual.

Código 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 solución aproximada de la ED
y 0 + y/x − y 2 log(x) = 0,
en [1, 3] con la C.I. y(1) = 1, usando los métodos de Euler y de Euler mejorado.
Para el cálculo del error, usar que la solución exacta es
f (x) = −2/x/(log(x)2 − 2),
la cual se puede obtener usando el comando DSOLVE.
>>dsolve(’Dy+y/x-y^2*log(x)=0’,’y(1)=1’,’x’)
ans =-2/x/(log(x)^2-2)
Clase Práctica 5 81

Resolución 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 número de puntos de la partición 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 método Euler mejorado comparando éste con Euler,
mediante el código 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 solución exacta en cada caso, considerando
(1) n = 24 , d = 1,
82 Clase Práctica 5

(2) n = 24 , d = 100,

(3) n = 27 , d = 100.

Valorar los resultados numéricos con el error absoluto, para lo cual el alumno deberá utilizar la
plantilla donde aparece una tabla de resultados con las entradas ya organizadas.

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

5.4 OTROS MÉTODOS NUMÉRICOS


Podemos diseñar otros métodos numéricos para resolver y 0 = f (x, y), y(x0 ) = y0 , calculando aproxi-
madamente la integral Z xk+1
f (x, y(x))dx,
xk

mediante nuevos procedimientos numéricos. Según sea el orden del error producido por la fórmula
de integración que utilicemos, ası́ será el orden del método numérico que permitirá calcular aproxi-
madamente la solución del PVI.

5.4.1 Ejemplo de método de dos pasos


Para desarrollar ideas haremos la deducción rápida de un tercer enfoque para resolver un PVI. El
nuevo método que veremos se clasifica como un método de dos pasos, le llamaremos método del
punto medio. Al igual que Euler aproximamos el área bajo la curva sustituyéndola por el área de un
rectángulo, esta vez a la altura y(xk ) de la imagen del punto medio xk del intervalo [xk−1 , xk+1 ] (ver
figura 5.13).
La formulación del método del punto medio es la siguiente

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


Clase Práctica 5 83

Fig. 5.13: Ilustración de un método de dos pasos

Notar que (5.8) es un método explı́cito porque yk+1 aparece despejado, y que la estimación yk+1
depende de las estimaciones yk e yk−1 (dos pasos). Esto último indica que para iniciar el proceso,
también debemos conocer de antemano el valor de y1 . Recordar que y0 es un dato del propio problema.
No continuaremos tratando este método que el alumno interesado puede encontrar en [1].

5.5 CONCLUSIONES
En general podemos postular que

1. El orden de un método es un indicador que está relacionado con el número de operaciones


lógico-aritméticas que han de ejecutarse para alcanzar una precisión dada. Es una referencia
vaga ya que en la práctica experimental influyen diversos factores en la eficiencia de un método.
No obstante, permite hacer una primera comparación entre dos métodos diferentes.

2. No existe un método numérico que sea de aplicabilidad universal.

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


juzgar acerca de la calidad de los resultados numéricos al aplicar un método a un problema
concreto cuya solución exacta es desconocida.

4. El método de Euler es un método muy simple, que no se utiliza en la práctica, pero resulta
muy adecuado para introducirnos en el estudio general de los métodos numéricos que resuelven
aproximadamente problemas de valor inicial. El método de Euler pertenece a una clase de
métodos llamados de “un paso”, y que en general se caracterizan por la siguiente relación
recurrente:
yk+1 = yk + φ(h, xk , yk ).
84 Clase Práctica 5

5.6 EJERCICIOS ADICIONALES


Ejercicio 5.5 Utilizar el programa EULER3 para calcular una solución de
2x 2
y0 = y , 0 ≤ x < 3, con y(0) = 1. (5.9)
9
Detectar una anomalı́a, en este caso la presencia de una “singularidad” en x = 3, calculando la
solución 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 el
eco incontrolado en pantalla, y dar únicamente salida al contenido de aquellas variables que deseamos
conocer, por ejemplo
>>[error,x1,y1]=euler3(F,0,3,1,3000);
>>error
error =2.2165e+002
La solución exacta del problema es y = 9/(9 − x2 ).

5.6.1 Aplicación: cálculo de la elasticidad b(x)


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

Ejercicio 5.6 Utilizar el código EULER3 para obtener soluciones aproximadas de

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

en los dominios siguientes

(I) 1 ≤ x ≤ 2,

(II) 1 ≤ x ≤ 2 × 102 ,

(III) 1 ≤ x ≤ 2 × 1012 ,

considerando las elasticidades:

1. b(x) = −0.2,

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

Estimar el error global de discretización para n = 100 puntos.


Clase Práctica 5 85

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

1. ¿Es (5.10) una ecuación diferencial lineal?

2. ¿Influyen el intervalo y el signo de b(x) en la calidad de la aproximación numérica?

3. ¿Se justifica aplicar un método numérico cuando b(x) es constante (apartado 1)?
CLASE PRÁCTICA 6

Métodos numéricos para PVI (II)

OBJETIVOS
1. Aplicar los métodos numéricos estudiados en la clase práctica No. 5 a problemas de valores o
condiciones iniciales asociados a ecuaciones y sistemas diferenciales.

2. Profundizar en el estudio de las series de Fourier mediante ejemplos gráficos.

En esta clase el alumno comprobará la importancia que tiene transformar ecuaciones y sistemas
diferenciales de orden superior en sistemas de primer orden. Al igual que la clase anterior, sólo
utilizaremos herramientas gráficas y numéricas del sistema MATLAB.

6.1 MÉTODOS PARA RESOLVER PROBLEMAS


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

Notemos que el anterior sistema S puede ser no-lineal. Si los términos de la derecha no dependiesen
de t dirı́amos que S es un “sistema autónomo”.

6.1.1 Método de Euler mejorado


Aplicaremos métodos como el de Euler mejorado(1 para estudiar numéricamente la solución del
sistema S.
No obstante, cualquiera sea el método que apliquemos a un sistema de EDs se tiene que:
1
Euler mejorado pertenece a la familia de métodos de Runge-Kutta que más adelante estudiaremos.

87
88 Clase Práctica 6

1. En cada etapa debe ser aplicado el método a todas las ecuaciones antes de pasar a la siguiente
etapa. Además, el paso h debe ser el mismo para todas las ecuaciones.

2. Otra cuestión que no podemos pasar por alto es que la solución numérica de una ecuación o
sistema diferencial de orden mayor que uno debe ser primero transformado en un sistema de
orden uno. A éste último se le aplica directamente el método numérico.

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

A continuación recordamos cómo se transforma una ED de orden dos

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

en un sistema de EEDD de orden uno.


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

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

De su solución (x(t), y(t)) sólo necesitamos la componente y = y(t) que es la solución del problema
original. El algoritmo de Euler mejorado aplicado a un sistema diferencial genérico S queda formulado
tal como se muestra a continuación

Euler mejorado aplicado a un sistema


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


xk+1 = xk + )
2
(6.2)
h
g(tk , xk , yk ) + g(t∗k+1 , x∗k+1 , yk+1


yk+1 = yk + )
2
donde las predicciones para k + 1 están dadas por

t∗k+1 = tk + h

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


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

6.1.2 Sobre los programas S2 EULER y RK CELL


El programa S2 EULER, descargable desde la Web de la asignatura [15], se compone de dos módulos.
El primero, a modo de interfaz logra que el código sea transparente al usuario. El alumno sólo tiene
que saber qué datos debe dar como entrada, e interpretar los resultados.
Clase Práctica 6 89

Los datos relativos al campo de direcciones o a la entrada opcional de la solución exacta se entregan
cuando lo solicita el programa, con la sintaxis o notación usual, sin encerrar entre apóstrofes ni poner
puntos delante de operadores. Esto último es necesario para la ejecución pero el propio programa se
encarga de hacerlo automáticamente.
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 módulo está constituido por dos sub-programas situados al final del código. Uno de
ellos, tal como se señaló anteriormente, se encarga de “escribir” el punto delante del operador división
\, la multiplicación *, y la exponenciación ^. La otra sub-función, de mayor interés para el alumno,
permite simular el método de Euler mejorado aplicado a un sistema diferencial de dos ecuaciones, y
se corresponde con la formulación (6.2-6.3).
Los cálculos se realizan atendiendo al paso h dado por el usuario, y para h/2, con la finalidad de
comparar los correspondientes resultados y obtener un estimado del error a posteriori.
Pueden entrarse varios pasos h, de modo que al final se dispone de una sola vez de los errores
correspondientes.
Los gráficos de las soluciones aproximadas aparecen en pantalla superpuestos y sólo corresponden
al último paso.
El programa RK CELL, que también podemos obtener en la Web de la asignatura [15], es una
interfaz de usuario para facilitar el uso de la herramienta ODE45 de MATLAB aplicada a sistemas de
ecuaciones. El diseño de RK CELL se basa en usar objetos CELL para simular funciones vectoriales
de cualquier número de dimensiones. El propio programa crea automáticamente el fichero FUNC-
TION correspondiente al campo vectorial, con las caracterı́sticas exigidas por ODE45. Este comando
Matlab ejecuta algoritmos correspondientes a los métodos de Runge-Kutta que estudiaremos en la
clase práctica 7.

6.1.3 Ejercicios con indicaciones para ser resueltos


Ejercicio 6.1 Dado el sistema diferencial lineal siguiente

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

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


resolverlo.

Indicaciones para el ejercicio 6.1


Escribir
2
Para más información ejecutar help s2 euler
90 Clase Práctica 6

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

El problema (6.4) es lineal y homogéneo. El alumno deberı́a intentar resolverlo artesanalmente


mediante los métodos estudiados en clases. Ver la figura 6.1.

Fig. 6.1: Gráfico producido por S2 EULER al resolver el ejercicio 6.1

Ejercicio 6.2 Resolver numéricamente el sistema no lineal:

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

Obtener una estimación 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 después obtener los resultados. No
cerramos el gráfico de salida, cuyo aspecto podemos apreciar anticipadamente en la figura 6.2, para
poder comparar con el que produciremos en el ejercicio 6.3.
Clase Práctica 6 91

Fig. 6.2: Gráfico producido por S2 EULER al resolver el ejercicio 6.2

Ejercicio 6.3 Resolver numéricamente el sistema lineal:


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

Obtener una estimación 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 gráfico anterior, del ejercicio 6.2, quede
superpuesto al gráfico del ejercicio 6.3.

A continuación se muestra cómo se ha “perturbado localmente” el problema 6.2 para


transformarle en el problema 6.3
Los problemas planteados en los ejercicios 6.2 y 6.3 están relacionados entre sı́. El estudiante debe
apreciar que las ecuaciones diferenciales del ejercicio 6.2 son no lineales, mientras que las del 6.3
son todas lineales. Mostraremos cómo el campo de direcciones del sistema diferencial del ejercicio
6.2 se aproxima localmente mediante su diferencial, y cómo a partir de éste último se producen las
ecuaciones lineales del problema 6.3. Se dice que el sistema del ejercicio 6.3 es una aproximación
lineal del sistema del ejercicio 6.2. Las expectativas son: que la solución de 6.3 sea una aproximación
aceptable de la correspondiente a 6.2 en un intervalo [0, ε], con ε > 0 “suficientemente pequeño”,
y que el método numérico seleccionado sea más efectivo resolviendo el problema lineal 6.3, que el
problema no lineal 6.2.(3
3
La frase “suficientemente pequeño” encierra otro problema cuya solución no abordaremos en este material.
92 Clase Práctica 6

Fig. 6.3: Gráfico producido por S2 EULER al resolver el ejercicio 6.3

El cálculo de los siguientes diferenciales en (0, 0)

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

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


y la conocida fórmula
f (x, y) ≈ f (0, 0) + Df (0, 0)(x − 0, y − 0)
válida para x e y “pequeños”, nos muestran que

x2 + x + 5y ≈ x + 5y

y 2 + sen(x) + 3x − y ≈ 4x − y
Es oportuno señalar que los valores iniciales x(0) = 0.001, y(0) = 0.001 se han seleccionado inten-
cionadamente “pequeños” en correspondencia con el proceso anterior.

Ejemplo 6.1 El siguiente PVI, extraı́do del Boletı́n 7, consiste de una ED lineal y homogénea de
orden dos con coeficientes variables.

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

Indicaciones para el ejemplo 6.1


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

Fig. 6.4: Gráfico obtenido al resolver el ejemplo 6.1

Como comprobación de los resultados apreciaremos que la gráfica de la solución numérica, obtenida
según Euler, es muy similar a la del polinomio

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

obtenido al truncar la serie de potencias que da la solución exacta de este problema.(4

Resolución del ejemplo 6.1

A continuación expondremos el proceso de obtención de la solución exacta y los gráficos de las


soluciones aproximadas.
Comencemos viendo que la solución exacta del problema (6.5), expresada en términos de una
serie de potencias en torno al punto x = 0, es

X
an tn ,
n=0

siendo los an definidos por la recurrencia a tres términos

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

donde a0 = 2 y a1 = 1, según se indica en las condiciones iniciales.


4
Observar que siendo t ∈ [0, 1], y atendiendo a la precisión deseada, el término con la potencia t6 también podrı́a
despreciarse en la aproximación (6.6).
94 Clase Práctica 6

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

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


vectoriales.(5
Para comparar los resultados obtenidos mediante series de potencias y el método Euler mejorado
aplicado al sistema asociado, ejecutar S2 EULER optando por la salida gráfica 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, éstos deben ser convertidos
previamente en un sistema de orden uno, y aplicarle a este último uno de los métodos estudiados
para el caso escalar.
La serie de potencias que representa a la solución de un problema con datos analı́ticos, puede
ser simulada numéricamente utilizando una suma parcial seleccionada convenientemente, lo que, en
principio, constituye otro método para aproximar la solución.

6.2 EJERCICIOS ADICIONALES


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

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

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


Indicaciones para el ejercicio 6.4
Si intentamos resolver el ejercicio 6.4 con DSOLVE obtenemos
>> dsolve(’D2y+2*t^2*Dy+5*y=0’,’y(0)=1’,’Dy(0)=-1’)
Warning: Explicit solution could not be found.
> In C:\MATLABR11\toolbox\symbolic\dsolve.m at line 326
ans =
[ empty sym ]
Abordemos la solución por la vı́a numérica. Para ello escribimos la EDLH de 2do orden del
ejercicio 6.4 como un sistema de primer orden
x0 = −2t2 x − 5y,
y 0 = x,
x(0) = −1, y(0) = 1,
para aplicar S2 EULER.M o RK CELL.M.
Hagamos
>>[t,y]=s2_euler
porque sólo nos interesa almacenar en memoria los valores aproximados de y = y(t), la incógnita
del problema original. Entrar h = 0.2
Desplegamos el gráfico para contrastarlo con el de la figura 6.5.
Los puntos t donde se nos pide el valor aproximado de la solución no está previsto que coincidan
con los de la red uniforme asociada al paso h escogido, por tanto, debemos interpolar.
Ejecutamos el programa INTERPOLA con la siguiente sintaxis
>>[T1,Y1]=interpola(t,y)
Entramos los puntos donde queremos interpolar según se nos indica en la plantilla.
Entrar el vector T1=[t1,...,tm]=[.21 .95 1.31 1.84]
A continuación aparecen las listas de los puntos interpolados (T1 , Y1 ) y el gráfico que muestra su
posición (ver figura 6.5).
La leyenda que aparece en la esquina superior izquierda puede moverse arrastrándola con el cursor.
96 Clase Práctica 6

Fig. 6.5: Gráficas 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 término tx de la primera
ecuación provoque una complejidad excesiva o no existe, de hecho, una solución representable con el
catálogo de funciones MATLAB.
Nos queda la alternativa de aplicar S2 EULER o RK CELL al sistema anterior. Los resultados
gráficos que se muestran en la figura 6.6 corresponden al método 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
Clase Práctica 6 97

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

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


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

La anterior ecuación es excesivamente complicada para el núcleo simbólico de MATLAB. La ecuación


homogénea asociada tiene solución mediante el comando DSOLVE en términos de la función especial
WhittakerM.(6
Notemos que la ED lineal

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

puede ser resuelta mediante series de potencias aunque su proceso de resolución es algo más com-
plicado que los problemas vistos en clases. Sin embargo, lo aprendido nos sobra para abordar su
solución en torno a t = 0. Después de asumir que y(t) es analı́tica en x0 = 0, llegamos a que


X
y(t) = an tn
n=0

donde

Fig. 6.7: Solución gráfica del ejercicio 6.6

6
Usar mhelp en lugar de help para ver más detalles sobre esta función especial.
98 Clase Práctica 6

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

a0 = −1,
a1 = −5,
a2 = 3a1 − 5a0 = −10,
a3 = (12a2 − 9a1 − 6a0 − 4)/6,
a4 = (18a3 − 8a2 − 6a1 − 2)/12,
··· ···
6(n + 1)an+1 + (n − 10)an − 6an−1
an+2 = , n = 3, 4, 5, ...
(n + 2)(n + 1)
Ahora ejecutamos el programa TRUNCADA.M- que descargamos desde [15]- para calcular las
sumas parciales de la anterior serie de potencias.
Para obtener la suma parcial correspondiente al término 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 gráficamente el nivel de coincidencia entre las dos soluciones aproxi-
madas.

Indicaciones para el ejercicio 6.7


El ejercicio 6.7 tiene solución calculable con DSOLVE pero con una expresión excesivamente extensa.(7
Los gráficos de las soluciones exactas x(t) e y(t) pueden verse en la figura 6.8 y compararse con
las obtenidas usando S2 EULER o RK CELL.
Para hacer los gráficos se recomienda usar EZPLOT.
7
Con otra versión de MATLAB o con otro software el resultado puede variar.
Clase Práctica 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 sección se basan en la utilización de los programas SERIE, SERIE1 y SE-
RIE2, todos descargables desde la Web de la asignatura [15].
El programa SERIE nos permite dibujar los gráficos superpuestos de las 6 primeras sumas
parciales de la serie de Fourier trigonométrica de la función (6.7) (figura 6.9).
Mediante SERIE1 podemos dibujar los gráficos no superpuestos de las 20 primeras sumas par-
ciales de la serie de Fourier trigonométrica de la función (6.7) (figura 6.9).
Con SERIE2 podemos visualizar la convergencia de las series de Fourier viendo los gráficos sobre
(−3π, 3π), de las primeras 25 sumas parciales de la función f (x) = x para −π < x < π.

6.3.2 Ejercicios
Ejercicio 6.8 Dada la función

−1 si −π ≤ x < 0,
f (x) = (6.7)
1 si 0 ≤ x < π
representar gráficamente la función f y las aproximaciones de su serie de Fourier trigonométrica
mediante las primeras sumas parciales.

Indicaciones para resolver el ejercicio 6.8


La serie de Fourier de f viene dada por

4 X sen((2n − 1)x)
.
π n=1 2n − 1
Basta ejecutar los programas SERIE y SERIE1.
Ejercicio 6.9 Representar la función
f (x) = x en [−π, π]
y su extensión 2π-periódica al intervalo [−3π, 3π].
100 Clase Práctica 6

Fig. 6.9: Ejercicio 6.8. Sumas parciales

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

Indicaciones para resolver el ejercicio 6.9

La serie de Fourier de f viene dada por


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

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

6.4 APÉNDICE
6.4.1 Programa SN EULER
A modo de complemento, el alumno puede utilizar el programa SN EULER para resolver sistemas de
ecuaciones diferenciales con un número arbitrario de ecuaciones, utilizando el método Euler mejorado.
Este código 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 interés para el alumno
pues se corresponde con el procedimiento de Euler mejorado expresado en términos vectoriales. La
otra subrutina FUNCTION, llamada CEVAL, permite la evaluación numérica de campos vectoriales
almacenados como objetos CELL.
Este programa puede ser descargado de la Web de la asignatura [15], y se activa directamente en
la lı́nea de comandos haciendo
>>sn_euler
En caso de que deseemos almacenar en memoria los valores aproximados de las incógnitas escribi-
mos
>>x=sn_euler;
Si además 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 número de
filas de x se corresponde con el número de puntos t0 ,...,tm .
Para visualizar una breve descripción 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;
102 Clase Práctica 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 Interpolación
Sea el PVI:
y 0 = F (x, y),
y(x0 ) = y0 .
Una vez calculados los valores aproximados de la solución 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 más 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 función y(x)
que admite derivadas hasta el segundo orden (ver figura 6.11).
Existen otros métodos de interpolación que aseguran la suavidad del aproximante, pero no los
trataremos en este curso. La figura 6.11 ilustra el proceso de interpolación mediante poligonales.
Para realizar eficientemente los cálculos usaremos el programa INTERPOLA.M -descargable
desde [15]- basado en el comando INTERP1 de MATLAB.
>>Y1=interp1(T,Y,T1);
donde
T = [x(1) · · · x(n)],
Y = [y(1) · · · y(n)],
T 1 = [t(1) · · · t(n)],
Y 1 = [m(1) ∗ t(1) + b(1) · · · m(n) ∗ t(n) + b(n)]
Notar que hasta ahora los métodos de diferencias finitas nos han ofrecido la solución como un vector
de Rn , y que según el procedimiento basado en interpolación estamos hallando una solución en la
forma de una función que, aunque continua, desafortunadamente no es derivable en todos los puntos.
A continuación se muestra el código de INTERPOLA.
Clase Práctica 6 103

Fig. 6.11: Ilustración gráfica del método de interpolación

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

Métodos numéricos para PVI (III)

OBJETIVOS
Adquisición de conocimientos teórico-experimentales sobre los métodos numéricos de resolución de
problemas de condición inicial.
Visualizar las soluciones obtenidas mediante separación de variables para las ecuaciones del calor y
de ondas.

7.1 MÉTODOS DE RUNGE-KUTTA


7.1.1 Métodos de Taylor
Sea la ED y 0 = f (x, y), sujeta a la CI y(x0 ) = y0 .
Los métodos de Euler y Euler mejorado son de órdenes 1 y 2, respectivamente, y sólo requieren
evaluaciones de la función f (x, y). A continuación presentaremos brevemente a los Métodos de Taylor,
antes de pasar a los métodos de Runge-Kutta.
Los llamados métodos de Taylor consiguen órdenes altos para el error con el correspondiente
coste que supone tener que derivar repetidamente la función.
Para ello se parte del desarrollo de Taylor de la solución y(x) en x0

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

y se sustituyen las derivadas hasta el orden n,

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

El método de Taylor de orden 1 es el ya conocido método de Euler explı́cito, estudiado en la anterior


clase práctica, y en el mismo no intervienen derivadas. Los métodos de Taylor de orden n ≥ 2, que
no estudiaremos, sı́ involucran a las derivadas de f (x, y).

105
106 Clase Práctica 7

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


método de mayor orden que el de Euler mejorado.
Estos métodos se llaman métodos de Taylor debido al papel jugado por el desarrollo de Taylor
de f (x, y) en su deducción.
Aunque, tal como se ha mencionado, se pueden teóricamente alcanzar órdenes altos para el error,
éstos dependen de que podamos derivar a f (x, y) repetidamente, lo cual en la práctica no siempre es
factible, es impracticable con herramientas numéricas y muy costoso con simbólicas.(1
El camino que se sigue para evitar el inconveniente de calcular derivadas de diferentes órdenes,
un proceso en el que ocurren graves problemas numéricos, es el diseño de los llamados métodos de
Runge-Kutta. Estos combinan ingeniosamente los valores de f (x, y) para evitar la presencia de las
derivadas en los cálculos y al mismo tiempo, producir órdenes similares a los que se obtienen con los
métodos de Taylor.

7.1.2 Método de Runge-Kutta de cuarto orden


Hay una variedad de métodos de Runge-Kutta que difieren entre sı́ atendiendo a la forma en que
combinamos los valores de la función f (x, y) que define el PVI.
El que sólo requieran evaluaciones de la función f (x, y) es una cualidad que los Runge-Kutta
comparten con Euler y Euler mejorado, pero llegando alcanzar mayores órdenes que estos últimos.
Los métodos de Runge-Kutta están considerados entre los más adecuados para resolver problemas
de valores iniciales. Los de orden n = 2 incluyen entre otros al método de Euler mejorado.
El de orden 4 clásico es una buena elección por su precisión y fácil programación. El esquema
del método clásico de Runge-Kutta de 4to orden es el siguiente:

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

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

7.1.3 Descripción del programa RUNGEKUTTA


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

y 0 = f (x, y)

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


1
La derivación numérica es un problema mal acondicionado, lo que significa que pequeños errores en los datos
pueden producir grandes errores en los resultados.
Clase Práctica 7 107

Tal como indica su nombre, este código permite simular un método de Runge-Kutta, particular-
mente el clásico de orden 4.
El programa cuenta con una interfaz de usuario desarrollada para facilitar el trabajo, que permite
opcionalmente introducir la solución exacta si fuese conocida. En una sola ejecución es capaz de
calcular los errores a posteriori para un vector de pasos [h1 , ..., hm ].
También muestra los gráficos de las aproximaciones para hm y hm /2. El error a posteriori lo
calcula como la mayor de las discrepancias entre las soluciones para h y h/2.
Para invocar a RUNGEKUTTA se oprime INTRO después de escribir en la lı́nea de comandos
alguna de las siguientes sentencias

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

dependiendo de la información que deseamos almacenar en memoria.


Aquı́ T representa al vector cuyas componentes ordenadas forman la red de puntos T (k) del
dominio según el paso h, e Y es el vector de las correspondientes aproximaciones Y (k) de la solución.
En cualquier caso el programa permite opcionalmente ver en la pantalla los valores T (k) e Y (k)
(hasta 50 como máximo), pero no los almacena en memoria.

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

para x ∈ [0, 1], con pasos

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

utilizando el programa RUNGEKUTTA.


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

Ejercicio 7.2 Aproximar la solución del PVI


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

para x ∈ [0, 3], con pasos

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

utilizando el programa RUNGEKUTTA.


Teniendo en cuenta que la solución exacta es y = x − 2 + 3e−x/2 calcular el error exacto cometido
y compararlo con el estimado a posteriori.
108 Clase Práctica 7

Ejercicio 7.3 Aproximar la solución del PVI

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


y(0) = 3

para x ∈ [0, 1], con pasos

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

utilizando el programa RUNGEKUTTA


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

7.1.5 Estabilidad de un método numérico


Un método numérico para resolver una EDO de primer orden, está dado por una ecuación en dife-
rencias finitas (EDF). Decimos que el método es estable si su EDF produce una solución acotada
cuando la solución exacta es acotada. Si la solución obtenida no es acotada, siendo la exacta acotada,
decimos que el método es inestable. Sólo analizamos la estabilidad cuando tratamos con EEDD ordi-
narias lineales y 0 + py = q(x), p ∈ R, en las que el término q(x) no influye. Los siguientes enunciados
pueden verse en Hoffman [3], secciones 7.8-7.9.

• Los métodos de Euler y Euler mejorado son estables cuando 0 < ph ≤ 2.

• Runge-Kutta es estable cuando 0 < ph ≤ 2.784.

Ejercicio 7.4 Estudiar numéricamente la solución del siguiente problema de valor inicial (Hoffman
[3], 7.14) aplicando el programa EJE7.4 (Web de la asignatura [15]).

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

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

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

b) Tratar de explicar el papel que desempeña p en los resultados calculando artesanalmente la


solución de la homogénea asociada.

Según se aprecia en la tabla 7.1.5, el tamaño de h se selecciona más pequeño para mostrar:

(A-B) cómo cambia la precisión (p = 1000)


Clase Práctica 7 109

b h p Euler RK-2 RK-4 ODE45


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

Tabla 7.1: Informe de resultados según los valores de b, h y p

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

(Se detectan en los valores numéricos del error)

(ODE45 no se afecta pues selecciona automáticamente 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 gráficamente con los cuatro programas)

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

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

7.1.6 Descripción del programa EJE7.4


Tal como sugiere su nombre, este código está especialmente diseñado para resolver el ejercicio 7.4 de
esta práctica. Para facilitar el trabajo se cuenta con una interfaz de usuario que permite seleccionar
uno de los dos posibles PVI mediante una ventana-menú, atendiendo a que la ecuación que le define
depende del valor de un parámetro p. El programa se encarga de aplicar los métodos de Euler, Euler
mejorado y Runge-Kutta 4, mostrando al final los respectivos errores y los gráficos (ver figura 7.1). Se
aplica adicionalmente la herramienta MATLAB ODE45, basada en Runge-Kutta 4 y 5. Esta última
adopta como tolerancia de entrada (error máximo permitido), al menor de los errores producidos por
los métodos anteriores.
Los principales objetivos de este experimento consisten en la detección experimental de inesta-
bilidad y escalas relevantes en el dominio.
110 Clase Práctica 7

Fig. 7.1: Gráficas producidas por EJE7.4.M

7.2 PROBLEMAS DE CONTORNO


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

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

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

Al siguiente problema
Λ[y](x) = f (x), x ∈ [a, b],
B1 [y](a) = 0, (7.1)
B2 [y](b) = 0,
Clase Práctica 7 111

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


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

7.2.2 Aplicación: Viga columna


Para calcular las cargas crı́ticas que actúan longitudinalmente sobre una columna empotrada y las
deformaciones correspondientes disponemos del modelo matemático siguiente
λ
y 00 (x) + y(x) = 0
EI (7.4)
y(0) = y(L) = 0,
donde EI es el momento flector y L es la longitud de la viga. En la Web de la asignatura, encon-
tramos el programa PANDEO que utiliza las soluciones del sistema de Sturm-Liouville formado por
λ
y 00 (x) + y(x) = 0 y diferentes condiciones homogéneas de frontera, para mostrar gráficamente las
EI
deformaciones (autofunciones) y calcular las cargas que producen deformación (autovalores).

Ejemplo 7.1 Ejecutar en la lı́nea de comandos


>>pandeo
e introducir los datos según se soliciten.

7.3 ECUACIONES EN DERIVADAS PARCIALES


7.3.1 Ecuación del calor en una barra de longitud finita
Ejemplo 7.2 Representar gráficamente la solución del siguiente problema:
ut = 5uxx , 0 ≤ x ≤ 3, t ≥ 0,
u(0, t) = u(3, t) = 0, (7.5)
u(x, 0) = 5 sen(4πx) − 3 sen(8πx) + 2 sen(10πx).
112 Clase Práctica 7

Fig. 7.2: Gráfica producida por CALOR.M

Resolución del ejemplo 7.2


La solución exacta u(x, t) de (7.5) es
u(x, t) =
5 sen(4πx) exp(−5(122 )π 2 t/9) − 3 sen(8πx) exp(−5(242 )π 2 t/9) + 2 sen(10πx) exp(−5(302 )π 2 t/9),
y se ha obtenido aplicando el método de separación de variables.
El programa CALOR (se descarga en [15]) utiliza la solución de (7.5) para hacer los gráficos del
ejemplo 7.2.

Ejemplo 7.3 El flujo de calor a través de una barra cilı́ndrica de longitud π, es solución de:

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


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

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

1. Obtener una aproximación de la solución (serie (7.8)) en el instante t = 0, en x = π/2.


Clase Práctica 7 113

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


3. Representar gráficamente la temperatura en el instante t = 1.25 en toda la barra.
4. Ver la evolución de la temperatura en dos instantes de tiempo. Para ello representar la dis-
tribución de temperaturas para t = 1.25 y t = 2. (Notar el descenso de temperaturas conforme
avanza el tiempo.)

Recursos para resolver el ejemplo 7.3


El método de separación de variables permite obtener la solución como la suma de la serie

4X exp(−2(2k + 1)2 t) sen((2k + 1)x)
u(x, t) = (−1)k (7.8)
π k=1 (2k + 1)2
Usar la función TEMP.M para aproximar la temperatura u(x, t) cualquiera sea el instante t y la
posición 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 códigos se muestran a continuación.
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 Considérese el problema de conducción del calor siguiente
Tt (x, t) − 3Txx (x, t) = 0, 0 < x < π, t > 0,
T (0, t) = T (π, t) = 0, (7.9)
T (x, 0) = sen(x) − 7 sen(3x) + sen(5x).
Si el tiempo t se mide en segundos, estime el momento en que la temperatura T se hace máxima en
los primeros 10 segundos, en el punto π/6 de la barra.
114 Clase Práctica 7

A continuación se ofrecen indicaciones para seguir un método basado en la potencia gráfica del
Matlab y en nuestra capacidad de apreciación. El alumno puede seguir cualquier otro método, pero,
en tal caso, debe ofrecer una breve descripción del mismo.
La solución exacta de (7.9) puede obtenerse aplicando el método de separación de variables y
viene 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 máximo, y hacer de nuevo

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

donde esta vez los valores a y b son aproximaciones por defecto y por exceso, respectivamente, del
punto de máximo.
Repetir el proceso hasta obtener al menos dos dı́gitos correctos en la aproximación, es decir, cuando
(b − a)/a < (1e − 02)/2.

7.3.2 Ecuación de ondas sobre un intervalo acotado


Ejemplo 7.4 Sabiendo que la solución del siguiente problema

ytt = a2 yxx , (a = 20)


yx (0, t) = yx (π, t) = 0, t ≥ 0, (7.10)
y(x, 0) = 1, yt (x, 0) = cos(x), 0 ≤ x ≤ π.
es
sen(at) cos(x)
y(x, t) = 1 + ,
a
hacer su gráfico en R3 .

Resolución del ejemplo 7.4


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

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

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

con las condiciones de frontera

yx (0, t) = 0, y(π, t) = 0, (t ≥ 0)
Clase Práctica 7 115

Fig. 7.3: Gráfica 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 máximo y mı́nimo alcanzados por
dicho punto en el perı́odo.

2. Representar gráficamente la posición de la cuerda pasadas dos horas después del momento
inicial y calcular el desplazamiento del extremo x = 0 con respecto al nivel y = 0.

Resolución del ejercicio 7.6


La solución del ejercicio puede obtenerse aplicando el método de separación de variables y viene dada
por

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

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


Un análisis del resto arroja el siguiente resultado: la suma parcial de 400 sumandos aproxima “uni-
116 Clase Práctica 7

formemente”2 al valor exacto de la serie con dos dı́gitos significativos correctos.


El programa CUERDA se ha diseñado atendiendo al anterior análisis y permite aproximar hasta con
dos dı́gitos correctos a la serie (7.11).
A continuación se muestra el código 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 gráficos 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 numéricas solicitadas a partir de los gráficos, mediante los comandos max
y min o evaluando adecuadamente a CUERDA(x,t).

7.3.3 Herramientas simbólicas para EDP


MATLAB implementa varios comandos para EDP, a través del núcleo MAPLE.
>>maple(’pdesolve(ecuacion,func(var1,...,varn))’)
resuelve la ecuación en derivadas parciales identificada por ecuacion, para la función

f = f unc(x1 , ..., xn )
2
La precisión que se obtiene no depende de x ni de t.
Clase Práctica 7 117

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

b) 3gx + 7gxy = xy

c) htt − hxx = 0

d) uxx + uyy = x + y 2

Resolución 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 ecuación en derivadas parciales del Ejemplo 7.5, apartado d), aplicando
herramientas simbólicas MAPLE-MATLAB.

d) uxx + uyy = x + y 2

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

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

119

También podría gustarte