lcc :: departamento de lenguajes y ciencias de la computaci n plementaci¶on del paquete presentado....

19

Upload: others

Post on 18-Jan-2021

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: LCC :: Departamento de Lenguajes y Ciencias de la Computaci n plementaci¶on del paquete presentado. Los tipos de EDOs elementales lineales y no lineales de primer orden, orden superior
Page 2: LCC :: Departamento de Lenguajes y Ciencias de la Computaci n plementaci¶on del paquete presentado. Los tipos de EDOs elementales lineales y no lineales de primer orden, orden superior
Page 3: LCC :: Departamento de Lenguajes y Ciencias de la Computaci n plementaci¶on del paquete presentado. Los tipos de EDOs elementales lineales y no lineales de primer orden, orden superior
Page 4: LCC :: Departamento de Lenguajes y Ciencias de la Computaci n plementaci¶on del paquete presentado. Los tipos de EDOs elementales lineales y no lineales de primer orden, orden superior
Page 5: LCC :: Departamento de Lenguajes y Ciencias de la Computaci n plementaci¶on del paquete presentado. Los tipos de EDOs elementales lineales y no lineales de primer orden, orden superior

DeSolve: Resolucion Simbolica de Ecuaciones

Diferenciales Ordinarias en Mathematica

J.A. Falgueras y F. R. Villatoro∗

10, julio 1996

Resumen

El paquete DeSolve escrito en Mathematica permite la resolucion de ecua-ciones diferenciales ordinarias cuya solucion puede obtenerse mediante metodoselementales de integracion. DeSolve esta basado en el reconocimiento y cla-sificacion de las ecuaciones habitualmente estudiadas en los libros de texto e-lementales sobre ecuaciones diferenciales ordinarias. Ademas permite imprimirmensajes sobre el proceso de reconocimiento y busqueda de soluciones realizado,de tal forma que si DeSolve no encuentra la solucion de la ecuacion, el usuariopuede estar seguro de que la ecuacion no es facilmente resoluble mediante losmetodos de integracion que el programa ha aplicado.

1 Introduccion

La resolucion simbolica de ecuaciones diferenciales ordinarias (EDOs) es unade las aplicaciones fundamentales de los sistemas de algebra simbolica debidoa la importancia que las EDOs tienen para cientıficos e ingenieros tanto en launiversidad como en la industria. Las expresiones analıticas de las solucionestienen gran interes debido a que cubren todos los posibles casos, pueden eva-luarse numericamente con precision ilimitada, se pueden variar sus parametrosarbitrariamente y se pueden utilizar en calculos analıticos y/o numericos poste-riores.

Desarfortunadamente, la resolucion simbolica de EDOs presenta grandes di-ficultades debido al gran numero de diferentes tipos de ecuaciones y formas

∗Departamento de Lenguajes y Ciencias de la Computacion, E. T. S. Ingenierıa en Informatica,Complejo Politecnico de las Ingenierıas, Universidad de Malaga; Campus de Teatinos, 29071-Malaga.e-mails: [email protected], [email protected]

1

Page 6: LCC :: Departamento de Lenguajes y Ciencias de la Computaci n plementaci¶on del paquete presentado. Los tipos de EDOs elementales lineales y no lineales de primer orden, orden superior

posibles para sus soluciones, el gran numero de metodos para su resolucion,en muchos casos de caracter heurıstico, y a la dificultad de sistematizarlos deforma teorica. Sin embargo, existe gran interes en el tema, por ejemplo, el pro-yecto ESPRIT de la Union Europea CATHODE (Computer Algebra Tools forHandling Ordinary Differential Equations) [1, 2].

En Mathematica la resolucion de EDOs se ha tratado especialmente a partirde la version 2.0 con el desarrollo del paquete estandar DSolve [3, 4, 5]. Dichopaquete permite la resolucion de multiples EDOs nolineales de primer orden, desegundo orden de tipo hipergeometrico, ecuaciones de orden superior lineales yecuaciones resolubles mediante el metodo de reduccion de orden por simetrıas deLie [3, 4, 5]. Para la resolucion de EDOs aun mas complicadas se han desarrolla-do otros paquetes especıficos, como por ejemplo, el desarrollado por Baumannpara el analisis de simetrıas de tipo Lie-Backlund [6]. Sin embargo, se puedenencontrar muchas ecuaciones que estos paquetes no resuelven, por lo que deter-minados autores recomiendan el uso interactivo de Mathematica para facilitarel algebra involucrada en el proceso de resolucion a mano de EDOs; es de granayuda en este sentido el libro de Abell y Braselton [7].

En la presente comunicacion se describe el paquete DeSolve desarrollado enMathematica y que permite la resolucion de EDOs cuya solucion puede obtenersemediante metodos elementales de integracion [8]. DeSolve utiliza programacionbasada en reglas de reescritura para reconocer y clasificar los tipos de ecuacionesestudiadas en los libros de texto elementales sobre EDOs [9, 10, 11]. DeSolveimprime mensajes sobre el proceso de reconocimiento y busqueda de solucio-nes que realiza, de tal forma que si no encuentra la solucion de la ecuacion elusuario puede conocer exactamente que metodos de integracion ha aplicado elprograma y por tanto puede estar seguro de que la ecuacion no es facilmenteresoluble utilizando dichos metodos. Moussiaux ha desarrollado un paquete decaracterısticas similares al presentado en esta comunicacion pero realizado en elsistema de algebra simbolica Reduce [12].

En la secion 2 de la presente comunicacion se estudia la estructura de la im-plementacion del paquete presentado. Los tipos de EDOs elementales lineales yno lineales de primer orden, orden superior y sistemas de ecuaciones que el siste-ma reconoce y resuelve se presentan en las secciones 3, 4 y 5, respectivamente. Elmodo de uso y paso de parametros para DeSolve se esbozan en la seccion 6 juntocon algunos ejemplos. Los resultados de una evaluacion sistematica del paqueteutilizando como referencia el libro de texto [9], se presentan en la seccion 7.Finalmente, se presentan algunas conclusiones y lıneas futuras de trabajo.

2 Estructura de la Implementacion

El programa simbolico implementado para la resolucion de EDOs pasa por tresetapas: una primera fase de canonizacion o tipificacion, en la que se reescribe

2

Page 7: LCC :: Departamento de Lenguajes y Ciencias de la Computaci n plementaci¶on del paquete presentado. Los tipos de EDOs elementales lineales y no lineales de primer orden, orden superior

la ecuacion de entrada y sus condiciones iniciales o de contorno en un formatointerno que facilita su posterior tratamiento; una segunda fase de clasificacion,en la que se determina si la ecuacion de entrada es de alguno de los tipos que elsistema reconoce; y una fase final de resolucion, en la que se obtiene la solucioncaso de que la ecuacion haya sido reconocida convenientemente.

En la fase de canonizacion se estandarizan las variables de entrada, se deter-mina el orden de la ecuacion, se guardan las condiciones iniciales o de contorno,si proceden, y se aplican los cambios de variable que el usuario puede indicar deforma explıcita (ver el apartado 6).

Para la fase de clasificacion, se utiliza un algoritmo basado en reglas de re-escritura del tipo Don’t Know para la busqueda del tipo de la ecuacion [13].Aunque Mathematica utiliza un sistema de evaluacion de reglas tipo Don’t Ca-re, permite la posibilidad de utilizar reglas con guardas mediante el uso deCondition. De este modo, en el sistema desarrollado, las reglas toman la forma

deSolve[ ecua_ ] := Module [ {$temporal}, $temporal /;

( <Programa de Reconocimiento>;

If [ <reconocida>

(*then*), $temporal=<resultado>; True

(*else*), False

] ) ].

De esta forma, durante la busqueda de soluciones podemos aplicar reglas querealicen las operaciones necesarias para la clasificacion, incluso si dichas reglasno llevan a la solucion final. La fase de clasificacion y los tipos de ecuacionesreconocidas por DeSolve se detallan en los apartados 3, 4 y 5.

Si tras la fase de clasificacion se ha obtenido una solucion, nos encontra-mos con una expresion de la solucion en forma de ecuacion integral, con unaserie de cuadraturas (integrales indefinidas) y constantes de integracion C; di-cha ecuacion puede venir expresada en forma explıcita, implıcita o parametrica.Seguidamente se aplica el Integrate de Mathematica, para determinar las pri-mitivas de las integrales que aparecen en la solucion, el Eliminate para eliminarlos parametros de las soluciones expresadas en forma parametrica y el Solve pa-ra obtener una expresion explıcita a partir de soluciones implıcitas. Ademas, sila ecuacion tenıa condiciones iniciales o de contorno, las aplicamos. Cualquierade dichos procedimientos puede fallar, con lo que se puede obtener una solu-cion en forma de ecuacion integral explıcita, implıtica o parametrizada. Estaforma de obtener soluciones es similar a la utilizada por las versiones recientesde DSolve [5]. Algunas EDOs, por ejemplo las ecuaciones de primer orden envariables separadas, pueden tener soluciones de tipo singular; si DeSolve de-tecta que una solucion puede ser singular, devuelve dicha solucion en la formaPosibleSingular[<solucion>].

3

Page 8: LCC :: Departamento de Lenguajes y Ciencias de la Computaci n plementaci¶on del paquete presentado. Los tipos de EDOs elementales lineales y no lineales de primer orden, orden superior

3 Ecuaciones Diferenciales de Primer Orden

La clasificacion/resolucion de ecuaciones diferenciales de primer orden se rea-liza en varias etapas. Primeramente el sistema intenta despejar la variable y′

para poner la ecuacion en forma estandard. Si el sistema ha logrado despejarla variable y′ = f(x, y) entonces intenta canonizar la ecuacion con objeto deprepararla para su reconocimiento mediante las diferentes tablas de reglas paralos tipos de ecuaciones que el sistema reconoce.

El sistema desarrolla f(x, y) en forma de polinomio en y (mediante la funcionexpand) y comprueba si la ecuacion es de alguno de los siguientes tipos siguientes

• Trivial, y′ = f(x)

• Lineal, y′ = p(x)y + q(x)

• Bernouilli, y′ = p(x)y + q(x)yn

• Riccatti, y′ = h(x)y2 + g(x)y + f(x).

Si la ecuacion es de alguno de los primeros tres tipos, el sistema construyesu solucion de forma explıcita. Sin embargo, las ecuaciones de Ricatti, una vezreconocidas, son imposibles de tratar en el caso general, salvo que se conozcauna solucion particular de las mismas [10, 11]. Por ello, el sistema utilizando elcomando Reduce estudia si la ecuacion tiene una solucion particular de la formaax2 + bx + c o (ax2 + bx + c)/(dx2 + ex + f); si ese es el caso, construye lasolucion; en caso contrario, continua la busqueda de la solucion de la ecuacionpor otros metodos.

Si el sistema no ha reconocido la ecuacion, factoriza f(x, y) en producto defunciones de x e y (factor) e intenta reconocer la ecuacion entre los casos

• Separada, y′ = f(x)g(y).

• Separable por funcion de x, y′ = g(y)f1(x) + f2(x) donde g(y)f1(x)/f2(x)es una funcion solamente de y.

• Separable por funcion de y, y′ = g1(y)f(x) + g2(y) donde g1(y)f(x)/g2(y)es una funcion solamente de x.

• Funcion de ax+by, y′ = f(ax+by), donde se realiza una busqueda directadel patron funcional mediante ReplaceAll.

Si la ecuacion ha resultado ser de alguno de los tipos indicados, el sistemadevuelve su solucion de forma implıcita en los tres primeros casos y de formaparametrica en el ultimo; el sistema detecta la presencia de posibles solucionessingulares (debidas a divisiones por cero).

Seguidamente el sistema recupera la forma original de f(x, y) y estudia si laecuacion es del tipo

• Homogenea, y′ = f(y/x), para lo que realiza el cambio de variables y = vxy determina si f depende solo de v, i.e., f(v).

4

Page 9: LCC :: Departamento de Lenguajes y Ciencias de la Computaci n plementaci¶on del paquete presentado. Los tipos de EDOs elementales lineales y no lineales de primer orden, orden superior

• Exacta, y′ = m(x, y)/n(x, y) con factor de integracion simple.

Para las ecuaciones exactas y homogeneas, el sistema obtiene una solucion detipo parametrica. Para las ecuaciones exactas, el sistema reescribe la ecuacionde la forma n(x, y)dy + m(x, y)dx y segun el modo de operacion determinadopor la variable global $MetodoParaExactas estudia si la ecuacion es exacta o sise puede determinar un factor de integracion de la misma. Por defecto, el modoutilizado es FISimples que estudia si la ecuacion tiene alguno de los siguientesfactores de integracion simples: I(x), I(y), I(x+y), I(x−y) e I(xy); tambien sepuede indicar el modo FINoParametrizados, que determina si la ecuacion tienefactores de integracion I(z), donde z puede ser x, y, x + y, x − y, x2 + y2, x2 −y2, xy, y/x, x+y2, y+y2, x+x2, y+x2, xy2, x2y, x/y2, y/x2, xey, yex; y finalmente,el modo FIParametrizados que busca factores de integracion parametrizados dela forma I(z(a, b, ...)), donde z(a, b, ...) puede ser x, ax+y, ax+by+x2, ax+by+cx2 +xy, ax+ by+ cx2 +dxy+y2, xayb, (ax+y) exp(bx+y), (ax+y) log(bx+y).

Aunque se puede probar que toda EDO de primer orden con solucion tienefactor de integracion [9], la determinacion de dicho factor de integracion sinconocer a priori la solucion, es difıcil. Sin embargo, si suponemos que el factorde integracon tiene una dependencia funcional determinada I(z), con z(x, y), esposible construir la ecuacion diferencial

1

I

∂I

∂z=

∂m

∂x− ∂n

∂y

m∂I

∂y− n∂I

∂x

. (1)

que permite calcular el factor de integracion, caso de que su segundo miembrosea una funcion de z solamente, es decir f(z); en dicho caso, la ecuacion (1)puede integrarse facilmente y permite obtener como factor de integracion

I(z) = exp

(∫f(z) dz

). (2)

Para determinar si una expresion f(x, y) es una expresion de z(x, y), se des-peja y en z = z(x, y), se sustituye y = y(x, z) para obtener f(x, y(x, z)), sesimplifica dicha expresion (utilizamos simplifica, que es una version mas sim-ple pero mas rapida del comando estandard Simplify) y se comprueba si laexpresion simplificada depende solamente de z. Para el calculo de factores deintegracion parametrizados, se tiene que determinar si una expresion f(x, y)es una expresion de z(x, y, a, b, ...) para valores concretos, a determinar, de losparametros. Aunque se ha estudiado el uso de tecnicas numericas como heurısti-cos para decidir, y en su caso, obtener valores para dichos parametros [8], enla version actual de DeSolve, se genera un conjunto de valores racionales quese asignan sistematicamente a dichos parametros, y se aplica un proceso de

5

Page 10: LCC :: Departamento de Lenguajes y Ciencias de la Computaci n plementaci¶on del paquete presentado. Los tipos de EDOs elementales lineales y no lineales de primer orden, orden superior

determinacion de factores de integracion no parametrizados. El conjunto deracionales que se genera incluye todos los racionales, sin repeticion, que se pue-den formar con los numeros naturales del 1 al indicado por la variable global$NivelesComparacion. Dado que el proceso de determinacion de factores deintegracion es lento y costoso, DeSolve utiliza por defecto el metodo FISimples.

Si no se ha determinado un factor de integracion de la ecuacion, el sistemaaplica algunas reglas recursivas, en las que se realizan cambios de variable en laecuacion original, y se vuelve a aplicar el procedimiento de resolucion DeSolvecon objeto de determinar su solucion; si se encuentra la solucion, el sistemadeshace los cambios de variables previamente realizados. Para el control de larecursion, y evitar la entrada en un bucle infinito, se utiliza la variable $rec quees un contador que determina el numero de veces que se permite la recursion(por defecto solo 1). Las reglas recursivas implementadas son las siguientes

• Funcion doblemente lineal, y′ = f(a1x+b1y+c1, a2x+b2y+c2) en las quese puede realizar un cambio de variable dependiendo del punto de corte delas dos expresiones lineales.

• Resoluble como ecuacion en x′, x′ = 1/f(x, y).

• Cambio de variable v = y/x.

• Cambio de variable v = yx.

Seguidamente se desarrolla f(x, y) como un polinomio en x y se compruebasi la ecuacion es de

• Lagrange/Clairaut, y = xf(y′) + g(y′).

Finalmente, si tras despejar la ecuacion de la forma y′ = f(x, y) no se hapodido obtener su solucion, se intenta resolver la ecuacion despejandola en laforma y = f(x, y′), realizando el cambio de variable p = y′ y derivando en x,con lo que se obtiene una nueva ecuacion de primer orden sobre la que se vuelvea aplicar DeSolve de forma recursiva para intentar encontrar su solucion. Si estano se encuentra se prueba a despejarla en la forma x = f(y, y′) y se procede deforma del todo similar.

Si el procedimiento presentado para el reconocimiento y la resolucion de laecuacion falla, DeSolve imprime un mensaje y se devuelve el comando de entradainalterado.

4 Ecuaciones Diferenciales de Orden Supe-rior

Cuando la ecuacion diferencial es de orden superior al primero (sea n), el sistemaintenta despejar la derivada mayor de la ecuacion y(n). En su caso, estudia si laecuacion es de alguno de los siguientes tipos

6

Page 11: LCC :: Departamento de Lenguajes y Ciencias de la Computaci n plementaci¶on del paquete presentado. Los tipos de EDOs elementales lineales y no lineales de primer orden, orden superior

• Trivial, y(n) = f(x).

• Lineal con coeficientes constantes, tanto homogenea como no homogenea,es decir,

∑n

i=0aiy

(i) = f(x). En el caso no homogeneo, utiliza, si esaplicable, el metodo de coeficientes indeterminados, y en caso contrario, elmetodo de variacion de parametros.

• Ecuacion de Euler/Cauchy,∑n

i=0aix

iy(i) = f(x). En el caso no ho-mogeneo utiliza el metodo de variacion de parametros.

• Ecuacion con solo dos derivadas, y(n) = f(y(n−2)).

El metodo de coeficientes indeterminados sera aplicable solamente si el ter-mino no homogeneo en la ecuacion tiene la forma de un sumatorio de productosde polinomios por exponenciales complejas (funciones circulares o hiperbolicas).El metodo de variacion de parametros se basa en la construccion del wronskianode las soluciones y en la solucion de un sistema algebraico lineal de ecuacio-nes [10, 11]; es un metodo bastante mas general que el metodo de coeficien-tes indeterminados pero tiene el inconveniente de que conduce a expresionesmuy grandes para las soluciones, por lo que es preferible el primero cuando esaplicable, y ademas puede ocurrir que la ecuacion a resolver sea degenerada,cuando tiene soluciones que no son linealmente independientes y por tanto unwronskiano singular, en cuyo caso DeSolve devuelve una solucion implıcita conLinearSolve.

Si la ecuacion a resolver no tiene ninguna de las formas previamente indica-das, se prueba a despejarla en x y en su caso, si tiene la forma x = f(y(n)), y estrivialmente resoluble.

Finalmente, se prueban alguna de las ecuaciones cuya solucion son funcionesespeciales de la fısica, en concreto las ecuaciones de

• Bessel, x2y′′ + xy′ + (x2 −m2)y = 0, con m numero natural.

• Legendre, (1−x2)y′′−2xy′+(m(m+1)−p2/(1−x2)) = 0 con m natural.

El reconocimiento de estas ecuaciones se realiza considerandolas como poli-nomios multivariables y expandiendolas convenientemente. La implementacionrealizada basada en reglas permite introducir facilmente otras ecuaciones espe-ciales de la fısica sin gran dificultad.

Si no se ha logrado resolver la ecuacion, se aplican tecnicas de reduccion delorden de la ecuacion, que implican la realizacion de cambios de variables quepermiten obtener nuevas ecuaciones de orden inferior sobre las que DeSolve seaplicara de forma recursiva. Si se obtiene la solucion a la ecuacion de ordenreducido, al deshacer el cambio de variable realizado, se obtendra una nuevaecuacion, para la que habra que volver a aplicar DeSolve de forma recursiva [9,10]. Las tecnicas de reduccion de orden implementadas son las siguientes

• Ausencia de la funcion (y) y sus primeras (k−1) derivadas, con lo que unaecuacion de orden n se reduce a una de orden n− k.

7

Page 12: LCC :: Departamento de Lenguajes y Ciencias de la Computaci n plementaci¶on del paquete presentado. Los tipos de EDOs elementales lineales y no lineales de primer orden, orden superior

• Ausencia de la variable independiente x, con lo que la ecuacion de ordenn se reduce a una de orden n− 1 en la variable x(y).

Si ninguno de los metodos anteriores permite obtener la solucion de la ecua-cion, el sistema nos informa de ello.

Como se puede observar, el sistema desarrollado no es muy potente en eltratamiento de ecuaciones diferenciales de orden superior, limitandose basica-mente a la resolucion de ecuaciones lineales homogeneas y no homogeneas, y aalgunos casos particulares especialmente simples. Para un tratamiento adecuadode las ecuaciones diferenciales ordinarias de segundo orden es necesario utilizartecnicas de reduccion de orden basadas en simetrıas [4, 5]. Para las ecuaciones deorden superior, se pueden utilizar metodos basados en simetrıas de Lie/Backlundgeneralizadas [6].

5 Sistemas de Ecuaciones Diferenciales

Para la resolucion de sistemas de ecuaciones diferenciales ordinarias se reducirandichos sistemas a ecuaciones de orden superior desacopladas y se aplicaran lastecnicas del apartado anterior.

La primera fase de solucion consiste en determinar si existen subsistemas deecuaciones desacopladas entre sı. Seguidamente se aplicara el siguiente meto-do de eliminacion de variables: se recorre cada subsistema de ecuaciones y seresuelven las ecuaciones trivialmente eliminables, las que no involucren mas deuna variable dependiente y las que tengan variables dependientes pero no susderivadas. Las soluciones obtenidas, se sustituyen en las restantes ecuacionesdel sistema. Finalmente, se construye una ecuacion de orden superior asociadaa cada subsistema y se aplica los procedimientos de resolucion de ecuaciones deorden superior indicados en el apartado anterior.

Dada las dificultades en la solucion de ecuaciones de orden superior, el meto-do mostrado basicamente resuelve sistemas de ecuaciones diferenciales con coe-ficientes constantes homogeneos y no homogeneos, y algunos otros casos trivial-mente resolubles.

6 ¿Como usar el paquete DeSolve?

Para poder usar la funcion DeSolve hay que cargar el paquete DeSolve.m, quese encarga de llamar al resto de los paquetes de la aplicacion.

El formato de uso de la funcion DeSolve es muy parecido al de DSolve enMathematica. Para la entrada de una ecuacion diferencial simple

DeSolve [ <ecuaci\’on>, <funci\’on>, <varible>, {<opciones>} ],

en el caso de que haya condiciones de contorno, sera

8

Page 13: LCC :: Departamento de Lenguajes y Ciencias de la Computaci n plementaci¶on del paquete presentado. Los tipos de EDOs elementales lineales y no lineales de primer orden, orden superior

DSolve [ {<ecuaci\’on>, <condiciones>}, <funci\’on>, <variable> ]

y para sistemas de ecuaciones

DSolve [ {<ecuaciones>, <condiciones>}, {<funciones>}, <variable> ].

El usuario puede recomendar un cambio de variable al programa mediantela especificacion, en cualquiera de los dos siguientes formatos, de la opcion deDeSolve

CambiaVar[ <nuevaVar> ] -> ecua( <nuevaVar>, <funcion>, <variable> )

CambiaVar -> <nuevaVar> = ecua( <nuevaVar>, <funcion>, <variable> ).

Con objeto de que el programa presente en detalle el arbol de busqueda querecorre durante el reconocimiento de la ecuacion, se puede especificar la opcionVerbose -> <verbose> donde con <verbose> = 0, se devolvera solamente lasolucion obtenida sin ningun tipo de mensaje, = 1 se presentaran mensajes in-dicando el tipo de la ecuacion reconocida y de su solucion, caso de ser obtenida,= 2 se presentaran mensajes indicando la traza del proceso de busqueda y reco-nocimiento realizado, indicando todos los metodos que el sistema ha probado yde que forma ha reescrito la ecuacion de entrada para intentar reconocerla condichos metodos, y = 3 tambien se muestra informacion adicional de caractertecnico util durante el desarrollo del paquete.

Para la seleccion del metodo utilizado para la determinacion de factores deintegracion de ecuaciones diferenciales de primer orden (ver seccion 3), se utilizala variable global $MetodoExactas que puede tomar los valores FISimples (valorpor defecto), FINoParametrizados y FIParametrizados.

Para ilustrar el modo de uso de DeSolve, seguidamente presentamos algunosejemplos de ecuaciones que el sistema resuelve, junto con la solucion que obtiene.Los parametros de DeSolve utilizados son los definidos por defecto. Primero,cargamos el paquete DeSolve,

In[1]:=

<< "DeSolve.m";

DeSolve puede resolver ecuaciones sin presentar mensajes de ningun tipo,para lo que se utiliza la opcion Verbose->0 (con lo que DeSolve se comporta demanera similar a DSolve). Veamos un ejemplo,

In[2]:=

DeSolve[ {y’ == 1 / ( 2 x - y^2 ), y[0]==1}, y[x], x, Verbose->0 ]

Out[2]=

2 2

E 2 y 2 y 1 y y

{-- - E x + E (-(-) + - - --) == 0}

4 4 2 2

9

Page 14: LCC :: Departamento de Lenguajes y Ciencias de la Computaci n plementaci¶on del paquete presentado. Los tipos de EDOs elementales lineales y no lineales de primer orden, orden superior

Sin embargo, DeSolve utiliza por defecto, Verbose->1, con lo que presentamensajes que indican de que tipo ha sido reconocida la ecuacion y como es lasolucion o las soluciones obtenidas,

In[3]:=

DeSolve [ y’’ -6 y’ + 9 y == 25 E^x Sin[x],y,x]

Out[3]=

x 2 x

{y == E (E (C[1] + x C[2]) + 4 Cos[x] + 3 Sin[x])}

La ecuacion es lineal de coeficientes constantes.

x

La ecuacion 9 y - 6 y’ + y’’ == 25 E Sin[x]

tiene una sola solucion :

::>Solucion explicita es

x 2 x

y == E (E (C[1] + x C[2]) + 4 Cos[x] + 3 Sin[x])

Sin embargo, la caracterıstica mas interesante de DeSolve es la posibilidad depresentar una traza del proceso de busqueda realizado durante el reconocimientode la ecuacion; para ello se utiliza la opcion Verbose -> 2

In[4]:=

DeSolve[2 y’ + y^2 + 1/x^2 == 0, y , x, Verbose->2]

Out[4]=

-2/(-1 + x y) + 2 Log[-1 + x y]

-E

{--------------------------------- +

2 x

-2/(-1 + x y) + 2 Log[-1 + x y]

E y +

-2/(-1 + x y) + 2 Log[-1 + x y] 2

E x y

------------------------------------- + C[1] == 0}

2

-2 2

==> Se pretende resolver la ecuacion -> x + y + 2 y’ == 0

Se pretende despejar la variable y’.

-2 2

10

Page 15: LCC :: Departamento de Lenguajes y Ciencias de la Computaci n plementaci¶on del paquete presentado. Los tipos de EDOs elementales lineales y no lineales de primer orden, orden superior

Se ha despejado y’ == -(x + y )/2

2 2

Ecuacion desarrollada : y’ == -1/(2 x ) - y /2

Se prueban las desarrolladas :

-> La ecuacion no ha sido : Trivial, Lineal, Bernouilli,\

Ricatti.

2 2 2

Ecuacion factorizada : y’ == -(1 + x y )/(2 x )

Se prueban las factorizadas :

-> La ecuacion no ha sido : Separada, Separable,\

FdeAxMasBy.

-2 2

Ecuacion normal : y’ == -(x + y )/2

Se prueban las normales :

Prueba si la ecuacion es exacta.

Prueba si la ecuacion tiene factor de integracion f(x).

Prueba si la ecuacion tiene factor de integracion f(y).

Prueba si la ecuacion tiene factor de integracion f(x+y).

Prueba si la ecuacion tiene factor de integracion f(x-y).

Prueba si la ecuacion tiene factor de integracion f(x y).

La ecuacion tiene como factor de integracion a f(x y).

-2 2

La ecuacion x + y + 2 y’ == 0 tiene una sola solucion :

::>Solucion implicita es

-2/(-1 + x y) + 2 Log[-1 + x y]

-E /(2 x) +

-2/(-1 + x y) + 2 Log[-1 + x y]

E y +

-2/(-1 + x y) + 2 Log[-1 + x y] 2

(E x y )/2 + C[1] == 0

La caracterıstica fundamental de DeSolve, y que lo diferencia de DSolve, esque si no logra encontrar la solucion, y se ha utilizado la opcion Verbose -> 2, sepresentara una traza de todos y cada de los metodos que el sistema ha utilizadopara reconocer la ecuacion, y las ecuaciones con los que los ha aplicado, con loque el usuario puede estar seguro de que la ecuacion no es facilmente resolublepor ninguno de dichos metodos.

11

Page 16: LCC :: Departamento de Lenguajes y Ciencias de la Computaci n plementaci¶on del paquete presentado. Los tipos de EDOs elementales lineales y no lineales de primer orden, orden superior

7 Ecuaciones que el Sistema Resuelve: Es-tudio Sistematico

Se ha realizado una evaluacion detallada del sistema basada en las ecuaciones queaparecen en el libro de problemas de EDOs de Kiseliov, Krasnov y Makarenko [9].Se ha utilizado la version 2.0 de Mathematica en un Macintosh Quadra 950 con16 Megas de RAM (10 Megas reservados para Mathematica). Se ha utilizado laopcion $MetodoParaExactas = FISimples.

Las ecuaciones no resueltas indicadas con (numero) son ecuaciones que elsistema reconoce pero para las que la construccion de la solucion consume todala memoria de la maquina. Las ecuaciones indicadas con [numero] son ecuacionesen las que se consume toda la memoria disponible durante el procedimiento dereconocimiento.

Como se observa en la tabla, el paquete presentado resuelve gran numerode EDOs elementales. Es de notar que muchas de las ecuaciones indicadas enla tabla como no resueltas, se resuelven mediante ciertos trucos (como cambiosde variables especiales), o metodos especıficos, que pueden ser incluidos facil-mente en el sistema presentado, mediante la adicion o extension de las reglas dereconocimiento incluidas en la presente version.

Comparandolo con el paquete estandard DSolve, se ha comprobado que elpaquete DeSolve resuelve muchas ecuaciones que no son resueltas por DSolve [3,4, 5, 7], aunque tambien hay muchas ecuaciones que DSolve [4, 5] resuelve conlas que falla DeSolve. Sin embargo, el hecho que DeSolve presente una traza delos procedimientos de reconocimiento que ha utilizado, facilita la resolucion deEDOs guiada por el usuario, especialmente con fines de docencia, por ejemplo,siguiendo la lınea del libro de Abell y Braselton [7].

8 Conclusiones

El paquete DeSolve para la resolucion de ecuaciones diferenciales ordinariasen Mathematica ha sido probado con cientos de ecuaciones y ha conseguidoresolver un buen tanto por ciento (del orden del 60%). Muchas de las ecuacionesque DeSolve resuelve tambien son resueltas por el DSolve de Mathematica, sinembargo, existe una gran diferencia entre ambos programas: cuando DSolveno logra resolver una ecuacion, sabemos que es difıcil de resolver, sin embargocuando DeSolve no logra resolverla, nos muestra el camino que ha seguido en subusqueda de la solucion, lo que ayuda a la hora de su solucion a mano; mas aun,el poder ver alguna de las expresiones intermedias que DeSolve ha utilizado elreescribir la ecuacion para reconocerla, puede sugerirnos formas de reescribir laecuacion de entrada que hagan mas probable que DeSolve la reconozca.

Asimismo, el paquete DeSolve es una herramienta mucho mas interactiva

12

Page 17: LCC :: Departamento de Lenguajes y Ciencias de la Computaci n plementaci¶on del paquete presentado. Los tipos de EDOs elementales lineales y no lineales de primer orden, orden superior

Tabla 1: Resultados del analisis sistematico de DeSolve.

Epıgrafe Ecuaciones No Resueltas Fallos

§5 81–136 (101) 1/36§6 Ej.1–4, 145–170 (152), (158), 159, 161 4/30§7 Ej.1–4, 176–206 (192), 205, 208 3/36§8 Ej.1–5, 217–243 Ej.220, [221], [225], [230], 243 5/32§9 Ej.1–6, 244–278 (251),(Ej.2),254,[271],[273],

[276],[277] 7/41§10 Ej.1–5, 303–317 (Ej.5), [303], [305], [308],

[309], [316] 6/20§11 318–353 352 1/36§13 Ej.1–7, 381–430 Ej.6,7, [391], 395, 417, 423,

424, 425, (428), 429, [430] 11/57§14.2 Ej.1–5, 494–514 512 1/26§14.3 Ej.1–4, 536–654 [551], (570), (571), (595) 4/123§14.4 Ej.1–2, 665–680 670, [671], 673, 674 4/18§14.5 Ej.1–2, 681–695 Ej.1,2, 683–685, 687–689, 691,

692, 694, 695 12/17§14.5 Ej.3, 700–726 718–726 9/28

Total 13.6 % 68/500

que DSolve, que facilita la utilizacion de Mathematica como apoyo docente enla ensenanza de metodos elementales de resolucion de EDOs.

Sin lugar a dudas son muchas las mejoras que se pueden realizar en la versionactual del paquete DeSolve con objeto de incrementar su potencia, fundamen-talmente el uso de algoritmos mas complejos para el reconocimiento y para laresolucion de ecuaciones (como el algoritmo de Prelle-Singer [2]). Sin embargo,el gran problema de dichos algoritmos, de cara al usuario, es que son muchomenos transparentes que el utilizado, ya que la valoracion de su potencia exigeun conocimiento tecnico elevado del que carece el usuario medio, por lo que seobliga al usuario a tomar dichos algoritmos como cajas negras, que o dan lasolucion o no la dan. Por ello dichos algoritmos no casan bien con la filosofıade la aplicacion DeSolve presentada. Por otro lado, la implementacion basadaen reglas del paquete DeSolve permite facilmente su extension para el recono-cimiento y solucion de nuevos tipos de ecuaciones; por ejemplo, la inclusion demetodos operacionales basados en transformada de Laplace para la resolucion

13

Page 18: LCC :: Departamento de Lenguajes y Ciencias de la Computaci n plementaci¶on del paquete presentado. Los tipos de EDOs elementales lineales y no lineales de primer orden, orden superior

de sistemas de ecuaciones con coeficientes constantes.

Referencias

[1] E. Tournier “CATHODE. Summary of Organisation, History and PossibleFuture,”

in Proceedings of the Cathode Workshop Nijmegen, (Edited by A.H.M. Le-velt), http://www-lmc.imag.fr/CATHODE/, pp. 1–7 (1995).

[2] M.A.H. MacCallum “Goals of Cathode, Overview of Problems, Research andResults,”

in Proceedings of the Cathode Workshop Nijmegen, (Edited by A.H.M. Le-velt), http://www-lmc.imag.fr/CATHODE/, pp. 9–14 (1995).

[3] V. Adamchik and A.V. Bocharov “Solving Nonlinear Differential Equationswith DSolve,”

Wolfram Research Technical Report, March, 1992. Available at MathSource0203-320.

[4] A.V. Bocharov “Differential Equations of the Hypergeometric Type and Se-lected Nonlinear First and Second Order Equations,”

Reprint from The Mathematica Conference, June, 1992. Available at Math-Source 0203-960.

[5] A.V. Bocharov “Symbolic Solvers for Nonlinear Differential Equations,”

The Mathematica Journal vol. 3, pp. 63–69 (1993).

[6] G. Baumann “Generalized Symmetries. A Mathematica Program to Deter-mine Lie-Backlund Symmetries,”

Technical Report, 1994. Available at MathSource 0202-622.

[7] M.L. Abell and J.P. Braselton, Differential Equations with Mathematica,Academic Press (1993).

[8] F.R. Villatoro “Programacion Simbolica en Mathematica. Una Aplicacion ala Resolucion Simbolica de Ecuaciones Diferenciales,”

Proyecto Fin de Carrera, PF/92, (Dirigido por J.A. Falgueras), Facultad deInformatica, Universidad de Malaga (1992).

[9] A. Kiseliov, M. Krasnov y G. Makarenko, Problemas de Ecuaciones Dife-renciales Ordinarias, Ed. Mir, Moscu (1984).

[10] F. Ayres, Teorıa y Problemas de Ecuaciones Diferenciales, CompendiosSchaum, McGraw-Hill (1969).

[11] R. Bronson, Teorıa y Problemas de Ecuaciones Diferenciales Modernas,Compendios Schaum, McGraw-Hill (1973).

14

Page 19: LCC :: Departamento de Lenguajes y Ciencias de la Computaci n plementaci¶on del paquete presentado. Los tipos de EDOs elementales lineales y no lineales de primer orden, orden superior

[12] A. Moussiaux “CONVODE: a REDUCE Package for Solving DifferentialEquations,”

Journal of Computational and Applied Mathematics vol. 48, pp. 157–165(1993).

[13] L. Sterling and E. Shapiro, The Art of Prolog, MIT Press (1986).

15