miércoles, 6 de julio de 2011

Resolución de Ecuaciones Diferenciales con Mathemática (R)

UNIVERSIDAD DE SAN CARLOS
FACULTAD DE CIENCIAS QUIMICAS Y FARMACIA

RESOLUCION DE ECUACIONES DIFERENCIALES, USANDO EL PAQUETE MATHEMATICA ®
Luis Manfredo Reyes
Profesor Titular
Area Físico-Matemática

INTRODUCCION
Siendo el paquete computacional Mathematica ® (un producto de Wolfram Research) uno de los más importantes en el campo de la computación aplicada a la matemática, no es de extrañar que contenga utilidades para la resolución de ecuaciones diferenciales.

En este documento se analizan los casos más importantes de resolución de ecuaciones diferenciales de diferente tipo, aplicando el paquete. Sin embargo, se debe tomar en cuenta que, éste software no es un sustituto del estudio ni de la resolución manual. Es solamente una herramienta de apoyo.

Generalidades sobre la función DSolve:
La función DSolve de Mathematica es la encargada de resolver ecuaciones diferenciales. Hay varios detalles que vale la pena mencionar al respecto:
 DSolve[eqn, y, x] resuelve una ecuación diferencial para la función y, respecto a x.
 DSolve[aa, a,  a, aa, a,  a, x]resuelve una lista de ecuaciones
 DSolve[eqn, y, aa, a, … a] resuelve una ecuación diferencial parcial
 DSolve[eqn, y[x], x]obtiene soluciones para y[x] y no para la función y en sí misma.

Por ejemplo:  DSolve[y'[x] == 2 a x, y[x], x] produce como resultado: y[x]->ax2 + c[1]


Las ecuaciones diferenciales deben definirse en términos de derivadas, tales como y'[x] y no como derivadas totales. En este sentido, se requiere un poco de manipulación algegbraica previa.

Por ejemplo: la ecuación (x+y) dx + (x-y) dy=0 se debe reacomodar divididiendo entre dx y reemplazando con y'[x] para poder ser introducida al programa,  así:
                                   (x+y) dx + (x-y) dy=0            | dividir por dx
                                    (x+y)+(x-y)dy/dx=0   |  reemplazar
                                   (x+y)+(x-y)*y'[x]=0

DSolve produce constantes de integración, que para diferenciarlas están debidamente indexadas. Por default, las constantes se nombran C[1], C[2], etcétera. es posible forzar a que exista una constante que reúna a todas (constante única), para lo cual se ingresa la orden: DSolveConstants->(Module[{C},C] &)

Para resolver ecuaciones diferenciales parciales, DSolve genera funciones arbitrarias C[n]

Condiciones de frontera se pueden especificar, dando ecuaciones como por ejemplo:  y'[0] == b

En algunos casos, las soluciones que DSolve produce incluyen integrales que no pueden ser resueltas por el comando Integrate. En ese caso, se producen variables temporales (Dummy) en tales integrales.

En algunos casos, DSolve produce soluciones implícitas que deben ser refinadas.

DSolve puede resolver sistemas de ecuaciones lineales ordinarias de cualquier orden, con coeficientes constantes. También es capaz de resolver ecuaciones lineales hasta de segundo orden con coeficientes no constantess.

EJEMPLOS:

Resuelva:
dy/dx=ay    donde a es cualquier constante
     Inicialmente se debe acomodar la expresión: dy/dx=ay es equivalente a y'=ay
     en Mathematica se ingresa:  DSolve[y'[x]==a*y,y[x],x]
     y la respuesta que se obtiene es: y[x]->Ea*x*C[1]

Resuelva:

DSolve[y''[x]==a*y'[x]+y[x],y[x],y,x]

La respuesta que produce el paquete es:
 

No hay comentarios:

Publicar un comentario