next up previous
Next: Ejemplo Modo Directo Up: Manejo del Jacobiano Previous: Manejo del Jacobiano

Derivadas Direccionales - Modo Directo

Computar el producto de todas las matrices elementales del Jacobiano entrega la matriz J de f. Que éste es ciertamente costoso en tiempo y espacio. A menudo, uno sólo desea un derivada direccional $dY = J * dX$. Si substituimos $J = f'(x)$ por la extensión antedicha por la regla de cadena, obtenemos:

$dY = f'(x)dX = f'_{p}(x_{p-1}) \cdot f'_{p-1}(x_{p-2}) \cdot \cdots f'_{1}(x_{0}) \cdot dX$

El cuál se debe calcular desde la izquierda, porque los productos "matriz por vector" son tanto más baratos que los productos "matriz por matriz". Las cosas se hacen más fáciles, porque $x_{0}$ primero, después se requiere $x_{1}$, etcétera. Después las instrucciones diferenciadas, así se cálculan las matrices de Jacobiano y se multiplican, se puede hacer junto con el programa inicial. Necesitamos solamente interpolar las instrucciones originales y las instrucciones derivadas. Esto se llama el modo directo de la diferenciación automática.

En el modo directo, el programa diferenciado es sólo una copia del programa dado, las instrucciones derivadas adicionales se insertan antes de cada instrucción que implique variables activas. Cada variable activa genera una nueva variable, del mismo tipo y tamaño, que es llamada su variable derivada. Las estructuras del control del programa quedan sin cambios, es decir el Grafo de Llamados y el Gráfico de Flujo mantienen la misma forma.


next up previous
Next: Ejemplo Modo Directo Up: Manejo del Jacobiano Previous: Manejo del Jacobiano
Mauricio Araya 2003-04-08