Páginas

miércoles, 14 de noviembre de 2018

CÁLCULO

CÁLCULO DIFERENCIAL

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[editar]

Desarrollo de Taylor para  en el punto .
Con la notación  podemos tener el siguiente desarrollo:
  • para orden 0 se usa 
  • para orden 1 se usa 
para el resto se aplica los siguientes resultados:

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

Acumulación hacia atrás[editar]

Computación Jacobiana[editar]

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

Argumentos y funciones vectoriales[editar]

Implementación[editar]

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.

Modificación del código fuente[editar]

El código fuente de una función se reemplaza por un código generado automáticamente que incluye instrucciones para el cálculo de las derivadas intercaladas con las instrucciones originales.
La modificación del código fuente se puede implementar para cualquier lenguaje de programación, y es más fácil de optimizar para el compilador. Sin embargo, la implementación de la propia herramienta de DA es más difícil.
Ejemplos:
  • ADIC (C/C++, forward mode)
  • ADIFOR (Fortran77)
  • OpenAD (Fortran77, Fortran95, C/C++)
  • TAPENADE (Fortran77, Fortran95, C)
  • Maple (software) (Lenguaje Maple, puede generar código en C/C++/Java/Visual Basic/Matlab/Fortran)

Sobrecarga de operadores[editar]

La sobrecarga de operadores es una posibilidad para el código fuente escrito en un lenguaje que lo soporte. Los objetos para los números reales y las operaciones matemáticas básicas se deben sobrecargar para corresponder con la aritmética aumentada descrita arriba. No se requiere ningún cambio en el código fuente original de la función para que se pueda derivar.
La sobrecarga de operadores para acumulación hacia adelante es fácil de implementar, siendo también factible para la acumulación hacia atrás. Sin embargo, los compiladores actuales no optimizan tanto el código como en el caso de acumulación hacia adelante.
Ejemplos:














Diferencial de una función

Ir a la navegaciónIr a la búsqueda
En matemática, concretamente en cálculo diferencial, el diferencial es un objeto matemático que representa la parte principal del cambio en la linealización de una función y = ƒ(x) con respecto a cambios en la variable independiente. Existen diversas definiciones de diferencial en diversos contextos.


Funciones de una variable[editar]

Informalmente, el diferencial dy se define en cursos introductorios mediante la expresión:
donde  es la derivada de f con respecto a x, y donde dx es una variable real adicional (de manera que dyes una función de dos variables x, y dx). La notación es tal que la expresión:
donde la derivada es representada en la notación de Leibniz dy/dx, se mantiene, y es consistente con respecto a la derivada como el cociente de diferenciales.
El significado preciso de las variables dy y dx depende del contexto de aplicación y del nivel de rigor matemático requerido. Según consideraciones matemáticas rigurosas modernas, las notaciones dy y dx son simplemente variables reales y son manipuladas como tales. El dominio de estas variables puede tomar un significado geométrico particular si el diferencial es considerado como una forma diferencial, o significado analítico si el diferencial es considerado como una aproximación lineal al incremento de una función. En aplicaciones físicas, a menudo, se requiere que las variables dx y dy sean sumamente pequeñas (infinitesimales).

Definición[editar]

Para funciones de variables reales es posible definir el diferencial rigurosamente interpretándolo como una 1-forma. Así el diferencial está definido en los tratamientos modernos del cálculo diferencial de la siguiente manera.1​ El diferencial de una función ƒ(x) de variable real  es la función df:
donde dx y df son covectores del espacio cotangente  que es isomorfo al propio . Uno, o los dos, argumentos pueden ser suprimidos: ej., se puede ver df(x) o simplemente df. Si y = ƒ(x), el diferencial también puede ser escrito dy. Dado que dx(x, Δx) = Δx es convencional escribir dx = Δx, de manera que la igualdad
se mantiene.

Interpretación geométrica del diferencial[editar]

El diferencial se puede tomar en el sentido geométrico como la elevación de la tangente desde el punto en que se toma el diferencial.
Recuérdese que la derivada de la función en el punto es la pendiente de la recta tangente a la función en el punto, como sabemos que la tangente de un ángulo es igual al cociente entre el cateto opuesto (incremento de y) y el cateto contiguo (incremento de x) de un hipotético triángulo rectángulo, sólo hay que despejar el incremento de y que equivale a nuestro diferencial.
Vista geométricamente, la elevación se produce verticalmente a partir del punto en que se toma el diferencial. El incremento  que se tome representará el alejamiento horizontal que haga desde el punto en cuestión.
Así la elevación de la tangente que se obtenga como resultado dependerá del punto en cuestión y del alejamiento horizontal que se tomen, que en la fórmulas matemáticas están definidos respectivamente por  y .

Generalizaciones[editar]

Matriz jacobiana[editar]

Para funciones de más de una variable, el concepto de diferencial es generalizado mediante la matriz jacobiana. La matriz jacobiana es una representación en coordenadas de una aplicación lineal que aproxima en primer orden una función de  a . Los requerimientos de diferenciabilidad en espacios euclídeos de dimensión superior a 1, son un poco más exigentes que en , ya que la simple existencia de derivadas no es suficiente para asegurar la diferenciabilidad.

Aplicaciones entre variedades[editar]

Dadas dos variedades diferenciables  de dimensión m y  de dimensión n y una aplicación entre ellas  el concepto de aplicación diferencial tangente (o pushforward) es una aplicación lineal entre los fibrados tangentes de ambas variedades. Una aplicación de ese tipo se dice diferenciable si dada una carta local  que contenga al punto  y  que contenga a , la aplicación es diferenciable como función de  a .
Para definir la noción de aplicación lineal tangente de una aplicación diferenciable entre variedades debe tenerse en cuenta el hecho de que el espacio tangente a una variedad diferenciable puede identificarse con el conjunto de derivaciones sobre el espacio de funciones definidas sobre la variedad. En esa identificación una derivación se puede llegar a identificar como "la derivada direccional" en una cierta dirección. Dado ese vínculo un vector queda caracterizado por su acción sobre las funciones definidas sobre una variedad. A partir de esa noción dada una aplicación diferenciable  se define la aplicación lineal tangente:
Tal que a un vector en p  le asigna el único vector  que hace que se cumpla que:
Donde:

No hay comentarios:

Publicar un comentario