next up previous
Next: Diferenciales y Derivadas Up: Aspectos Matemáticos Previous: Aspectos Matemáticos

Derivadas

Hay muchas maneras de obtener derivadas. Quizás los más directo es ir de nuevo a las ecuaciones que componen el programa. Supongamos que un cierto resultado es definido por algunas ecuaciones, y el programa solucionó estas ecuaciones para este resultado. Entonces se puede escribir un nuevo sistema de ecuaciones, en el cual las soluciones son las derivadas del resultado inicial. Por lo tanto, uno puede escribir un nuevo programa que solucione estas nuevas ecuaciones para las derivadas deseados. Esto es matemáticamente correcto, pero es probablemente la manera más costosa, puesto que implica discretizar las nuevas ecuaciones , entonces escribir un nuevo programa. Todos sabemos que tan difícil es esto, y cuántos errores se pueden cometer! Más aún, en algunos casos no hay ecuaciones originales simples, y solamente escribir el programa es complejo. Por lo tanto estamos buscando otra manera, más económica y que use solamente el programa original.

Usando solamente el programa original, uno puede hacer naturalmente diferencias divididas. Para un conjunto de programas dados X, el programa P computa un resultado P(X)=Y. En el caso general, X y Y son vectores, es decir, se componen de varios números reales. Ahora se da una cierta dirección normalizada dX en el espacio de entrada, se puede correr el programa P otra vez, sobre el nuevo conjunto de las entradas X+$\epsilon$dX, donde $\epsilon$ es un número positivo muy pequeño. Entonces una buena aproximación de la derivada se calcula fácilmente haciendo:

$\frac{P(X + \epsilon dX) - P(X)}{\epsilon}$

Las diferencias divididas centradas, se calculan:

$\frac{P(X + \epsilon dX) - P(X - \epsilon dX)}{2\epsilon}$

usualmente da una aproximación mejor, pero cueste una ejecución adicional del programa P. Por supuesto, esto es solo una aproximación de los derivadas. Idealmente, la derivada es exacta en el límite de estas fórmulas, cuando $\epsilon$ tiende a cero. Pero esto no tiene ningún sentido en una computador real, puesto que los valores de $\epsilon$ muy pequeños conducen a errores de truncamiento, y por lo tanto a derivadas erróneas. Ésta es la desventaja principal de diferencias divididas: un cierto tradeoff se debe encontrar entre los errores de truncamiento y los errores de la aproximación. Encontrar el mejor $\epsilon$ requiere numerosas ejecuciones del programa, e incluso entonces las derivadas son sólo aproximaciones.


next up previous
Next: Diferenciales y Derivadas Up: Aspectos Matemáticos Previous: Aspectos Matemáticos
Mauricio Araya 2003-04-08