Ingeniero Informático - Cálculo Infinitesimal 2ºma1.eii.us.es/Material/CI_ii_Cuad2.pdf · Para...

65
Ingeniero Informático - Cálculo Infinitesimal 2º Cuaderno de Prácticas 2: Ecuaciones Diferenciales Ordinarias. Métodos Numéricos. Inicio. > restart; > with(plots): 2.1 Ecuaciones diferenciales con Maple. Así como Maple permite calcular primitivas e integrales, también tiene implementada la resolución de algunos tipos de ecuaciones diferenciales ordinarias mediante el comando dsolve. No obstante, lo que realmente resulta interesante es analizar cómo Maple se puede utilizar para estudiar distintos aspectos de la teoría. Solución general y curvas integrales. La función dsolve tiene distintas formas y opciones de uso que se verán con los ejemplos. Obtención de la solución general de una EDO. Ejemplo 2.1.1________________________ Considérese la ecuación diferencial = + - 2 y' y 3 0 o, en la notación de Leibniz, = + - 2 dy dx y 3 0. Para escribir ecuaciones diferenciales con Maple, también se pueden utilizar las dos notaciones que tiene para operar con derivadas: diff, para expresiones, y D, para funciones. 1

Transcript of Ingeniero Informático - Cálculo Infinitesimal 2ºma1.eii.us.es/Material/CI_ii_Cuad2.pdf · Para...

Page 1: Ingeniero Informático - Cálculo Infinitesimal 2ºma1.eii.us.es/Material/CI_ii_Cuad2.pdf · Para escribir ecuaciones diferenciales con Maple, ... Observación técnica: Maple presenta

Ingeniero Informático - Cálculo Infinitesimal 2º

Cuaderno de Prácticas 2: Ecuaciones Diferenciales Ordinarias.

Métodos Numéricos.

Inicio.

> restart;

> with(plots):

2.1 Ecuaciones diferenciales con Maple.

Así como Maple permite calcular primitivas e integrales, también tiene implementada la resolución

de algunos tipos de ecuaciones diferenciales ordinarias mediante el comando dsolve. No obstante,

lo que realmente resulta interesante es analizar cómo Maple se puede utilizar para estudiar distintos

aspectos de la teoría.

Solución general y curvas integrales.

La función dsolve tiene distintas formas y opciones de uso que se verán con los ejemplos.

• Obtención de la solución general de una EDO.

Ejemplo 2.1.1________________________

Considérese la ecuación diferencial = + − 2 y' y 3 0 o, en la notación de Leibniz, = + − 2 dy

dxy 3 0.

Para escribir ecuaciones diferenciales con Maple, también se pueden utilizar las dos notaciones que

tiene para operar con derivadas: diff, para expresiones, y D, para funciones.

1

Page 2: Ingeniero Informático - Cálculo Infinitesimal 2ºma1.eii.us.es/Material/CI_ii_Cuad2.pdf · Para escribir ecuaciones diferenciales con Maple, ... Observación técnica: Maple presenta

• Si se emplea el operador D para designar las derivadas, la EDO del ejemplo se escribiría:

> 2*D(y)(x)+y(x)-3 = 0;

= + − 2 ( )( )D y x ( )y x 3 0

• Si se emplea el comando diff, la EDO se escribe:

> 2*diff(y(x),x)+y(x)-3=0;

= + − 2

d

d

x( )y x ( )y x 3 0

Obsérvese que, en cualquiera de las formas que se emplee, en el código de la ecuación diferencial

siempre debe escribirse la variable dependiente que designa a la solución junto con la variable

independiente; aunque, por supuesto, el nombre de las variables puede ser cambiado, y en vez de

( )y x , se puede poner, por ejemplo, ( )y t , ( )f s , etc.

Si la EDO = + − 2 y' y 3 0 del ejemplo estuviera modelando un problema cinemático, quizá hubiera

sido más apropiado escribir la ecuación con las variables v y t :

> 2*D(v)(t)+v(t)-3 = 0;

= + − 2 ( )( )D v t ( )v t 3 0

Si la EDO está en forma implícita, al utilizar el comando dsolve no es necesario explicitar en el

segundo término que está igualada a 0 (igual que con solve, en las ecuaciones algebraicas).

• Así, la solución de la ecuación diferencial del ejemplo se pide a Maple en la forma

> dsolve(2*D(y)(x)+y(x)-3);

= ( )y x + 3 e

x

2_C1

o en la forma

> dsolve(2*diff(y(x),x)+y(x)-3);

= ( )y x + 3 e

x

2_C1

Siempre que puede, como en este ejemplo, Maple devuelve la solución general de una ecuación

diferencial denotando las constantes de integración con la letra C numerada (aunque sólo haya una)

y anteponiéndoles el guión de subrayado "_".

2INGENIERO INFORMATICO - C. INFINITESIMAL - CUADERNO DE PRACTICAS 2

Page 3: Ingeniero Informático - Cálculo Infinitesimal 2ºma1.eii.us.es/Material/CI_ii_Cuad2.pdf · Para escribir ecuaciones diferenciales con Maple, ... Observación técnica: Maple presenta

Evidentemente, las constantes de integración se pueden sustituir posteriormente por otras variables

(admisibles para Maple), para adaptarse así a cualquier notación, bien sea copiando y pegando la

fórmula directamente sobre la expresión o utilizando alguno de los comandos de Maple.

• Por ejemplo, si se prefiere la notación habitual que se viene utilizando en teoría, poniendo C para

la constante de integración y ( )φ x o ( )φ ,x C para la solución, se puede emplear subs y hacer:

> subs({_C1=C, y(x)=phi(x,C)}, %);

= ( )φ ,x C + 3 e

x

2C

_________________________________________|

Por supuesto, Maple no puede resolver todas las ecuaciones diferenciales que se le propongan. Así,

unas veces puede que devuelva la solución en términos de funciones "especiales" o de expresiones

integrales, o que sencillamente no devuelva nada...

- Ejercicio 1.1: Resolver las EDOs de primer orden (usando D y diff ) siguientes:

1) = + − 5 y' y 3 0. 2) = dy

dt + 2 t y t. 3) = v' + 2 t v 1.

4) = − y' 2 x y x y2. 5) = − x y' 2 x y ( )cos x . 5) = − x y' 2 x y ( )cos y .

Observación técnica: Maple presenta la solución (o soluciones) de las ecuaciones diferenciales en

forma de igualdad, que puede ser asignada a una variable para su manipulación. Posteriormente, se

puede seleccionar la parte que interesa de la solución, sustituirla en alguna expresión, convertirla en

una función (cortando y pegando o con el comando unapply ), etc.

Por ejemplo, cortando y pegando en la salida de Maple, se pone "rápidamente" la solución general

del Ejemplo 2.1.1 como una función, de nombre f, en las variables x y C.

> f:=(x,C) -> 3+exp(-1/2*x)*C;

:= f → ( ),x C + 3 e( )− / 1 2 x

C

O, más "técnicamente", se puede asignar la solución de la EDO a una variable, por ejemplo, sol, y

luego convertirla en la función g, usando unapply, bien sea seleccionando con rhs(sol) el

lado derecho de la solución o bien obteniendo su expresión en la forma subs(sol,y(x)).

3INGENIERO INFORMATICO - C. INFINITESIMAL - CUADERNO DE PRACTICAS 2

Page 4: Ingeniero Informático - Cálculo Infinitesimal 2ºma1.eii.us.es/Material/CI_ii_Cuad2.pdf · Para escribir ecuaciones diferenciales con Maple, ... Observación técnica: Maple presenta

> sol:=dsolve(2*D(y)(x)+y(x)-3);

:= sol = ( )y x + 3 e

x

2_C1

> g:=unapply(rhs(sol),x,_C1);

:= g → ( ),x _C1 + 3 e( )− / 1 2 x

_C1

> g:=unapply(subs(sol,y(x)),x,_C1);

:= g → ( ),x _C1 + 3 e( )− / 1 2 x

_C1

En cualquiera de los casos, la función que resulta es evidentemente la misma:

> f(x,C);

+ 3 e

x

2C

> g(x,C);

+ 3 e

x

2C

______________|

Para dibujar con Maple las curvas ( )φ ,x C de la familia, se particularizan algunos valores de las

constantes de integración y se procede en la forma habitual, con el comando plot. También se

puede utilizar plot3d si ( )φ ,x C se quiere "mirar" como una superficie en la que están inmersas

las soluciones particulares de la EDO.

Ejemplo 2.1.1 (Continuación)__________

Las gráficas en el intervalo ( ) ,−2 2 de algunas curvas de la familia = ( )φ ,x C + 3 e( )−x / 2

C ,

solución de la EDO = + − 2 y' y 3 0, se pueden dibujar utilizando la función f creada antes:

> eval(f);

→ ( ),x C + 3 e( )− / 1 2 x

C

> plot([f(x,-1),f(x,0),f(x,1)],x=-2..2,thickness=2);

4INGENIERO INFORMATICO - C. INFINITESIMAL - CUADERNO DE PRACTICAS 2

Page 5: Ingeniero Informático - Cálculo Infinitesimal 2ºma1.eii.us.es/Material/CI_ii_Cuad2.pdf · Para escribir ecuaciones diferenciales con Maple, ... Observación técnica: Maple presenta

Seleccionando los valores de la constante de integración, con el comando seq, se puede dibujar de

forma cómoda toda una sucesión de soluciones particulares fácilmente.

> display(seq(plot(f(x,c),x=-2..2), c=-5..5));

Si ( )φ ,x C se interpreta como una superficie, pueden verse las soluciones particulares de la EDO

inmersas en ella. Las proyecciones en el plano = z 0 son las funciones consideradas antes para los

distintos valores de C.

> plot3d(f(x,y),y=-10..10,x=-2..2,

thickness=2,tickmarks=[3,3,3],style=patchcontour,axes=box);

En una animación se observa mejor que se tiene sólo una curva integral para cada valor de C.

> animate(f(x,c), x=-2..2,c=-10..10, color=red,frames=51);

_________________________________________|

5INGENIERO INFORMATICO - C. INFINITESIMAL - CUADERNO DE PRACTICAS 2

Page 6: Ingeniero Informático - Cálculo Infinitesimal 2ºma1.eii.us.es/Material/CI_ii_Cuad2.pdf · Para escribir ecuaciones diferenciales con Maple, ... Observación técnica: Maple presenta

• Maple resuelve también ecuaciones diferenciales de orden superior (algunas), y para indicar las

derivadas sucesivas y'' , y''', ..., y( ) n

, se puede emplear de nuevo cualquiera de las notaciones:

D(D(y))(x) ó (D@@2)(y)(x), D(D(D(y)))(x) ó (D@@3)(y)(x), ..., (D@@n)(y)(x)

o bien

diff(y(x),x,x) ó diff(y(x),x$2), diff(y(x),x$3), ... , diff(y(x),x$n)

Ejemplo 2.1.2________________________

- (1) La ecuación diferencial = + − 2 y'' y 3 0 tiene por solución general:

> dsolve(2*(D@@2)(y)(x)+y(x)-3);

= ( )y x + + 3 _C1

sin

1

22 x _C2

cos

1

22 x

> dsolve(2*diff(y(x),x$2)+y(x)-3);

= ( )y x + + 3 _C1

sin

1

22 x _C2

cos

1

22 x

- (2) La ecuación diferencial = − y''' 2 y'' 3 tiene por solución general:

> dsolve((D@@3)(y)(x)-2*(D@@2)(y)(x)-3);

= ( )y x − + + + 3

4x

2_C1 _C2 x _C3 e

( )2 x

> dsolve(diff(y(x),x$3)-2*diff(y(x),x$2)-3);

= ( )y x − + + + 3

4x

2_C1 _C2 x _C3 e

( )2 x

_________________________________________|

Observación técnica importante: En una EDO con diff o D, un "olvido total" de la variable

x en la expresión ( )y x da lugar a un mensaje de error de Maple.

Por ejemplo, en la ecuación diferencial = + − 2 y'' y 3 0, del Ejemplo 2.1.2 (1), se obtiene

> dsolve(2*(D@@2)(y)+y-3);Error, (in ODEtools/info) missing the ODE

6INGENIERO INFORMATICO - C. INFINITESIMAL - CUADERNO DE PRACTICAS 2

Page 7: Ingeniero Informático - Cálculo Infinitesimal 2ºma1.eii.us.es/Material/CI_ii_Cuad2.pdf · Para escribir ecuaciones diferenciales con Maple, ... Observación técnica: Maple presenta

> dsolve(2*diff(y,x$2)+y-3);Error, dsolve expects its 1st argument, ODEs, to be of type {set,

`ODEtools/ODE`}, but received -3+y

Pero un "olvido parcial" con la notación diff puede producir una catástrofe. Por ejemplo, en la

EDO = − y''' 2 y'' 3 del Ejemplo 2.1.2 (2), se podría obtener una solución equivocada sin reparar

en que se ha cometido un error, como puede observarse en la línea de código siguiente:

> dsolve(diff(y,x$3)-2*diff(y(x),x$2)-3);

= ( )y x − + + 3

4x

2_C1 x _C2

En efecto, para Maple no es un error derivar la expresión "y", pero es considerada independiente de

la variable x; por consiguiente, la variable funcional "y" es tratada como expresión constante, al

derivar respecto de x, luego la derivada de cualquier orden es sustituida por 0 en la EDO...

> diff(y(x),x$3);

d

d3

x3

( )y x

> diff(y,x$3);

0

Así que, en vez de la EDO = − y''' 2 y'' 3, el "descuido" en la entrada de datos ha hecho que Maple

devuelva la solución de la ecuación diferencial de 2º orden = − 0 2 y'' 3, que no es precisamente la

que se quería resolver.

______________|

- Ejercicio 1.2: Comprobar (con D y diff ) que la solución φ de la EDO = −2 y'' 3 es la

que Maple ha dado en la observación anterior cuando = − y''' 2 y'' 3 se escribió incorrectamente.

Expresar la solución general en la notación usual = φ ( )φ , ,x C1 C2 y construir una función para la

solución con las tres variables correspondientes.

• Obtención de soluciones particulares. Problemas de Valores Iniciales.

> restart;

> with(plots):

Una solución particular o curva integral de una EDO se encuentra dando valores a las constantes de

7INGENIERO INFORMATICO - C. INFINITESIMAL - CUADERNO DE PRACTICAS 2

Page 8: Ingeniero Informático - Cálculo Infinitesimal 2ºma1.eii.us.es/Material/CI_ii_Cuad2.pdf · Para escribir ecuaciones diferenciales con Maple, ... Observación técnica: Maple presenta

integración en la solución general o, planteada como un PVI, determinando los valores que deben

tomar para que se cumplan las condiciones requeridas.

• Si se está interesado en la solución que pasa por un punto ( )P ,x0 y0 , se puede hallar la constante

de integración procediendo en la forma habitual, es decir: se sustituyen las coordenadas del punto

en la solución general de la EDO y se resuelve la ecuación algebraica resultante en C.

Ejemplo 2.1.3________________________

Las expresiones de algunas curvas integrales de la ecuación del Ejemplo 2.1.1, = + − 2 y' y 3 0, que

fueron representadas ya gráficamente, se pueden obtener también utilizando el comando seq.

> sol:=dsolve(2*D(y)(x)+y(x)-3):

> f:=unapply(rhs(sol),x,_C1);

:= f → ( ),x _C1 + 3 e( )− / 1 2 x

_C1

> seq(f(x,c),c=0..3);

, , ,3 + 3 e( )− / 1 2 x

+ 3 2 e( )− / 1 2 x

+ 3 3 e( )− / 1 2 x

Para encontrar la constante de integración de la solución que pasa por ( )P ,1 3 se puede utilizar (si

se quiere) Maple como "calculadora". Primero hay que determinar la ecuación algebraica en C y

luego resolverla para hallar la constante apropiada (ojo, con el comando solve ).

> eq:=subs({x=1,y=3}, y=f(x,C));

:= eq = 3 + 3 e( ) / -1 2

C

> solve(eq,{C});

{ } = C 0

Es decir, la solución constante = ( )φ x 3 es en este caso la única curva integral que pasa por P.

_________________________________________|

- Ejercicio 1.3: Encontrar la solución particular de la EDO = + − 2 y' y 3 0 que pasa por el

origen y la que pasa por el punto ( )Q ,−1 2 . Dibujar las gráficas correspondientes en [ ],−2 2 .

• Por otro lado, Maple permite obtener directamente, con el comando dsolve, la solución

particular del PVI que determina una EDO de primer orden con una condición = ( )y x0 y0 .

La sintaxis de esta forma de emplear dsolve (que es como se debe resolver un PVI si se dispone

de Maple) puede verse encontrando de nuevo la solución al caso planteado el Ejemplo 2.1.3.

8INGENIERO INFORMATICO - C. INFINITESIMAL - CUADERNO DE PRACTICAS 2

Page 9: Ingeniero Informático - Cálculo Infinitesimal 2ºma1.eii.us.es/Material/CI_ii_Cuad2.pdf · Para escribir ecuaciones diferenciales con Maple, ... Observación técnica: Maple presenta

Ejemplo 2.1.3_(Continuación)___________

La solución particular de la EDO = + − 2 y' y 3 0 , con = ( )y 1 3, del Ejemplo 2.1.3, se tiene ahora

directamente ejecutando

> dsolve({2*D(y)(x)+y(x)-3, y(1)=3}, y(x));

= ( )y x 3

Obsérvese que se tienen que encerrar entre llaves la ecuación y la condición inicial y que hay que

indicar luego la función ( )y x . La salida del comando (cuando lo puede proporcionar) es de nuevo

una igualdad en la sintaxis de Maple y no una función.

_________________________________________|

- Ejercicio 1.4: Hallar la solución particular de la EDO = + − 2 y' y 3 0 que pasa por el origen

y la que pasa por el punto ( )Q ,−1 2 , del ejercicio anterior, utilizando el comando dsolve.

• Por supuesto, también se puede encontrar directamente con el comando dsolve la solución de

una EDO de segundo orden, con las condiciones iniciales = ( )y x0 y0 e = ( )y' x0 y'0 ; una EDO

de tercer orden, con una condición añadida para ( )y'' x0 , etc.

Ejemplo 2.1.4________________________

La solución del PVI que determina la EDO = + − 2 y'' y 3 0 del Ejemplo 2.1.2 (1), con = ( )y 0 3 e

= ( )y' 0 2 se obtiene directamente utilizando

> dsolve({2*diff(y(x),x$2)+y(x)-3,y(0)=3,D(y)(0)=sqrt(2)},y(x));

= ( )y x + 3 2

sin

1

22 x

Obsérvese que aunque la EDO se puede escribir indistintamente con la notación diff o D, la

condición inicial = ( )y' x0 y0 se tiene que escribir en la forma = ( )( )D y x0 y0 , y se debe hacer así

con las condiciones iniciales que involucran derivadas de orden superior.

_________________________________________|

• Se puede comprobar fácilmente con Maple que la solución encontrada verifica el PVI, aunque si

se ha usado la notación D para la ecuación diferencial, hay que convertir la expresión de la

solución en una función.

9INGENIERO INFORMATICO - C. INFINITESIMAL - CUADERNO DE PRACTICAS 2

Page 10: Ingeniero Informático - Cálculo Infinitesimal 2ºma1.eii.us.es/Material/CI_ii_Cuad2.pdf · Para escribir ecuaciones diferenciales con Maple, ... Observación técnica: Maple presenta

Para facilitar la resolución y comprobación posterior de la solución de una EDO o de un PVI, con

frecuencia es preferible asignar previamente a variables tanto la EDO (ya sea empleando diff o

D) como en su caso las condiciones iniciales, haciendo de paso más cómodo y claro el empleo del

comando dsolve.

Ejemplo 2.1.5________________________

La solución particular de la EDO = − y''' 2 y'' 3, del Ejemplo 2.1.2 (2), que verifica las condiciones

iniciales ( )y 0 = ( )y' 0 = ( )y'' 0 = 0 , se puede obtener almacenando, por ejemplo, la EDO en la

variable ed y las condiciones iniciales en cond.

> ed:= (D@@3)(y)(x)-2*(D@@2)(y)(x)-3=0;

:= ed = − − ( )( )( )D( )3

y x 2 ( )( )( )D( )2

y x 3 0

> cond:= y(0)=0, D(y)(0)=0, (D@@2)(y)(0)=0;

:= cond , , = ( )y 0 0 = ( )( )D y 0 0 = ( )( )( )D( )2

y 0 0

> sol:=dsolve({ed,cond},y(x));

:= sol = ( )y x − − − + 3

4x

23

8

3

4x

3

8e

( )2 x

Convirtiendo la solución en función, las derivadas sucesivas se pueden obtener con el operador D.

> phi:=unapply(rhs(sol),x);

:= φ → x − − − + 3

4x

23

8

3

4x

3

8e

( )2 x

> phi(x),D(phi)(x),(D@@2)(phi)(x);

, ,− − − + 3

4x

23

8

3

4x

3

8e

( )2 x− − +

3

2x

3

4

3

4e

( )2 x− +

3

2

3

2e

( )2 x

Entonces, la sustitución de las expresiones de φ, φ' y φ'' en la EDO = ( )F , , ,x y y' y'' 0, así como la

comprobación de las condiciones iniciales, se hacen trivialmente con Maple, por ejemplo con el

comando subs, si se tienen ya almacenadas en variables:

> subs(y=phi,ed);

simplify(%);

= − − ( )( )( )D( )3

φ x 2 ( )( )( )D( )2

φ x 3 0

= 0 0

> subs(y=phi,[cond]);

simplify(%);

[ ], , = ( )φ 0 0 = ( )( )D φ 0 0 = ( )( )( )D( )2

φ 0 0

[ ], , = 0 0 = 0 0 = 0 0

10INGENIERO INFORMATICO - C. INFINITESIMAL - CUADERNO DE PRACTICAS 2

Page 11: Ingeniero Informático - Cálculo Infinitesimal 2ºma1.eii.us.es/Material/CI_ii_Cuad2.pdf · Para escribir ecuaciones diferenciales con Maple, ... Observación técnica: Maple presenta

Obsérvese que cond se ha encerrado entre corchetes "[ ]" para que Maple considere como una

lista la sucesión de condiciones iniciales.

_________________________________________|

- Ejercicio 1.5:

(1) Determinar las soluciones de la EDO = − y''' 2 y'' 3 que tienen tangente horizontal en el

punto ( )P ,0 1 . Comprobar que las soluciones obtenidas verifican la EDO y las condiciones

iniciales. Representar gráficamente algunas soluciones en el intervalo [ ],−1 1 .

(2) De entre todas las soluciones anteriores, encontrar aquella que no tiene un extremo relativo en

el punto P. Comprobar que la solución obtenida verifica la EDO y las condiciones iniciales y

obtener su gráfica en el intervalo [ ],−1 1 .

2.2 Ecuaciones diferenciales de primer orden.

El comando dsolve de Maple, permite la resolución de la ecuación diferencial lineal de primer

orden, así como algunas ecuaciones no lineales. Además, dispone de opciones para usar métodos

numéricos de aproximación, dibujar campos de direcciones, etc.

En los ejemplos se ilustrarán recursos y limitaciones de Maple, así como algunas de las utilidades

del paquete DEtools, que contiene comandos específicos para operar con EDOs.

Por supuesto, siempre se puede recurrir a los distintos tipos de Ayuda de Maple (en el Help) para

hacer uso de todas las posibilidades de los comandos.

La ecuación diferencial lineal de primer orden.

> restart;

> with(plots):

> with(DEtools, odeadvisor):

A la vista de los ejemplos de la sección anterior, se ha debido suponer ya que en la implementación

de Maple figura la fórmula de la solución de la EDO lineal de primer orden, = + y' ( )a x y ( )b x .

• En efecto,

11INGENIERO INFORMATICO - C. INFINITESIMAL - CUADERNO DE PRACTICAS 2

Page 12: Ingeniero Informático - Cálculo Infinitesimal 2ºma1.eii.us.es/Material/CI_ii_Cuad2.pdf · Para escribir ecuaciones diferenciales con Maple, ... Observación técnica: Maple presenta

> edl:=D(y)(x)+a(x)*y(x)=b(x);

:= edl = + ( )( )D y x ( )a x ( )y x ( )b x

> dsolve(edl);

= ( )y x + e( )− d⌠⌡ ( )a x x

d

( )b x e( )d⌠⌡ ( )a x x

x e( )− d⌠⌡ ( )a x x

_C1

Observación técnica: El comando odeadvisor del paquete DEtools permite, a veces,

identificar el tipo de EDOs que se está considerando.

> odeadvisor(edl);

[ ]_linear

______________|

Así que cuando se dispone de Maple no es necesario recordar ningún método de resolución de la

EDO lineal de primer orden. Sin embargo, la prueba de la unicidad y el ámbito de aplicación de las

soluciones es responsabilidad del usuario, por lo que hay que "filtrar" adecuadamente los resultados

que se obtengan para no cometer errores.

• Por ejemplo, si ( )a x y ( )b x son funciones continuas en un intervalo ( ) ,α β , la existencia de

solución general para la EDO lineal está garantizada en el intervalo. Y además, para cada x0 del

intervalo ( ) ,α β , el PVI que determina la ecuación, con = ( )y x0 y0 , tiene solución única.

Pero si ( )a x y ( )b x no son continuas en algún punto de ( ) ,α β puede ocurrir cualquier cosa...

Ejemplo 2.2.1________________________

- (1) La EDO lineal de primer orden = − y' 2 x y x tiene solución única definida en R pasando por

cada punto ( )P ,a b .

> dsolve({D(y)(x)-2*x*y(x)-x, y(a)=b}, y(x));

= ( )y x − + 1

2

1

2

e( )x

2

( ) + 1 2 b

e( )a

2

- (2) Para cada punto ( )P ,a b , la EDO lineal = − x y' 2 x y ( )cos x tiene solución única definida en

cada intervalo ( ) ,α β que no contenga al origen, ya que si se pone la EDO en la forma usual,

12INGENIERO INFORMATICO - C. INFINITESIMAL - CUADERNO DE PRACTICAS 2

Page 13: Ingeniero Informático - Cálculo Infinitesimal 2ºma1.eii.us.es/Material/CI_ii_Cuad2.pdf · Para escribir ecuaciones diferenciales con Maple, ... Observación técnica: Maple presenta

= − y' 2 y( )cos x

x

se tiene = ( )b x ( )cos x / x que no es continua en = x 0.

> dsolve(x*D(y)(x)-2*x*y(x)=cos(x));

= ( )y x + e( )2 x

d

( )cos x e( )−2 x

xx e

( )2 x_C1

Obsérvese que la integral de la solución que proporciona Maple no estará definida para un intervalo

( ) ,α β que contenga a = x 0.

_________________________________________|

- Ejercicio 2.1: Para la EDO de Euler de primer orden = + x y' α y 0, con = ( )y 1 1, analizar

dónde son válidas las soluciones que proporciona Maple, en los casos = α −1 / 2 y = α −2.

Comprobar que la función

( )φ x =

x2

2 < x 0

x2

≤ 0 x

es también solución en el caso = α −2. ¿Cómo se explica eso?

• Solución aproximada de una EDO con Maple.

Aunque ( )a x y ( )b x sean continuas y se pueda garantizar la existencia de solución general de la

EDO = + y' ( )a x y ( )b x , si alguna de las integrales involucradas en la fórmula no es conocida o no

puede ser expresada como una combinación lineal finita de funciones elementales, Maple devuelve

la solución a veces en términos de algunas expresiones integrales, que pueden venir "camufladas"

con el nombre de algunas de las funciones que utiliza para expresar otras integrales similares.

Entonces, la evaluación de la solución de la EDO en un punto se podría realizar aproximando de

alguna forma las integrales involucradas (con un método numérico, como la regla de Simpson); por

otro lado, también se podrían obtener los valores aproximados usando directamente algún método

numérico de resolución de ecuaciones diferenciales (como Heun o Runge-Kutta).

• Por supuesto, si se dispone de Maple, se pueden usar los métodos numéricos que implementa.

13INGENIERO INFORMATICO - C. INFINITESIMAL - CUADERNO DE PRACTICAS 2

Page 14: Ingeniero Informático - Cálculo Infinitesimal 2ºma1.eii.us.es/Material/CI_ii_Cuad2.pdf · Para escribir ecuaciones diferenciales con Maple, ... Observación técnica: Maple presenta

Ejemplo 2.2.2________________________

El PVI para la EDO lineal = − x y' 2 x y ( )cos x , del Ejemplo 2.2.1(2), con la condición = ( )y π 0,

tiene solución única definida en el intervalo ( ) ,0 ∞ , que viene dada por

> dsolve({x*D(y)(x)-2*x*y(x)=cos(x),y(Pi)=0},y(x));

= ( )y x e( )2 x

d

π

x

( )cos u e( )−2 u

uu

Se puede aproximar el valor ( )y 1 evaluando numéricamente la integral que aparece, con alguno de

los métodos de la última sección o utilizando Maple, que permite ajustar directamente el número de

cifras significativas de la aproximación (hay que confiar en que el algoritmo empleado por Maple

controla el error... ).

>

evalf ,e2

d

π

1

( )cos u e( )−2 u

uu 20

-0.070976062000974418171

Con Maple, incluso se puede representar gráficamente la solución en un intervalo:

> phi:=x->exp(2*x)*Int(cos(u)*exp(-2*u)/u,u = Pi .. x);

:= φ → x e( )2 x

d

π

x

( )cos u e( )−2 u

uu

> plot(phi(x),x=0.9..Pi,thickness=3);

> dib_phi:=%:

Accediendo al código que Maple utiliza para dibujar la gráfica de la solución (por ejemplo,

terminando en ";" la asignación del dibujo...) se pueden ver las aproximaciones que ha utilizado.

14INGENIERO INFORMATICO - C. INFINITESIMAL - CUADERNO DE PRACTICAS 2

Page 15: Ingeniero Informático - Cálculo Infinitesimal 2ºma1.eii.us.es/Material/CI_ii_Cuad2.pdf · Para escribir ecuaciones diferenciales con Maple, ... Observación técnica: Maple presenta

> dib_phi:=%;

_________________________________________|

En vez de utilizar esa "peculiar" forma de obtener aproximaciones numéricas de la solución de una

EDO, se puede pasar a la última sección dedicada a los métodos numéricos de resolución o, mejor

aún, utilizar el algoritmo de Maple para resolverlas numéricamente: de nuevo se emplea dsolve,

pero ahora se añade la opción numeric.

La salida es un "procedimiento" de Maple (un programa, que en este caso implementa una variante

del método de Runge-Kutta ), con unos parámetros prefijados, que permite obtener la aproximación

del valor de la solución de la ecuación diferencial en cada punto. El método de resolución así como

los parámetros empleados pueden modificarse (esto será comentado posteriormente, pero puede

consultar la ayuda ahora, si está interesado).

Ejemplo 2.2.3______________ __________

La solución numérica de Maple para el PVI = − x y' 2 x y ( )cos x , con = ( )y π 0 (asignada a la

variable soln), del Ejemplo 2.2.2, se obtiene con

> soln:=dsolve({x*D(y)(x)-2*x*y(x)=cos(x),y(Pi)=0},y(x),numeric);

:= soln proc( ) ... end procrkf45_x

La solución numérica proporcionada se puede emplear "casi" como una función usual, sólo que para

cada valor de la solución lo que se obtiene es una lista con las expresiones involucradas.

> soln(1);

[ ], = x 1 = ( )y x -0.07097605722685237

Obsérvese cómo el valor = ( )y 1 y1 obtenido ahora difiere del valor = ( )y 1 y2 anterior:

= y1 -0.070976062000974418

= y2 -0.070976057226852370

pero... ¡a partir de la séptima cifra decimal significativa!

Obsérvese además que la salida es una lista de igualdades de la que se puede extraer la coordenada

o coordenadas que se quieran, así como sustituirlas en expresiones que las contengan, haciendo uso

por ejemplo del comando subs.

> subs(soln(1),y(x));

-0.07097605722685237

15INGENIERO INFORMATICO - C. INFINITESIMAL - CUADERNO DE PRACTICAS 2

Page 16: Ingeniero Informático - Cálculo Infinitesimal 2ºma1.eii.us.es/Material/CI_ii_Cuad2.pdf · Para escribir ecuaciones diferenciales con Maple, ... Observación técnica: Maple presenta

> subs(soln(1),[x,y(x)]);

[ ],1 -0.07097605722685237

> subs(soln(1),[x+y(x), y(x)^2 ,y(x)^3]);

[ ], ,0.9290239428 0.005037600700 -0.0003575490356

Con la opción value se obtiene una tabla de valores (numéricos, no simbólicos), solicitados en un

array, cuando el algoritmo puede calcularlos.

> dsolve({x*D(y)(x)-2*x*y(x)=cos(x),y(Pi)=0},y(x),numeric,

value=array([1,1.5,2]));

[ ],x ( )y x

1 -0.07097605741

1.5 0.07027322004

2 0.1277028558

_________________________________________|

- Ejercicio 2.2: Resolver numéricamente el PVI determinado por la EDO = − x y' 2 x y ( )cos y

(del Ejercicio 1.1), con la condición = ( )y 1 1, y obtener la lista [ ], ,y0 y1 ... con los valores de la

solución numérica en el soporte { }, , , ,1 1.2 1.4 ... 2 del intervalo [ ],1 2 . Dibujar los puntos de

la lista con el comando listplot, para tener una primera aproximación de la gráfica de la

solución en el intervalo. Presentar la lista en forma de tabla.

• Dibujando curvas integrales obtenidas numéricamente con Maple.

Seleccionar una tabla de puntos (como ya se ha debido hacer en el Ejercicio 2.2) para construir la

gráfica de la solución numérica de una EDO es una alternativa, pero el comando odeplot (del

paquete plots), dibuja directamente la solución obtenida con dsolve y la opción numeric.

Atención: la sintaxis exige dibujar → x ( )y x en paramétricas, sin expresar variables en el rango.

Ejemplo 2.2.3 (Continuación) __________

La gráfica de solución de Maple para el PVI (asignada a la variable soln) se obtiene con

> ed:=x*D(y)(x)-2*x*y(x)=cos(x):

> soln:=dsolve({ed,y(Pi)=0},y(x),numeric):

> odeplot(soln,[x,y(x)], 0.9..Pi, labels=[x,y],color=blue);

16INGENIERO INFORMATICO - C. INFINITESIMAL - CUADERNO DE PRACTICAS 2

Page 17: Ingeniero Informático - Cálculo Infinitesimal 2ºma1.eii.us.es/Material/CI_ii_Cuad2.pdf · Para escribir ecuaciones diferenciales con Maple, ... Observación técnica: Maple presenta

> dib_soln:=%:

Obsérvese cómo las gráficas de la solución evaluada numéricamente (es decir, dejando integrales

"indicadas" en la solución, para después aproximarlas en cada punto) y, por otro lado, la solución

obtenida numéricamente (es decir, aplicando un método numérico para resolver el PVI y obtener

con él los valores aproximados de la solución en cada punto) no difieren:

> ( )display ,dib_soln dib_phi

_________________________________________|

- Ejercicio 2.3: Representar gráficamente en el intervalo [ ],1 2 la solución numérica de Maple

para el PVI = − x y' 2 x y ( )cos y , con = ( )y 1 1, del Ejercicio 2.2. Comparar la gráfica con la

obtenida anteriormente, dibujándolas sobre unos mismos ejes.

Ecuaciones diferenciales de primer orden no lineales.

> restart;

> with(plots):

> with(DEtools, odeadvisor):

Cuando una EDO = y' ( )f ,x y es no lineal, no puede asegurarse solución; por otro lado, en caso de

que exista, tampoco puede garantizarse la unicidad de un PVI con una condición = ( )y x0 y0 . Y lo

que es peor, aunque la solución del PVI exista y sea única en un intervalo, no hay "fórmula" que dé

su solución en términos de integrales, como en la EDO lineal.

Así que, en general, lo mejor que se puede conseguir para un PVI con una EDO no lineal es poder

aproximar la solución en un recinto en que se verifiquen condiciones suficientes para garantizar su

existencia y unicidad; por ejemplo, las hipótesis del teorema de Picard.

No obstante, para algunos tipos particulares de EDOs "sencillas" se tienen métodos para encontrar la

solución exacta (en términos de integrales). Los programas que utilizan cálculo simbólico, como

Maple, suelen tener implementada la resolución de estas ecuaciones. En cualquier caso, si se conoce

el procedimiento para resolverlas, Maple puede ayudar como calculadora.

17INGENIERO INFORMATICO - C. INFINITESIMAL - CUADERNO DE PRACTICAS 2

Page 18: Ingeniero Informático - Cálculo Infinitesimal 2ºma1.eii.us.es/Material/CI_ii_Cuad2.pdf · Para escribir ecuaciones diferenciales con Maple, ... Observación técnica: Maple presenta

Las EDOs para las que se puede encontrar la "solución exacta" con Maple sobrepasan con mucho a

las que se podrían estudiar en un curso introductorio y se verán sólo algunos ejemplos para enfatizar

en las dificultades que podrían producirse con este tipo de programas. Por ejemplo, es necesario a

veces simplificar o modificar una EDO para que los algoritmos simbólicos que emplean se puedan

aplicar, o bien es necesario considerar dónde es válida una solución proporcionada, etc.

• La ecuación de Bernoulli.

La ecuación = + y' ( )a x y ( )b x yn de Bernoulli es una de las EDOs no lineales (si ≠ n 1 y ≠ n 0)

más sencilla y fácil de resolver, al convertirse en lineal mediante un cambio de variables.

En efecto, el procedimiento para resolver una EDO de Bernoulli es hacer = z y( ) − 1 n

. Entonces, la

EDO se transforma en la ecuación lineal en la nueva variable z,

= + z' ( ) − 1 n ( )a x z ( ) − 1 n ( )b x ,

que, una vez resuelta, da la solución de la EDO original sin más que deshacer el cambio.

Ejemplo 2.2.4 _____________ __________

La EDO = + y' y x y2 es un ejemplo de ecuación de Bernoulli, con = ( )a x 1, = ( )b x x y = n 2.

El comando odeadvisor de Maple también identifica la EDO como una ecuación de este tipo:

> ed1:= D(y)(x)+y(x)=x*y(x)^2;

:= ed1 = + ( )( )D y x ( )y x x ( )y x2

> odeadvisor(ed1);

[ ]_Bernoulli

Y, por supuesto, devuelve la solución:

> dsolve(ed1);

= ( )y x1

+ + x 1 ex

_C1

Observación importante: Como = ( )f ,x y − x y2

y y = ∂

y( )f ,x y − 2 x y 1 son continuas en R

2,

hay soluciones locales en cada punto (teorema de Picard), pero definidas en intervalos en los que no

se anule el denominador + + x 1 ex

C de la solución.

________________|

18INGENIERO INFORMATICO - C. INFINITESIMAL - CUADERNO DE PRACTICAS 2

Page 19: Ingeniero Informático - Cálculo Infinitesimal 2ºma1.eii.us.es/Material/CI_ii_Cuad2.pdf · Para escribir ecuaciones diferenciales con Maple, ... Observación técnica: Maple presenta

Por ejemplo, la solución φ1 que pasa por el punto ( )P ,1 1 / 2 es

> dsolve({ed1, y(1)=1/2}, y(x));

= ( )y x1

+ x 1

Pero, aunque = ( )φ1 x 1 / ( ) + x 1 está definida para ≠ x −1, sólo es solución del PVI en ( ) ,−1 ∞ .

> plot(1/(x+1),x=-2..2, y=-10..10);

_________________________________________|

- Ejercicio 2.4: Determinar el dominio de la solución φ2 del PVI con la EDO = + y' y x y2 del

Ejemplo 2.2.4, con la condición = ( )y −1 e. Representar gráficamente sobre unos mismos ejes las

curvas integrales de la EDO, φ1 y φ2 . ¿Se pueden cortar o coincidir en algún intervalo?

• Ecuaciones de variables separables. Solución en forma implícita.

Maple puede encontrar las soluciones de la EDO = y' ( )α x ( )β y de variables separables, pero si se

usa dsolve puede fracasar al intentar (por defecto) dar las soluciones en forma explícita. En tal

caso, puede dar resultado usar la opción implicit o una modificación de la EDO.

Ejemplo 2.2.5 _____________ __________

Maple identifica que la EDO = + y y' 3 x 0 es de variables separables.

> ed2:=y(x)*D(y)(x)+3*x;

:= ed2 + ( )y x ( )( )D y x 3 x

> odeadvisor(ed2);

[ ]_separable

• Las funciones = ( )f ,x y 3 x / y y = ∂

y( )f ,x y 3 x / y

2 son continuas sólo si ≠ y 0. El teorema de

Picard garantiza así la unicidad de la solución local que pasa por cada ( ) ,x0 y0 , con ≠ y0 0, pero

no hay información sobre la existencia o unicidad de las soluciones que pasan por ( ) ,x0 0 .

19INGENIERO INFORMATICO - C. INFINITESIMAL - CUADERNO DE PRACTICAS 2

Page 20: Ingeniero Informático - Cálculo Infinitesimal 2ºma1.eii.us.es/Material/CI_ii_Cuad2.pdf · Para escribir ecuaciones diferenciales con Maple, ... Observación técnica: Maple presenta

Por supuesto, Maple resuelve la EDO, obteniendo en forma explícita "dos" soluciones de las que se

debe seleccionar la adecuada (¡o adecuadas, si no hay unicidad!) en cada caso.

> sol:=dsolve(ed2);

:= sol , = ( )y x − + 3 x2

_C1 = ( )y x − − + 3 x2

_C1

- Por ejemplo, si exigimos = ( )y 1 −7, se tiene una solución φ1 , definida para ≤ 0 − + 3 x2

52 :

> dsolve({ed2, y(1)=-7},y(x));

= ( )y x − − + 3 x2

52

- Pero, si se toma = ( )y 1 0, las dos ramas son soluciones válidas y se pierde la unicidad del PVI:

> dsolve({ed2, y(1)=0},y(x));

, = ( )y x − + 3 x2

3 = ( )y x − − + 3 x2

3

_________________________________________|

- Ejercicio 2.5: Obtener algunas soluciones más de la EDO = + y y' 3 x 0 del ejemplo anterior

y representarlas gráficamente todas sobre unos mismos ejes. ¿Qué solución pasa por el origen?

Obsérvese que la forma usual de integrar una EDO de variables separables = + ( )M x ( )N y y' 0 es

mediante la forma implícita

+ d⌠⌡ ( )M x x d

⌠⌡ ( )N y y = C.

Por ejemplo, para la EDO = + y y' 3 x 0, que tiene las variables separadas, se tendría

> = + d⌠⌡y y d

⌠⌡3 x x C

= + 1

2y

23

2x

2C

• Con Maple también se puede solicitar la solución de una EDO en forma implícita, incluso aunque

las variables no estén separadas, con la opción implicit en el comando dsolve.

20INGENIERO INFORMATICO - C. INFINITESIMAL - CUADERNO DE PRACTICAS 2

Page 21: Ingeniero Informático - Cálculo Infinitesimal 2ºma1.eii.us.es/Material/CI_ii_Cuad2.pdf · Para escribir ecuaciones diferenciales con Maple, ... Observación técnica: Maple presenta

Ejemplo 2.2.6 _____________ __________

Para la EDO = + y y' 3 x 0 del Ejemplo 2.2.4 se obtiene:

> ed2:=y(x)*D(y)(x)+3*x;

:= ed2 + ( )y x ( )( )D y x 3 x

> dsolve(ed2,implicit);

= + − ( )y x2

3 x2

_C1 0

de donde resultan obviamente las dos ramas que pueden ser solución. Para dibujar curvas definidas

implícitamente, se puede usar implicitplot. Por ejemplo, utilizando el comando en la solución

anterior para = _C1 3, se tiene la curva integral:

> implicitplot(y^2+3*x^2=3, x=-1..1, y=-2..2);

Pero ¡atención!, de nuevo sería nuestra la responsabilidad de seleccionar la función (o funciones)

solución de cada PVI, ya que se debe tomar la parte superior de la elipse dibujada, si < 0 ( )y x0 ; la

inferior, si < 0 ( )y x0 ; o ambas partes (como dos soluciones particulares distintas), si la condición

inicial fuese = ( )y 1 0 o = ( )y −1 0.

_________________________________________|

• Otros tipos de EDOs resolubles con Maple.

Como suele haber más de un método para resolver una EDO, la solución no tiene por qué adoptar

siempre la misma forma. Por ejemplo, a veces (como cualquier humano), el odeadvisor de

Maple no reconoce una ecuación de variables separables y emplea otro procedimiento (que, incluso

pudiera no tener éxito) para encontrar la solución. Por supuesto, los algoritmos que emplea Maple

suelen resolver muchas más EDOs de las que se han considerado en teoría...

21INGENIERO INFORMATICO - C. INFINITESIMAL - CUADERNO DE PRACTICAS 2

Page 22: Ingeniero Informático - Cálculo Infinitesimal 2ºma1.eii.us.es/Material/CI_ii_Cuad2.pdf · Para escribir ecuaciones diferenciales con Maple, ... Observación técnica: Maple presenta

Ejemplo 2.2.7 _____________ __________

La ecuación diferencial = + y2

y' y 3 es autónoma (no aparece x) y por lo tanto separable, ya que

se puede despejar = y' ( ) − 3 y / y2 y escribir en la forma

= y

2y'

− 3 y1 o, si se prefiere, = −

y2

dy

− 3 y1 dx 0.

Integrando en cada variable separadamente, se tiene la solución implícita:

> Int(y^2/(3-y),y)=Int(1,x)+C;

= d

y2

− 3 yy + d

⌠⌡1 x C

> value(%);

= − − − 1

2y

23 y 9 ( )ln − + 3 y + x C

Si pedimos a Maple que la identifique, no la reconoce como de variables separables:

> ed3:=D(y)(x)*y(x)^2+y(x)=3;

:= ed3 = + ( )( )D y x ( )y x2

( )y x 3

> odeadvisor(ed3);

[ ]_quadrature

No obstante, la resuelve y por supuesto la solución es la misma que se tiene separando las variables:

> dsolve(ed3);

= + + + + x1

2( )y x

23 ( )y x 9 ( )ln − ( )y x 3 _C1 0

_________________________________________|

• Ecuaciones exactas. Factores integrantes.

Lo mismo que ha ocurrido con las ecuaciones de variables separables suele pasar también con otros

tipos de EDOs, como las exactas o las que se convierten en ecuaciones exactas mediante un factor

integrante que dependa sólo de una de las variables. Aunque Maple pudiera no identificar la EDO

tan fácilmente como nosotros (esto último es un decir...), puede que sepa resolverla.

22INGENIERO INFORMATICO - C. INFINITESIMAL - CUADERNO DE PRACTICAS 2

Page 23: Ingeniero Informático - Cálculo Infinitesimal 2ºma1.eii.us.es/Material/CI_ii_Cuad2.pdf · Para escribir ecuaciones diferenciales con Maple, ... Observación técnica: Maple presenta

Ejemplo 2.2.8 _____________ __________

La EDO = + + x y ( ) − x y y'

0 es exacta ya que = ( )M ,x y + x y y = ( )N ,x y − x y, y se tiene

= ∂

yM 1 y =

xN 1 .

Siguiendo el procedimiento usual descrito en teoría, se obtiene la solución implícita de la EDO (sin

que aparezcan logaritmos por ningún lado...), y resulta ser

= + − x

2

2y x

y2

2C ,

que incluso podemos expresar explícitamente como ( )y ,x C = x + + 2 x2

C .

• Aunque Maple no identifica la EDO como "exacta", es capaz de resolverla:

> ed4:=x+y(x)+(x-y(x))*D(y)(x);

:= ed4 + + x ( )y x ( ) − x ( )y x ( )( )D y x

> odeadvisor(ed4);

[ ], ,[ ],_homogeneous class A _rational [ ], ,_Abel 2nd type class A

> dsolve(ed4);

, = ( )y x + x + 2 x2

( )e_C1

2

= ( )y x − x + 2 x2

( )e_C1

2

Obsérvese que el algoritmo de Maple no renombra las constantes de integración (aunque se puede

hacer luego por el usuario), por lo que éstas pueden quedar "horribles" si se obtienen las soluciones

de una forma más general, pero más complicada.

> dsolve(ed4,implicit);

= + − ( )ln x1

2

ln −

− + 2 ( )y x x ( )y x2

x2

x2

_C1 0

_________________________________________|

Ejemplo 2.2.9 _____________ __________

La EDO = − y ( ) + x 6 y2

y' 0 no es exacta, pero un "integrador habilidoso" encontraría de forma

fácil un factor integrante en la forma

= ( )u y e( )d⌠⌡ ( )β y y

, con = ( )β y − Nx My

N ,

para convertirla en exacta. Maple clasifica y resuelve la EDO a su manera, evitándonos la "pesada

23INGENIERO INFORMATICO - C. INFINITESIMAL - CUADERNO DE PRACTICAS 2

Page 24: Ingeniero Informático - Cálculo Infinitesimal 2ºma1.eii.us.es/Material/CI_ii_Cuad2.pdf · Para escribir ecuaciones diferenciales con Maple, ... Observación técnica: Maple presenta

carga" (una lata, vaya) de tener que hacerlo nosotros:

> ed5:=y(x)-(x+6*y(x)^2)*D(y)(x)=0;

:= ed5 = − ( )y x ( ) + x 6 ( )y x2

( )( )D y x 0

> odeadvisor(ed5);

[ ],[ ],_homogeneous class G _rational

> dsolve(ed5,implicit);

= − x ( ) + 6 ( )y x _C1 ( )y x 0

_________________________________________|

Es evidente que Maple resuelve más tipos de EDOs de las que se han estudiado en teoría, y además

se pueden obtener soluciones numéricamente, por lo que sólo nos queda hacer lo que Maple no

puede: Utilizar la "materia gris" para emplear la fantástica "calculadora" con cordura...

Por ejemplo, Maple no es en absoluto necesario para determinar que = ( )φ x 3 es la única solución

de equilibrio de la EDO autónoma = + y2

y' y 3 del Ejemplo 2.2.7.

- Ejercicio 2.6: Dibujar algunas soluciones particulares de la EDO = + y2

y' y 3 en el intervalo

[ ],−1 1 . ¿Pasa alguna solución por el punto ( ) ,1 2 ? ¿Y por ( ) ,1 −2 ? Analizar gráficamente el

comportamiento de las soluciones que pasan por puntos próximos a la solución de equilibrio en el

intervalo [ ],0 10 . ¿Cómo es la solución de equilibrio, atractiva o repulsiva?

2.3 Ecuaciones diferenciales lineales de orden superior.

> restart;

> with(plots):

> with(DEtools, odeadvisor):

> with(linalg, wronskian, det):

El comando dsolve, como se vio en la primera sección, puede resolver algunas EDOs de orden

superior en forma explícita y numérica, tanto lineales como no lineales. Además, en cualquier caso,

siempre puede ayudar a modo de "calculadora simbólica" para encontrar y comprobar la solución.

24INGENIERO INFORMATICO - C. INFINITESIMAL - CUADERNO DE PRACTICAS 2

Page 25: Ingeniero Informático - Cálculo Infinitesimal 2ºma1.eii.us.es/Material/CI_ii_Cuad2.pdf · Para escribir ecuaciones diferenciales con Maple, ... Observación técnica: Maple presenta

EDO lineal con coeficientes constantes.

En particular, para la EDO lineal de coeficientes constantes completa,

:= ed = + + + + y( ) n

a1 y( ) − n 1

... a − n 1 y' an y ( )b x ,

Maple encuentra un sistema fundamental de soluciones φi de su ecuación homogénea asociada,

:= edH = + + + + y( ) n

a1 y( ) − n 1

... a − n 1 y' an

y 0 ,

así como la solución general ( )φH , , ,x C1 ... Cn de la EDO edH, como una combinación lineal de

n términos = ( )φi x xk

e( )r x

, siempre que puede hallar las raíces r de su ecuación característica,

:= eq_car = + + + + rn

a1 r( ) − n 1

... a − n 1 r an 0.

En tal caso, también puede encontrar a veces una solución particular, = y ( )yp

x , de la ecuación ed

completa. Por lo tanto, Maple devuelve la solución general de la EDO ed en la forma usual:

= φ + ( )φH , , ,x C1 ... Cn ( )yp x .

Ejemplo 2.3.1________________________

Para la EDO lineal = + − + y''' y'' 5 y' 3 y −7 ex, siendo = ( )b x −7 e

x, Maple obtiene la solución:

> edH:=(D@@3)(y)(x)+(D@@2)(y)(x)-5*D(y)(x)+3*y(x);

:= edH + − + ( )( )( )D( )3

y x ( )( )( )D( )2

y x 5 ( )( )D y x 3 ( )y x

> b:= -7*exp(x);

:= b −7 ex

> ed:= edH=b;

:= ed = + − + ( )( )( )D( )3

y x ( )( )( )D( )2

y x 5 ( )( )D y x 3 ( )y x −7 ex

> dsolve(ed);

= ( )y x − + − + + + 7

8x

2e

x7

16e

xx

7

64e

x_C1 e

x_C2 e

( )−3 x_C3 e

xx

luego (sin el subrayado de las constantes), se obtiene = φ + ( )φH , , ,x C1 C2 C3 ( )yp x , donde

= ( )φH , , ,x C1 C2 C3 + + C1 ex

C2 e( )−3 x

C3 x ex e = ( )yp x − −

7 x ex

16

7 x2

ex

8

7 ex

64 .

25INGENIERO INFORMATICO - C. INFINITESIMAL - CUADERNO DE PRACTICAS 2

Page 26: Ingeniero Informático - Cálculo Infinitesimal 2ºma1.eii.us.es/Material/CI_ii_Cuad2.pdf · Para escribir ecuaciones diferenciales con Maple, ... Observación técnica: Maple presenta

Obsérvación importante: Nótese que − + 7 e

x

64C1 e

x se puede expresar de modo más simple

como C1 ex, con = C1 − + 7 / 64 C1; y de modo análogo, la suma de términos en e

xx se puede

expresar por C2 ex

x ; por lo tanto, sería más "cómodo" renombrar las constantes de integración

para expresar la solución de la EDO ed en la forma

( )φ , , ,x C1 C2 C3 = + + − C1 ex

C2 x ex

C3 e( )−3 x 7 x

2e

x

8 .

________________|

De hecho, así es como se habría obtenido la solución ("a mano") con el método de los coeficientes

indeterminados para hallar la solución particular: se habría elegido = ( )yp x A x2

ex para determinar

la constante indeterminada A, ya que tanto ex como x e

x son soluciones particulares de la EDO

homogénea asociada, edH, como prueba el hecho de que = r 1 es una raíz doble de su ecuación

característica, = + − + r3

r2

5 r 3 0.

> solve(r^3+r^2-5*r+3=0);

, ,-3 1 1

_________________________________________|

Analizando el comportamiento asintótico de algunas curvas integrales representativas de la familia,

se puede ilustrar el comportamiento de las demás cuando, por ejemplo, las constantes no nulas son

las mismas o tienen el mismo signo, o tienen las gráficas en el mismo cuadrante, etc.

• Con Maple, se pueden dibujar soluciones particulares dando valores concretos a las constantes de

integración, para observar los distintos comportamientos asintóticos de las curvas integrales para

→ x ∞ y para → x −∞, así como detalles en entornos de puntos en los que se esté interesado.

Ejemplo 2.3.1 (Continuación)__________

Podemos construir una función ( )φ , , ,x C1 C2 C3 , para la solución general de la EDO ed :

> := φ → ( ), , ,x C1 C2 C3 + + − C1 ex

C2 x ex

C3 e( )−3 x 7 x

2e

x

8

y analizar algunos comportamientos asintóticos tipo. Por ejemplo,

- Para = C1 C2 = = C3 0 se obtiene = ( )φ1 x −7 x2

ex

/ 8. Luego, → ( )φ1 x 0 para → x −∞; y

26INGENIERO INFORMATICO - C. INFINITESIMAL - CUADERNO DE PRACTICAS 2

Page 27: Ingeniero Informático - Cálculo Infinitesimal 2ºma1.eii.us.es/Material/CI_ii_Cuad2.pdf · Para escribir ecuaciones diferenciales con Maple, ... Observación técnica: Maple presenta

para → x ∞, se tiene → ( )φ1 x −∞.

- Para = C1 C2 = 0 y = C3 1, se obtiene = ( )φ2 x − e( )−3 x

7 x2

ex

/ 8. Luego, → ( )φ2 x ∞ para

→ x −∞; y por otro lado, ( )φ2 x tiende a ( )φ1 x para → x ∞ (luego, también diverge a −∞).

- Si = C1 0, = C2 1 y = C3 −1, es = φ3 − − x ex

ex

7 x2

ex

/ 8. Y → ( )φ3 x −∞ si → x −∞ ó ∞.

> plot([phi(x,0,0,0),phi(x,0,0,1),phi(x,0,1,-1)],

x=-infinity..infinity, color=[red,blue,green],thickness=2);

Podemos hacer un zoom para ver en detalle el comportamiento en un entorno del origen:

> plot([phi(x,0,0,0),phi(x,0,0,1),phi(x,0,1,-1)],

x=-3..3,y=-3..3, color=[red,blue,green],thickness=2);

_________________________________________|

- Ejercicio 3.1: ¿Qué tipo de solución particular ( )yp

x habría que elegir con el método de los

coeficientes indeterminados para la EDO del Ejemplo 2.3.1 si = ( )b x − 3 x ( )cos 2 x 7 ex fuese el

término independiente? Comprobar que la solución que proporciona Maple, una vez eliminada la

parte que sea solución de la EDO homogénea asociada, confirma el pronóstico.

Para una EDO lineal ed que Maple pueda resolver, dsolve, con la opción output=basis,

devuelve el sistema fundamental de soluciones = S { }, , ,φ1 φ2 ... φn de la EDO homogénea edH y

27INGENIERO INFORMATICO - C. INFINITESIMAL - CUADERNO DE PRACTICAS 2

Page 28: Ingeniero Informático - Cálculo Infinitesimal 2ºma1.eii.us.es/Material/CI_ii_Cuad2.pdf · Para escribir ecuaciones diferenciales con Maple, ... Observación técnica: Maple presenta

la solución yp que Maple ha considerado. Por supuesto, el resultado no tiene por qué ser el que se

hubiera obtenido a mano o con otro programa de cálculo simbólico (o incluso con otra versión de

Maple), como se ha comprobado en el Ejemplo 2.3.1 y en el Ejercicio 3.1.

En efecto, hay "infinitas" soluciones particulares = y ( )yp x de una EDO ed, y cualquiera de ella

hubiera sido válida; análogamente, se podría haber considerado cualquier otro sistema fundamental

de soluciones de la EDO edH, ya que tomando n combinaciones lineales de las funciones de un

sistema fundamental de soluciones = S { }, , ,φ1 φ2 ... φn se obtiene un nuevo sistema fundamental

= SN { }, ,y1 ... yn , siempre que no sea nulo el wronskiano, definido por

= ( )W { }, , ,y1 y2 ... yn

y1 y2 ... yn

y'1 y'2 ... y'n

... ... ... ...

y1 ( ) − n 1

y2 ( ) − n 1

... yn ( ) − n 1

.

• Así que debe tenerse presente que la expresión de la solución general de una EDO no tiene por

qué ser siempre la misma.

Ejemplo 2.3.2________________________

Para acceder al sistema fundamental S y a la solución particular yp que Maple obtuvo al resolver la

EDO = + − + y''' y'' 5 y' 3 y −7 ex, en el Ejemplo 2.3.1, se emplea dsolve en la forma:

> := ed = + − + ( )( )( )D( )3

y x ( )( )( )D( )2

y x 5 ( )( )D y x 3 ( )y x −7 ex

>

> dsolve(ed,y(x), output=basis);

,[ ], ,e

xe

( )−3 xx e

x− + −

7

8x

2e

x7

16x e

x7

64e

x

- Por supuesto, tanto = ( )yp x − + − 7 x

2e

x

8

7 ex

x

16

7 ex

64 como = ( )yp x −

7 x2

ex

8 , eliminando la

parte que es solución de la ecuación homogénea asociada, son ambas soluciones particulares de la

EDO completa ed , válidas para expresar su solución general en la forma = φ + φH ( )yp x .

> ; := yp1 → x − + − 7 x

2e

x

8

7 ex

x

16

7 ex

64 := yp2 → x −

7 x2

ex

8>

> subs(y=yp1,ed); simplify(%);

28INGENIERO INFORMATICO - C. INFINITESIMAL - CUADERNO DE PRACTICAS 2

Page 29: Ingeniero Informático - Cálculo Infinitesimal 2ºma1.eii.us.es/Material/CI_ii_Cuad2.pdf · Para escribir ecuaciones diferenciales con Maple, ... Observación técnica: Maple presenta

= + − + ( )( )( )D( )3

yp1 x ( )( )( )D( )2

yp1 x 5 ( )( )D yp1 x 3 ( )yp1 x −7 ex

= −7 ex −7 e

x

> subs(y=yp2,ed); simplify(%);

= + − + ( )( )( )D( )3

yp2 x ( )( )( )D( )2

yp2 x 5 ( )( )D yp2 x 3 ( )yp2 x −7 ex

= −7 ex

−7 ex

Obsérvese que, de hecho, valdría como solución particular de la EDO ed, cualquier = y ( )yp x que

se hubiera hallado por algún procedimiento distinto, siempre que yp se pudiera obtener con valores

concretos de las constantes de integración C1 , C2 , C3 en la solución general de la EDO:

> := yp → x + + − A ex

B x ex

C e( )−3 x 7 x

2e

x

8> subs(y=yp,ed); simplify(%);

= + − + ( )( )( )D( )3

yp x ( )( )( )D( )2

yp x 5 ( )( )D yp x 3 ( )yp x −7 ex

= −7 ex

−7 ex

- Por otra parte, con la ayuda de Maple, podemos verificar fácilmente que = S { }, ,ex

x ex

e( )−3 x

es

un sistema fundamental de soluciones de la EDO homogénea edH asociada a la EDO ed.

En efecto, el comando wronskian del paquete linalg calcula el wronskiano de las funciones

componentes de un vector (declarado con el comando vector). Y el comando det, calcula el

determinante de una matriz.

1. Así que evidentemente las funciones , ,ex

x ex

e( )−3 x

, son soluciones de la ecuación edH :

> := edH + − + ( )( )( )D( )3

y x ( )( )( )D( )2

y x 5 ( )( )D y x 3 ( )y x

> := ygH → x + + C1 ex

C2 e( )−3 x

C3 x ex

> subs(y=ygH,edH); simplify(%);

+ − + ( )( )( )D( )3

ygH x ( )( )( )D( )2

ygH x 5 ( )( )D ygH x 3 ( )ygH x

0

2. Y el wronskiano de S no se anula en el conjunto R de los números reales.

> S:=vector([exp(x), x*exp(x), exp(-3*x)]);

:= S [ ], ,ex

x ex

e( )−3 x

> wrS:= wronskian(S,x);

29INGENIERO INFORMATICO - C. INFINITESIMAL - CUADERNO DE PRACTICAS 2

Page 30: Ingeniero Informático - Cálculo Infinitesimal 2ºma1.eii.us.es/Material/CI_ii_Cuad2.pdf · Para escribir ecuaciones diferenciales con Maple, ... Observación técnica: Maple presenta

:= wrS

ex

x ex

e( )−3 x

ex + e

xx e

x −3 e( )−3 x

ex

+ 2 ex

x ex

9 e( )−3 x

> simplify(det(wrS));

16 e( )−x

Luego, efectivamente, = S { }, ,ex

x ex

e( )−3 x

es una sistema fundamental de soluciones de la EDO

homogénea edH, válido para todo R.

• Tomando una matriz cuadrada A3 x 3 de rango 3, también valdría como sistema fundamental de

soluciones el obtenido por las componentes de A S (el sistema S , se pone como columna).

- Por ejemplo, con = A

1 0 0

1 2 0

1 2 3

, se tiene = SN { }, ,ex

+ ex

2 x ex

+ + ex

2 x ex

3 e( )−3 x

, que es

un nuevo sistema fundamental de la EDO edH, ya que las combinaciones lineales de soluciones

de una ecuación homogénea también lo son; y por otra parte, el wronskiano de las nuevas

funciones tampoco se anula en R:

> := SN [ ], ,ex

+ ex

2 x ex

+ + ex

2 x ex

3 e( )−3 x

:= SN [ ], ,ex + e

x2 x e

x + + ex

2 x ex

3 e( )−3 x

> wrSN:= wronskian(SN,x);

:= wrSN

ex + e

x2 x e

x + + ex

2 x ex

3 e( )−3 x

ex

+ 3 ex

2 x ex

+ − 3 ex

2 x ex

9 e( )−3 x

ex

+ 5 ex

2 x ex

+ + 5 ex

2 x ex

27 e( )−3 x

> simplify(det(wrSN));

96 e( )−x

_________________________________________|

- Ejercicio 3.2:

(1) Resolver la EDO = + − y'' 2 y' 3 y − ( )cos x x e( )−3 x

con Maple y simplificar si es posible la

solución general que proporciona. Obtener otro sistema fundamental de soluciones de la EDO

homogénea asociada, comprobando que efectivamente lo es.

(2) Dibujar algunas curvas integrales de la EDO completa y analizar su comportamiento para

→ x −∞, → x ∞, por separado, y luego en un entorno de = x 0.

30INGENIERO INFORMATICO - C. INFINITESIMAL - CUADERNO DE PRACTICAS 2

Page 31: Ingeniero Informático - Cálculo Infinitesimal 2ºma1.eii.us.es/Material/CI_ii_Cuad2.pdf · Para escribir ecuaciones diferenciales con Maple, ... Observación técnica: Maple presenta

• ¿Coeficientes indeterminados o variación de parámetros?

Para encontrar la solución particular yp de una EDO lineal completa, en el supuesto de tener un

sistema fundamental de soluciones de la EDO homogénea asociada (esto es siempre posible para

cualquier EDO de coeficientes constantes de orden ≤ 4), suele usarse el método de los coeficientes

indeterminados (cuando se puede aplicar), o el de variación de parámetros (que funciona siempre).

En teoría, el método de variación de parámetros encuentra la solución particular de cualquier EDO

lineal completa de coeficientes constantes. Sin embargo, a causa de su generalidad, es bastante más

complicado de aplicar que el método de los coeficientes indeterminados. Podemos utilizar Maple

como calculadora simbólica (sólo como ayuda en las "cuentas") para ilustrarlo con un ejemplo.

Ejemplo 2.3.3________________________

La EDO homogénea asociada a = + − y'' 2 y' 3 y − ( )cos x x e( )−3 x

(propuesta en el Ejercicio 3.2),

tiene el sistema fundamental de soluciones = S { },ex

e( )−3 x

.

> := edH + − ( )( )( )D( )2

y x 2 ( )( )D y x 3 ( )y x

> dsolve(edH,output=basis);

[ ],ex

e( )−3 x

Supongamos que no se dispone de Maple (en un examen, por ejemplo) y se tiene que encontrar la

solución general de la EDO. Una vez obtenido el sistema fundamental = S { },ex

e( )−3 x

, se tiene

= ( )φ , ,x C1 C2 + + C1 ex

C2 e( )−3 x

( )yp x ,

y sólo queda determinar = y ( )yp

x .

• Método de los coeficientes indeterminados.

El método de los coeficientes indeterminados predice para = y ( )yp x una solución del tipo

= ( )yp x + + A ( )sen x B ( )cos x x ( ) + C D x e( )−3 x

con las constantes indeterminadas que se hallan sustituyendo en la EDO lineal completa.

31INGENIERO INFORMATICO - C. INFINITESIMAL - CUADERNO DE PRACTICAS 2

Page 32: Ingeniero Informático - Cálculo Infinitesimal 2ºma1.eii.us.es/Material/CI_ii_Cuad2.pdf · Para escribir ecuaciones diferenciales con Maple, ... Observación técnica: Maple presenta

- Maple puede ayudar a resumir los cálculos. Lo haremos paso a paso (para reforzar la teoría):

> b:=cos(x)-x*exp(-3*x);

:= b − ( )cos x x e( )−3 x

>

> yp:=x->A*sin(x)+B*cos(x)+x*(C+D*x)*exp(-3*x);

:= yp → x + + A ( )sin x B ( )cos x x ( ) + C D x e( )−3 x

1. Se sustituyen la solución pronosticada yp y sus derivadas en la EDO completa ed :

> ed:= edH-b=0;

:= ed = + − − + ( )( )( )D( )2

y x 2 ( )( )D y x 3 ( )y x ( )cos x x e( )−3 x

0

> subs(y=yp,ed);

= + − − + ( )( )( )D( )2

yp x 2 ( )( )D yp x 3 ( )yp x ( )cos x x e( )−3 x

0

> simplify(%);

4 A ( )sin x 4 B ( )cos x 2 D e( )−3 x

4 e( )−3 x

C 8 x D e( )−3 x

2 A ( )cos x 2 B ( )sin x− − + − − + −

( )cos x x e( )−3 x

− + 0 =

2. Se agrupan las expresiones. El comando collect lo hace casi como se haría a mano:

> collect(%,{sin(x),cos(x),x,exp(-3*x)});

+ + + ( )− + 8 D 1 e( )−3 x

x ( )− + 4 C 2 D e( )−3 x

( )− − + 4 B 1 2 A ( )cos x ( )− − 4 A 2 B ( )sin x =

0

3. Se resuelve el sistema de ecuaciones algebraicas en las constantes indeterminadas:

> Seq:=Seq:={-8*D+1,-4*C+2*D,-4*B-1+2*A,-4*A-2*B};;

:= Seq { }, , , − − 2 A 4 B 1 − 2 D 4 C − + 8 D 1 − − 2 B 4 A

> sol_Seq:=solve(Seq,{A,B,C,D});

:= sol_Seq { }, , , = D1

8 = B

-1

5 = A

1

10 = C

1

16

4. Finalmente, se sustituyen los valores hallados para las constantes indeterminadas en la expresión

pronosticada de = y ( )yp x , y se obtiene la solución particular buscada:

32INGENIERO INFORMATICO - C. INFINITESIMAL - CUADERNO DE PRACTICAS 2

Page 33: Ingeniero Informático - Cálculo Infinitesimal 2ºma1.eii.us.es/Material/CI_ii_Cuad2.pdf · Para escribir ecuaciones diferenciales con Maple, ... Observación técnica: Maple presenta

> y[p]:=subs(sol_Seq, yp(x));

:= yp − + 1

10( )sin x

1

5( )cos x x

+

1

16

1

8x e

( )−3 x

Obsérvese que se ha encontrado = y ( )yp x (y por lo tanto, la solución general = φ + φH yp de la

ecuación ed ), sin tener que evaluar ninguna integral: sólo se ha tenido que derivar, sustituir y

finalmente resolver un sistema de ecuaciones algebraicas (a mano, unos "minutillos").

• Método de variación de parámetros.

Aunque el método de variación de parámetros para hallar la solución particular = y ( )yp x sería una

temeridad en un ejemplo como este, vamos a aplicarlo también paso a paso, para compararlo con el

método anterior y resaltar dónde aparece su complejidad.

> restart;

> b:=cos(x)-x*exp(-3*x):

> edH:=(D@@2)(y)(x)+2*D(y)(x)- 3*y(x):

La solución yp es de la forma = yp + v1 φ1 v2 φ2 , con = φ1 ex y = φ2 e

( )−3 x, y ahora se tienen que

hallar las funciones (que no constantes...) = v1 ( )v1 x y = v2 ( )v2 x .

> phi[1]:=exp(x); phi[2]:=exp(-3*x);

:= φ1 ex

:= φ2 e( )−3 x

> yp:=v1*phi[1]+v2*phi[2];

:= yp + v1 ex

v2 e( )−3 x

Paso 1. Se plantea el sistema = Sv

= + v'1 φ1 v'2 φ2 0

= + v'1 φ '1 v'2 φ '2 ( )b x

Por comodidad, denotemos las incógnitas en el código por = v'1 dv1 y = v'2 dv2 :

> := Sv { }, = + dv1 φ1 dv2 φ2 0 = + dv1

xφ1 dv2

xφ2 b

33INGENIERO INFORMATICO - C. INFINITESIMAL - CUADERNO DE PRACTICAS 2

Page 34: Ingeniero Informático - Cálculo Infinitesimal 2ºma1.eii.us.es/Material/CI_ii_Cuad2.pdf · Para escribir ecuaciones diferenciales con Maple, ... Observación técnica: Maple presenta

:= Sv { }, = + dv1 ex

dv2 e( )−3 x

0 = − dv1 ex

3 dv2 e( )−3 x

− ( )cos x x e( )−3 x

Paso 2. Se resuelve el sistema Sv en las incógnitas { },v'1 v'2 :

> dv:=solve(Sv, {dv1,dv2});

:= dv { }, = dv21

4

− + ( )cos x x e( )−3 x

e( )−3 x

= dv1 −1

4

− + ( )cos x x e( )−3 x

ex

> dv:=simplify(%);

:= dv { }, = dv21

4e

( )3 x( )− + ( )cos x x e

( )−3 x = dv1 −

1

4e

( )−x( )− + ( )cos x x e

( )−3 x

Paso 3. Se hallan (¡dos integrales!) los valores = v1 d⌠

⌡ ( )v'1 x x y = v2 d

⌡ ( )v'2 x x :

> ; := v1 d

1 ( ) − ( )cos x e( )3 x

x e( )−4 x

4x := v2 d

− + 1 ( )cos x e

( )3 x

4

1 x

4x

:= v1 − + + + 1

8e

( )−x( )cos x

1

8e

( )−x( )sin x

1

16

x

( )ex

4

1

64

1

( )ex

4

:= v2 − − + 3

40( )cos x e

( )3 x 1

40( )sin x e

( )3 x x2

8

Obsérvese que en este caso, las primitivas involucradas se podrían haber obtenido incluso a mano

(por partes, con un poco de paciencia), pero podemos hacernos una idea del tiempo que se tardaría

(además del riesgo de cometer errores) y lo que puede pasar con algunos ( )b x más complicados...

Luego, debe quedar claro que, en general, el método de variación de parámetros se debe reservar

para cuando no se pueda aplicar el método de los coeficientes indeterminados.

Paso 4. Finalmente, = ( )yp x + ( )v1 x ( )φ1 x ( )v2 x ( )φ2 x (ojo, yp depende sólo de x) :

> y[p]:=v1*phi[1]+v2*phi[2];

yp

− + + + 1

8e

( )−x( )cos x

1

8e

( )−x( )sin x

1

16

x

( )ex

4

1

64

1

( )ex

4e

x :=

− − +

3

40( )cos x e

( )3 x 1

40( )sin x e

( )3 x x2

8e

( )−3 x +

34INGENIERO INFORMATICO - C. INFINITESIMAL - CUADERNO DE PRACTICAS 2

Page 35: Ingeniero Informático - Cálculo Infinitesimal 2ºma1.eii.us.es/Material/CI_ii_Cuad2.pdf · Para escribir ecuaciones diferenciales con Maple, ... Observación técnica: Maple presenta

... que, simplificando, proporciona el valor de ( )yp x .

> y[p]:=simplify(y[p]);

:= yp − + + + + 1

5( )cos x

1

10( )sin x

1

16x e

( )−3 x 1

64e

( )−3 x 1

8e

( )−3 xx

2

> collect(y[p],{exp(-3*x)});

− +

+ +

1

16x

1

64

1

8x

2e

( )−3 x 1

5( )cos x

1

10( )sin x

>

Obsérvese que si se prescinde de e( )−3 x

/ 64 , que es solución de la EDO homogénea y puede ser

incluida en la parte C1 e( )−3 x

de la solución general = ( )φ , ,x C1 C2 + + C1 ex

C2 e( )−3 x

( )yp x , se ha

encontrado la solución yp del método anterior.

_________________________________________|

- Ejercicio 3.3:

(1) Resolver la EDO = + − y'' 2 y' 3 y ( )b x , hallando la solución particular con los métodos de

coeficientes indeterminados y variación de parámetros (con la ayuda de Maple), para = ( )b x −x.

(2) Luego, intentar aplicar ambos métodos para el caso = ( )b x −1 / x, con < 0 x, pronosticando

una solución del mismo tipo para el método de los coeficientes indeterminados.

PVI con una EDO lineal de coeficientes constantes.

> restart;

• Para hallar la solución de un PVI con Maple, como en los ejemplos de la primera sección, no hay

más que añadir las condiciones iniciales a la EDO (empleando la sintaxis correctamente).

No obstante, como en el Ejemplo 2.3.3, se puede usar Maple como "calculadora" para ilustrar cómo

se determinan las constantes mediante la resolución del sistema que proporciona la sustitución en la

EDO de las condiciones iniciales. De paso, podemos aclarar un error "tonto" que se puede cometer

al resolver un PVI a mano.

Ejemplo 2.3.4________________________

La solución del PVI determinado por la EDO = + − y'' 2 y' 3 y − ( )cos x x e( )−3 x

, del Ejemplo 2.3.3,

35INGENIERO INFORMATICO - C. INFINITESIMAL - CUADERNO DE PRACTICAS 2

Page 36: Ingeniero Informático - Cálculo Infinitesimal 2ºma1.eii.us.es/Material/CI_ii_Cuad2.pdf · Para escribir ecuaciones diferenciales con Maple, ... Observación técnica: Maple presenta

con las condiciones iniciales = ( )y 0 0, = ( )y' 0 −1, viene dada directamente por el código

> := ed = + − ( )( )( )D( )2

y x 2 ( )( )D y x 3 ( )y x − ( )cos x x e( )−3 x

> := cond , = ( )y 0 0 = ( )( )D y 0 −1

> dsolve({ed,cond}, y(x));

= ( )y x − − + 1

320e

( )−3 x( ) − − − − 64 ( )cos x e

( )3 x32 e

( )3 x( )sin x 20 x 5 40 x

2 9

64e

x13

40e

( )−3 x

Pero si se hubiese hecho a mano, se habría seguido el procedimiento estándar:

1. Se calcula la solución general:

> solg:=dsolve(ed);

solg ( )y x = :=

− + + 1

320e

( )−3 x( ) − − − − 64 ( )cos x e

( )3 x32 e

( )3 x( )sin x 20 x 5 40 x

2_C1 e

x_C2 e

( )−3 x

2. Se obtienen las ecuaciones algebraicas resultantes de sustituir = ( )y 0 0, = ( )y' 0 −1, en la

función solución de la EDO, = ( )y x ( )φ , ,x C1 C2 , y en su derivada = ( )y' x∂

x( )φ , ,x C1 C2 :

> phi := unapply(rhs(solg),x);

φ :=

→ x − + + 1

320e

( )−3 x( ) − − − − 64 ( )cos x e

( )3 x32 e

( )3 x( )sin x 20 x 5 40 x

2_C1 e

x_C2 e

( )−3 x

> eq1:= 0 = phi(0);

:= eq1 = 0 − + + 59

320_C1 _C2

> eq2:= -1 = D(phi)(0);

:= eq2 = -1 + − 37

320_C1 3 _C2

3. Se resuelve el sistema en las constantes indeterminadas { },C1 C2 :

> sol_Seq:=solve({eq1,eq2},{_C1,_C2});

:= sol_Seq { }, = _C1-9

64 = _C2

13

40

4. Finalmente, se sustituyen los valores obtenidos en la solución general:

36INGENIERO INFORMATICO - C. INFINITESIMAL - CUADERNO DE PRACTICAS 2

Page 37: Ingeniero Informático - Cálculo Infinitesimal 2ºma1.eii.us.es/Material/CI_ii_Cuad2.pdf · Para escribir ecuaciones diferenciales con Maple, ... Observación técnica: Maple presenta

> subs(sol_Seq, 'phi'(x)=phi(x) );

= ( )φ x − − + 1

320e

( )−3 x( ) − − − − 64 ( )cos x e

( )3 x32 e

( )3 x( )sin x 20 x 5 40 x

29

64e

x13

40e

( )−3 x

... y por supuesto se obtiene la solución del PVI proporcionada directamente por Maple:

> dsolve({ed,cond}, y(x));

= ( )y x − − + 1

320e

( )−3 x( ) − − − − 64 ( )cos x e

( )3 x32 e

( )3 x( )sin x 20 x 5 40 x

29

64e

x13

40e

( )−3 x

_________________________________________|

Observación importante: Un error frecuente en los principiantes (cuando se hace a mano) se

comete si los valores de las constantes se determinan sobre la solución ( )φH

, ,x C1 C2 de la EDO

homogénea asociada a la EDO completa (el error suele aparecer bien porque φH aparece antes de

calcular yp o bien porque resulta más cómodo utilizar la EDO homogénea que la completa):

> := edH + − ( )( )( )D( )2

y x 2 ( )( )D y x 3 ( )y x

> := cond , = ( )y 0 0 = ( )( )D y 0 −1

> dsolve({edH,cond}, y(x));

= ( )y x − + 1

4e

x1

4e

( )−3 x

• Si se añade ahora una solución particular correcta de la EDO general, por ejemplo la obtenida en

el Ejemplo 2.3.3, con el método de los coeficientes indeterminados,

= ( )yp x − + ( )sin x

10

( )cos x

5x

+

1

16

x

8e

( )−3 x

cuando se toma como solución del PVI la solución

= ( )φ x − + + e

x

4

e( )−3 x

4( )yp x

se ha cometido un error irreparable.

37INGENIERO INFORMATICO - C. INFINITESIMAL - CUADERNO DE PRACTICAS 2

Page 38: Ingeniero Informático - Cálculo Infinitesimal 2ºma1.eii.us.es/Material/CI_ii_Cuad2.pdf · Para escribir ecuaciones diferenciales con Maple, ... Observación técnica: Maple presenta

- En efecto, la solución ( )φ x obtenida como solución del PVI verifica la EDO obviamente, al ser

también una solución particular de la ecuación:

> := φ → x − + + − + e

x

4

e( )−3 x

4

( )sin x

10

( )cos x

5x

+

1

16

x

8e

( )−3 x

> := ed = edH − ( )cos x x e( )−3 x

:= ed = + − ( )( )( )D( )2

y x 2 ( )( )D y x 3 ( )y x − ( )cos x x e( )−3 x

> subs(y=phi,ed); simplify(%);

= + − ( )( )( )D( )2

φ x 2 ( )( )D φ x 3 ( )φ x − ( )cos x x e( )−3 x

= − ( )cos x x e( )−3 x

− ( )cos x x e( )−3 x

¡Pero no las condiciones iniciales!

> subs(y=phi,[cond]); simplify(%);

[ ], = ( )φ 0 0 = ( )( )D φ 0 -1

, =

-1

50 =

-67

80-1

________________|

Así que, cuidado, el orden correcto a seguir al resolver un PVI con una EDO lineal es:

1) Hallar la solución general de la EDO completa: = ( )φ , , ,x C1 ... Cn + ( )φH , , ,x C1 ... Cn yp .

2) Determinar las constantes , ,C1 ... Cn , para que + φH yp verifique las condiciones iniciales.

- Ejercicio 3.4: Resolver a mano (pero con la ayuda de Maple) el PVI determinado por la EDO

= + − y'' 2 y' 3 y −x (propuesta en el Ejercicio 3.3), con = ( )y 0 0, = ( )y' 0 −1, y verificar de

nuevo que "la inversión del orden" al determinar las constantes de la solución del PVI conduce a

error. Dibujar las dos soluciones sobre unos mismos ejes en un entorno del origen.

¿Puede elegirse un ( )b x de modo que operando en la forma incorrecta anterior no se cometiera

error...? ¿Cuántas soluciones de la EDO pasan por el origen? Dibujar algunas de ellas.

38INGENIERO INFORMATICO - C. INFINITESIMAL - CUADERNO DE PRACTICAS 2

Page 39: Ingeniero Informático - Cálculo Infinitesimal 2ºma1.eii.us.es/Material/CI_ii_Cuad2.pdf · Para escribir ecuaciones diferenciales con Maple, ... Observación técnica: Maple presenta

Ecuación lineal con coeficientes variables. Soluciones usando series.

> restart;

> with(plots):

Una EDO lineal homogénea de segundo orden que no sea de coeficientes constantes,

= + + y'' ( )a1 x y' ( )a2 x y 0 ,

puede ser resuelta si es una EDO de Euler. Maple, tiene implementado también cómo obtener la

solución (y la de algunas otras), pero pocas soluciones explícitas más puede proporcionar dsolve.

• Puntos ordinarios. Solución en serie de potencias.

Como en general no se puede encontrar la solución explícita de una EDO lineal homogénea de 2º

orden, Maple tampoco puede. No obstante, a veces, sí se pueden hallar los primeros términos del

desarrollo en serie de potencias de la solución, centrado en el origen, aunque Maple supone que es

un punto ordinario; por tanto, es responsabilidad del usuario analizar que las funciones ( )a1 x y

( )a2 x son analíticas en = x 0 (para = x x0 se cambia la variable independiente a = t − x x0 ) y el

radio de convergencia máximo que puede tener el desarrollo de la solución.

De nuevo, se obtiene esta forma de la solución usando dsolve, ahora con la opción series.

Ejemplo 2.3.5________________________

Para la EDO homogénea de coeficientes constantes que venimos utilizando, = + − y'' 2 y' 3 y 0,

todos los puntos son ordinarios, y en particular el origen = x 0. Además, como el máximo de los

radios de convergencia de los "desarrollos" = ( )a x + + 2 0 ... y = ( )b x − + + 3 0 ... es ∞, el de la

solución en el origen, = ( )φ , ,x C1 C2 ∑ an xn, también es válido para todo x de R.

> := ed1 = + − ( )( )( )D( )2

y x 2 ( )( )D y x 3 ( )y x 0

> dsolve(ed1);

= ( )y x + _C1 ex

_C2 e( )−3 x

Aunque sería una bobada utilizar el método de los desarrollos en serie para encontrar los primeros

términos de la solución de una EDO como la del ejemplo (en la que el desarrollo de la solución es

inmediato), podemos ilustrar cómo se obtienen los primeros términos con Maple:

> dsolve(ed1,y(x),series);

39INGENIERO INFORMATICO - C. INFINITESIMAL - CUADERNO DE PRACTICAS 2

Page 40: Ingeniero Informático - Cálculo Infinitesimal 2ºma1.eii.us.es/Material/CI_ii_Cuad2.pdf · Para escribir ecuaciones diferenciales con Maple, ... Observación técnica: Maple presenta

( )y x ( )y 0 ( )( )D y 0 x

− + ( )( )D y 0

3

2( )y 0 x

2

7

6( )( )D y 0 ( )y 0 x

3 + + + + =

− +

5

6( )( )D y 0

7

8( )y 0 x

4

61

120( )( )D y 0

1

2( )y 0 x

5( )O x

6 + +

Obsérvese que al no indicarse previamente las condiciones iniciales, ( )y 0 e ( )y' 0 se toman como

constantes de integración; por otro lado, el orden del desarrollo se puede especificar con la variable

Order, que por defecto tiene la asignación Order:=6.

> Order:=5:

> sol:=dsolve({ed1,y(0)=C[1],D(y)(0)=C[2]},y(x),series);

sol ( )y x C1 C2 x

− + C2

3

2C1 x

2

7

6C2 C1 x

3

− +

5

6C2

7

8C1 x

4 + + + + + = :=

61

120C2

1

2C1 x

5( )O x

6 +

La parte común a C1 y la parte común a C2 forman un sistema fundamental de soluciones:

> subs({C[1]=1,C[2]=0},sol);

= ( )y x + − + − + 13

2x

2x

37

8x

41

2x

5( )O x

6

> subs({C[1]=0,C[2]=1},sol);

= ( )y x − + − + + x x2

7

6x

35

6x

461

120x

5( )O x

6

Obsérvese que el sistema fundamental de soluciones extraído del desarrollo en serie no es el que

usa Maple para obtener la solución general de la EDO:

> dsolve(ed1,output=basis);

[ ],ex

e( )−3 x

• Para un PVI, con valores concretos se obtiene el desarrollo en modo análogo:

> dsolve({ed1,y(0)=1,D(y)(0)=1},y(x));

= ( )y x ex

> dsolve({ed1,y(0)=1,D(y)(0)=1},y(x),series);

= ( )y x + + + + + 1 x1

2x

21

6x

31

24x

4( )O x

5

_________________________________________|

40INGENIERO INFORMATICO - C. INFINITESIMAL - CUADERNO DE PRACTICAS 2

Page 41: Ingeniero Informático - Cálculo Infinitesimal 2ºma1.eii.us.es/Material/CI_ii_Cuad2.pdf · Para escribir ecuaciones diferenciales con Maple, ... Observación técnica: Maple presenta

- Ejercicio 3.5: Obtener los primeros términos del desarrollo de la solución en el origen de la

EDO de Airy, = − y'' x y 0, y los de un sistema fundamental de soluciones (por ejemplo, hasta el

orden 11). Resolver la EDO con Maple y estudiar el comportamiento de las gráficas del sistema

fundamental que proporciona (funciones de Airy).

• Puntos singulares regulares. Solución en serie de Frobenius.

> restart;

> with(plots):

Entre las ecuaciones diferenciales de coeficientes variables para las que se conoce solución, Maple

reconoce la EDO de Euler de cualquier orden; en particular, la de segundo orden:

= + + x2

y'' x α y' β y 0 ó = + + y''α y'

x

β y

x2

0 (para < x 0 ó x > 0 ).

> := edE = + + x2

( )( )( )D( )2

y x a x ( )( )D y x b ( )y x 0

> dsolve(edE);

= ( )y x + _C1 x( ) − + / 1 2 / 1 2 a / 1 2 − + − 1 2 a a

24 b

_C2 x( ) − − / 1 2 / 1 2 a / 1 2 − + − 1 2 a a

24 b

Por supuesto, los exponentes de las potencias xr de la solución obtenida por Maple son las raíces de

la ecuación indicial de la EDO, = + + r ( ) − r 1 α r β 0.

> solve(r*(r-1)+a*r+b,r);

, − + 1

2

1

2a

1

2 − + − 1 2 a a

24 b − −

1

2

1

2a

1

2 − + − 1 2 a a

24 b

De hecho, puede obtener un desarrollo en serie de Frobenius en = x 0, en algunos casos en los que

el origen es punto singular regular de una EDO de la forma

= + + x2

y'' x ( )α x y' ( )β x y 0 (para < x 0 ó x > 0 ).

Pero de nuevo es responsabilidad del usuario decidir si el resultado es válido y dónde, analizando si

( )α x y ( )β x son funciones analíticas en el origen y determinando en tal caso (si se puede...) el

menor de los radios de convergencia de = ( )α x + + α0 α1 x ... y = ( )β x + + β0 β1 x ... o al menos

un intervalo del origen donde ambas series de potencias converjan.

41INGENIERO INFORMATICO - C. INFINITESIMAL - CUADERNO DE PRACTICAS 2

Page 42: Ingeniero Informático - Cálculo Infinitesimal 2ºma1.eii.us.es/Material/CI_ii_Cuad2.pdf · Para escribir ecuaciones diferenciales con Maple, ... Observación técnica: Maple presenta

Por otro lado, si se quiere garantizar la existencia de un sistema fundamental de soluciones en serie

de Frobenius, también es responsabilidad del usuario, antes de aceptar el resultado de Maple, el

análisis de las raíces de la ecuación indicial de la EDO de Euler asociada = + + x2

y'' x α0 y' β0 y 0.

Estudiemos un caso concreto, con un ejemplo.

Ejemplo 2.3.6________________________

Para la EDO = + − x2

y'' 2 x y'( ) − 2 x y

− 1 x2

0, con x > 0, el punto = x 0 es un punto singular regular,

ya que las funciones = ( )α x 2 y = ( )β x − − 2 x

− 1 x2 son analíticas en el origen.

Maple no conoce la solución:

> := ed2 = + − x2

( )( )( )D( )2

y x 2 x ( )( )D y x( ) − 2 x ( )y x

− 1 x2

0

> dsolve(ed2);

= ( )y x

DESol ,

+ −

d

d2

x2

( )_Y x

2

d

d

x( )_Y x

x

( ) − 2 x ( )_Y x

( ) − 1 x2

x2

{ }( )_Y x

• Ya que en el origen se tienen los desarrollos = ( )α x 2 y = ( )β x − + − + + 2 x 2 x2

x3

..., la EDO

de Euler asociada es = + − x2

y'' 2 x y' 2 y 0, que Maple sí sabe resolver

>

taylor , ,

− + 2 x

− 1 x2

= x 0 4

− + − + + 2 x 2 x2

x3

( )O x4

>

> := ed2E = + − x2

( )( )( )D( )2

y x 2 x ( )( )D y x 2 ( )y x 0

> dsolve(ed2E);

= ( )y x + _C1 x_C2

x2

Entonces, las raíces de la ecuación indicial son = r1 1 y = r2 −2, lo que se puede comprobar con

Maple (aunque ya no sea necesario):

42INGENIERO INFORMATICO - C. INFINITESIMAL - CUADERNO DE PRACTICAS 2

Page 43: Ingeniero Informático - Cálculo Infinitesimal 2ºma1.eii.us.es/Material/CI_ii_Cuad2.pdf · Para escribir ecuaciones diferenciales con Maple, ... Observación técnica: Maple presenta

> solve(r*(r-1)+2*r-2,r);

,-2 1

• Como la diferencia − r1 r2 es un número entero, el teorema de Frobenius garantiza que hay una

solución en serie (de Frobenius) en la forma

= ( )φ1 x xr

+ 1

= n 1

an xn

,

siendo = r 1 (la teoría dice que es el mayor ri , , = i 1 2).

Obsérvese que en este caso el desarrollo de = y ( )φ1 x es una serie de potencias, y por tanto es una

función analítica en el origen, lo que sólo ocurre si hay un r natural en la ecuación indicial.

• El teorema de Frobenius establece que la otra solución independiente usa = r −2 (la otra raíz de

la ecuación indicial) y es de la forma

= φ2 + a ( )φ1 x ( )ln x x( )−2

+ 1

= n 1

bn xn

, donde puede ser = a 0.

- Los valores correspondientes para an , a y bn se pueden determinar sustituyendo en la EDO (al

menos, unos cuantos términos...) y el radio de convergencia ρ de las series de potencias ∑ an

xn

y ∑ bn xn (la parte analítica de la serie de Frobenius) es al menos como el menor de los radios de

convergencia de los desarrollos de ( )α x y ( )β x ; es decir, en este ejemplo, = ρ 1.

Afortunadamente, Maple es capaz en este caso de encontrar por nosotros los términos del desarrollo

en serie de Frobenius de la solución de la EDO que estamos estudiando:

> Order:=6;

:= Order 6

> dsolve(ed2,y(x),series);

( )y x _C1 x

− + − + − + 1

1

4x

9

40x

223

240x

3671

6720x

44517

89600x

5( )O x

6 =

_C2

+

( )ln x

− + + 3 x

33

4x

427

40x

5( )O x

6

x2

+ − + + + 12 6 x 9 x2

15

16x

4267

800x

5( )O x

6

x2

+

43INGENIERO INFORMATICO - C. INFINITESIMAL - CUADERNO DE PRACTICAS 2

Page 44: Ingeniero Informático - Cálculo Infinitesimal 2ºma1.eii.us.es/Material/CI_ii_Cuad2.pdf · Para escribir ecuaciones diferenciales con Maple, ... Observación técnica: Maple presenta

Obsérvese que el resultado está de acuerdo con la teoría (menos mal...), ya que

= ( )φ1 x x

+ + − 1

x

4

9 x2

40... y = ( )φ2 x + 3 ( )ln x ( )φ1 x x

( )−2

+ − + + 12 6 x 9 x

2 15 x4

16...

_________________________________________|

- Ejercicio 3.6:

(1) Hallar la solución general de la EDO de Euler = + + x2

y'' x y' y 0, para x > 0, a partir de la

ecuación indicial y expresarla luego con un sistema fundamental de soluciones reales. Comprobar

cuál de formas utiliza Maple para dar la solución. Representar algunas soluciones particulares y

analizar su comportamiento asintótico y en el origen (Maple puede ayudar, pero...)

(2) Repetir el estudio anterior con la EDO = + + x2

y'' 3 x y' y 0.

(3) Estudiar si tienen soluciones en serie de Frobenius en un entorno positivo de = x 0 las EDOs

1) = + + x2

y'' 3 x y'y

− 1 x3

0. 2) = + + x2

y'' 3 x y' ( )cos x y 0. 3) = + + x2

y'' 3 x y'( )sen x y

x0.

2.4 Resolviendo EDOs con la transformada de Laplace.

2.5 Sistemas de EDOs de primer orden.

2.6 Métodos numéricos de resolución.

> restart;

> with(plots):

> with(DEtools, DEplot):

Cuando todo falla y no hay forma de obtener soluciones de una EDO, todavía es posible recurrir a

los métodos cualitativos y/o numéricos. El estudio del campo direccional de una EDO en la zona de

interés es una alternativa más.

Campo direccional de una EDO.

• El comando DEplot del paquete DEtools permite, entre otras cosas, dibujar el campo de

direcciones de una ecuación diferencial así como soluciones particulares obtenidas mediante

métodos numéricos, que pueden superponerse sobre el campo direccional.

44INGENIERO INFORMATICO - C. INFINITESIMAL - CUADERNO DE PRACTICAS 2

Page 45: Ingeniero Informático - Cálculo Infinitesimal 2ºma1.eii.us.es/Material/CI_ii_Cuad2.pdf · Para escribir ecuaciones diferenciales con Maple, ... Observación técnica: Maple presenta

Ejemplo 2.6.1________________________

La ecuación = + − 2 y' y 3 0 del Ejemplo 2.1.1 tiene solución general = ( )φ ,x C + 3 e( )−x / 2

C.

> ed:=2*D(y)(x)+ y(x)-3=0;

:= ed = + − 2 ( )( )D y x ( )y x 3 0

> sol:=dsolve(ed);

:= sol = ( )y x + 3 e( )− / 1 2 x

_C1

El comando DEplot dibuja fácilmente el campo direccional de la EDO en un recinto, en el que,

por defecto, construye una red de 20x20 puntos y sus pendientes e indica el sentido del movimiento

sobre las soluciones particulares al aumentar la variable independiente (cuando ésta se considera

tiempo). Por supuesto, la salida es un gráfico que puede ser almacenado en una variable, en el modo

habitual, para ser utilizado posteriormente.

Por ejemplo, en el rectángulo [ ],0 1 x [ ],0 1 , se tiene:

> DEplot(ed,y(x),x=0..1,y=0..1);

> campo:=%:

Obsérvese cómo, aunque no se conociera la solución, las curvas integrales muestran una tendencia

creciente en el rectángulo visualizado.

• Entre las opciones del comando (puede consultar la ayuda de Maple) se encuentran la posibilidad

de controlar el tamaño de la red, especificándolo con dirgrid, y la de dibujar líneas (en vez de

flechas) dando el valor line a la opción arrows.

Por ejemplo, para visualizar una red de 5x5 pendientes en el campo direccional de la EDO en el

mismo recinto anterior, el código sería:

45INGENIERO INFORMATICO - C. INFINITESIMAL - CUADERNO DE PRACTICAS 2

Page 46: Ingeniero Informático - Cálculo Infinitesimal 2ºma1.eii.us.es/Material/CI_ii_Cuad2.pdf · Para escribir ecuaciones diferenciales con Maple, ... Observación técnica: Maple presenta

> DEplot(ed,y(x),x=0..1,y=0..1, dirgrid=[5,5], arrows=line);

En este ejemplo, en el que se conoce la solución general de la EDO, se pueden representar algunas

curvas integrales en la zona para comprobar cómo las pendientes se ajustan a ellas:

> curvas:=seq(plot(3+(C/3)*exp(-1/2*x),x=0..1, color=blue,

thickness=2),C=-15..-5):

> display(campo,curvas);

_________________________________________|

- Ejercicio 6.1: Dibujar el campo direccional y algunas curvas integrales de la EDO de primer

orden = − y' 2 x y x y2 (del Ejercicio 1.1) en un rectángulo centrado en el origen y luego en otro

centrado en el punto ( )P ,2 −2 . ¿Se puede intuir alguna solución de equilibrio de la EDO?

• Dibujando las curvas integrales con Maple.

• Una de las opciones del comando DEplot, permite representar el campo con algunas soluciones

particulares aproximadas, obtenidas por métodos numéricos (¡se supone que ni con Maple se

conoce la solución exacta!).

Para indicar las curvas integrales en las que estamos interesados, se incluye como opción una lista

con los puntos por los que se quiere que pasen las soluciones. Por supuesto, se pueden especificar

algunas opciones (consultar la ayuda...), como el color de las tangentes o de las curvas, el grosor de

las curvas, etc.

46INGENIERO INFORMATICO - C. INFINITESIMAL - CUADERNO DE PRACTICAS 2

Page 47: Ingeniero Informático - Cálculo Infinitesimal 2ºma1.eii.us.es/Material/CI_ii_Cuad2.pdf · Para escribir ecuaciones diferenciales con Maple, ... Observación técnica: Maple presenta

Ejemplo 2.6.1_(Continuación)__________

Para dibujar junto al campo direccional, en el rectángulo [ ],0 8 x [ ],−2 6 , las curvas integrales de

la EDO = + − 2 y' y 3 0 que pasan por los puntos ( ) ,0 −2 , ( ) ,0 0 , ( ) ,0 2 , ( ) ,0 6 , se hace:

> dib:=DEplot(ed, y(x), x=0..8, y=-2..6,

[[0,-2],[0,0],[0,3],[0,6]], color=magenta, linecolor=black):

> display(dib);

Si los gráficos se han almacenado en variables, se pueden superponer distintos recintos, para

analizar el comportamiento en uno más amplio o resaltar una zona en detalle...

> display(dib,campo,curvas);

>

> display(dib,campo,curvas,view=[0..4,-0.5..3.5]);

Obsérvese que las curvas integrales dibujadas con DEplot (en negro) son obtenidas por métodos

numéricos que las aproximan (luego, si el método no fuese potente, podrían diferir bastante de las

verdaderas soluciones), mientras que para dibujar las curvas que se obtuvieron a partir de la solución

general (en azul) se toman valores de las soluciones exactas (en realidad, aproximaciones de ellos).

47INGENIERO INFORMATICO - C. INFINITESIMAL - CUADERNO DE PRACTICAS 2

Page 48: Ingeniero Informático - Cálculo Infinitesimal 2ºma1.eii.us.es/Material/CI_ii_Cuad2.pdf · Para escribir ecuaciones diferenciales con Maple, ... Observación técnica: Maple presenta

Con la el valor none en la opción arrows se dibujan sólo las curvas integrales seleccionadas.

> DEplot(ed, y(x), x=0..8, y=-2..6,

[[0,-2],[0,0],[0,3],[0,6]], arrows=none);

_________________________________________|

- Ejercicio 6.2:

(1) Volver a dibujar algunas curvas integrales de la EDO = − y' 2 x y x y2 del Ejercicio 6.1, pero

ahora usando las aproximaciones numéricas de DEplot (la opción stepsize indica el paso

del método numérico, para mejorar las aproximaciones, pero aumenta el tiempo de computación).

(2) Dibujar el campo direccional junto a curvas integrales de la EDO = y'x

2

− 1 y2 en un intervalo

centrado en el origen resolviendo la EDO y empleando el comando DEplot.

(3) Obtener las trayectorias ortogonales de la familia de circunferencias = + ( ) − x C2

y2

C2 y

dibujar algunas junto con la familia.

Con el comando DEplot se pueden dibujar también curvas integrales de EDOs de segundo orden

y sistemas de EDOs de primer orden obtenidas de forma numérica, pero se deben especificar en la

lista las condiciones iniciales.

Ejemplo 2.6.2________________________

Para la EDO = + − 2 y'' y 3 0 del Ejemplo 2.1.2 (1), algunas curvas integrales se pueden obtener en

la forma aproximada con DEplot, mediante

> ed2:=2*(D@@2)(y)(x)+y(x)-3;

:= ed2 + − 2 ( )( )( )D( )2

y x ( )y x 3

48INGENIERO INFORMATICO - C. INFINITESIMAL - CUADERNO DE PRACTICAS 2

Page 49: Ingeniero Informático - Cálculo Infinitesimal 2ºma1.eii.us.es/Material/CI_ii_Cuad2.pdf · Para escribir ecuaciones diferenciales con Maple, ... Observación técnica: Maple presenta

> DEplot(ed2, y(x), x=0..5, y=-1..6,

[[y(0)=1,D(y)(0)=2],[y(0)=1,D(y)(0)=-2]],linecolor=[blue,red]);

_________________________________________|

- Ejercicio 6.3: Dibujar en el intervalo [ ],−1 1 algunas soluciones de la EDO = − y''' 2 y'' 3

del Ejercicio 1.5, que tengan tangente horizontal en el punto ( )P ,0 1 , utilizando DEplot.

Si el método numérico empleado para resolver una EDO es "razonable" (el de Maple por defecto, lo

es) y el intervalo no es muy amplio, las curvas obtenidas mediante el comando DEplot serán una

buena representación de las verdaderas curvas integrales. Veamos algunos de los métodos usuales.

Métodos Numéricos de Resolución de EDOs. Integración Numérica.

> restart;

> with(plots):

> with(linalg, transpose, concat, stackmatrix, col, delcols):

• Los métodos de Euler y Heun.

Escribir un programa en el lenguaje de Maple para implementar los métodos numéricos que se han

visto en teoría es "relativamente" fácil, sobre todo para un estudiante de Ingeniería Informática...

Aunque no es el objeto de estas prácticas aprender a programar con Maple, una ojeada a los dos

ejemplos debe ser suficiente para poder hacer una implementación básica de algoritmos similares.

Considérese un PVI, determinado por la ecuación diferencial = y' ( )f ,x y , con = ( )y x0 y0 , para el

que se puede garantizar una solución única = φ ( )φ x en un intervalo [ ],a b que contenga al punto

= x x0 (con el teorema de Picard, por ejemplo).

49INGENIERO INFORMATICO - C. INFINITESIMAL - CUADERNO DE PRACTICAS 2

Page 50: Ingeniero Informático - Cálculo Infinitesimal 2ºma1.eii.us.es/Material/CI_ii_Cuad2.pdf · Para escribir ecuaciones diferenciales con Maple, ... Observación técnica: Maple presenta

• Las funciones ajmeuler y ajmheun implementan los algoritmos respectivos exactamente

igual que se han descrito en teoría.

- La entrada es ( )f ,x y , en la notación funcional de Maple → ( ),x y ( )f ,x y ; la condición inicial del

PVI, en la forma x0 , y0 ; y finalmente, el paso h y el número n para los puntos del soporte.

- La salida es una sucesión [ ],x0 y0 , [ ],x1 y1 , ... , [ ],xn yn , donde cada yi ~ ( )φ xi .

Si se quiere emplear alguna de las implementaciones de los métodos en un intervalo [ ],a b para un

soporte de + n 1 puntos, por ejemplo, se toma el valor = h ( ) − b a / n .

> ajmeuler:=proc(fun,x0,y0,h,n)

local i, tab, nx, ny, k;

tab:=[x0,y0]: nx:=x0: ny:=y0:

from 1 to n do

ny:=ny+fun(nx,ny)*h;

nx:=nx+h;

tab:=tab,[nx,ny]

od;

tab

end:

>

> ajmheun:=proc(fun,x0,y0,h,n)

local i, tab, nx, ny, k1, k2;

tab:=[x0,y0]: nx:=x0: ny:=y0:

from 1 to n do

k1:=fun(nx,ny): k2:=fun(nx+h,ny+k1*h):

nx:=nx+h;

ny:=ny+h*(k1+k2)/2;

tab:=tab,[nx,ny]

od;

tab

end:

Ejemplo 2.6.3________________________

Para el PVI determinado por la EDO lineal = − y' 4 y − 1 x, con = ( )y 0 1, se tiene:

> := f → ( ),x y − + 1 x 4 y

y se puede emplear cualquiera de las implementaciones para obtener aproximaciones de la solución.

Por ejemplo, el valor ( )y 1 / 2 , con el método de Euler, se puede obtener poniendo los parámetros

= h 1 / 2 y = n 1.

50INGENIERO INFORMATICO - C. INFINITESIMAL - CUADERNO DE PRACTICAS 2

Page 51: Ingeniero Informático - Cálculo Infinitesimal 2ºma1.eii.us.es/Material/CI_ii_Cuad2.pdf · Para escribir ecuaciones diferenciales con Maple, ... Observación técnica: Maple presenta

> ajmeuler(f,0,1,1/2,1);

,[ ],0 1

,

1

2

7

2

Aunque la implementación permite operar simbólicamente, es conveniente utilizar aritmética de

coma flotante, bien usando evalf o introduciendo el paso en forma decimal.

> ajmeuler(f,0,1,0.5,1);

,[ ],0 1 [ ],0.5 3.5

También se puede obtener una aproximación de ( )φ 0'5 poniendo = h 0'1 y = n 5 (almacenamos

la sucesión en la variable eu, para usarla luego).

> eu:=ajmeuler(f,0,1,0.1,5);

:= eu , , , , ,[ ],0 1 [ ],0.1 1.5 [ ],0.2 2.19 [ ],0.3 3.146 [ ],0.4 4.4744 [ ],0.5 6.32416

Obsérvese cómo al disminuir el paso h, en el segundo caso, se necesitan más iteraciones y los

valores que de las aproximaciones que se obtienen para ( )φ 0'5 son distintos. La teoría dice que

( )y 0'5 ~ 6 ' 32416 es mejor aproximación.

Además, ahora se tiene una tabla de valores (pocos, desde luego) que representa una solución

numérica del PVI en el intervalo [ ],0 0'5 .

Observación técnica: Algunos comandos del paquete de álgebra linalg (cargados al principio

de la sección) permiten expresar los datos en forma de tablas.

Cuidado, que con variables que contengan matrices hay que usar normalmente eval para ver sus

datos, así como evalm para obtener los resultados de "casi todas" las operaciones con matrices.

Además, para complicarlo un poco más, hay comandos que operan sobre tablas y que pueden o no

operar sobre matrices (una tabla de tablas puede ser una matriz...) y viceversa. Ahora no estamos

interesados en manipular matrices, sino en presentar los resultados de los métodos numéricos de

una forma amistosa, por lo que no deben distraernos los comandos matriciales. En cualquier caso,

siempre se puede acudir a la ayuda de Maple si se está interesado.

Por ejemplo, se puede indicar la tabla de la solución de modo "presentable", en cualquiera de las

formas habituales, utilizando los comandos siguientes:

> eum:=matrix([[`x`,`Euler`], eu]):

> eval(eum);

51INGENIERO INFORMATICO - C. INFINITESIMAL - CUADERNO DE PRACTICAS 2

Page 52: Ingeniero Informático - Cálculo Infinitesimal 2ºma1.eii.us.es/Material/CI_ii_Cuad2.pdf · Para escribir ecuaciones diferenciales con Maple, ... Observación técnica: Maple presenta

x Euler

0 1

0.1 1.5

0.2 2.19

0.3 3.146

0.4 4.4744

0.5 6.32416

> transpose(eum);

x 0 0.1 0.2 0.3 0.4 0.5

Euler 1 1.5 2.19 3.146 4.4744 6.32416

______________|

• Como para el PVI del ejemplo se dispone de la solución, podemos comparar el error cometido.

> dsolve({D(y)(x)-4*y(x)=1-x, y(0)=1},y(x));

= ( )y x − + + 3

16

x

4

19

16e

( )4 x

> := φ → x − + + 3

16

1 x

4

19 e( )4 x

16> ex:=[evalf(i/10,1),phi(evalf(i/10,1))]$i=0..5:

> exm:=matrix([[`x`,`Exacta`],ex]);

:= exm

x Exacta

0. 1.000000000

0.1 1.609041829

0.2 2.505329852

0.3 3.830138846

0.4 5.794226004

0.5 8.712004118

Los errores, usando abs para el valor absoluto y evalf para 4 cifras significativas son:

> err:=evalm(evalf(abs(col([eu],2)-col([ex],2)),4));

:= err [ ], , , , ,0. 0.109 0.315 0.684 1.320 2.388

Y puesto presentable:

> ex_eu_err:=concat([ex],delcols([eu],1..1),err):

> stackmatrix([`x`,`Exacta`,`Euler`,`Error`], ex_eu_err);

52INGENIERO INFORMATICO - C. INFINITESIMAL - CUADERNO DE PRACTICAS 2

Page 53: Ingeniero Informático - Cálculo Infinitesimal 2ºma1.eii.us.es/Material/CI_ii_Cuad2.pdf · Para escribir ecuaciones diferenciales con Maple, ... Observación técnica: Maple presenta

x Exacta Euler Error

0. 1.000000000 1 0.

0.1 1.609041829 1.5 0.109

0.2 2.505329852 2.19 0.315

0.3 3.830138846 3.146 0.684

0.4 5.794226004 4.4744 1.320

0.5 8.712004118 6.32416 2.388

_________________________________________|

Podemos utilizar las capacidades gráficas de Maple para comparar los valores sobre las gráficas de

las soluciones que proporcionan distintos métodos de resolución de un PVI.

Ejemplo 2.6.3_(Continuación)__________

La gráfica de la solución numérica = y ( )φE

x que se ha obtenido con el método de Euler para el PVI

= − y' 4 y − 1 x, con = ( )y 0 1, es

> dphiE:=pointplot([eu],symbol=circle): display(dphiE);

Evidentemente, la solución aproximada no parece una curva, con tan pocos puntos... De todas

formas, se pueden unir y comparar la gráfica resultante con la de la solución.

> dphiE2:=pointplot([eu],style=line):

> dphi:=plot(phi,0..0.51, color=blue, thickness=2):

> display(dphiE,dphiE2,dphi,title=`El método de Euler`);

53INGENIERO INFORMATICO - C. INFINITESIMAL - CUADERNO DE PRACTICAS 2

Page 54: Ingeniero Informático - Cálculo Infinitesimal 2ºma1.eii.us.es/Material/CI_ii_Cuad2.pdf · Para escribir ecuaciones diferenciales con Maple, ... Observación técnica: Maple presenta

• Empleando la implementación del método de Heun para el PVI, si se utiliza el mismo paso

= h 0'1 y el mismo intervalo = [ ],a b [ ],0 0'5 , se tiene una nueva solución aproximada:

> he:=ajmheun(f,0,1,0.1,5):

> err_he:=evalm(evalf(abs(col([he],2)-col([ex],2)),4)):

> ex_he_err:=concat([ex],delcols([he],1..1),err_he):

stackmatrix([`x`,`Exacta`,`Heun`, `Error`], ex_he_err);

x Exacta Heun Error

0. 1.000000000 1 0.

0.1 1.609041829 1.595000000 0.014

0.2 2.505329852 2.463600000 0.041

0.3 3.830138846 3.737128000 0.093

0.4 5.794226004 5.609949440 0.184

0.5 8.712004118 8.369725171 0.342

Y parece que las cosas mejoran, como muestra la gráfica de la nueva solución, = y ( )φH x :

> dphiH:=pointplot([he],symbol=circle, color=red):

dphiH2:=pointplot([he],style=line, color=red):

> display(dphi,dphiH,dphiH2,title=`El Método de Heun`);

Obsérvese que los segmentos correspondientes al método de Heun casi solapan la solución, luego

sustituyendo en los valores de la función interpoladora se obtendrían "buenas" aproximaciones de

otros puntos que no estén en la tabla, sin necesidad de tener que utilizar de nuevo el algoritmo.

Aunque no pretendamos engañar a nadie, si nos alejamos un poco las cosas se ponen peor...

> eu:=ajmeuler(f,0,1,0.1,20):

he:=ajmheun(f,0,1,0.1,20):

54INGENIERO INFORMATICO - C. INFINITESIMAL - CUADERNO DE PRACTICAS 2

Page 55: Ingeniero Informático - Cálculo Infinitesimal 2ºma1.eii.us.es/Material/CI_ii_Cuad2.pdf · Para escribir ecuaciones diferenciales con Maple, ... Observación técnica: Maple presenta

>

> dphi:=plot(phi,0..2, color=blue, thickness=2):

dphiE:=pointplot([eu],symbol=circle):

dphiE2:=pointplot([eu],style=line):

dphiH:=pointplot([he],symbol=circle, color=red):

dphiH2:=pointplot([he],style=line, color=red):

> display(dphi,dphiE,dphiE2,dphiH,dphiH2, view=[0..2,0..200],

title=`Los métodos de Euler y Heun`);

Todavía queda el método de Runge-Kutta, que se puede implementar con una ligera variación de la

utilizada para el de Heun. O mejor, se puede utilizar la implementación de Maple, cuya forma de

uso se describió en la Sección 2.2. Afortunadamente, el comportamiento es bastante mejor:

> soln:=dsolve({D(y)(x)-4*y(x) = 1-x,y(0)=1},y(x),numeric);

:= soln proc( ) ... end procrkf45_x

> d1:=odeplot(soln,0..1.5,color=red):

> display(d1,dphi, view=[0..1.5,0..200]);

_________________________________________|

55INGENIERO INFORMATICO - C. INFINITESIMAL - CUADERNO DE PRACTICAS 2

Page 56: Ingeniero Informático - Cálculo Infinitesimal 2ºma1.eii.us.es/Material/CI_ii_Cuad2.pdf · Para escribir ecuaciones diferenciales con Maple, ... Observación técnica: Maple presenta

- Ejercicio 6.4:

(1) Modificando la implementación del algoritmo Heun, obtener una del método de Runge-Kutta.

Presentar la tabla solución que proporciona el método para = − y' 4 y − 1 x, con = ( )y 0 1, del

Ejemplo 2.6.2, con los valores = h 0 ' 1 y = n 10.

(2) Hacer un estudio analítico comparativo de la tabla obtenida con las que se obtienen con el

método Heun y con la solución exacta. Hacer un dibujo comparativo de las tres gráficas.

(3) Comparar los valores de la tabla con los que proporciona el comando dsolve de Maple con

la opción numeric. ¿Usa Maple el mismo método?

• La versión de Maple de los métodos de Euler y Heun.

Del mismo modo que Maple usa por defecto una implementación de tipo Runge-Kutta para obtener

las soluciones numéricas, también tiene implementados algunos de los algoritmos clásicos para la

resolver numéricamente un PVI, que pueden ser llamados usando la opción method del versátil

comando dsolve, cuando éste se emplea con la opción numeric (una vez más..., consultar la

ayuda si se está interesado).

En particular, classical[foreuler], classical[heunform] y classical[rk4]

implementan respectivamente los métodos de Euler, Heun y Runge-Kutta como se han desarrollado

en teoría. El resultado es un algoritmo, análogo al que emplea por defecto con la opción numeric

sola, pero implementando la solución del PVI con el método indicado.

Ejemplo 2.6.4________________________

El algoritmo que construye Maple al aplicar el método de Euler para el PVI = − y' 4 y − 1 x, con

= ( )y 0 1, del Ejemplo 2.6.3, se obtiene y utiliza en la forma siguiente:

> := ed = − ( )( )D y x 4 ( )y x − 1 x

> := cond = ( )y 0 1

>

> phiE:=dsolve({ed,cond},y(x), numeric,

method=classical[foreuler]);

:= phiE proc( ) ... end procx_classical

> phiE(0.5);

[ ], = x 0.5 = ( )y x 8.540517265424640

La gráfica de la solución se puede dibujar con el comando odeplot.

56INGENIERO INFORMATICO - C. INFINITESIMAL - CUADERNO DE PRACTICAS 2

Page 57: Ingeniero Informático - Cálculo Infinitesimal 2ºma1.eii.us.es/Material/CI_ii_Cuad2.pdf · Para escribir ecuaciones diferenciales con Maple, ... Observación técnica: Maple presenta

> odeplot(phiE,0..0.5);

Como el paso no ha sido precisado, Maple lo selecciona por defecto, por lo que los valores de la

solución numérica son distintos de los obtenidos en el Ejemplo 2.6.3, en el que = h 0'1.

> display(%,dphiE,dphiE2,view=[0..0.5,0..8]);

• No obstante, se puede utilizar dsolve con la opción stepsize, para indicar el paso h del

algoritmo, y con la opción value, para indicar en un array una lista con los puntos para los

que se quiere visualizar su valor.

Por ejemplo, la soluciones numéricas = y ( )φE x e = y ( )φH x del PVI del Ejemplo 2.6.3 se podrían

haber obtenido en la implementación de Maple, del modo siguiente:

> dsolve({ed, cond}, y(x), numeric, method=classical[foreuler],

value=array([0,0.1,0.2,0.3,0.4,0.5]), stepsize=0.1);

[ ],x ( )y x

0 1.

0.1 1.5

0.2 2.19

0.3 3.146

0.4 4.4744

0.5 6.32416

> dsolve({ed, cond}, y(x), numeric, method=classical[heunform],

value=array([0.1*n$n=0..5]), stepsize=0.1);

57INGENIERO INFORMATICO - C. INFINITESIMAL - CUADERNO DE PRACTICAS 2

Page 58: Ingeniero Informático - Cálculo Infinitesimal 2ºma1.eii.us.es/Material/CI_ii_Cuad2.pdf · Para escribir ecuaciones diferenciales con Maple, ... Observación técnica: Maple presenta

[ ],x ( )y x

0 1.

0.1 1.595000000

0.2 2.463600000

0.3 3.737128000

0.4 5.609949440

0.5 8.369725171

Obsérvese que los resultados son los mismos que se obtuvieron con nuestra implementación.

_________________________________________|

- Ejercicio 6.5: Repetir los dos primeros apartados de Ejercicio 6.4, utilizando dsolve con la

opción rk4 para el método de Runge-Kutta. En concreto:

(1) Presentar la tabla solución que proporciona el método para = − y' 4 y − 1 x, con = ( )y 0 1,

del Ejemplo 2.6.2, con los valores = h 0'1 y = n 10.

(2) Hacer un estudio analítico comparativo de la tabla obtenida con las que se obtienen con el

método Heun y con la solución exacta. Hacer un dibujo comparativo de las tres gráficas.

• Por supuesto, se pueden emplear los métodos clásicos con EDOs de orden superior y sistemas de

EDOs de primer orden, como se han descrito en teoría.

Ejemplo 2.6.5________________________

La solución que proporciona el método de Heun con paso = h 0'1 para el PVI = + − 2 y'' y 3 0, con

= ( )y 0 1, = ( )y' 0 −2, evaluada en algunos puntos, es

> ed:= 2*(D@@2)(y)(x)+y(x)-3=0:

> cond:= y(0)=1, D(y)(0)=-2:

> dsolve({ed,cond},y(x),type=numeric,method=classical[heunform],

value=array([0,0.5,1,2]), stepsize=0.1);

, ,x ( )y x

d

d

x( )y x

0 1. -2.

0.5 0.1437854353 -1.386076003

1 -0.3585450223 -0.6003854434

2 -0.1040975780 1.087676037

Su gráfica, que fue obtenida en el Ejemplo 2.6.2, con la ayuda del comando DEplot, puede ahora

aproximarse con el algoritmo de Heun utilizando, por ejemplo, el paso h anterior:

58INGENIERO INFORMATICO - C. INFINITESIMAL - CUADERNO DE PRACTICAS 2

Page 59: Ingeniero Informático - Cálculo Infinitesimal 2ºma1.eii.us.es/Material/CI_ii_Cuad2.pdf · Para escribir ecuaciones diferenciales con Maple, ... Observación técnica: Maple presenta

> phiH:=dsolve({ed,cond},y(x),type=numeric,method=classical[heunf

orm], stepsize=0.1);

:= phiH proc( ) ... end procx_classical

> odeplot(phiH,[x,y(x)],0..15);

Se puede representar también la función derivada = z ( )y' x (utilizando ahora diff):

> odeplot(phiH,[x,diff(y(x),x)],0..15);

De hecho, si las expresiones = y ( )y t y = z ( )y' t son consideradas las ecuaciones paramétricas (en

el parámetro "tiempo" t) de una curva, lo que se tiene es la trayectoria que sigue la solución del PVI

(independiente del tiempo t ) en el plano fase y que es la única que pasa por el punto ( )P ,1 −2 .

> odeplot(phiH,[y(x),diff(y(x),x)],0..15,

color=blue,thickness=2,labels=[` y `,` z `]);

Obsérvese que la trayectoria en el plano fase, independiente del tiempo, refleja el comportamiento

periódico estable de la solución del PVI mejor que las propias soluciones de la EDO: Un punto que

se mueve sobre la elipse repitiendo el comportamiento indefinidamente.

_________________________________________|

59INGENIERO INFORMATICO - C. INFINITESIMAL - CUADERNO DE PRACTICAS 2

Page 60: Ingeniero Informático - Cálculo Infinitesimal 2ºma1.eii.us.es/Material/CI_ii_Cuad2.pdf · Para escribir ecuaciones diferenciales con Maple, ... Observación técnica: Maple presenta

- Ejercicio 6.6: Utilizando dsolve con la opción numeric (el método numérico por

defecto de Maple) dibujar en un entorno del origen algunas trayectorias en el plano fase, para las

EDOs homogéneas siguientes:

1) = − + y'' 3 y' 2 0, 2) = + + y'' 3 y' 2 0 , 3) = + + y'' 2 y' 2 0, 4) = + y'' 4 y 0 .

Integración Numérica.

Cuando se quiere evaluar la integral d⌠⌡

a

b

( )g x x de una función continua g, el resultado es el valor

de la función integral = ( )y x d⌠⌡

a

x

( )g x x en el punto = x b.

Como se verifica = ( )y a d⌠⌡

a

a

( )g x x = 0, entonces = y ( )y x es la solución del PVI determinado por

= y' ( )f ,x y , con la condición = ( )y a 0, para la EDO con = ( )f ,x y ( )g x .

• Los resultados que se obtienen al aproximar la solución, con los métodos numéricos aplicados al

PVI para los algoritmos de Heun y Runge-Kutta, son respectivamente las reglas del trapecio y de

Simpson simples o compuestas, en función de que se consideren uno más pasos.

Ejemplo 2.6.6________________________

Para calcular d⌠

1

2

x2

x con la regla del trapecio simple, se aplica el método de Heun con paso = h 1

al PVI determinado por la EDO = y' x2 , con = ( )y 1 0. Para aproximar la integral con el método

de Simpson simple se usa el método de Runge-Kutta con el mismo paso.

Si se quieren aplicar las reglas compuestas, se debe tener en cuenta que n iteraciones en el método

de Heun equivalen a la regla del trapecio con un soporte de + n 1 puntos, pero que n iteraciones en

el de Runge-Kutta equivalen a la regla de Simpson con un soporte de + 2 n 1.

_________________________________________|

- Ejercicio 6.7: Evaluar la integral del Ejemplo 2.6.6 con la regla del trapecio y Simpson simple

y compuesta para un soporte de 11 puntos y comprobar comparando con el valor exacto de la

integral que el error que se comete está de acuerdo con lo que predice la teoría.

60INGENIERO INFORMATICO - C. INFINITESIMAL - CUADERNO DE PRACTICAS 2

Page 61: Ingeniero Informático - Cálculo Infinitesimal 2ºma1.eii.us.es/Material/CI_ii_Cuad2.pdf · Para escribir ecuaciones diferenciales con Maple, ... Observación técnica: Maple presenta

2.7 Interpolación polinómica. Efecto Runge.

> restart;

> with(plots):

El comando interp de Maple halla el polinomio interpolador para un soporte = S { }, , ,x0 x1 ... xn ,

en el que toma los valores { }, , ,y0 y1 ... yn .

Ejemplo 2.7.1________________________

El polinomio que interpola los puntos ( ) ,0 −1 y ( ) ,1 2 es la recta = y − 3 x 1, que se obtiene con

Maple en la forma:

> interp([0,1],[-1,2],x);

− 3 x 1

Para un soporte con más puntos la sintaxis es la misma:

> interp([0,1/2,1],[-1,0,2],x);

+ − 2 x2

x 1

_________________________________________|

Al interpolar polinomialmente los valores de una función con un soporte equidistante, se debería

obtener un polinomio que, en general, se pareciera más a la función que interpola a medida que se

fuesen considerando más puntos en el soporte.

Ejemplo 2.7.2________________________

Por ejemplo, el polinomio que interpola a la función = y ( )cos x en el intervalo [ ],−1 1 en un

soporte equidistante de 21 puntos se podría obtener de la forma

> pol:=interp([seq(n/10,n=-10..10)],

[seq(cos(n/10.),n=-10..10)],x);

pol 0.3 10-9

x 0.5000000551 x2

0.000113640185 x13

0.0000343800853 x9

− + + :=

0.001751307015 x10

0.0003507213010 x8

0.000084601888 x11

0.005679445147 x12

− + − +

0.824022 10-6

x5

0.001424209616 x6

0.755371253 10-5

x7

0.3623 10-7

x3 + − − −

0.04166872994 x4

0.000018963306 x17

0.000076997591 x15

0.01118997336 x14

+ + − −

0.002129588443 x20

0.1381071 10-5

x19

1.000000000 0.008177904362 x18

+ + + −

0.01301726970 x16 +

61INGENIERO INFORMATICO - C. INFINITESIMAL - CUADERNO DE PRACTICAS 2

Page 62: Ingeniero Informático - Cálculo Infinitesimal 2ºma1.eii.us.es/Material/CI_ii_Cuad2.pdf · Para escribir ecuaciones diferenciales con Maple, ... Observación técnica: Maple presenta

La gráfica del polinomio es una buena aproximación en el intervalo [ ],−1 1 en el que se interpola

> plot(pol,x=-1.5...1.5);

Veamos juntas las gráficas del polinomio interpolador, la función coseno y los puntos sobre los que

se ha interpolado, destacando el intervalo en el que se ha tomado el soporte:

> puntos:=seq([n/10,cos(n/10.)],n=-10..10):

> puntos_g:=pointplot([puntos],symbol=circle,color=blue):

> sop:=plot(pol,x=-1..1,color=red,thickness=3):

> display(sop, puntos_g, plot([pol,cos(x)], x=-1.51..1.51,

color=[red,blue]),scaling=constrained);

Así que el polinomio interpolador es una excelente aproximación de la función coseno en todos los

puntos del intervalo [ ],−1 1 .

> display(%,view=[-1..1,0..1.1]);

_________________________________________|

62INGENIERO INFORMATICO - C. INFINITESIMAL - CUADERNO DE PRACTICAS 2

Page 63: Ingeniero Informático - Cálculo Infinitesimal 2ºma1.eii.us.es/Material/CI_ii_Cuad2.pdf · Para escribir ecuaciones diferenciales con Maple, ... Observación técnica: Maple presenta

- Ejercicio 7.1:

(1) Obtener el polinomio ( )P1 x que interpola a la tabla del Ejemplo 2.6.3, obtenida de aplicar el

método de Heun al PVI del ejemplo y comparar su gráfica y la de la solución = y ( )φ x del PVI.

(2) Obtener luego el polinomio ( )P2 x con la tabla obtenida para la solución exacta y comparar

de nuevo las gráficas del polinomio y la función interpolada, resaltando los puntos del soporte.

• Efecto Runge

No se suelen usar polinomios interpoladores de grados elevados para sustituir a funciones, ya que no

siempre ocurre como en el Ejemplo 2.7.2 anterior. Al aumentar el grado del polinomio interpolador

con un soporte arbitrario no hay garantías de que la aproximación sea cada vez mejor.

De hecho, se puede dar el fenómeno de Runge: Al aumentar el número de puntos del soporte se

obtienen diferencias cada vez más grandes entre los valores del polinomio interpolador y la función

interpolada, en algunos de los puntos del intervalo (que por otra parte cambian con cada soporte).

Ejemplo 2.7.3________________________

El efecto Runge aparece en la función = ( )f x1

+ 1 12 x2 , cuando se toman soportes equidistantes,

precisamente en el intervalo [ ],−1 1 del Ejemplo 2.7.2, en el que no se daba con la función coseno.

Tomando 11 puntos se tiene el polinomio:

> pol:=interp([seq(2*n/10,n=-5..5)],[seq(1/(1+12*(2*n/10.)^2),

n=-5..5)],x);

pol 95.91509203 x10

0.85 10-6

x9

219.0061275 x8

0.14 10-5

x7

175.2443343 x6

− + + − − :=

0.81 10-6

x5

61.53303134 x4

0.96 10-7

x3

10.30280928 x2

0.22 10-8

x + + − − +

0.9999999998 +

y la gráfica del polinomio no es una buena aproximación en todos los puntos...

> plot(pol,x=-1....1);

63INGENIERO INFORMATICO - C. INFINITESIMAL - CUADERNO DE PRACTICAS 2

Page 64: Ingeniero Informático - Cálculo Infinitesimal 2ºma1.eii.us.es/Material/CI_ii_Cuad2.pdf · Para escribir ecuaciones diferenciales con Maple, ... Observación técnica: Maple presenta

Viendo el polinomio interpolador y la función, con los puntos donde se ha interpolado, se puede

observar mejor el error que se podría haber cometido.

> puntos:=seq([2*n/10,1/(1+12*(2*n/10.)^2)],n=-5..5):

> puntos_g:=pointplot([puntos],symbol=circle,color=blue):

> display(puntos_g,plot([pol,1/(1+12*x^2)],x=-1..1,

color=[red,blue],thickness=[3,1]),scaling=constrained);

Obsérvese el riesgo de aproximar la función por el polinomio en puntos próximos a los extremos:

> display(%,view=[0.75..1,0..1.1]);

Y la cosa podría haber sido peor...

_________________________________________|

- Ejercicio 7.2:

(1) Continuar con el ejemplo y comparar las gráficas del polinomio ( )Pn x que interpola a la

función = ( )f x 1 / ( ) + 1 12 x2

en el intervalo [ ],−1 1 con la propia función, cuando se aumenta

el número n de puntos del soporte. Construir una animación como la de las notas de teoría...

(2) Considerar, por ejemplo, un soporte de 21 puntos y encontrar un punto del intervalo [ ],−1 1

en el que la diferencia − ( )P21 x ( )f x sea próxima a la mayor posible.

64INGENIERO INFORMATICO - C. INFINITESIMAL - CUADERNO DE PRACTICAS 2

Page 65: Ingeniero Informático - Cálculo Infinitesimal 2ºma1.eii.us.es/Material/CI_ii_Cuad2.pdf · Para escribir ecuaciones diferenciales con Maple, ... Observación técnica: Maple presenta

• Alternativas a la interpolación polinómica.

Entre las alternativas está la de cambiar el soporte. Por ejemplo, con el soporte de Chebyshev en el

intervalo [-1,1] , definido por los puntos

= xn

cos

n π

N , para , , , ,0 1 ... − N 1 N .

no se produce el fenómeno de Runge para las funciones de clase 1.

Ejemplo 2.7.4________________________

Con el soporte de Chebyshev, no se produce el efecto Runge para = ( )f x1

+ 1 12 x2 .

_________________________________________|

- Ejercicio 7.3:

(1) Obtener el polinomio interpolador ( )Q11 x para un soporte de Chebyshev de 11 puntos para

la función = ( )f x 1 / ( ) + 1 12 x2

y comparar sus gráficas.

(2) Comprobar para varios N que tomando los puntos xn del soporte de Chebyshev no se

produce el efecto Runge para los polinomios ( )Qn x que interpolan a = ( )f x1

+ 1 12 x2 .

65INGENIERO INFORMATICO - C. INFINITESIMAL - CUADERNO DE PRACTICAS 2