lunes, 2 de mayo de 2016

Apuntes de cálculo

Cálculo diferencial

 derivada logarítmica de una función f queda definida por la fórmula
 \frac{f'}{f} \!
donde f ′ es la derivada de f.
Cuando f es una función f(x) de una variable real x, y toma valores reales, estrictamente positivos, esta es entonces la fórmula para (log f)′, o sea, la derivada dellogaritmo natural de f, como se deduce aplicando directamente la regla de la cadena.

Propiedades básicas

Muchas propiedades del logaritmo real también son válidas para la derivada logarítmica, aún cuando la función no toma valores de reales positivos. Por ejemplo, dado que el logaritmo de un producto es la suma de los logaritmos de los factores, se tiene que
 (\log uv)' = (\log u + \log v)' = (\log u)' + (\log v)' .\!
Por lo que para funciones reales positivas, la derivada logarítmica de un producto es la suma de la derivada logarítmica de los factores. También es posible aplicar laregla de Leibniz para la derivada del producto y así obtener  \frac{(uv)'}{uv} = \frac{u'v + uv'}{uv} = \frac{u'}{u} + \frac{v'}{v} .\!  Por lo tanto, es cierto que para toda función que la derivada logarítmica de un producto es la suma de las derivadas logarítmicas de los factores (cuando las mismas están definidas).
En forma similar (de hecho es una consecuencia), la derivada logarítmica de de la función recíproca de una función es el negado de la derivada logarítmica de la función:
 \frac{(1/u)'}{1/u} = \frac{-u'/u^{2}}{1/u} = -\frac{u'}{u} ,\!
en la misma forma que el logaritmo de la recíproca de un número real positivo es la negación del logaritmo del número.
En forma general, la derivada logarítmica de un cociente es la diferencia de las derivadas logarítmicas del dividendo y del divisor:
 \frac{(u/v)'}{u/v} = \frac{(u'v - uv')/v^{2}}{u/v} = \frac{u'}{u} - \frac{v'}{v} ,\!
en la misma forma que el logaritmo de un cociente es la diferencia de los logaritmos del dividendo y del divisor.
Con respecto a la derivada logarítmica de una potencia (con exponente real constante), la misma es el producto del exponente y de la derivada logarímica de la base:
 \frac{(u^{k})'}{u^{k}} = \frac {ku^{k-1}u'}{u^{k}} = k \frac{u'}{u} ,\!
en forma análoga a que el logaritmo de una potencia es el producto entre el exponente y el logaritmo de la base.
En resumen, tanto las derivadas como los logaritmos poseen una regla del producto, una regla recíproca, una regla del cociente, y una regla de la potencia (comparar con la lista de identidades logarítmicas); cada par de reglas se encuentran relacionadas mediante la derivada logarítmica.

Cálculo de derivadas ordinarias utilizando derivadas logarítmicas

Las derivadas logarítmicas pueden ayudar a simplificar el cálculo de derivadas que requieren la regla del producto. El procedimiento es el siguiente: Supongamos que ƒ(x) = u(x)v(x) y que se desea calcular ƒ'(x). En vez de realizar el cálculo en forma directa, calculamos su derivada logarítmica. O sea, se calcula:
\frac{f'}{f} = \frac{u'}{u} + \frac{v'}{v}.
Multiplicando por ƒ se calcula ƒ':
f' = f\left(\frac{u'}{u} + \frac{v'}{v}\right).
Esta técnica es especialmente útil cuando ƒ es el producto de una gran cantidad de factores. La técnica descrita hace posible calcular ƒ' mediante el cálculo de la derivada logarítmica de cada factor, sumando, y multiplicando por ƒ.

Factores de integración

La idea de la derivada logarítmica está muy relacionada con el método del factor de integración para ecuaciones diferenciales de primer orden. Utilizando una notación en de operadores, se tiene
D = d/dx
y sea M el operador de multiplicación por alguna función G(x). Entonces
M−1DM
puede ser escrito (por la regla del producto) como
D + M*
donde M* ahora es el operador de multiplicación por la derivada logarímica
G′/G.
En la práctica tenemos un operador tal que
D + F = L
y deseamos resolver ecuaciones del tipo
L(h) = f
para la fuunción h, conocida f. Por lo que el problema queda reducido a resolver
G′/G = F
que tiene la siguiente solución
exp(∫F)
con cualquier integral indefinida de F.

Análisis complejo

La fórmula indicada puede ser aplicada en forma amplia; por ejemplo si f(z) es una función meromórfica, tiene sentido en todos los valores complejos z en los cuales fno posee ni un cero ni un polo. Es más aún, en un cero o en un polo la derivada logarítmica se comporta en una forma tal que es fácilmente analizable mediante el caso particular
zn
con n un entero, n ≠ 0. La derivada logarítmica es
n/z;
y es posible generalizar la conclusión en el sentido de que si f es meromórfica, las singularidades de la derivada logarítmica de f son todos polos simples, con residuo nde un cero de orden n, residuo −n de un polo de orden n. Véase argument principle. Esta información a menudo es utilizada en integración de contorno.

Derivada logarítmica

Es un método  de cálculo de funciones derivadas que consiste en tomar primero logaritmos neperianos en los dos miembros de la ecuación de la función, transformar el segundo miembro aplicando propiedades de los logaritmos, derivar después los dos miembros de la ecuación teniendo en cuenta la Regla de la Cadena, y, finalmente, despejar la derivada   .

Por ejemplo:
              
               

Este método lo utilizaremos más adelante para hallar, por ejemplo, la función derivada de una función potencial-exponencial. Pero de momento lo vamos a utilizar en los apartados que siguen para hallar fácilmente las funciones derivadas de otras muchas funciones elementales. El alumno, pues, debe tenerlo en cuenta sin que sea necesario que lo indiquemos en cada caso.

 ·  Derivada de la función potencial     

        
¤ “La derivada de una potencia es igual al exponente multiplicado por la base elevada a una unidad menos”


Incluyendo la Regla de la Cadena:      


Es muy importante destacar que la regla es válida para cualesquiera exponentes racionales, como se ha indicado al principio, lo cual nos permitirá derivar fácilmente como potenciales todas aquellas funciones que puedan expresarse como tales según veremos en los ejemplos que siguen.

Además –y esto lo consideramos importante–, al actuar así no tenemos necesidad de forzar nuestra memoria con una regla más para derivar las funciones que sean raíces de índice mayor que dos.

Ejemplos:
   a)  Si 
   b)  Si 
        
   c)  Si 
   d)  Si 
   e)  Si 
   f)  Si 
        
   g)  Si    ®
®   
   h)  Si 
          

   i)  Ahora que sabemos derivar funciones potenciales, podemos poner algún otro ejemplo de función continua y no derivable en un punto anguloso.

         Se trata, por ejemplo, de la función , cuya derivada, ya hallada en el apartado d), es  .

         Si intentamos hallar el valor de dicha derivada en el punto  (donde ) nos encontramos que no podemos hallar la regla anterior, pues  , siendo imposible dividir por cero. La gráfica de esta función tiene un punto “anguloso” en el origen por lo que no tiene derivada en . Sin embargo, es una función definida y continua en todo  (también, por tanto, en el origen), siendo además función par, y, consecuentemente, simétrica respecto al eje Y. Su gráfica es fácil de hallar, siendo aproximadamente de la forma







diferenciación automática, o DA, también conocida como diferenciación algorítmica, es un método para la evaluación de derivadas de una función expresada como un programa de computación. Existen dos métodos clásicos para el cálculo de derivadas:
  • derivar simbólicamente la función obteniendo una expresión y evaluarla en un punto dado; o
  • utilizar derivación numérica.
El inconveniente de la derivación simbólica es la lentitud y la dificultad de convertir programas de computación en una única expresión. Además, la complejidad de muchas funciones crece según se calculan derivadas de mayor grado. Dos inconvenientes importantes de las derivadas finitas son los errores de redondeo en cálculos de naturaleza discreta y la cancelación. Los dos métodos clásicos tiene problemas con el cálculo de derivadas de mayor grado, donde la complejidad y los errores se ven incrementados. La diferenciación automática soluciona todos estos problemas.
DA se basa en el hecho de que cualquier programa de computación que implemente una función vectorial y = F(x) (generalmente) se puede descomponer en una secuencia de asignaciones elementales, siendo cada una trivialmente diferenciable utilizando una LUT (LookUp Table o tabla para búsquedas). Estas derivadas parciales básicas, evaluadas utilizando los argumentos, se combinan de acuerdo a regla de la cadena del cálculo de derivadas para formar información derivada para F (como gradientes, tangentes, la matriz Jacobiana, etc.). Este proceso obtiene derivadas exactas (según la precisión numérica). Debido a que la transformación simbólica ocurre sólo en el nivel más básico, DA evita los problemas computacionales inherentes al cálculo simbólico complejo.

Aplicado a ecuaciones diferenciales

Desarrollo de Taylor para \ x'=f(t,x)  en el punto \,x_0 .
Con la notación \ f^{[n]}(t)=\frac{f^{(n)}(t)}{n!} podemos tener el siguiente desarrollo:
\ x(t+h)=x^{[0]}(t)+x^{[1]}(t)h+x^{[2]}(t)h^2+...+x^{[n]}(t)h^n:
  • para orden 0 se usa \ x^{[0]}(t)=x_0
  • para orden 1 se usa \ x^{[1]}(t)=f(t,x_0)
para el resto se aplica los siguientes resultados:
  • \ f'(t)=g(t):
f^{[n]}(t)=\frac{f^{(n)}(t)}{n!}=\frac{g^{(n-1)}(t)}{n!}=\frac{1}{n}\frac{g^{(n-1)}(t)}{(n-1)!}=\frac{1}{n}g^{[n-1]}(t)
  • \ f(t)=g'(t): f^{[n]}(t)=(n+1)g^{[n+1]}(t)
  • \ f(t)=g(t)+h(t): f^{[n]}(t)=g^{[n]}(t)+h^{[n]}(t)
  • \ f(t)=g(t)h(t): f^{[n]}(t)=\sum_{i=0}^n{g^{[n-i]}(t)h^{[i]}(t)}

La regla de la cadena, acumulación hacia adelante y hacia atrás

Acumulación hacia adelante

Acumulación hacia atrás

Computación Jacobiana

Más allá de la acumulación hacia adelante y hacia atrás

Derivada en la aritmética aumentada con números duales para el cálculo de la diferenciación automática

Argumentos y funciones vectoriales

Derivadas de mayor orden

Implementación

La DA hacia adelante se implementa mediante una interpretación no estándar del programa en el cual los números reales son sustituidos por números duales, las constantes se convierten en números duales con un coeficiente epsilon igual a cero, y las primitivas numéricas se modifican para que operen con números duales. Esta interpretación no estándar se implementa generalmente mediante dos estrategias: modificación del código fuente o sobrecargando operadores.

Las nociones de diferenciales y de derivados han mencionadas en forma vaga. Esto es porque hay muchos ``objetos derivados" que uno puede desear, y cada uno de ellos se obtiene con una diferenciación automática específica. Aquí están algunos ejemplos:
$\bullet$ Uno simplemente puede desear la derivada del programa. Más exactamente, siendo las entradas y las salidas del programa generalmente vectores, la derivada es una matriz, conocida como el Jacobiano, cada elemento (i,j) del Jacobiano es la derivada parcial
$\frac{\partial Y_{i}}{\partial X_{j}}$
de la salida Yi con respecto a la entrada Xj. Cuando los valores son arreglos, el objeto derivado se convierte en una matriz. Esto conduce a llevar Jacobianos parciales junto con flujo principal del programa. Esto es generalmente costoso en memoria y tiempo. Esta desventaja puede ser enfrentada parcialmente si, las representaciones de los objetos derivados son dispersos.
$\bullet$ Se puede desear simplemente derivadas direccionales. Esto significa que, en vez del Jacobiano explícito J, sólo se necesita un vector dado dX en el espacio de la entrada. Este efecto es realmente $dY = J * dX$, pero uno puede evaluarlo sin calcular explícitamente J. For que, el objeto derivado que se debe computar junto con cada valor v sea su dv ``diferencial", es decir (la aproximación de primer orden de) la cantidad por la cual v varía cuando la entrada X varía en dX. Según lo esperado, ésto es lejos menos costoso que construyendo el Jacobiano entero. Observe que los derivadas direccionales también pueden proveernos del Jacobiano, si los deriatives direccionales son calculadas para cada dirección canónica en el espacio de la entrada. Es decir esto requiere un cómputo del derivada direccional por variable de la entrada, e incluso menos, si una sabe que el Jacobiano es la suficientemente disperso.
$\bullet$ Uno puede desear gradientes. Cuando hay sólo una salida, el Jacobiano tiene solamente una línea, que es exactamente el gradiente del resultado con respecto a las entradas. Cuando hay muchas salidas, uno define un resultado compuesto escalar, es decir una cierta combinación linear de estas salidas, o sea, uno desea una combinación de las líneas del Jacobianio Xb = Yb * J. Esto puede ser calculado sin explícitamente computar J. El objeto derivado se llame un ``adjoint", y se calcula en reversa del orden del programa original, será explicado más adelante. Como con los derivadas direccionales, uno puede calcular completo el Jacobiano calculando los gradientes, para cada dirección canónica en el espacio de la salida, o menos que eso cuando el Jacobiano es disperso. Es fácil comprobar que este acercamiento es recomendable cuando hay más entradas que las salidas
$\bullet$ Se pueden desear los derivadas de orden superior. (Hessiano). Esto se puede hacer calculando un objeto derivado que sea un tensor Hessiano parcial. Puesto que esto pudo ser muy costoso, otro acercamiento es calcular derivadas de orden superior direccionales, y utilizarlas luego para recalcular los coeficientes del Hessiano.
$\bullet$ Uno puede desear derivadas de orden superior direccionales. Dado un vector direccional dX del espacio de entrada, uno computa junto con el programa original un objeto derivado que contenga la primera y las derivados de más alto orden de cada valor intermedio en la dirección dX. Las derivadas de orden superior son útiles para conseguir aproximaciones más exactas, y optimizaciones más eficientes.
$\bullet$ Uno puede desear expansiones de las series de Taylor.
$\bullet$ Se puede desear calcular intervalos. Ésta no es en sentido estricto una cuestión de derivadas, pero comparten muchas semejanzas. El objeto derivado calculado junto con cada valor v es el intervalo en el cual este valor puede variar.

No hay comentarios:

Publicar un comentario