CAPÍTULO V: APLICACIONES AL CÁLCULO. ECUACIONES ...

31
4.-El algoritmo de ordenación rápida es un algoritmo de ordenación 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 una lista que llamaremos lista1, y si no se guarda en otra que llamaremos lista2. Con cada una de esas listas se repite el proceso; asi sucesivamentehasta que en las particiones sucesivas sólo quede un elemento. Programar el algoritmo anterior en una función recursiva que se llame Ordena , y que tenga como argumentos una lista de números 5.-A continuación hemos definido la función ProdExt que da el producto hemisimétrico de tensores hemisimétri- cos. Explica cada instrucción 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 CAPÍTULO V: APLICACIONES AL CÁLCULO. ECUACIONES DIFERENCIALES Y SISTEMAS DE ECUACIONES DIFERENCIALES. Se llama ecuación diferencial a una ecuación del tipo F( x 1 ,.... , x n , y 1 ,..., y m , y 1 x1 , .... y 1 xn , ..., Α x 1 Α 1 ... x n Αn )=0 en la que aparecen ligadas n variables independientes x 1 ,.... , x n , m variables dependientes y 1 ,..., y m , y las derivadas parciales de las variables dependientes respecto de las n variables independientes. Resolver la ecuación es encon- trar funciones y 1 = f 1 ( x 1 ,.... , x n ),...., y m = f m ( x 1 ,.... , x n ) tales que al ser sustituidas en la ecuación esta se verifique idénticamente. Si sólo aparece una variable independiente diremos que la ecuación es una ecuación diferencial ordinaria (EDO u ODE en inglés). En caso contrario, diremos que la ecuación es una ecuación diferencial en derivadas parciales (EDP o PDE en inglés). Llamaremos orden de la ecuación 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 simbólicas o bien soluciones aproximadas con precisión arbitraria. A continuación veremos algunos rudimentos sobre la resolución de ecuaciones diferenciales con Mathematica. Puedes encontrar más información en la ayuda y en particular en los tutoriales de la ayuda tutorial/D- SolveOverview, tutorial/NDSolveOverview y tutorial/NumericalSolutionOfDifferentialEquations. Cálculo avanzado con Mathematica.nb 55

Transcript of CAPÍTULO V: APLICACIONES AL CÁLCULO. ECUACIONES ...

  • 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