Automatikus dierencialas Csendes Tibor A dierencialhanyadosoknak fontos szerepuk van a numerikus matematikaban, szamos teruleten szinte elengedhetetlen a hasznalatuk. Ilyen problemak talalhatok peldaul az optimalizalasban, a nemlinearis egyenletmegoldasban, az iranytaselmeletben es az erzekenysegvizsgalatban is. Talan a legismertebb eset a fuggvenyek zerushelyenek megkeresese, itt a derivalt hasznalataval m}ukod}o Newton-Rawson eljaras konvergenciasebessege lenyegesen jobb, mint a derivaltakat nem hasznalo szel}o- vagy hurmodszere. Egy pelda sajat tapasztalatbol 1]: bizonyos globalis optimalizalasi feladatok megoldasa a derivaltak hasznalata nelkul egyszer}uen lehetetlen volt (a fellep}o hatalmas tarigeny miatt) | mg a gradiens alkalmazasaval hatekony algoritmust lehetett megadni. Ma mar egyes programozasi nyelvek (pl. a PASCALXSC 7]) is tamogatjak az automatikus dierencialast megfelel}o adattpussal es m}uveletekkel, es szamos szoftver is hasznalja ezt a derivalasi modszert (pl. 10]-ban lert optimalizalasi eljaras, amely csak a celfuggveny megadasat igenyli).
1. Hogyan szokas a derivaltakat szamtogepen el}oalltani, es miert nem igazan jok ezek a megoldasok? A leggyakrabban hasznalt
ket modszer a derivaltertekek el}oalltasara azok numerikus kozeltese es a "kezzel" valo derivaltmeghatarozas a derivalasi szabalyok alkalmazasaval. Tekintsuk peldaul az f (x) = (x ; 1)2 fuggvenyt az x = 2 pontban. A numerikus dierencialas a derivalt erteket (az egyik szokasos modszerrel) az (f (x) ; f (x ; ))= becslessel kozelti, ahol egy a szamabrazolasnak megfelel}oen valasztott 0 es 1 kozotti kis szam. = 10;8 eseten f 0(2)-re gy (Fortranban, dupla pontossaggal) 1.99999997674282781190 adodik. A derivalasi szabalyok alkalmazasaval az f 0(x) = 2x ; 2 fuggvenyt kapjuk, ennek szamtogepes kiertekelese (lenyegeben) 2-t ad. A legtobb numerikus matematikai monograa es a professzionalis numerikus programcsomagok tobbsege is ezt a ket utat javasolja, bar mindket 1
modszernek vannak olyan gyengei, amelyek szamos feladatban lehetetlenne vagy ertelmetlenne teszik alkalmazasukat. A ritka kivetelek egyike Skeel es Keiper konyve 11], amely a szimbolikus dierencialassal szemben is az automatikus derivalast javasolja. E rdekes osszefuggesek vannak a derivalas es az integralas analitikus, illetve numerikus meghatarozasa kozott is. Az analitikus derivalas keplettel adott, elemi fuggvenyekb}ol feleptett fuggvenyekre konnyen, csaknem mechanikusan vegrehajthato, mg az analitikus integralas nehez vagy akar lehetetlen is lehet. Ezzel szemben a numerikus kozeltes a derivaltra gyakran pontatlan, mg az integralra altalaban pontosabb. A numerikus derivaltak viszonylag konnyen programozhatok, sokszor a konyvtari program maga alltja o}ket el}o, ha a felhasznalo nem adott meg szubrutint az analitikus derivaltak kiszamtasara. A numerikus derivalt hasznalatanak el}onye, hogy + nincs el}ozetes munkarafordtas a derivaltak "kezzel" torten}o el}oalltasara, + emiatt javtani sem kell az azok programozasa soran elkovetett hibakat, es + akkor is m}ukodik, ha az illet}o fuggveny kepletet nem ismerjuk, csak a kiszamolasara szolgalo szubrutin adott. Hatranya viszont, hogy { a levagasi hiba miatt sok ertekes jegy veszik el. Ez a jelenseg csak bonyolult, es nem is minden szamtogepes kornyezetben rendelkezesre allo eszkozokkel csokkenthet}o (valtozo meret}u szamabrazolas, racionalis aritmetika stb.). { a gyorsan valtozo derivaltak becslesere alkalmatlan. Az optimalizalasban altalanosan elfogadott huvelykszabaly szerint (hacsak lehetseges) erdemes el}oalltani a derivaltakat szamto szubrutinokat. Ezen eljaras el}onye, hogy + a levagasi hiba nem jelentkezik, a kiszamtott derivaltertekek altalaban csak nagyon kis kerektesi hibaval terheltek, es 2
+ a gyorsan valtozo derivaltertekek is jol meghatarozhatok. A hatranya ezzel szemben, hogy { a derivaltak kepletenek meghatarozasa munkaigenyes, es a "kezzel" valo el}oalltas eseten gyakran komoly hibaforras, valamint { csak a keplettel adott fuggvenyek derivaltja hatarozhato meg ilyen modon, tehat a kizarolag algoritmussal adottakat altalaban nem lehet gy derivalni. Itt kell megjegyezni, hogy a szamtogepes algebrarendszerek (mint peldaul a Mathematica, a Maple vagy a Derive) szimbolikus manipulacioval el}o tudjak alltani a keplettel adott fuggvenyek derivaltjait. Igy ez az el}okeszt}o munka legalabb szamtogepesthet}o, tehat nem feltetlenul kell "kezzel" vegrehajtani. Az ilyen szimbolikus derivalas, a vele jaro egyszer}ustes es a programozasi nyelvre valo alaktas id}oigenye nagyon valtozo, mindenesetre a szamtogepes algebrarendszerek sokat fejl}odtek ezen a teren az utobbi id}oben
5]. Az automatikus dierencialas egyszer}uen abbol az igenyb}ol fakadt, hogy az el}oz}o modszerek el}onyeit kell egyesteni a hatranyok elhagyasaval. Olyan eljarast kerestek tehat, amely + lenyegeben nem igenyel el}ozetes rafordtast a derivaltak "kezzel-" vagy akar szamtogepes algebrarendszerrel, szimbolikus manipulacioval valo meghatarozasara, + emiatt nem is kell a megfelel}o szubrutinokat programozni es javtani, + akkor is m}ukodik, ha csak az illet}o fuggveny kiszamolasara szolgalo szubrutin adott, de a fuggveny keplete nem ismert, + a levagasi hiba miatt nem vesznek el ertekes jegyek, + a gyorsan valtozo derivaltak meghatarozasara is alkalmas, es + a derivaltak kiszamtasanak m}uveletigenye altalaban kisebb, mint a numerikus derivalase, illetve az analitikus derivaltakat kiszamto szubrutinoke. 3
1. Tablazat. Nehany alapm}uvelet es elemi fuggveny di erencialasa px log(x) exp(x) cos(x) y = f (x) a x a x a=x f 0(x) 1 a ;y=x 0:5=y 1=x y ; sin(x) Maga az otlet nem nagyon bonyolult, es jellemz}o modon tobben egymastol fuggetlenul ratalaltak 5, 8, 12]. Ha valaki kedvet erez hozza, maga is megprobalhatja az automatikus dierencialast ujra felfedezni: az el}oz}o felteteleket teljest}o eljarast kell megadni (eddig nem arultunk el semmi lenyegeset a trukkb}ol).
2. Az otlet. A trukk mindossze annyi, hogy hasznaljuk az adott
fuggvenyre ismert kiszamtasi eljarast az egyes m}uveletekhez tartozo derivalasi szabalyokkal egyutt. Peldaul ha f (x) = f1(x) f2(x), akkor legyen f 0(x) erteke f10 (x) f2 (x)+ f1(x) f20 (x), ahol f10 (x) es f20 (x) erteke mar ismert. Minden egyes reszletszamtassal egyutt tehat a ra vonatkozo, az aktualis valtozo- es konstansertekekhez tartozo derivalterteket is meghatarozzuk, es taroljuk. A kiindulashoz a valtozo derivaltja termeszetesen 1, a konstanse nulla. Az 1. Tablazat egyes alapm}uveletek es elemi fuggvenyek dierencialasanak formalis lerasat tartalmazza, itt x valtozo, a pedig konstans. Az automatikus dierencialas implementalasa soran celszer}u olyan adatszerkezetet valasztani, hogy minden, az illet}o fuggveny kiszamtasaban szerepet jatszo valtozo es konstans szamara egy rendezett part hasznalunk, amelynek els}o tagja a szokasos erteket tartalmazza majd, a masodik tag pedig a hozza tartozo derivalterteket. Ilyen adatstrukturaval az uj m}uveleteket egyszer}u felrni szubrutinok segtsegevel, vagy egyes ujabb programozasi nyelvekben (pl. C++ vagy FORTRAN-90) az eredeti m}uveletek es standard fuggvenyek denciojanak az uj adatszerkezetre valo kiterjesztesevel (operation overloading). Az utobbi esetben a mar m}ukod}o, az eredeti fuggvenyt kiszamto programban csak az adattpust kell kicserelni (pl. "real" helyett "derivative" vagy "gradient"), es maris rendelkezesre allnak a kvant derivaltertekek. Tekintsunk egy egyszer}u peldat az automatikus dierencialas hasznalatara: hatarozzuk meg ismet az f (x) = (x ; 1)2 fuggveny derivaltjat az x = 2 pontban! A dierencialhanyados-fuggveny tehat f 0(x) = 2x ; 2, a keresett 4
derivaltertek pedig 2. A valtozonkhoz tartozo par (2 1), a fuggvenyben szerepl}o konstanshoz tartozo pedig (1 0). A zarojelen beluli kifejezes f (x) kepleteben a (2 1) ; (1 0) = (1 1) part eredmenyezi. A negyzetreemelest szorzassal ertelmezve az (1 1) (1 1) = (1 2) part kapjuk, amelyb}ol kiolvashato, hogy f (2) = 1, es f 0(2) = 2.
3. Kiterjesztesek. A keplettel megadott fuggvenyek dierencialasaval szemben szokas kiemelni az "algoritmusok dierencialasat". Ezen az automatikus dierencialas egyszer}u kiterjeszteset ertik felteteles utastasokat is tartalmazo eljarasokkal megadott fuggvenyek derivalasara. Az utobbiakkal kapcsolatban persze felvet}odik, hogy dierencialhatok-e ezek egyaltalan. Szerencsere ez a problema inkabb elmeleti jelleg}u, es a technikai megoldast nem nagyon befolyasolja 3]. A magasabbrend}u derivaltak el}oalltasahoz ket ut kozott valaszthatunk: vagy kozvetlenul az egyes m}uveletekhez tartozo magasabbrend}u derivalasi kepleteket hasznaljuk (peldaul, ha f (x) = g(x)+ h(x), akkor f 00(x) = g00(x)+ h00 (x)), vagy az alacsonyabbrend}u derivaltak kiszamtasara mar meglev}o algoritmusra alkalmazzuk ismetelten az algoritmusok dierencialasat. A tobbvaltozos fuggvenyek dierencialasara a bevezetett automatikus differencialasi modszer minden tovabbi nelkul alkalmazhato, az egyes parcialis derivaltak meghatarozasakor csak a valtozo-konstans viszonyt kell mindig megfelel}oen tisztazni. Ez is konnyen programozhato, es gy a gradiens, a Hesse- es a Jacobi-matrix kiszamtasa is nagyon kenyelmesse tehet}o. 4. Az automatikus di erencialas ket valtozata. Az automatikus
dierencialas legegyszer}ubb megvalostasa az, amikor a kulonben mar rendelkezesre allo, az adott fuggvenyt kiszamto programot kib}ovtjuk az egyes m}uveletekhez tartozo elemi derivalasi lepesekkel - megtartva az eredeti algoritmus szerkezetet. Ezt a modszert a tovabbiakban sima algoritmusnak fogjuk nevezni. Az angol nyelv}u szakirodalomban nincs meg kialakult egyseges elnevezese, a "forward", "contravariant" vagy "bottom-up" jelz}okkel szokas megkulonboztetni (a masik, fordtott eljaras angolul "reverse", "backward", "covariant" vagy "top-down"). A ket eljaras lenyegeben az osszetett fuggvenyek derivalasahoz hasznalatos lancszabaly vegrehajtasi iranyaban kulonbozik. 5
A sima eljaras peldaul az y = f (g(h(x) k(x))) fuggveny automatikus dierencialasa soran a du = h0(x)dx dv = k0(x)dx dw = gu(u v)h0(x) + gv (u v)k0(x)]dx dy = f 0(w) gu(u v)h0(x) + gv (u v)k0(x)]dx sorrendet koveti. A fordtott eljaras az ellentetes iranyban alkalmazza a lancszabalyt: dy = f 0(w)dw dy = f 0(w) gu(u v)du + gv (u v)dv] dy = f 0(w) gu(u v)du + gv (u v)k0(x)dx] dy = f 0(w) gu(u v)dh0(x) + gv (u v)k0(x)]dx: A fordtott algoritmus el}onye abban van, hogy ez a vegrehajtasi sorrend lehet}ove teszi tobbvaltozos fuggvenyek dierencialasa soran bizonyos szuksegtelen m}uveletek elhagyasat. Ennek az az ara (amit a kovetkez}o szakasz adatai is alatamasztanak), hogy a fordtott algoritmus tarigenye magasabb, es a sima algoritmus egymenetes vegrehajtasaval szemben ket menetet igenyel. A ket valtozat kozotti kulonbseg megvilagtasa celjabol tekintsuk most az f (x) = x1 (1 ; x2)2 fuggvenyt az x = 2 1]T pontban. A sma eljaras az egyes vegrehajtott m}uveletekkel egyutt a megfelel}o derivaltertekeket is meghatarozza:
d1 = (1 0), f 1 = x1 = 2 d2 = (0 1), f 2 = x2 = 1 d3 = (0 0), f3 = 1 f4 = f3 ; f2 = 0 d4 = d3 ; d2 = (0 ;1), d5 = 2f4d4 = (0 0), f5 = f42 = 0 d6 = f1d5 + d1 f5 = (0 0). f6 = f1f5 = 2 A sma eljaras ekozben esetleg tobbszor is vegrehajtja ugyanazt a m}uveletet, viszont nem igenyli a kiszamtasi fa letrehozasat es tarolasat. A fordtott 6
algoritmus ezzel szemben el}oszor meghatarozza az fi ertekeket es a kiszamtasi fat, majd ennek segtsegevel el}oalltja a di = @f=@fi ertekeket:
d6 = 1 @f6 d5 = d6 @f = d6f1 = 2, 5 @f5 d4 = d5 @f4 = d52f4 = 0, @f4 = d41 = 0, d3 = d4 @f 3 @f4 d2 = d4 @f2 = d4(;1) = 0, 6 d1 = d6 @f @f1 = d6 f5 = 0. A gradiens erteket a d1 d2]T vektor adja.
5. M}uvelet- es tarigeny. A 2. Tablazat az automatikus dierencialas ket valtozatanak m}uvelet- es tarigenyet adja meg nehany gyakori derivalasi feladatra. A legmeglep}obb adat talan az, hogy egy tobbvaltozos fuggvenynek es gradiensenek meghatarozasa a fordtott algoritmussal legfeljebb negyszerannyi m}uveletet igenyel mint az illet}o fuggveny kiszamtasa. A fels}o korlat tehat nem is fugg kozvetlenul az illet}o fuggveny valtozoinak szamatol. Az automatikus dierencialas m}uveletigenye nagyjabol megfeleltethet}o egy ciklusmentes grafban a legrovidebb ut megkeresese m}uveletigenyenek, hozzaadva a kiszamtasi graf letrehozasanak m}uveletigenyet. A tarigeny nagy reszet a kiszamtasi graf tarolasa okozza. A tar- es m}uveletigeny javtasa teren meg varhatok tovabbi eredmenyek, de az is latszik, hogy a tarigeny inkabb csak a m}uveletigeny rovasara csokkenthet}o (es viszont). 6. Az automatikus di erencialas veszelyei. Az el}oz}oek alapjan
ugy t}unhet, hogy az automatikus dierencialas szamtogepes megvalostasa problemamentes. Sajnos nem egeszen ez a helyzet, me nehany pelda:
q
1. A zerus gyokok esete. Tekintsuk az f (x) = x41 + x42 fuggvenyt. Ez differencialhato, es a gradiense a (0: 0:)T pontban (0: 0:)T . Az automatikus dierencialas a negyzetgyok m}uvelethez azonban nem tud erteket rendelni, ha a gyok argumentuma nulla. A felhasznalo szamara ilyen esetekben az a leghasznosabb, ha az illet}o implementacio felhvja a gyelmet erre a hibalehet}osegre, pl. az IEEE aritmetikat tamogato szamtogepekben a NaN (Not 7
2. Tablazat. A fontosabb automatikus di erencialasi feladatok m}uvelet- es tarigenye. Magyarazat: f : egy n-valtozos fuggveny, f : m darab n-valtozos fuggveny, rf : az f gradiense, H : az f Hesse-matrixa, J : az f Jacobi-matrixa, L(:): az argumentumok meghatarozasanak m}uveletigenye p a f+ ; = log exp sin cosg alapm}uveletek felett, es S (:): az argumen-
tumok meghatarozasanak tarigenye. Feladat
Algoritmus sima fordtott 4L(f ) L(f rf ) 4nL(f ) 2 L(f rf H ) O(n L(f )) (10n + 4)L(f ) O(nL(f )) (3m + 1)L(f ) L(f J ) S (f rf ) O(S (f )) O(S (f ) + L(f )) S (f rf H ) O(S (f )) O(S (f ) + L(f )) O(S (f )) O(S (f ) + L(f )) S (f J ) a Number) ertek hozzarendelesevel. 2. A programelagazas esete. Tekintsuk az alabbi utastast: if x = 1 then f (x) = 1 else f (x) = x2 Vilagos, hogy azgy denialt fuggveny folytonosan dierencialhato, megis az automatikus dierencialas a hamis f 0(1) = 0 erteket adja. A pelda kicsit er}oltetettnek t}unik, de viszonylag gyakran el}ofordul, hogy adott fuggveny kiszamtasara hasonlo modon az argumentumok erteket}ol fugg}oen mas es mas eljarast adunk meg. Valodi megoldast erre a problemara nem lehet javasolni, legfeljebb azt, hogy a jelenseg tudataban (kulonosen az egyenl}osegfeltetellel adott programelagazas eseten) a felhasznalo ellen}orizze, hogy ilyen hiba fellephet-e. 3. A hatarertekkel adott fuggveny esete. Eddig a fuggvenyek megadasara mindig veges eljarast hasznaltunk. Mi tortenik akkor, ha ez a leras vegtelen? Konny}u olyan alkalmazasi peldat mutatni, ahol a dierencialni kvant fuggvenyt csak egy iteratv sorozattal tudjuk jellemezni. A klasszikus analzis szerint viszont a dierencialas es a hatarertekkepzes nem cserelhet}ok fel. Tekintsuk a kovetkez}o egyszer}u fuggvenysorozatot: 8
f1 (x) = xe;x2 f2(x) = xe;x2 e;x2 : : : fk = x(e;x2 )k : : : Automatikus dierencialassal (is) limk!1 fk0 (0) = 1, habar a valodi f (x) hatarfuggvenyre f 0(0) = 0. Ebben az esetben is csak azt lehet tanacsolni, hogy a jelenseg ismereteben az automatikus dierencialassal nyert ertekeket ellen}orizni kell. Ehhez viszonylag kenyelmesen hasznalhato elmeleti eredmenyek is rendelkezesre allnak 2].
7. Az automatikus di erencialas implementalasa. A mar eml-
tett PASCAL-XSC beeptett adattpusainak es kiterjesztett alapm}uveleteinek a hasznalata a legegyszer}ubb. A felhasznalonak mindossze a megfelel}o adattpusokat kell megvaltoztatnia. A FORTRAN-90 es C++ nyelvekben ezek az uj adattpusok es a kiterjesztett m}uveletek megvalostasa utan ugyanolyan kenyelmesen lehet az automatikus dierencialas sima algoritmusat alkalmazni, mint a PASCAL-XSC tamogatasaval. Anonymous ftp-vel elerhet}o egy C++ b}ovtes az iamk4515.mathematik.uni-karlsruhe.de cmen, a onyvtarban. Ismertetese a 4] kotetben talalhato. /pub/toolbox/cxsc k A kovetkez}o egyszer}u peldaban az f (x) = 25(x ; 1)=(x + 2) fuggveny es derivaltja erteket hatarozzuk meg automatikus dierencialassal az x = 2 pontban. A PASCAL-XSC implementacio erdekesebb reszleteit adjuk csak meg. program pelda (input,output) type df_type = record f,df: real end operator + (u,v: df_type) res: df_type begin res.f:=u.f+v.f res.df:=u.df+v.df end
... operator * (u,v: df_type) res: df_type begin res.f:=u.f*v.f res.df:=u.df*v.f+u.f*v.df end
... 9
function df_var (h: real) : df_type begin df_var.f:=h df_var.df:=1.0 end var x,f: df_type h: real begin h:=2.0 x:=df_var(h) f:=25*(x-1)/(x+2) writeln('f, df:',f.f,f.df) end.
Szamos kevesbe elegans, de annal hatasosabb szamtogepes eszkoz (preprocesszor, precompiler, keresztfordto es mas programcsomag) erhet}o el az automatikus dierencialas megvalostasara. Mintakent nehany hresebbnek az adatai:
A JAKEF egy FORTRAN precompiler, amit az Argonne National
Laboratory fejlesztett ki. Inputkent egy skalar vagy vektorfuggvenyt kiszamto szubrutint hasznal, es eredmenykent egy a gradienst, illetve a Jacobi-matrixot el}oallto szubrutint ad. A fordtott algoritmusra epul. A dokumentaciot es a forrasszoveget is meg lehet kapni. A NETLIB nev}u adatbazisban talalhato, b}ovebb informaciot ugy kaphatunk, hogy a
[email protected] E-mail cmre egy "send index" uzenetet kuldunk. A FORTRAN programok sima algoritmussal valo automatikus dierencialasara szolgalo GRAD programcsomag a kovetkez}o cmen erhet}o el: Larry Husch, Dept. Mathematics, University of Tenessee, Knoxville TN, USA, illetve
[email protected] az elektronikus postaval. Az ADOL-C egy C++ nyelven rt rendszer, amely C vagy C++ nyelv}u algoritmusok dierencialasara alkalmas sima es fordtott eljarassal is. A forraskod es a dokumentacio Andreas Griewank cmen erhet}o el (Argonne National Labs, Argonne, IL 60439, USA, illetve elektronikus postaval
[email protected]). 10
A MAPLE nev}u szamtogepes algebrarendszer az 5.1-es valtozatatol kezdve a szimbolikus derivalas mellett kepes az automatikus dierencialasra is (a sima algoritmussal). Az "optimize" rutinja csokkentheti a m}uveletigenyt, es az eredmenyt FORTRAN vagy C nyelven is ki tudja adni.
Meg kell meg emlteni, hogy az automatikus dierencialashoz termeszetes modon kapcsolhato a kerektesi hibak becslese es a szamtott derivaltak also- es fels}okorlatjainak meghatarozasa is. Az utobbi feladatok (reszben az intervallum-aritmetikara tamaszkodva) szinten kenyelmesen megoldhatok szamtogepen 4, 7, 10]. IRODALOM
1] Csendes, T., J. Pinter: The impact of accelerating tools on the interval subdivision algorithm for global optimization, European J. of Operational Research 65(1993) 314-320.
2] Fischer, H.: Special problems in automatic dierentiation, in: Griewank { Corliss, 1991] 43-50.
3] Griewank, A., G. Corliss (Eds.): Automatic Dierentiation of Algorithms: Theory, Implementation, and Application. SIAM, Philadelphia, 1991.
4] Hammer, R., M. Hocks, U. Kulisch, D. Ratz: C++ Toolbox for Veried Computing, Springer-Verlag, Berlin, 1995.
5] Iri, M.: History of automatic dierentiation and rounding error estimation, in: Griewank { Corliss, 1991] 3-16.
6] Kedem, G.: Automatic dierentiation of computer programs, ACM Transactions on Mathematical Software 6(1980) 150-165.
7] Klatte, R., U. Kulisch, M. Neaga, D. Ratz, Ch. Ullrich: PASCAL-XSC, Springer-Verlag, Berlin, 1991. 11
8] Ostrovskij, G.M., Ju.M. Wolin, W.W. Borisov: U ber die Berechnung von Ableitungen, Wissenschaftliche Zeitschrift der Technischen Hochschule fur Chemie, Leuna-Merseburg 13(1971) 382-384.
9] Rall, L.B.: Automatic Dierentiation: Techniques and Applications. Lecture Notes In Computer Science, Vol. 120, Springer-Verlag, Berlin, 1981.
10] Ratz, D.: Automatische Ergebnisverikation bei globalen Optimierungsproblemen. Doktori ertekezes, Karlsruhei Egyetem, 1992.
11] Skeel, R.D., J.B. Keiper: Elementary Numerical Computing with MATHEMATICA. McGraw-Hill Inc., New York, 1993.
12] Wengert, R.E.: A simple automatic derivative evaluation program, Communications of the ACM 7(1964) 463-464. ad ter 2. A cikk Csendes Tibor, JATE Kalmar Laboratorium, Szeged, Arp rasa idejen a Bazeli Egyetem Informatikai Intezeteben volt osztondjas a ondjbizottsag Kulonprogramja tamogatasaval. Svajci Szovetsegi Oszt
Automatic Di erentiation (Summary)
Derivatives are required for optimization, integration of sti dierential equations, parameter estimation, sensitivity analysis, and in many other problems. Often, hand-coding of analytical derivative computations is too laborious and error-prone, and the use of nite dierence approximations is too expensive and/or inaccurate. Sometimes symbolic algebra packages can be useful, but these are generally inadequate when the functions to be dierentiated are dened by computer programs containing intermediate variables, loops, and conditionals. This is where automatic dierentiation comes in. The article gives a review of the state of the art in automatic dierentiation.
12