Diferenciación Automática Anidada. Un enfoque algebraico
UUniversidad de La HabanaFacultad de Matem´atica y Computaci´on
Diferenciaci´on Autom´aticaAnidada.Un enfoque algebraico.
Trabajo presentado como parte de los requisitos para optar porel t´ıtulo de Licenciado en Matem´atica
Autor:
Juan Luis Valerdi Cabrera
Tutor:Msc.
Fernando Raul Rodriguez Flores
Junio de 2012 a r X i v : . [ c s . S C ] M a y esumen En este trabajo se presenta una propuesta para realizar Diferenciaci´onAutom´atica Anidada utilizando cualquier biblioteca de Diferenciaci´on Au-tom´atica que permita sobrecarga de operadores. Para calcular las derivadasanidadas en una misma evaluaci´on de la funci´on, la cual se asume que seaanal´ıtica, se trabaja con el modo forward utilizando una nueva estructurallamada SuperAdouble, que garantiza que se aplique correctamente la dife-renciaci´on autom´atica y se calculen el valor y la derivada que se requiera.Tambi´en se presenta un enfoque algebraico de la Diferenciaci´on Autom´aticay en particular del espacio de los SuperAdoubles.
Indice general
Introducci´on 31. Preliminares 6
2. Diferenciaci´on Autom´atica 10
3. C´alculo de Derivadas Anidadas 17
4. Espacio Adouble 22 A . Operaciones elementales . . . . . . . . . . . 234.2. Funciones de variable adouble . . . . . . . . . . . . . . . . . . 254.2.1. Unidad dual . . . . . . . . . . . . . . . . . . . . . . . . 264.2.2. Definici´on de funciones . . . . . . . . . . . . . . . . . . 28
5. Espacio SuperAdouble 30 SA . . . . . . . . . . . . . . . . . . . . . . . . 325.3. Funciones de variable superadouble . . . . . . . . . . . . . . . 38 Conclusiones 44 ibliograf´ıa 45Anexos 47 ntroducci´on Muchas veces es necesario calcular el valor num´erico de una funci´on y ala vez obtener una aproximaci´on precisa de las derivadas. Ejemplos de estose pueden encontrar en los m´etodos num´ericos de la programaci´on no lineal[1], en los m´etodos impl´ıcitos para la resoluci´on num´erica de ecuacionesdiferenciales [2] y en problemas inversos en la asimilaci´on de datos [3].La Diferenciaci´on Autom´atica (AD, por sus siglas en ingl´es) es una he-rramienta que puede usarse para calcular las derivadas de cualquier funci´ondiferenciable, de forma autom´atica. En este contexto “autom´atica” significaque el usuario solo necesita escribir el c´odigo fuente de la funci´on en un len-guaje determinado, y la herramienta puede calcular las derivadas solicitadassin incurrir en errores de truncamiento [3].Existen herramientas de diferenciaci´on autom´atica para varios lenguajesde programaci´on, como ADOL-C [4] para programas escritos en C y C++,ADIFOR [5] para programas escritos en Fortran, y ADOLNET [6] paralenguajes de la plataforma .NET.Una forma de crear estas herramientas de AD en lenguajes que soportensobrecarga de operadores es crear una clase llamada Adouble que contengados campos de tipo double, uno llamado valor y otro derivada. Para estaclase se sobrecargan los operadores aritm´eticos y las funciones elementales,para que, al mismo tiempo que se calculen los resultados de las operaciones,se calculen el valor de las derivadas de esas operaciones [3].Sin embargo, existen ocasiones en las que es necesario calcular unasderivadas como paso intermedio para el c´alculo de otras y con las t´ecnicasusuales de AD esto no es posible. Un ejemplo sencillo donde se aprecia estefen´omeno es el siguiente. 3 jemplo 1.
Sea f la funci´on definida como f ( x ) = x + ˙ g ( x ) , donde ˙ g es la funci´on derivada de g ( x ) = e x . Suponiendo que s´olo se conoceel c´odigo fuente de g y de f , se desea calcular el valor y la derivada de f enel punto x = x . Estas derivadas que intervienen en el c´alculo de otras reciben el nombrede derivadas anidadas, y aunque existen herramientas de Diferenciaci´on Au-tom´atica como ADOL-C [7] que permiten el c´alculo de estas derivadas, noexiste un m´etodo general que funcione en todas las herramientas existentes[8], por lo que puede decirse que no existe una soluci´on general para esteproblema.En este trabajo se propone una metodolog´ıa y una herramienta compu-tacional para calcular derivadas anidadas de funciones anal´ıticas utilizandocualquier biblioteca de AD que soporte sobrecarga de operadores.La metodolog´ıa propuesta en este trabajo parte de la creaci´on de unnuevo tipo de dato que se llamar´a SuperAdouble. Al igual que el tipo dedato Adouble, contendr´a dos campos, uno para almacenar el valor y otropara almacenar la derivada. A diferencia de los Adoubles, en el que los cam-pos valor y derivada son de tipo double, en los Superadoubles, estos camposser´an de tipo Adouble. Para esta nueva clase tambi´en se sobrecargan losoperadores aritm´eticos y las funciones elementales para calcular simult´anea-mente el valor de las operaciones y sus derivadas. Al realizar operacionescon estos SuperAdoubles es posible calcular derivadas anidadas. El objetivofundamental de este trabajo es demostrar esta afirmaci´on.Para demostrar que al realizar las operaciones con SuperAdoubles seobtienen los valores y las derivadas deseadas se realiza una presentaci´onalgebraica del espacio de los n´umeros Adoubles (que son el fundamento dela Diferenciaci´on Autom´atica) y de los n´umeros SuperAdoubles (que son elfundamento de este trabajo).Este documento est´a estructurado de la siguiente forma: en el Cap´ıtulo 1se presentan conceptos b´asicos de la diferenciaci´on autom´atica y del ´algebraque se usar´an en este trabajo; en el Cap´ıtulo 2 se presentan los elementosb´asicos de la AD, sus modos e implementaciones; en el Cap´ıtulo 3 se intro-duce una metodolog´ıa para utilizar AD cuando haya que calcular derivadas4nidadas; el Cap´ıtulo 4 se dedica a definir y explicar la estructura algebraicaque sustenta la AD, y en el Cap´ıtulo 5 se define SA , una estructura algebrai-ca que ayuda a demostrar que los n´umeros superadoubles pueden utilizarsepara calcular derivadas anidadas. 5 ap´ıtulo 1 Preliminares
En este cap´ıtulo se presentan las definiciones y propiedades necesariaspara el desarrollo de este trabajo como derivadas anidadas, estructuras al-gebraicas y elementos de lenguajes de programaci´on. En la Secci´on 1.1 sepresentan las definiciones relacionadas con las derivadas anidadas y en laSecci´on 1.2, las estructuras algebraicas que se usar´an en los Cap´ıtulos 4 y 5.
En esta secci´on se definen algunos conceptos relacionado con la diferen-ciaci´on anidada como variable original, variable anidada, funci´on anidada,derivada original, derivada anidada y derivada compuesta.
Definici´on 1.1.
Sea f ( x ) = ˙ g ( h ( x )) una funci´on real donde g y h son fun-ciones conocidas. Se les llamar´a a las diferentes partes de f de la siguienteforma:A x se le llamar´a variable original.A y = h ( x ) se le llamar´a variable anidada.A g ( x ) se le llamar´a funci´on anidada.A g (cid:48) ( x ) = dg ( h ( x )) dx se le llamar´a derivada original.A ˙ g ( x ) = dg ( h ( x )) dh se le llamar´a derivada anidada.A ˙ g (cid:48) ( x ) = d ˙ g ( h ( x )) dx = d g ( h ( x )) dxdh se le llamar´a derivada compuesta.
6n el caso de que h ( x ) = x los conceptos de derivada original y derivadaanidada coinciden, lo cual implica que la derivada compuesta sea d g ( x ) dx . Ejemplo 2.
La funci´on del Ejemplo 1 es f ( x ) = x + ˙ g ( x ) , con g ( x ) = e x . En este caso se tiene lo siguiente:La variable x es la variable original. y = x es la variable anidada.La funci´on g ( x ) = e x es la funci´on anidada.La derivada original es g (cid:48) ( x ) = 6 x e x .La derivada anidada es ˙ g ( x ) = 2 x e x .La derivada compuesta es ˙ g (cid:48) ( x ) = 6 x e x (1 + 2 x ) . En esta secci´on se presentan las definiciones y resultados del ´algebraabstracta que se utilizar´an en los Cap´ıtulos 4 y 5. Este contenido se puedeencontrar en [11] y [12].
Definici´on 1.2.
Un conjunto G provisto de una ley interna + , es un gruposi ∀ a, b ∈ G se cumple las siguiente propiedades:1. La suma es asociativa: ( a + b ) + c = a + ( b + c )
2. Existe un elemento neutro: ∃ e ∈ G : a + e = e + a = a
3. Cada elemento posee opuesto: ∃ a (cid:48) ∈ G : a + a (cid:48) = a (cid:48) + a = e Al elemento e de la definici´on anterior se le llama neutro o cero del grupo.En el caso de que la operaci´on + sea conmutativa, se dice que el grupo esabeliano. Definici´on 1.3.
Un conjunto A provisto de una adici´on + y de una multi-plicaci´on · (el s´ımbolo del operador se puede omitir) que sean internas poseeuna estructura de anillo si ∀ a, b, c ∈ A se cumple: . A posee una estructura de grupo abeliano para la adici´on2. El producto es asociativo: ( ab ) c = a ( bc )
3. El producto distribuye respecto a la suma a la izquierda: a ( b + c ) = ab + ac
4. El producto distribuye respecto a la suma a la derecha: ( b + c ) a = ba + ca Si la multiplicaci´on posee un elemento neutro e se dice que el anillo esunitario. Siendo A un anillo unitario, si dado a ∈ A existe un a (cid:48) tal que aa (cid:48) = a (cid:48) a = e , se dice que a es inversible en A .Si la multiplicaci´on en un anillo A es conmutativa se dice que A es unanillo conmutativo. Definici´on 1.4.
Se llama subanillo de un anillo A a un subconjunto novac´ıo B de A con las operaciones de A internas en B que hacen de B unanillo. Teorema 1.1.
Para que un subcojunto no vac´ıo B de un anillo A sea unsubanillo de A es necesario y suficiente que para todo a ∈ A y b ∈ B ,entonces a − b ∈ B ∧ ab ∈ B. Demostraci´on.
V´ease en [11].
Teorema 1.2.
En un anillo conmutativo se cumple ( a + a + . . . + a m ) n = (cid:88) n ! p ! p ! . . . p m ! a p . . . ( a m ) p m , (1.1) donde la suma del segundo miembro se extiende a todas las combinacionesde p , p , . . . , p m de enteros no negativos tales que m (cid:88) i =1 p i = n. Demostraci´on.
V´ease en [11].
Definici´on 1.5.
Un conjunto K provisto de una adici´on y de una multipli-caci´on posee una estructura de cuerpo para esas dos operaciones si: . K posee una estructura de anillo para esas dos operaciones.2. L ∗ = K − { } (donde es el elemento neutro de la adici´on) posee unaestructura de grupo para la multiplicaci´on. Si la multiplicaci´on en un cuerpo K es conmutativa se dice que K es uncuerpo conmutativo. Definici´on 1.6.
Dado un cuerpo conmutativo K , de elementos neutros y con respecto a la suma y la multiplicaci´on, se dice que un conjunto E provisto de una operaci´on interna y de una operaci´on externa cuyo dominiode operadores es K , tiene una estructura de espacio vectorial sobre K si ∀ λ, µ ∈ K y ∀ x, y ∈ E se cumple:1. E es un grupo abeliano para sus operaci´on interna2. La operaci´on externa cumple: λ ( µx ) = ( λµ ) x
3. La operaci´on externa cumple: x = x
4. La operaci´on externa es distributiva con relaci´on a la suma en K :( λ + µ ) x = λx + µx
5. La operaci´on externa es distributiva con relaci´on a la operaci´on internade E : λ ( x + y ) = λx + λy Definici´on 1.7.
Un conjunto A provisto de una estructura vectorial sobreun cuerpo K y de una estructura de anillo se dice que posee una estructurade ´algebra sobre K si ∀ α, β ∈ K y ∀ x, y ∈ A se cumple ( αx )( βy ) = ( αβ )( xy ) . Estos conceptos y resultados se usar´an en los Cap´ıtulos 4 y 5 para larepresentaci´on algebraica de la AD. 9 ap´ıtulo 2
Diferenciaci´on Autom´atica
En este cap´ıtulo se realiza una introducci´on a la diferenciaci´on autom´ati-ca, en la que se presentar´an sus modos de aplicaci´on, ejemplos y v´ıas de im-plementaci´on. Para la implementaci´on se presentar´an c´odigos en el lenguajede programaci´on C
La diferenciaci´on autom´atica, tambi´en conocida como diferenciaci´on al-gor´ıtmica, es un conjunto de t´ecnicas y herramientas que permiten evaluarnum´ericamente la derivada de una funci´on definida mediante su c´odigo fuen-te en un lenguaje de programaci´on.La AD est´a basada en el hecho de que para evaluar una funci´on en unlenguaje de programaci´on dado se ejecutan una secuencia de operacionesaritm´eticas (adici´on, sustracci´on, multiplicaci´on y divisi´on) y llamados afunciones elementales (exp, log, sen, cos, etc.). Aplicando la regla de la ca-dena al mismo tiempo que se realizan estas operaciones, se pueden calcularderivadas de cualquier orden tan exactas como la aritm´etica de la m´aquinalo permita [3].La base de la AD es la descomposici´on de diferenciales que provee laregla de la cadena. Para una composici´on de funciones f ( x ) = g ( h ( x )) seobtiene, a partir de la regla de la cadena,10 fdx = dgdh dhdx . Existen dos modos para aplicar la AD, el modo hacia adelante o modoforward y el modo hacia atr´as o modo reverse. El modo forward se obtieneal aplicar la regla de la cadena de derecha a izquierda, es decir, primerose calcula dh/dx y despu´es dg/dh , mientras que el modo reverse se obtienecuando se aplica la regla de la cadena de izquierda a derecha [3].A continuaci´on se presentan las ideas fundamentales del modo hacia ade-lante, que por ser m´as sencillo e intuitivo, permite explicar con mayor clari-dad el funcionamiento de la diferenciaci´on autom´atica. El lector interesadoen el modo hacia atr´as puede consultar [3].
Los siguientes ejemplos ilustran el funcionamiento del modo forward:
Ejemplo 3.
Se desea calcular el valor y la derivada de f ( x ) = x · cos( x ) en el punto x = π . La siguiente tabla contiene las operaciones necesarias para evaluar estafunci´on en una computadora. w = x = πw = w = π w = cos( w ) = − w = w w = − π y = w = − π Para aplicar el modo hacia adelante, se almacena en una nueva variablela derivada de cada operaci´on con respecto a la variable x. Esta derivadase puede calcular al mismo tiempo que se realiza la operaci´on. La siguientetabla ilustra este procedimiento. 11 = x = π ˙ w = ˙ x = 1 w = w = π ˙ w = 2 w ˙ w = 2 πw = cos( w ) = − w = sin( w ) ˙ w = 0 w = w w = − π ˙ w = w ˙ w + ˙ w w = − πy = w = − π ˙ y = ˙ w = − π En la tabla anterior, las variables ˙ w i almacenan la derivada con respectoa x de la operaci´on w i . Como se desea calcular la derivada con respecto a lavariable x , entonces la nueva variable ˙ w = dw dx se inicializa con el valor 1.Al finalizar el c´alculo, en la variable ˙ w se tiene el valor de la derivada de f ( x ) con respecto a x .El siguiente ejemplo muestra c´omo se puede aplicar el modo hacia ade-lante para calcular derivadas parciales de funciones de m´as de una variable. Ejemplo 4.
Se desea calcular el valor y el gradiente de f ( x , x ) = x x + sen( x ) en x = π y x = 2 . La funci´on f de este ejemplo puede expresarse mediante las siguientesoperaciones. w = x = πw = x = 2 w = w w = 2 πw = sen( w ) = 0 w = w + w = 2 πy = w = 2 π Para calcular el gradiente utilizando el modo forward hay que realizarel mismo procedimiento del ejemplo anterior, pero en este caso dos veces:una por cada derivada parcial. A continuaci´on se muestra el c´alculo de laderivada parcial dfdx . 12 = x = π ˙ w = ˙ x = 1 w = x = 2 ˙ w = ˙ x = 0 w = w w = 2 π ˙ w = ˙ w w + w ˙ w = 2 w = sen( w ) = 0 ˙ w = cos( w ) ˙ w = − w = w + w = 2 π ˙ w = ˙ w + ˙ w = 1 y = w = 2 π ˙ y = ˙ w = 1En este caso, la variable ˙ w se inicializa con valor 0 porque ∂x ∂x = 0 , w = x y ˙ w = ∂w ∂x . Al finalizar los c´alculos, en la variable ˙ w se tiene el valorde la derivada ∂f ( x ) ∂x .El procedimiento presentado en los ejemplos anteriores se puede genera-lizar de la siguiente forma.Sea f : R n → R m una funci´on diferenciable. Se denotar´an las n variablesreales de entrada como w i − n = x i y ˙ w i − n = ˙ x i , con i = 1 . . . n y ˙ x i = 1 . Las variables ˙ x i se inicializan con el valor de las derivadas parciales de cadavariable x i con respecto a la variable original. Si se desea calcular la derivadaparcial de f respecto a x i , entonces ˙ x i deber´ıa ser 1 y ˙ x j deber´ıa ser 0 paratoda j diferente de i .Como f est´a compuesta por funciones elementales, es conveniente deno-tarlas de alguna forma. A la j -´esima funci´on elemental se le denotar´a por φ j . Para descomponer a f en operaciones elementales se denotar´an nuevasvariables w i y ˙ w i como w i = φ i ( w j ) con j ≺ i, (2.1)˙ w i = (cid:88) j ≺ i ∂∂w j φ i ( w j ) ˙ w j , donde en este caso i = 1 . . . l y l es el n´umero de operaciones elementalesque componen a f . La simbolog´ıa φ i ( w j ) con j ≺ i significa que φ i dependedirectamente de w j , es decir, que para evaluar φ i se usa expl´ıcitamente w j .Tambi´en es usual denotar (2.1) como13 i = φ i ( w j ) j ≺ i . Con las notaciones anteriores se puede expresar el procedimiento generalde la siguiente forma: w i = x i i = 1 . . . n ˙ w i − n = ˙ x i w i = φ i ( w j ) j ≺ i i = 1 . . . l ˙ w i = (cid:80) j ≺ i ∂∂w j φ i ( w j ) ˙ w j y m − i = w l − i i = m − . . . y m − i = ˙ w l − i Como se puede apreciar en la tabla anterior, el procedimiento generaldel modo forward est´a estructurado en tres fases: primero se inicializan lasvariables, despu´es se ejecutan las operaciones y se calculan las derivadas, yfinalmente se devuelven los valores y la derivada calculada.En esta secci´on se ha presentado la AD desde un punto de vista te´orico.En la siguiente secci´on se muestra una posible v´ıa para implementar estasideas computacionalmente.
Existen dos estrategias para lograr AD: transformaci´on del c´odigo fuentey sobrecarga de operadores [3].Para utilizar la metodolog´ıa propuesta en este trabajo resulta m´as con-veniente utilizar la sobrecarga de operadores, por lo que en esta secci´on sepresentan sus elementos fundamentales. El lector interesado en la transfor-maci´on de c´odigo puede consultar [9].Para implementar la AD utilizando sobrecarga de operadores se debecrear una nueva clase, la cual se llamar´a en este trabajo Adouble siguiendola notaci´on de [3].En esta clase se deben definir dos campos de n´umeros reales, uno, queusualmente recibe el nombre de valor, para almacenar el resultado de la14peraci´on que este Adouble representa, y otro, que usualmente recibe elnombre de derivada, para almacenar la derivada de esa operaci´on. Estoscampos valor y derivada son la representaci´on computacional de las variables w i y ˙ w i .Una vez definida esta nueva clase, se sobrecargan los operadores aritm´eti-cos y las funciones elementales, para que, al mismo tiempo que se calculanlos resultados de las operaciones, tambi´en se pueda calcular el valor de lasderivadas.La siguiente tabla muestra los valores de los campos valor y derivadade cada uno de los adoubles que intervienen en la evaluaci´on de la funci´on f ( x ) = x · cos ( x ). N´otese que cuando se realizan todas las operaciones, en elcampo derivada del adouble y se obtiene el valor de la derivada de la funci´onen el punto en que fue evaluada.Adouble w w .valor = π w .derivada = 1Adouble w = w w .valor = π w .derivada = 2 π Adouble w = cos( w ) w .valor = − w .derivada = 0Adouble w = w ∗ w w .valor = − π w .derivada = − π Adouble y = w y .valor = − π y .derivada = − π Esta v´ıa tiene la ventaja de que es f´acil de implementar y que parautilizarlo solo hay que modificar ligeramente el c´odigo fuente de la funci´onque se desea derivar [9].En la Figura 2.1 se muestra la implementaci´on de un programa en C f ( x ) = x · cos( x ) en x = 2; y en la Figura 2.2 lasmodificaciones necesarias para calcular la derivada en ese punto.Esta idea se puede modificar f´acilmente para calcular derivadas parcialesde funciones de m´as de una variable. El lector interesado en este tema puedeconsultar [3] y [4].En este cap´ıtulo se han presentado las ideas fundamentales de la ADen las que se sustenta la soluci´on propuesta en el cap´ıtulo siguiente para elc´alculo de derivadas anidadas utilizando diferenciaci´on autom´atica.15 lass Example{ static void Main(){ double x = 2; //Inicializaci´on de x//para evaluar f en 2double y = x*x + cos(x); //C´alculo de fConsole.WriteLine("El valor de f en x = 2 es: " + y);}} Figura 2.1: C´odigo de f ( x ) = x · cos( x ) class Example{ static void Main(){ Adouble x = new Adouble(); \\Inicializaci´on de x como\\Adoublex.valor = 2; \\ Se quiere el valor y la derivada\\ en x = 2x.derivada = 1; \\La derivada de x con respecto a x es 1Adouble y = x*x + cos(x);Console.WriteLine("El valor de f en x = 2 es: " + w4.valor);Console.WriteLine("La derivada de f en x = 2 es: " + w4.derivada);}} Figura 2.2: C´odigo modificado de f ( x ) = x · cos( x )16 ap´ıtulo 3 C´alculo de DerivadasAnidadas
En este cap´ıtulo se presenta una metodolog´ıa para calcular derivadasanidadas utilizando cualquier biblioteca de Diferenciaci´on Autom´atica me-diante sobrecarga de operadores. Esta metodolog´ıa se presenta para fun-ciones de una variable real con el objetivo de facilitar su exposici´on, perosu extensi´on a funciones de varias variables es posible de la misma formaque las t´ecnicas de diferenciaci´on autom´atica se extienden a funciones variasvariables.La metodolog´ıa que se propone es la siguiente:1. Partir de una biblioteca de Diferenciaci´on Autom´atica en la que existaun tipo de dato Adouble.2. Definir un nuevo tipo de dato llamado SuperAdouble. Esta nueva es-tructura tendr´a dos campos: valor y derivada, y ambos campos ser´andel tipo de dato Adouble definido en la biblioteca del paso 1. El he-cho de que estos campos sean de tipo Adouble permitir´a calcular lasderivadas anidadas.3. Definir funciones para construir superadoubles a partir de adoubles ypara obtener los campos valor y derivada de variable de tipo Super-Adouble. Estas funciones se presentan en la Secci´on 3.2.4. Modificar el c´odigo fuente de la funci´on anidada para calcular las de-rivadas anidadas. 17n las siguientes secciones se detallan cada uno estos pasos.
El segundo paso propone crear una nueva clase llamada SuperAdouble.Este nuevo tipo de dato tiene un campo valor y un campo derivada, ambosde tipo Adouble. Al igual que la clase Adouble, los operadores aritm´eticos ylas funciones elementales se sobrecargan para que cuando operen con valoresde este tipo permitan calcular los valores y las derivadas anidadas que sedeseen.El campo valor de los SuperAdouble es de tipo Adouble, por lo que estecontiene a un campo valor y un campo derivada, ambos de tipo double. Esdecir, para una variable de tipo SuperAdouble tiene sentido hablar de loscampos valor.valor y valor.derivada. Por el mismo motivo, en una variablede tipo superadouble existen los campos derivada.valor y derivada.derivada.Estos cuatro campos: valor.valor, valor.derivada, derivada.valor y deriva-da. derivada se relacionan con las derivadas anidadas a trav´es del siguienteresultado, que es el principal aporte de este trabajo.
Teorema 3.1.
En un objeto de tipo SuperAdouble se cumple que:valor.valor es el valor de la funci´on anidada.valor.derivada es la derivada original.derivada.valor contiene la derivada anidada.derivada.derivada contiene la derivada compuesta.Demostraci´on.
El objetivo del Cap´ıtulo 5 es demostrar este teorema.Una vez que est´e definida esta nueva clase, es necesario definir funcionespara crear instancias de esta clase y obtener las derivadas y valores deseados.Estas funciones se muestran en la siguiente secci´on.
Para calcular derivadas anidadas son necesarias tres funciones que rela-cionen variables de tipo Adouble y variables de tipo SuperAdouble. Estas18unciones son push , popV y popD . A continuaci´on se presentan cada una deellas y su relaci´on con el c´alculo de derivadas anidadas.La funci´on push recibe como par´ametro una variable x de tipo Adoubley devuelve una variable X de tipo SuperAdouble. El campo valor de lavariable X ser´ıa el Adouble x , y el campo derivada ser´ıa un Adouble convalor 1 y derivada 0. Ejemplo 5.
Si se tiene un Adouble x = (4 , , donde la primera componen-te del vector es el campo valor del Adouble, y la segunda, el campo derivada,entonces al aplicar push se obtiene un SuperAdouble X con los siguientescampos: X. valor.valor = 4. X. valor.derivada = 10. X. derivada.valor = 1. X. derivada.derivada = 0. Por otra parte, las funciones popV y popD reciben como argumento unSuperAdouble y devuelven un Adouble. La funci´on popV devuelve el campovalor del SuperAdouble y popD devuelve su campo derivada. Ejemplo 6.
Si se aplica la funci´on popV al Superadouble X definido en elejemplo anterior se obtiene un Adouble x con los siguientes campos: x. valor = . x. derivada = .Por otra parte, si se aplica la funci´on popD al mismo SuperAdouble X se obtiene: x. valor = . x. derivada = . Para calcular derivadas anidadas, estas funciones deben usarse para mo-dificar el c´odigo fuente de la funci´on anidada como se muestra en la siguientesecci´on. 19 .3. Modificaci´on del c´odigo de la funci´on anidada
En esta secci´on se presentan las modificaciones que son necesarias reali-zar en el c´odigo fuente de la funci´on anidada para utilizar los SuperAdouble,las funciones push, popD y popV y obtener los valores de las derivadas anida-das.Siguiendo con el Ejemplo 1, f ( x ) = x + ˙ g ( x ) , g ( x ) = e x , la Figura 3.1 muestra el c´odigo que permite calcular el valor de la funci´ony su derivada en el punto x = 3 usando los SuperAdoubles y las funcionespresentadas en la secci´on anterior. class Example{ static void Main(){ Adouble x = new Adouble();x.valor = 3;x.derivada = 1;Adouble w1 = x*x; \\ w1 = x^2Adouble w2 = w1*x; \\ w2 = x^3SuperAdouble Y1 = push(w2); \\ crear el superadoubleSuperAdouble Y2 = exp(Y1*Y1); \\ g(x) = exp(x^2)SuperAdouble W3 = exp(W2);Adouble w3 = popD(Y2); \\ obtener la derivada anidadaAdouble w4 = w1 + w3; \\ w4 = x^2 + gdot(x^3)Console.WriteLine("El valor de f en x = 3 es: " +w5.valor);Console.WriteLine("La derivada de f en x = 3 es: " +w5.derivada);}} Figura 3.1: Aplicaci´on de los SuperAdoubles en la AD.20n el c´odigo de la Figura 3.1 se empieza trabajando con n´umeros detipo Adouble para calcular el valor y la derivada de las operaciones que nopertenezcan a la funci´on anidada. La l´ınea
SuperAdouble Y1 = push(w2); crea un objeto SuperAdouble a partir de la variable anidada. Despu´es de lacreaci´on de W1 se efect´uan las operaciones de la funci´on anidada utilizandoSuperadoubles. Con la l´ınea
Adouble w3 = popD(Y2); se obtiene un Adouble que en su campo valor tiene la derivada anidada, yen su campo derivada tiene la derivada compuesta. Finalmente, en la l´ınea
Adouble w4 = w1 + w3; se termina el c´alculo de la funcion original.Como todas las operaciones se han realizado con adoubles, en el campoderivada del Adouble w4 se tiene la derivada de la funci´on original, que erael objetivo que se persegu´ıa.Este ejemplo ilustra que usando la metodolog´ıa propuesta es posible cal-cular derivadas anidadas. En los pr´oximos cap´ıtulos se fundamentan los re-sultados de esta secci´on desde una representaci´on algebraica y se demuestraTeorema 3.1 que es el basamento matem´atico de la metodolog´ıa.21 ap´ıtulo 4
Espacio Adouble
En este cap´ıtulo se presenta la diferenciaci´on autom´atica desde un pun-to de vista algebraico. Para representar la clase Adouble mediante una es-tructura algebraica se extienden los n´umeros reales agreg´andole una nuevacomponente y definiendo una aritm´etica que garantice que en la primeracomponente se obtengan los resultados de cada operaci´on, y en la segunda,las derivadas de estas operaciones.Esta presentaci´on de la AD desde el ´algebra no es nueva. La estructuraalgebraica que representa a los n´umeros adoubles se conoce en la literaturacomo n´umeros duales y tiene aplicaciones en la f´ısica y la mec´anica [10].En este cap´ıtulo se presentan las principales propiedades de estos n´ume-ros duales, que en este trabajo se les llamar´a n´umeros adoubles, o simple-mente adoubles. Al conjunto de todos los adoubles se les llamar´a espacioAdouble.El objetivo fundamental de presentar estas propiedades y sus demos-traciones, es que sirven de base para, en el Cap´ıtulo 5, presentar el espacioSuperAdouble, sus propiedades fundamentales y demostrar que utiliz´andolasse pueden calcular derivadas anidadas.La estructura de este cap´ıtulo es la siguiente: en la Secci´on 4.1 se de-finir´a el espacio Adouble y se demostrar´a algunas de sus propiedades ele-mentales; y en la Secci´on 4.2 se definen funciones de variable adouble y sedemuestra que al evaluar una funci´on anal´ıtica en un adouble, se obtiene unnuevo adouble que en su primera componente tiene el valor de la evaluaci´onde la funci´on, y en la segunda, el valor de la derivada de la funci´on.22 .1. Definici´on de A . Operaciones elementales Observando c´omo funciona la AD desde el punto de vista computacional,es posible definir una estructura algebraica que represente la clase Adouble.Esta se crea expandiendo el ´algebra de los n´umeros reales con otra compo-nente y definiendo una nueva aritm´etica que permita obtener, en la segundacomponente las derivadas de las operaciones, como se muestra en la siguientedefinici´on.
Definici´on 4.1.
El espacio Adouble A es el conjunto de los pares ordenados ( x, ˙ x ) de n´umeros reales con la suma y multiplicaci´on definidos por ( a, ˙ a ) + ( b, ˙ b ) = ( a + b, ˙ a + ˙ b ) , ( a, ˙ a )( b, ˙ b ) = ( ab, a ˙ b + ˙ ab ) . A los elementos del espacio Adouble se les llamar´a n´umeros adoubles osimplemente adoubles.En las operaciones de suma y multiplicaci´on definidas en este espaciose aprecia que en la primera componente se tiene el c´alculo usual sobre losreales y en la segunda componente se obtiene la aritm´etica de las derivadas.A partir de estas dos operaciones es posible obtener la resta y la divisi´onas´ı como funciones que al ser evaluadas en un adouble devuelvan otro adou-ble que en la primera componente tengan el resultado de evaluar la funci´ony en la segunda componente la derivada de la funci´on.Para cumplir este objetivo se pudiera definir directamente estas opera-ciones, pero usando como base la suma y la multiplicaci´on se puede recurrir ala teor´ıa de ´algebras para obtener estas definiciones. La siguiente proposici´onbrinda informaci´on sobre estas operaciones.
Proposici´on 4.1. A es un anillo conmutativo y unitario. El cero es (0,0)y la identidad multiplicativa es (1,0).Demostraci´on. Se obtiene directamente a partir de la definici´on del espacio A El hecho de que A sea un anillo significa que todo elemento tiene unopuesto para la suma y en este caso el opuesto de ( a, ˙ a ) es ( − a, − ˙ a )23 roposici´on 4.2. Cuando se restan dos adoubles, en la primera componen-te se obtiene el resultado de la resta, y en la segunda, su derivada.Demostraci´on.
La resta es una operaci´on que se define como sumar con elopuesto, por lo que la resta de dos adoubles se define como:( a, ˙ a ) − ( b, ˙ b ) = ( a − b, ˙ a − ˙ b ) , lo cual es el resultado que se quer´ıa: la primera y segunda componentecoinciden con la operaci´on y derivada de la resta.La derivada del inverso es ˙ a/a . Con la multiplicaci´on definida sobre A sepuede demostrar que en la segunda componente del inverso de un adoublese obtiene precisamente la derivada del inverso. La siguiente proposici´ondemuestra esto. Proposici´on 4.3.
El inverso de un adouble ( a, ˙ a ) es ( a , − ˙ aa ) .Demostraci´on. Hallar el inverso de ( a, ˙ a ) es equivalente a resolver la ecuaci´on( a, ˙ a )( x, ˙ x ) = (1 , , donde x y ˙ x son inc´ognitas. Esta ecuaci´on es equivalente al sistema de ecua-ciones (cid:40) ax = 1 a ˙ x + ˙ ax = 0que tiene soluci´on x = 1 a y ˙ x = − ˙ aa . De la proposici´on anterior se deduce que en el caso de que a = 0, losadoubles no tienen inverso.La divisi´on entre dos elementos de un anillo se realiza multiplicando unopor el inverso del otro. La siguiente proposici´on proporciona este resultado. Proposici´on 4.4.
El resultado de dividir ( a, ˙ a ) por ( b, ˙ b ) es (cid:16) ab , b ˙ a − a ˙ bb (cid:17) . emostraci´on. Para dividir ( a, ˙ a ) / ( b, ˙ b ) , se calcula ( a, ˙ a ) (cid:16) b , − ˙ bb (cid:17) = (cid:16) ab , b ˙ a − a ˙ bb (cid:17) . Al no tener sentido hallar el inverso para b = 0, tampoco lo tendr´a ladivisi´on cuando se quiera dividir por un adouble que tenga la primera compo-nente igual a cero. Se puede notar que la primera componente de la divisi´oncontiene el resultado del cociente y la segunda componente la regla de laderivada para la divisi´on.Hasta el momento se han definido las operaciones suma, resta, multipli-caci´on y divisi´on entre adoubles, y en todos los casos, en la segunda compo-nente se obtiene la derivada de la operaci´on. Para poder utilizar los n´umerosadoubles para realizar AD falta definir funciones sobre A con el objetivo deobtener la su evaluaci´on y su derivada en la primera y segunda componen-te, respectivamente. En la siguiente secci´on se definen estas funciones devariable adouble. La definici´on de funciones se facilita si se introduce el cambio de notaci´onque se realiza en los n´umeros duales [10]. Para poder utilizar esta nuevanotaci´on es necesario definir sobre este espacio una estructura de ´algebra.Para definir un ´algebra sobre A conviene definir una estructura vectorialy despu´es demostrar su compatibilidad con el anillo. La siguiente proposici´onpermite que la definici´on de espacio vectorial resulte natural. Proposici´on 4.5. A contiene a R como estructura de anillo.Demostraci´on. Tomando el conjunto de adoubles R = { ( a, ∈ A : a ∈ R } ,se tiene que ( a , − ( a ,
0) = ( a − a , ∈ R, ( a , a ,
0) = ( a a , ∈ R, R constituye un subanillo de A , que es isomorfo a R si se tomala aplicaci´on que a cada adouble ( a,
0) le hace corresponder el n´umero real a . Una vez demostrado que R es un subanillo de A se puede definir unespacio vectorial sobre A . Proposici´on 4.6.
Sea α ∈ R y ( a, ˙ a ) ∈ A , si se define el producto exterior α ( a, ˙ a ) como α ( a, ˙ a ) = ( α, a, ˙ a ) = ( αa, α ˙ a ) , se tiene que para este producto exterior y la suma definida en A , este espacioes un espacio vectorial.Demostraci´on. Las operaciones de suma y producto externo coinciden conlas usuales de R como espacio vectorial.Como se tiene sobre A una estructura de anillo y de espacio vectorial sepuede llegar a la siguiente proposici´on. Proposici´on 4.7. A es un ´algebra conmutativa y unitaria.Demostraci´on. Para realizar su demostraci´on s´olo basta demostrar que( α ˆ x )( β ˆ y ) = ( αβ )ˆ x ˆ y, lo cual se obtiene de manera directa realizando las operaciones.En la siguiente subsecci´on se muestra un cambio de notaci´on que resultade utilidad para realizar c´alculos de multiplicaci´on entre los adoubles, lo cualfacilita la definici´on de funciones y el c´alculo del cociente entre adoubles. El hecho de que A sea un ´algebra y que contenga a los reales permitehacer un cambio de notaci´on. Si se denota (cid:15) = (0 , a ∈ R se tiene que (0 , ˙ a ) = (cid:15) ˙ a , por lo que cualquier elemento ( a, ˙ a ) ∈ A se puedeexpresar como ( a, ˙ a ) = ( a,
0) + (0 , ˙ a ) = ( a,
0) + (cid:15) ˙ a. (4.1)26omo el conjunto R = { ( a, ∈ A : a ∈ R } es isomorfo a R , entonces sepuede reescribir (4.1) como ( a, ˙ a ) = a + (cid:15) ˙ a. Es usual llamar a (cid:15) unidad dual. La suma y la multiplicaci´on de dosadoubles usando la unidad dual resulta( a + (cid:15) ˙ a ) + ( b + (cid:15) ˙ b ) = a + b + (cid:15)a + (cid:15)b, ( a + (cid:15) ˙ a )( b + (cid:15) ˙ b ) = ab + (cid:15)a ˙ b + (cid:15) ˙ ab + (cid:15) ˙ a ˙ b, pero como A es un ´algebra se puede sacar factor com´un (cid:15) y se obtiene( a + (cid:15) ˙ a ) + ( b + (cid:15) ˙ b ) = a + b + (cid:15) ( a + b ) , ( a + (cid:15) ˙ a )( b + (cid:15) ˙ b ) = ab + (cid:15) ( a ˙ b + ˙ ab ) + (cid:15) ˙ a ˙ b. Para obtener el resultado final de la multiplicaci´on es necesario saberc´omo opera la multiplicaci´on de (cid:15) consigo mismo. La siguiente proposici´onmuestra este resultado.
Proposici´on 4.8. (cid:15) n = 0 , ∀ n ≥ .Demostraci´on. Como (cid:15) = (0 , ,
1) = (0 ,
0) = 0, entonces (cid:15) n = 0 , ∀ n ≥
2. Con esta proposici´on se obtiene que la multiplicaci´on es( a + (cid:15) ˙ a )( b + (cid:15) ˙ b ) = ab + (cid:15) ( a ˙ b + ˙ ab ) . Como se puede notar en la suma y la multiplicaci´on usando la unidaddual se obtiene en la primera componente el resultado de la operaci´on y enla unidad dual la derivada de la operaci´on.27 .2.2. Definici´on de funciones
En esta subsecci´on se definen funciones sobre A a partir funciones reales.Estas funciones tienen la caracter´ıstica que en la primera componente delresultado de su evaluaci´on se obtiene el valor de la funci´on y en la segunda, laderivada. Adem´as, estas funciones tendr´an la propiedad de ser extensiones delas funciones reales, en el sentido de que si se eval´uan en un real se obtieneun valor real. La siguiente proposici´on brinda una extensi´on de funcionesreales con la propiedad que se desea. Proposici´on 4.9.
Sea f ( x ) una funci´on real de variable real que puede serrepresentada a trav´es de su serie de Taylor: f ( x ) = ∞ (cid:88) n =0 c n x n n ! . Si x = a + (cid:15) ˙ a ,entonces se cumple que: f ( a + (cid:15) ˙ a ) = f ( a ) + (cid:15) ˙ af (cid:48) ( a ) . Demostraci´on.
Como la f´ormula del binomio( x + (cid:15) ˙ x ) n = n (cid:88) i =0 (cid:18) ni (cid:19) x n − i ( (cid:15) ˙ x ) i se cumple para los anillos conmutativos (Teorema 1.2), entonces se tieneque: ( x + (cid:15) ˙ x ) n = n (cid:88) i =0 (cid:18) ni (cid:19) x n − i ( (cid:15) ˙ x ) i . Como (cid:15) p = 0 ∀ p > a + (cid:15) ˙ a ) n = a n + (cid:15)pa n − ˙ a y f ( a + (cid:15) ˙ a ) = ∞ (cid:88) n =0 c n ( a + (cid:15) ˙ a ) n n ! = ∞ (cid:88) n =0 c n a n n ! + (cid:15) ˙ a ∞ (cid:88) n =1 c n a n − ( n − f ( a ) + (cid:15) ˙ af (cid:48) ( a ) . La funci´on f ( a + (cid:15) ˙ a ) = f ( a ) + (cid:15) ˙ af (cid:48) ( a ) es una extensi´on de los reales: sise toma b = 0 se obtiene que f ( a ) = f ( a ). En otras palabras, si se restringela funci´on a los reales, se obtiene un real.28or otra parte, una funci´on f definida de esta manera cumple la propie-dad que se desea: en la primera componente se obtiene la evaluaci´on de f yen la segunda se tiene su derivada al aplicar la regla de la cadena.De manera similar a como se defini´o para el caso de una variable, unafunci´on de n variables adoubles se define como f ( x , . . . , x n ) = f ( a , . . . , a n )+ (cid:15) ( ˙ a f (cid:48) x ( a , . . . , a n )+ · · · + ˙ a n f (cid:48) x n ( a , . . . , a n )) , donde x i = a i + (cid:15) ˙ a i y f (cid:48) x i ( a , . . . , a n ) es la derivada parcial de f con respectoa la variable x i , evaluada en ( a , . . . , a n ). Al igual que en el caso de unavariable, si ˙ a i = 1 y ˙ a j = 0 ∀ j (cid:54) = i , entonces f ( x , . . . , x n ) = f ( a , . . . , a n ) + (cid:15)f (cid:48) x i ( a , . . . , a n ) , y en la segunda componente se obtiene la derivada parcial de f respecto a x i . En este cap´ıtulo se ha realizado una representaci´on algebraica de losn´umeros adoubles, que son el fundamento de la diferenciaci´on autom´atica.Utilizando resultados del ´algebra se demostr´o que utilizando n´umeros adou-bles se pueden obtener las derivadas de cualquier funci´on an´alitica. En elsiguiente cap´ıtulo se presentan los n´umeros superadoubles desde una pers-pectiva algebraica, y se demuestra que es posible calcular derivadas anidadasutilizando la metodolog´ıa propuesta en el Cap´ıtulo 3.29 ap´ıtulo 5 Espacio SuperAdouble
En este cap´ıtulo se demuestra el Teorema 3.1, que permite utilizar losn´umeros superadoubles para calcular derivadas anidadas. La demostraci´onse realiza por inducci´on en las operaciones involucradas en el c´alculo de lafunci´on anidada.Al igual que en el Cap´ıtulo 4, se demuestra que el espacio formado por losn´umeros superadoubles es un anillo, un espacio vectorial y un ´algebra; y sedefinen funciones de variable superadouble. En todos los casos se demuestraque con las operaciones definidas se obtienen las derivadas anidadas.La estructura de este cap´ıtulo es la siguiente: en la Secci´on 5.1 se presen-ta el caso base de la inducci´on que permitir´a demostrar el Teorema 3.1; en laSecci´on 5.2 se definir´an representaciones algebraicas de la clase SuperAdou-ble y se demostrar´a el Teorema 3.1 para las operaciones elementales. Por´ultimo, en la Secci´on 5.3 se definir´an funciones de variable SuperAdoublecon las que se pueden calcular derivadas anidadas.
En esta secci´on se presenta la demostraci´on que para un caso base secumple que los SuperAdouble definidos en el Cap´ıtulo 3 permiten calcularderivadas anidadas.La clase SuperAdouble tiene dos campos: valor y derivada, y cada uno deestos campos tienen a su vez dos campos, uno valor y uno derivada. Por lotanto, una variable de tipo SuperAdouble tiene cuatro campos: valor.valor,30alor. derivada, derivada.valor, derivada.derivada, por lo que se pueden res-presentar como pares ordenados de adoubles o como elementos de R .El hecho de utilizar los SuperAdouble para evaluar y derivar funcionesdel tipo f ( x ) = ˙ g ( h ( x )) implica que existe una funci´on anidada, por lo queen ese contexto tambi´en existe una derivada original, una derivada anidada yuna derivada compuesta. La correspondencia existente entre estas derivadasy los campos de las variables de tipo SuperAdouble es la siguiente, de acuerdocon el Teorema 3.1: el campo valor.valor de un superadouble es el valor de lafunci´on anidada; el campo valor.derivada, es la derivada original; el campoderivada.valor es la derivada anidada, y en el campo derivada.derivada seobtiene la derivada compuesta.La demostraci´on que en estos campos se obtienen estas derivadas sehar´a por inducci´on. Como caso base se tomar´a un superadouble X que seael resultado de una operaci´on push , pues esta es la primera operaci´on que sehace con un SuperAdouble.En el teorema siguiente se demuestra que para una variable X que sea elresultado de una operaci´on push se cumple el teorema 3.1. Sin embargo, notiene sentido hablar de derivada anidada y derivada compuesta si no exis-te una funci´on anidada, y este es precisamente el caso de un superadoubleque sea el resultado de un push . Para que tenga sentido hablar de deriva-da anidada y derivada compuesta en el superadouble X = push ( x ), en elteorema se considerar´a que la funci´on anidada g ( x ) es la funci´on identidad. Teorema 5.1.
Sea f ( x ) = ˙ g ( h ( x )) una funci´on donde se conocen h ( x ) y g ( y ) = y . Si ( a, a (cid:48) ) es el par de n´umeros reales que representan el va-lor y la derivada de a = h ( x ) , entonces al aplicar X = push (( a, a (cid:48) )) =(( a, a (cid:48) ) , (1 , , y Y = g ( X ) , se obtiene que: Y .valor.valor es g ( h ( x )) . Y .valor.derivada es g (cid:48) ( h ( x )) . Y .derivada.valor es ˙ g ( h ( x )) . Y .derivada.derivada es ˙ g (cid:48) ( h ( x )) .Demostraci´on. Por las hip´otesis se tiene que h ( x ) = a y h (cid:48) ( x ) = a (cid:48) , porlo que g ( h ( x )) = a y g (cid:48) ( h ( x )) = dg ( h ( x )) dx = h (cid:48) ( x ) = a (cid:48) . De esta forma setiene los dos primeros puntos de la tesis.31omo ˙ g ( x ) ≡
1, entonces ˙ g ( h ( x )) = 1, por lo que se cumple el tercerpunto y como la derivada de una constante es cero, entonces se cumple el´ultimo punto porque ˙ g (cid:48) ( x ) ≡ SA En la secci´on anterior se demostr´o el Teorema 5.1. Utilizando este teore-ma como caso base, en esta secci´on se aplicar´a inducci´on en las operacioneselementales que se realizan en una funci´on para demostrar el Teorema 3.1.La siguiente definici´on se usar´a para realizar una representaci´on algebrai-ca de la clase SuperAdouble usando la notaci´on introducida en la secci´onanterior.
Definici´on 5.1.
El espacio SuperAdouble SA es el conjunto de pares orde-nados (ˆ x, ˆ y ) donde ˆ x y ˆ y son adoubles y la suma y multiplicaci´on se definende la siguiente forma: (ˆ a, ˆ b ) + (ˆ c, ˆ d ) = (ˆ a + ˆ c, ˆ b + ˆ d ) , (ˆ a, ˆ b )(ˆ c, ˆ d ) = (ˆ a ˆ c, ˆ a ˆ d + ˆ b ˆ c ) . Estas operaciones definidas sobre SA se realizan multiplicando y suman-do elementos del espacio A , por ejemplo, la primera componente de la sumaes ˆ a + ˆ c , por tanto, si ˆ a = ( a, ˙ a ) , ˆ c = ( c, ˙ c ) , entonces la primera componente de la suma es el adoubleˆ a + ˆ c = ( a + c, ˙ a + ˙ c ) . A los elementos del espacio SuperAdouble se les llamar´a n´umeros super-adoubles o simplemente superadoubles.32o que se quiere probar es que los superadoubles calculan derivadasanidadas en su tercera y cuarta componente. Para esto resulta m´as con-veniente considerar los superadoubles como elementos de R , por lo queresultar´ıa de mucha utilidad encontrar un isomorfismo entre SA y un sub-conjunto de R . Para tener un isomorfismo con las operaciones definidas esnecesario tener alguna estructura algebraica como la proposici´on siguiente. Proposici´on 5.1. SA es un anillo conmutativo y unitario. El neutro conrespecto a la suma es el elemento = ((0 , , (0 , y el neutro respecto alproducto es = ((1 , , (0 , .Demostraci´on. La demostraci´on es inmediata a partir de la definici´on delespacio, el lector interesado puede leerla en los anexos.Si se tiene dos elementos de SA entonces con la proposici´on anterior laresta se obtiene sumando por el opuesto del segundo elemento:(ˆ a, ˆ b ) − (ˆ c, ˆ d ) = (ˆ a, ˆ b ) + ( − ˆ c, − ˆ d ) = (ˆ a − ˆ c, ˆ b − ˆ d ) . A continuaci´on se presenta otra definici´on del espacio SA en el sentido deisomorfismo. Esta nueva definici´on es importante porque se realiza directa-mente sobre los reales y no sobre A , por lo que facilita el trabajo de c´alculocuando se definan la divisi´on de superadoubles y las funciones de variablesuperadouble. Definici´on 5.2.
El espacio SuperAdouble SA R es el conjunto de R con lasuma y multiplicaci´on definidos por x + y = ( x + y, x (cid:48) + y (cid:48) , ˙ x + ˙ y, ˙ x (cid:48) + ˙ y (cid:48) ) , (5.1) xy = ( xy,xy (cid:48) + x (cid:48) y,x ˙ y + ˙ xy,x ˙ y (cid:48) + x (cid:48) ˙ y + ˙ xy (cid:48) + ˙ x (cid:48) y ) , (5.2) donde x = ( x, x (cid:48) , ˙ x, ˙ x (cid:48) ) y y = ( y, y (cid:48) , ˙ y, ˙ y (cid:48) ) . Proposici´on 5.2.
El espacio SA R es un anillo conmutativo.Demostraci´on. La demostraci´on se deduce directo de la definici´on de anillo,el lector interesado en la demostraci´on puede referirse a los anexos.33 pesar de que SA R es un anillo unitario, no se demostr´o en la proposici´onanterior ya que con la siguiente proposici´on se obtiene como consecuenciadel isomorfismo. Adem´as de esta propiedad, el isomorfismo entre SA y SA R brinda la posibilidad de usar cualquiera de estos dos para representar laclase SuperAdouble. Proposici´on 5.3.
Sea φ : SA −→ SA R la aplicaci´on φ ((( a, ˙ a ) , ( b, ˙ b ))) = ( a, ˙ a, b, ˙ b ) . Con esta aplicaci´on se tiene que SA es isomorfo a SA R .Demostraci´on. Seaˆ a = ( a, ˙ a ) , ˆ b = ( b, ˙ b ) , ˆ c = ( c, ˙ c ) , ˆ d = ( d, ˙ d ) . Como la aplicaci´on φ es una biyecci´on, s´olo falta demostrar φ ((ˆ a, ˆ b ) + (ˆ c, ˆ d )) = φ ((ˆ a, ˆ b )) + φ ((ˆ c, ˆ d )) ,φ ((ˆ a, ˆ b )(ˆ c, ˆ d )) = φ ((ˆ a, ˆ b )) φ ((ˆ c, ˆ d )) . Calculando φ ((ˆ a, ˆ b ) + (ˆ c, ˆ d )) = φ ((( a + c, ˙ a + ˙ c ) , ( b + d, ˙ b + ˙ d )))= ( a + c, ˙ a + ˙ c, b + d, ˙ b + ˙ d ) ,φ ((ˆ a, ˆ b )) + φ ((ˆ c, ˆ d )) = ( a, ˙ a, b, ˙ b ) + ( c, ˙ c, d, ˙ d )= ( a + c, ˙ a + ˙ c, b + d, ˙ b + ˙ d ) , se obtiene que φ ((ˆ a, ˆ b ) + (ˆ c, ˆ d )) = φ ((ˆ a, ˆ b )) + φ ((ˆ c, ˆ d )) . Con la multiplicaci´on se opera an´alogo a la suma, pero primero se nece-sita realizar los c´alculos ˆ a ˆ c = ( ac, a ˙ c + ˙ ac ) , ˆ a ˆ d = ( ad, a ˙ d + ˙ ad ) , b ˆ c = ( bc, b ˙ c + ˙ bc ) , que intervienen en la siguiente operaci´onˆ a ˆ d + ˆ b ˆ c = ( ad + bc, a ˙ d + ˙ ad + b ˙ c + ˙ bc ) . Usando la expresi´on anterior se calcula φ ((ˆ a, ˆ b )(ˆ c, ˆ d )) = φ ((ˆ a ˆ c, ˆ a ˆ d + ˆ b ˆ c )) = ( ac, a ˙ c + ˙ ac, ad + bc, a ˙ d + ˙ ad + b ˙ c + ˙ bc ) . Por otra parte φ ((ˆ a, ˆ b )) φ ((ˆ c, ˆ d )) = ( a, ˙ a, b, ˙ b )( c, ˙ c, d, ˙ d )= ( ac, a ˙ c + ˙ ac, ad + bc, a ˙ d + ˙ ad + b ˙ c + ˙ bc ) . por lo que se obtiene φ ((ˆ a, ˆ b )(ˆ c, ˆ d )) = φ ((ˆ a, ˆ b )) φ ((ˆ c, ˆ d )) . En lo que sigue se usar´a la notaci´on ˙( a + b ) , ˙( a − b ) y ˙( ab ) para repre-sentar la derivada anidada de la operaci´on correspondiente.El siguiente teorema demuestra que los superadoubles calculan derivadasanidadas en las tres operaciones definidas hasta el momento. Teorema 5.2.
Sean ( a, a (cid:48) , ˙ a, ˙ a (cid:48) ) y ( b, b (cid:48) , ˙ b, ˙ b (cid:48) ) dos superadoubles cuyas com-ponentes representan el valor, la derivada original, la derivada anidada y laderivada compuesta de sus respectivas operaciones. Entonces se cumple ( a, a (cid:48) , ˙ a, ˙ a (cid:48) ) + ( b, b (cid:48) , ˙ b, ˙ b (cid:48) ) = ( a + b, ( a + b ) (cid:48) , ˙( a + b ) , ( ˙( a + b )) (cid:48) ) , ( a, a (cid:48) , ˙ a, ˙ a (cid:48) ) − ( b, b (cid:48) , ˙ b, ˙ b (cid:48) )( a − b, ( a − b ) (cid:48) , ˙( a − b ) , ( ˙( a − b )) (cid:48) ) , ( a, a (cid:48) , ˙ a, ˙ a (cid:48) )( b, b (cid:48) , ˙ b, ˙ b (cid:48) ) = ( ab, ( ab ) (cid:48) , ˙( ab ) , ( ˙( ab )) (cid:48) ) . Demostraci´on.
Sumando y restando se obtiene( a, a (cid:48) , ˙ a, ˙ a (cid:48) ) + ( b, b (cid:48) , ˙ b, ˙ b (cid:48) ) = ( a + b, a (cid:48) + b (cid:48) , ˙ a + ˙ b, ˙ a (cid:48) + ˙ b (cid:48) ) , ( a, a (cid:48) , ˙ a, ˙ a (cid:48) ) − ( b, b (cid:48) , ˙ b, ˙ b (cid:48) ) = ( a − b, a (cid:48) − b (cid:48) , ˙ a − ˙ b, ˙ a (cid:48) − ˙ b (cid:48) ) . a + b, a (cid:48) + b (cid:48) , ˙ a + ˙ b, ˙ a (cid:48) + ˙ b (cid:48) ) = ( a + b, ( a + b ) (cid:48) , ˙( a + b ) , ( ˙ a + ˙ b ) (cid:48) )= ( a + b, ( a + b ) (cid:48) , ˙( a + b ) , ( ˙( a + b )) (cid:48) ) , ( a − b, a (cid:48) − b (cid:48) , ˙ a − ˙ b, ˙ a (cid:48) − ˙ b (cid:48) ) = ( a − b, ( a − b ) (cid:48) , ˙( a − b ) , ( ˙ a − ˙ b ) (cid:48) )= ( a − b, ( a − b ) (cid:48) , ˙( a − b ) , ( ˙( a − b )) (cid:48) ) , Para demostrar el tercer resultado de la tesis se aplica la regla del productopara las derivadas,( a, a (cid:48) , ˙ a, ˙ a (cid:48) )( b, b (cid:48) , ˙ b, ˙ b (cid:48) ) = ( ab, a (cid:48) b + ab (cid:48) , ˙ ab + a ˙ b, ( a ˙ b (cid:48) + a (cid:48) ˙ b ) + ( ˙ a (cid:48) b + ˙ ab (cid:48) ))= ( ab, ( ab ) (cid:48) , ˙( ab ) , (( a ˙ b ) (cid:48) + ˙ ab ) (cid:48) )= ( ab, ( ab ) (cid:48) , ˙( ab ) , ( ˙ ab + ( a ˙ b ) (cid:48) )= ( ab, ( ab ) (cid:48) , ˙( ab ) , ( ˙( ab )) (cid:48) ) . La divisi´on entre dos elementos se calcula multiplicando uno por el in-verso del otro, por lo tanto, para realizar la divisi´on primero se necesita elinverso.
Proposici´on 5.4.
El inverso de a = ( a, a (cid:48) , ˙ a, ˙ a (cid:48) ) es a − = (cid:16) a , − a (cid:48) a , − ˙ aa , a (cid:48) ˙ a − a ˙ a (cid:48) a (cid:17) . Demostraci´on.
El inverso del superadouble a es a − = ( x, x (cid:48) , ˙ x, ˙ x (cid:48) ) tal que( a, a (cid:48) , ˙ a, ˙ a (cid:48) )( x, x (cid:48) , ˙ x, ˙ x (cid:48) ) = (1 , , , . Hallar a − es equivalente a resolver el sistema de ecuaciones ax = 1 ax (cid:48) + a (cid:48) x = 0 a ˙ x + ˙ ax = 0 a ˙ x (cid:48) + a (cid:48) ˙ x + ˙ ax (cid:48) + ˙ a (cid:48) x = 036uya soluci´on es: x = 1 a ,x (cid:48) = − a (cid:48) a , ˙ x = − ˙ aa , ˙ x (cid:48) = 2 a (cid:48) ˙ a − a ˙ a (cid:48) a . La soluci´on anterior no tiene sentido para a = 0, esto significa que loselementos con primera componente igual a cero no son inversibles.El siguiente teorema demuestra que el c´alculo de la derivada anidada delinverso es posible. Teorema 5.3.
Sea a = ( a, a (cid:48) , ˙ a, ˙ a (cid:48) ) un superadouble cuyas componentes sonel valor, la derivada original, la derivada anidada y la derivada compuestade la operaci´on que ´el representa. Entonces se cumple que: a − = (cid:16) a , (cid:16) a (cid:17) (cid:48) , ˙ (cid:16) a (cid:17) , ˙ (cid:16) a (cid:17) (cid:48) (cid:17) . Demostraci´on.
Utilizando la regla de la derivada para la inversa y el pro-ducto se obtiene a − = (cid:16) a , − a (cid:48) a , − ˙ aa , a (cid:48) ˙ a − a ˙ a (cid:48) a (cid:17) = (cid:16) a , (cid:16) a (cid:17) (cid:48) , ˙ (cid:16) a (cid:17) , aa (cid:48) ˙ aa − ˙ a (cid:48) a (cid:17) = (cid:16) a , (cid:16) a (cid:17) (cid:48) , ˙ (cid:16) a (cid:17) , (cid:16) − ˙ a · a (cid:17) (cid:48) (cid:17) = (cid:16) a , (cid:16) a (cid:17) (cid:48) , ˙ (cid:16) a (cid:17) , ˙ (cid:16) a (cid:17) (cid:48) (cid:17) . Corolario 5.1.
Sea ( a, a (cid:48) , ˙ a, ˙ a (cid:48) ) y ( b, b (cid:48) , ˙ b, ˙ b (cid:48) ) dos superadoubles cuyas com-ponentes son el valor, la derivada original, la derivada anidada y la derivadacompuesta de las operaciones que ellas representan. Entonces se cumple ( a, a (cid:48) , ˙ a, ˙ a (cid:48) ) / ( b, b (cid:48) , ˙ b, ˙ b (cid:48) ) = ( a/b, ( a/b ) (cid:48) , ˙( a/b ) , ( ˙ a/b ) (cid:48) ) , emostraci´on. Como la divisi´on de dos elementos es la multiplicaci´on deuno por el inverso del otro, entonces por el Teorema 5.3 y el Teorema 5.2 secumple la tesis.Hasta este momento se ha demostrado que las operaciones elementa-les sobre SA permiten calcular derivadas anidadas. Para poder utilizar lossuperadoubles con cualquier funci´on diferenciable, falta probar que estaspropiedades tambi´en se cumplen cuando se eval´ua una funci´on anal´ıticacualquiera. El objetivo de la pr´oxima secci´on es precisamente la definici´onde funciones de variable superadouble. Al igual que los adoubles, las definiciones de funciones se facilita si seintroduce un cambio de notaci´on en los superadoubles. Para esta nuevanotaci´on es necesario definir sobre este espacio una estructura de ´algebray para definir un ´algebra sobre SA falta definir una estructura vectorial ydespu´es demostrar su compatibilidad con el anillo.La siguiente proposici´on ayuda a que la definici´on de espacio vectorialresulte natural. Proposici´on 5.5. SA contiene a A y R como estructura de anillo.Demostraci´on. Tomando A = { ( a, a (cid:48) , , ∈ SA : a, a (cid:48) ∈ R } y restando ymultiplicando dos elementos cualesquiera de este conjunto se obtiene que( a, a (cid:48) , , − ( b, b (cid:48) , ,
0) = ( a − b, a (cid:48) − b (cid:48) , , ∈ A, ( a, a (cid:48) , , b, b (cid:48) , ,
0) = ( ab, ab (cid:48) + a (cid:48) b, , ∈ A, por tanto, A es un subanillo de SA que es isomorfo a A .Como SA contiene a A , esto implica que SA tambi´en contiene a los realespor la Proposici´on 4.5. Este subanillo es el conjunto { ( a, , , ∈ SA : a ∈ R } . Proposici´on 5.6.
El espacio SuperAdouble en un espacio vectorial sobre R con la suma (5.1) y el producto externo definido por α ( a, a (cid:48) , ˙ a, ˙ a (cid:48) ) = ( α, , , a, a (cid:48) , ˙ a, ˙ a (cid:48) ) = ( αa, αa (cid:48) , α ˙ a, α ˙ a (cid:48) ) . (5.3)38 emostraci´on. Las operaciones de suma y producto externo coinciden conlas usuales sobre R como espacio vectorial. Proposici´on 5.7. SA es un ´algebra conmutativa y unitaria con las opera-ciones (5.1) , (5.2) y (5.3) .Demostraci´on. Hay que demostrar que ∀ α, β ∈ R y ∀ a , b ∈ SA se cumple( α a )( β b ) = ( αβ ) ab . Sea a = ( a, a (cid:48) , ˙ a, ˙ a (cid:48) ) y b = ( b, b (cid:48) , ˙ b, ˙ b (cid:48) ), entonces se cumple( α a )( β b ) = ( αβab, αβ ( ab (cid:48) + a (cid:48) b ) , αβ ( a ˙ b + b ˙ a ) ,αβ ( a ˙ b (cid:48) + a (cid:48) ˙ b + ˙ ab (cid:48) + ˙ a (cid:48) b ))= ( αβ ) ab . Despu´es de esta proposici´on se est´a en condiciones de presentar una nue-va notaci´on con el prop´osito comentado anteriormente: facilitar la definici´onde funciones de variable superadouble.Como( a, a (cid:48) , ˙ a, ˙ a (cid:48) ) = ( a, , ,
0) + (0 , a (cid:48) , ,
0) + (0 , , ˙ a,
0) + (0 , , , ˙ a (cid:48) ) , se puede denotar (cid:15) = (0 , , , ,(cid:15) = (0 , , , ,(cid:15) = (0 , , , , y se podr´ıa reescribir los superadoubles como( a, a (cid:48) , ˙ a, ˙ a (cid:48) ) = a + (cid:15) a (cid:48) + (cid:15) ˙ a + (cid:15) ˙ a (cid:48) . Como la definici´on de funciones se realizar´a a trav´es de la serie de Taylorde las funciones reales, se encontrar´an factores donde aparecen los productos (cid:15) i (cid:15) j . La siguiente proposici´on proporciona estos resultados.39 roposici´on 5.8. Los productos de cada par de valores (cid:15) i , (cid:15) j son (cid:15) (cid:15) = 0 ,(cid:15) (cid:15) = (cid:15) ,(cid:15) (cid:15) = 0 ,(cid:15) (cid:15) = 0 ,(cid:15) (cid:15) = 0 ,(cid:15) (cid:15) = 0 . Demostraci´on.
Estos resultados se obtienen de realizar los siguientes c´alcu-los. (cid:15) (cid:15) = (0 , , , , , ,
0) = 0 ,(cid:15) (cid:15) = (0 , , , , , ,
0) = (cid:15) ,(cid:15) (cid:15) = (0 , , , , , ,
1) = 0 ,(cid:15) (cid:15) = (0 , , , , , ,
0) = 0 ,(cid:15) (cid:15) = (0 , , , , , ,
1) = 0 ,(cid:15) (cid:15) = (0 , , , , , ,
1) = 0 . Solo es necesario hacer estos seis c´alculos porque el ´algebra es conmutativa.Estos productos se resumen en la siguiente tabla. (cid:15) (cid:15) (cid:15) (cid:15) (cid:15) (cid:15) (cid:15) (cid:15) SA funciones que permitancalcular derivadas anidadas y que sean compatible con A y R , es decir, queal restringir una funci´on de SA a alguno de estos dos espacios, se obtenganvalores de estos espacios. Para definir estas funciones, al igual que con losadoubles, se partir´a del desarrollo en serie de Taylor de las funciones realesanal´ıticas. 40 eorema 5.4. Sea f una funci´on real anal´ıtica, y = h ( x ) la variable anida-da y x la variable original. Entonces si a = a + (cid:15) a (cid:48) + (cid:15) ˙ a + (cid:15) ˙ a (cid:48) , y b = f ( a ) = b + (cid:15) b (cid:48) + (cid:15) ˙ b + (cid:15) ˙ b (cid:48) , se tiene que1. b es el valor de la funci´on: f(a),2. b (cid:48) es la derivada original: df ( a ) dx ,3. ˙ b es la derivada anidada: df ( a ) dy , y4. ˙ b (cid:48) es la derivada compuesta: d f ( a ) dxdy .Demostraci´on. Como SA es un ´algebra conmutativa, por el Teorema 1.2 secumple( a + (cid:15) a (cid:48) + (cid:15) ˙ a + (cid:15) ˙ a (cid:48) ) n = (cid:88) n ! p ! p ! p ! p ! a p ( (cid:15) a (cid:48) ) p ( (cid:15) ˙ a ) p ( (cid:15) ˙ a (cid:48) ) p , (5.4)donde la suma del segundo miembro se extiende a todas las combinacionesde p , p , p y p de enteros no negativos tales que (cid:88) i =1 p i = n. En la suma (5.4) existen muchos factores que se anulan cuando se aplicala Proposici´on 5.8, por lo tanto, s´olo se tratar´an los cinco casos donde estono ocurre.
Caso 1: Si p = p = p = 0, entonces p = n y n ! p ! p ! p ! p ! a p ( (cid:15) a (cid:48) ) p ( (cid:15) ˙ a ) p ( (cid:15) ˙ a (cid:48) ) p = a n . Caso 2: Si p = 1 y p = p = 0, entonces p = n − n ! p ! p ! p ! p ! a p ( (cid:15) a (cid:48) ) p ( (cid:15) ˙ a ) p ( (cid:15) ˙ a (cid:48) ) p = (cid:15) na n − a (cid:48) . Caso 3: Si p = 1 y p = p = 0, entonces p = n − n ! p ! p ! p ! p ! a p ( (cid:15) a (cid:48) ) p ( (cid:15) ˙ a ) p ( (cid:15) ˙ a (cid:48) ) p = (cid:15) na n − ˙ a. aso 4: Si p = 1 y p = p = 0, entonces p = n − n ! p ! p ! p ! p ! a p ( (cid:15) a (cid:48) ) p ( (cid:15) ˙ a ) p ( (cid:15) ˙ a (cid:48) ) p = (cid:15) na n − ˙ a (cid:48) . Caso 5: Si p = p = 1 y p = 0, entonces p = n − n ! p ! p ! p ! p ! a p ( (cid:15) a (cid:48) ) p ( (cid:15) ˙ a ) p ( (cid:15) ˙ a (cid:48) ) p = (cid:15) ( n − na n − a (cid:48) ˙ a. Considerando los resultados obtenidos en los cinco casos a partir de (5.4)y us´andolos en (5.5) se obtiene que f (( a, a (cid:48) , ˙ a, ˙ a (cid:48) )) = ∞ (cid:88) n =0 c n ( a + (cid:15) a (cid:48) + (cid:15) ˙ a + (cid:15) ˙ a (cid:48) ) n n != ∞ (cid:88) n =0 c n a n n ! + (cid:15) a (cid:48) ∞ (cid:88) n =1 c n a n − ( n − (cid:15) ˙ a ∞ (cid:88) n =1 c n a n − ( n − (cid:15) (cid:32) a (cid:48) ˙ a ∞ (cid:88) n =2 c n a n − ( n − a (cid:48) ∞ (cid:88) n =1 c n a n − ( n − (cid:33) . Como ∞ (cid:88) n =1 c n a n − ( n − f ( a ) , ∞ (cid:88) n =2 c n a n − ( n − f ( a ) , se concluye que si a = a + (cid:15) a (cid:48) + (cid:15) ˙ a + (cid:15) ˙ a (cid:48) , entonces f ( a ) = f ( a ) + (cid:15) a (cid:48) ˙ f ( a ) + (cid:15) ˙ a ˙ f ( a ) + (cid:15) ( a (cid:48) ˙ a ¨ f ( a ) + ˙ a (cid:48) ˙ f ( a )) . (5.5)Usando la regla de la cadena se obtiene f ( a ) = b + (cid:15) b (cid:48) + (cid:15) ˙ b + (cid:15) ˙ b (cid:48) . Para obtener el resultado en la cuarta componente se aplica la regla dela cadena y la regla del producto para las derivadas como sigue: a (cid:48) ˙ a ¨ f ( a ) + ˙ a (cid:48) ˙ f ( a ) = ( ˙ a ˙ f ( a )) (cid:48) = ˙ f (cid:48) ( a ) . R a SA , basta evaluarloen puntos de la forma ( a, , ,
0) y para ver que es una extensi´on de A a SA ,s´olo es necesario evaluarlo en puntos de la forma ( a, a (cid:48) , , n variablessuperadoubles de la siguiente forma: f ( x , . . . , x n ) = f ( a , . . . , a n )+ (cid:15) ( a f (cid:48) x ( a , . . . , a n ) + · · · + a n f (cid:48) x n ( a , . . . , a n ))+ (cid:15) ( b f (cid:48) x ( a , . . . , a n ) + · · · + b n f (cid:48) x n ( a , . . . , a n ))+ (cid:15) ( a b f (cid:48)(cid:48) x ( a , . . . , a n ) + · · · + a n b n f (cid:48)(cid:48) x n ( a , . . . , a n )+ b f (cid:48) x ( a , . . . , a n ) + · · · + b n f (cid:48) x n ( a , . . . , a n )) , donde x i = ( a i , a i , b i , b i ) para todo i = 1 , . . . , n .Todo lo desarrollado en esta secci´on para funciones de una variable su-peradouble se cumple para estas funciones en varias variables.En este cap´ıtulo se demostr´o que la metodolog´ıa presentada en el Cap´ıtu-lo 3 es una herramienta v´alida para calcular derivadas anidadas.43 onclusiones Con la metodolog´ıa propuesta en este trabajo es posible utilizar la dife-renciaci´on autom´atica para calcular derivadas anidadas. Esta metodolog´ıa essencilla de implementar gracias a que se puede reusar otras librer´ıas de ADque soporten sobrecarga de operadores. Adem´as, se hizo un estudio algebrai-co de las propiedades de los n´umeros que sustentan tanto la diferenciaci´onautom´atica como la diferenciaci´on autom´atica anidada.Como recomendaciones y trabajo futuro se propone implementar el modohacia atr´as de la diferenciaci´on autom´atica con los n´umeros de tipo Super-Adouble, lo cual ser´ıa ´util en los casos que la funci´on anidada con dominioen R n e imagen en R , y generalizar los resultados obtenidos para el caso enque haya m´as de un nivel de anidaci´on.44 ibliograf´ıa [1] David G. Luenberger. Linear and nonlinear programming , 1984.Addison-Wesley.[2] Hairer, Wanner.
Solving Ordinary Differential Equations. Vol II: Stiffand Differential Algebraic Problems , 1991. Springer Verlag.[3] A. Griewank, A. Walther.
Evaluating Derivatives. Principles and Tech-niques of Algorithmic Differentiation , 2008. SIAM.[4] Andrea Walther.
Getting Started with ADOL-C , 2009.[5] Barak A. Pearlmutter, Jeffrey Mark Siskind.
Using Programming Lan-guage Theory to Make Automatic Differentiation Sound and Efficient .[6] Manuel Alfredo Ferreiro.
ADOLNet, Herramienta para la Diferencia-ci´on Autom´atica en .NET. , 2010. Facultad de Matem´atica y Compu-taci´on, Universidad de La Habana.[7] Jan Riehme, Andreas Griewank.
Algorithmic Differentiation ThroughAutomatic Graph Elimination Ordering , 2009.[8] Jeffrey Mark Siskind, Barak A. Pearlmutter.
Putting the AutomaticBack into AD: Part I, What’s Wrong , 2008.[9] Andreas Griewank.
A mathematical view of automatic differentiation ,2003. Cambridge University Press.[10] Harry H. Cheng.
Programming with Dual Numbers and its Applicationsin Mechanisms Desing , 1994. Engineering with Computers, Vol. 10,No.4, pp. 212-229. 4511] Michel Queysanne. ´Algebra B´asica , 1973. Editorial Vicens-Vives.[12] Michiel Hazewinkel, Nadiya Gubareni, Nadezhda Gubareni, VladimirV. Kirichenko,
Algebras, rings and modules, Volume 1 , 2004. Springer.[13] Sam A. Abolrous.
Learn C , 2008. Wordware Publishing.46 nexos
En este anexo se incluyen las demostraciones de las proposiciones 5.1 y5.2.
Proposici´on 5.1. SA es un anillo conmutativo y unitario. El neutro conrespecto a la suma es el elemento = ((0 , , (0 , y el neutro respecto alproducto es = ((1 , , (0 , .Demostraci´on. Sea a , b , c ∈ SA con a = (ˆ a , ˆ a ) , ˆ a , ˆ a ∈ A , b = (ˆ b , ˆ b ) , ˆ b , ˆ b ∈ A , c = (ˆ c , ˆ c ) , ˆ c , ˆ c ∈ A . Seg´un la Definici´on 1.3 lo primero a demostrar es que SA para la sumaes un grupo abelianoSumando las expresiones( a + b ) + c = (ˆ a + ˆ b , ˆ a + ˆ b ) + c = (ˆ a + ˆ b + ˆ c , ˆ a + ˆ b + ˆ c ) , a + ( b + c ) = a + (ˆ b + ˆ c , ˆ b + ˆ c ) = (ˆ a + ˆ b + ˆ c , ˆ a + ˆ b + ˆ c ) , se obtiene que ( a + b ) + c = a + ( b + c ) . La suma es conmutativa: a + b = (ˆ a + ˆ b , ˆ a + ˆ b ) = (ˆ b + ˆ a , ˆ b + ˆ a ) = b + a . El es elemento neutro para la suma: a + = (ˆ a , ˆ a ) + ((0 , , (0 , a , ˆ a ) = a . a (cid:48) = ( − ˆ a , − ˆ a ), entonces a + a (cid:48) = (ˆ a , ˆ a ) + ( − ˆ a , − ˆ a ) = . Multiplicando las expresiones( ab ) c = (ˆ a ˆ b , ˆ a ˆ b + ˆ a ˆ b )(ˆ c , ˆ c ) = (ˆ a ˆ b ˆ c , ˆ a ˆ b ˆ c + ˆ a ˆ b ˆ c + ˆ a ˆ b ˆ c ) , a ( bc ) = (ˆ a , ˆ a )(ˆ b ˆ c , ˆ b ˆ c + ˆ b ˆ c ) = (ˆ a ˆ b ˆ c , ˆ a ˆ b ˆ c + ˆ a ˆ b ˆ c + ˆ a ˆ b ˆ c ) , se obtiene que ( ab ) c = a ( bc ) . El producto es conmutativo: ab = (ˆ a , ˆ a )(ˆ b , ˆ b ) = (ˆ a ˆ b , ˆ a ˆ b + ˆ a ˆ b ) = (ˆ b ˆ a , ˆ b ˆ a + ˆ b ˆ a ) = ba . Multiplicando las siguiente expresiones a ( b + c ) = (ˆ a , ˆ a )(ˆ b + ˆ c , ˆ b + ˆ c ) = (ˆ a ˆ b + ˆ a ˆ c , ˆ a ˆ b + ˆ a ˆ b + ˆ a ˆ b + ˆ a ˆ c ) , ab + ac = (ˆ a ˆ b , ˆ a ˆ b +ˆ a ˆ b )+(ˆ a ˆ c , ˆ a ˆ c +ˆ a ˆ c ) = (ˆ a ˆ b +ˆ a ˆ c , ˆ a ˆ b +ˆ a ˆ b +ˆ a ˆ b +ˆ a ˆ c ) , se obtiene que a ( b + c ) = ab + ac . El es elemento neutro con respecto al producto: a1 = (ˆ a , ˆ a )((1 , , (0 , a , ˆ a ) = a . Proposici´on 5.2.
El espacio SA R es un anillo conmutativo.Demostraci´on. Sea a , b , c ∈ SA R con a = ( a , ˙ a , a , ˙ a ) , a , ˙ a , a , ˙ a ∈ R , b = ( b , ˙ b , b , ˙ b ) , b , ˙ b , b , ˙ b ∈ R , c = ( c , ˙ c , c , ˙ c ) , c , ˙ c , a , ˙ c ∈ R , Este espacio con la suma es un grupo abeliano porque coincide con lasuma usual de R como grupo. 48ultiplicando las siguiente expresiones ab = ( a b , a ˙ b + ˙ a b , a b + a b , a ˙ b + ˙ a b + a ˙ b + ˙ a b ) , ( ab ) c = ( a b c , a b ˙ c + a ˙ b c + ˙ a b c , a b c + a b c + a b c ,a b ˙ c + a ˙ b c + ˙ a b c + a ˙ b c + ˙ a b c + a ˙ b c + ˙ a b c ) , bc = ( b c , b ˙ c + ˙ b c , b c + b c , b ˙ c + ˙ b c + b ˙ c + ˙ b c ) , a ( bc ) = ( a b c , a b ˙ c + a ˙ b c + ˙ a b c , a b c + a b c + a b c ,a b ˙ c + a ˙ b c + ˙ a b c + a ˙ b c + ˙ a b c + a ˙ b c + ˙ a b c ) , se obtiene que ( ab ) c = a ( bc ) . La conmutatividad del producto se obtiene directo de la conmutatividadde la suma y la multiplicaci´on de los n´umeros reales.Multiplicando las expresiones b + c = ( b + c , ˙ b + ˙ c , b + c , ˙ b + ˙ c ) , a ( b + c ) = ( a b + a c , a ˙ b + a ˙ c + ˙ a b + ˙ ac , a b + a c + a b + a c ,a ˙ b + a ˙ c + ˙ a b + ˙ a c , a ˙ b + a ˙ c + ˙ a b + ˙ a c ) , ab = ( a b , a ˙ b + ˙ a b , a b + a b , a ˙ b + ˙ a b + a ˙ b + ˙ a b ) , ac = ( a c , a ˙ c + ˙ a c , a c + a c , a ˙ c + ˙ a c + a ˙ c + ˙ a c ) , ab + ac = ( a b + a c , a ˙ b + a ˙ c + ˙ a b + ˙ ac , a b + a c + a b + a c ,a ˙ b + a ˙ c + ˙ a b + ˙ a c , a ˙ b + a ˙ c + ˙ a b + ˙ a c ) , se obtiene que a ( b + c ) = ab + acac