capÍtulo v: aplicaciones al cÁlculo. ecuaciones
TRANSCRIPT
-
4.-El algoritmo de ordenacin rpida es un algoritmo de ordenacin de listas en el que cada elemento es com-parado con uno fijo de la lista, por ejemplo el primero. Si un elemento es menor que el primero se guarda en unalista que llamaremos lista1, y si no se guarda en otra que llamaremos lista2. Con cada una de esas listas se repite elproceso; asi sucesivamentehasta que en las particiones sucesivas slo quede un elemento.
Programar el algoritmo anterior en una funcin recursiva que se llame Ordena , y que tenga como argumentos unalista de nmeros
5.-A continuacin hemos definido la funcin ProdExt que da el producto hemisimtrico de tensores hemisimtri-cos. Explica cada instruccin razonadamente.
ProdExt@w@i__D, w@j__DD :=Signature@Join@List@iD, List@jDDD *Apply@w, Sort@Join@List@iD, List@jDDDD;SetAttributes@ProdExt, FlatD;ProdExt@t1_ + t2_, t3_D := ProdExt@t1, t3D + ProdExt@t2, t3D;ProdExt@a_. x_w, b_. y_wD := Times@a, b, ProdExt@x, yDD
CAPTULO V: APLICACIONES AL CLCULO.
ECUACIONES DIFERENCIALES Y SISTEMAS
DE ECUACIONES DIFERENCIALES.Se llama ecuacin diferencial a una ecuacin del tipo
F(x1,.... ,xn,y1,...,ym,y1
x1, ....
y1
xn, ...,
x1
1 ... xnn
)=0
en la que aparecen ligadas n variables independientes x1,.... ,xn, m variables dependientes y1,...,ym, y las derivadas
parciales de las variables dependientes respecto de las n variables independientes. Resolver la ecuacin es encon-
trar funciones y1= f1(x1,.... ,xn),....,ym = fm(x1,.... ,xn) tales que al ser sustituidas en la ecuacin esta se verifique
idnticamente.
Si slo aparece una variable independiente diremos que la ecuacin es una ecuacin diferencial ordinaria (EDO u
ODE en ingls). En caso contrario, diremos que la ecuacin es una ecuacin diferencial en derivadas parciales
(EDP o PDE en ingls).
Llamaremos orden de la ecuacin al orden de la mayor derivada que aparezca.
Mathematica puede resolver ecuaciones diferenciales y sistemas de ecuaciones diferenciales y dependiendo de su
dificultad, se pueden obtener soluciones simblicas o bien soluciones aproximadas con precisin arbitraria.
A continuacin veremos algunos rudimentos sobre la resolucin de ecuaciones diferenciales con Mathematica.Puedes encontrar ms informacin en la ayuda y en particular en los tutoriales de la ayuda tutorial/D-SolveOverview, tutorial/NDSolveOverview y tutorial/NumericalSolutionOfDifferentialEquations.
Clculo avanzado con Mathematica.nb 55
-
5.1.RESOLUCIN SIMBLICA DE ODE Y PDE
La funcin de Mathematica que resuelve de modo exacto ecuaciones diferenciales es DSolve
Algunas cuestiones respecto a la definicin de DSolve son las siguientes:
Respecto de las ecuaciones ordinarias: Las ecuaciones lineales con coeficientes constantes se resuelven utilizando exponenciacin matricial. Las ecuaciones de segundo orden lineales con coeficientes variables, cuyas soluciones se pueden expresar entrminos de funciones elementales y sus integrales, se resuelven utilizando el algoritmo de Kovacic Las ecuaciones lineales con coeficientes polinomios se resuelven en trminos de funciones especiales usandotranformaciones de Mellin. Siempre que se pueda , las ecuaciones no lineales se resuelven utilizando reducciones por simetria. Para ecua-ciones de primer orden se utilizan tcnicas clsicas y para ecuaciones de segundo orden y sistemas se utilizantcnicas de Bocharov.
Para EDP se utilizan separacin de variables y reducciones por simetrias. DSolve integra ecuaciones con dos o msvariables independientes y una variable dependiente. Puede resolver la mayoria de las ecuaciones de primer orden yun nmero limitado de ecuaciones de segundo orden, habitualmente aquellas que se encuentran en libros standardde referencia.
DSolve ocupa alrededor de 300 pginas en cdigo de Mathematica y 200 en cdigo C.
5.1.1 RESOLUCION SIMBLICA DE EDO
El comando para resolver ecuaciones diferenciales es DSolve y su sintaxis es la siguiente:
DSolve[ecuacion,y[x],x]o
DSolve[ecuacion,y,x]
La diferencia entre usar DSolve de un modo u otro reside en la forma en que se devuelven las soluciones. En elprimero las soluciones se obtienen en forma de regla de transformacin, mientras que en la segunda se obtienen enforma de funcin pura.
Veamos un ejemplo:
sol1 = DSolve@y@xD == a y@xD + 1, y@xD, xD::y@xD - 1
a+ Ea x C@1D>>
Devuelve la solucin en forma de regla de tranformacin. Si queremos utilizar la solucin como una funcin enclculos posteriores, lo haremos utilizando la solucin como una regla de sustitucin local :
y@xD + 2 y@xD . sol1P1T-1
a+ Ea x C@1D + 2 y@xD
La regla de sustitucin se aplica slo a y[x] y no a y'[x]
sol2 = DSolve@y@xD == a y@xD + 1, y, xD::y FunctionBx, - 1
a+ Ea x C@1DF>>
Devuelve la solucin en forma de regla de transformacin, pero en modo puro. Esto tiene la ventaja que cuandoutilizamos la solucin como una regla de sustitucin local, se sustituye no slo y[x], sino tambin y'[x],y[2]...
56 Clculo avanzado con Mathematica.nb
-
Devuelve la solucin en forma de regla de transformacin, pero en modo puro. Esto tiene la ventaja que cuandoutilizamos la solucin como una regla de sustitucin local, se sustituye no slo y[x], sino tambin y'[x],y[2]...
y@xD + 2 y@xD . sol2:- 1
a+ Ea x C@1D + 2 a Ea x C@1D>
La solucin general de una EDO de orden n depende de n constantes arbitrarias. Por defecto estas constantes sedenotan C[1], ....,C[n]
Podemos indicar condiciones iniciales sobre las soluciones, aadiendolas a la lista de ecuaciones. Si aadimossuficientes condiciones iniciales, los valores de las constantes C[1], ....,C[n] quedan completamente determinados
Clear@yDsol3 = DSolve@8y@xD == a y@xD + 1, y@0D == 0>
Tambin podemos indicar condiciones de contorno. A diferencia de los problemas de condiciones iniciales, quetienen solucin nica los de contorno pueden no tener solucin o tener infinitas soluciones.
El problema siguiente tiene infinitas soluciones
DSolve@8y''@xD + 4 * y@xD 0, y@0D 0, y@PiD 0
-
5.1.1.1.1 Ecuaciones diferenciales ordinarias lineales de primer orden
La forma ms general para una ecuacin de este tipo es:
y'[x]+a[x]* y[x]=b[x].
Si b[x]=0 decimos que la ecuacin es homognea.
Veamos un ejemplo
sol4 = DSolve@y@xD - x y@xD == 0, y@xD, xD::y@xD E x22 C@1D>>
Si consideramos la misma ecuacin no homogenea obtenemos una solucin mucho ms complicada
sol5 = DSolve@y@xD - x y@xD == 1, y@xD, xD
::y@xD E x22 C@1D + E x22 2
ErfB x2
F>>
En este caso la solucin se expresa en trminos de la funcin de error (Erf).
Una ecuacin lineal de primer orden siempre se puede resolver haciendo integrales.
5.1.1.1.2. Ecuaciones diferenciales lineales de segundo orden
Una ecuacin diferencial lineal de segundo orden no siempre se puede resolver haciendo integrales. Pero muchasde las ecuaciones diferenciales lineales de orden 2 se pueden resolver en trminos de funciones especiales, fun-ciones introducidas en muchos casos para resolver especficamente tales ecuaciones.
Veamos algunos ejemplos:
La ecuacin de Airy se resuelve en trminos de las funciones de Airy
sol6 = DSolve@y@xD - x y@xD == 0, y@xD, xD88y@xD AiryBi@xD C@1D + AiryAi@xD C@2D>
Sin embargo, a veces una ecuacin lineal de orden 2 se puede resolver slo utilizando funciones elementales,como ocurre con la ecuacin de Euler
sol8 = DSolveAx2 y@xD + y@xD == 0, y@xD, xE::y@xD x 12 J1-I 3 N C@1D + x 12 J1+I 3 N C@2D>>
58 Clculo avanzado con Mathematica.nb
-
5.1.1.1.3. Ecuaciones diferenciales lineales de orden superior
Para las ecuaciones de orden superior a dos las funciones necesarias para resolver incluso ecuaciones sencillas,pueden ser muy complicadas. Para las de orden tres la funcin generalizada MeijerG resuelve el problema enalgunos casos. Para ecuaciones de orden cuatro o superior en la mayoria de los casos no es posible en generalencontrar funciones adecuadas que resuelvan un nmero amplio de ecuaciones.
sol9 = DSolveAyH3L@xD + x y@xD == 0, y@xD, xE::y@xD C@1D HypergeometricPFQB8, - x4
64F +
x C@2D HypergeometricPFQB8>
::y@xD C@1D HypergeometricPFQB8
-
sol12 = DSolveA9y'@xD - y@xD2 == x, y@0D 3=, y, xE::y FunctionB8x>Plot@y@xD . sol12@@1DD, 8x, 0, 10
La ecuacin de Abel se puede resolver pero slo implcitamente
sol13 = DSolveA9y@xD + x y@xD3 + y@xD2 == 0,y@0D == 0=, y, xE
Solve::tdep:
The equations appear to involve the variables to be solved for in an essentially non-algebraic way.
SolveB 12
2 ArcTanhB -1-2 x y@xD5
F5
+ LogB -1 - x y@xD H-1 - x y@xDLx2 y@xD2 F C@1D - Log@xD, y@xDF
5.1.1.3 . APLICACIONES DE ECUACIONES DIFERENCIALES
5.1.1.3.1. TRAYECTORIAS ORTOGONALES A UNA FAMILIA DE CURVAS
Encontrar la familia de trayectorias ortogonales a la familia de elipsesx2+y2 - x * y = c2. Dibujar la familia de elipses y sus trayectorias ortogonales
Para dibujar la familia de elipses utilizamos la instruccin ContourPlot
60 Clculo avanzado con Mathematica.nb
-
dibu = ContourPlot@x^2 + y^2 - x * y, 8x, 0, 10 D@y@xD, xDL2 x - y@xD - x y@xD + 2 y@xD y@xD
Despejamos en eq1 el valor de y'[x]
Solve@eq1 == 0, y'@xDD::y@xD -2 x + y@xD
-x + 2 y@xD >>
La familia de trayectorias ortogonales a fam1 tiene pendiente -1/m1 , si la de fam1 es m1. Por tanto la ecuacindiferencial que verifican las trayectorias ortogonales es
y@xD == x-2 y@xD-2 x+y@xD
Clculo avanzado con Mathematica.nb 61
-
La familia de trayectorias ortogonales a fam1 tiene pendiente -1/m1 , si la de fam1 es m1. Por tanto la ecuacindiferencial que verifican las trayectorias ortogonales es
y@xD == x-2 y@xD-2 x+y@xD
Resolvemos la ecuacin diferencial
sol = DSolveBy@xD == x - 2 y@xD-2 x + y@xD , y, xF
::y FunctionB8x,
:y FunctionB8x,
:y FunctionB8x>
sol@@1DD:y FunctionB8x
solu = y@xD . sol@@1DD
1
2-2 x -
2 C@1D
313 18 2 C@1D x + 3 6 C@1D + 108 4 C@1D x213 +
18 2 C@1D x + 3 6 C@1D + 108 4 C@1D x213
323
62 Clculo avanzado con Mathematica.nb
-
solu1 = solu . 8E^x_ x