Hasonló dokumentumok
AZ OPTIMALIZÁLÁS ALKALMAZÁSAI

Matematika A1a Analízis

Konjugált gradiens módszer

Határozatlan integrál (2) First Prev Next Last Go Back Full Screen Close Quit

First Prev Next Last Go Back Full Screen Close Quit. (Derivált)

Gauss-Seidel iteráció

SZOFTVEREK A SORBANÁLLÁSI ELMÉLET OKTATÁSÁBAN

9. feladatsor: Többváltozós függvények deriválása (megoldás)

1. előadás. Lineáris algebra numerikus módszerei. Hibaszámítás Számábrázolás Kerekítés, levágás Klasszikus hibaanalízis Abszolút hiba Relatív hiba

Csendes Tibor. Gyakran a gép memóriája is nagy kell hogy legyen. A pontatlanság egyik oka: Adjunk össze 3 számot, majd igazoljuk, hogy ha

Dierenciálhatóság. Wettl Ferenc el adása alapján és

A Föld középpontja felé szabadon eső test sebessége növekszik, azaz, a

1. Fuggveny ertekek. a) f (x) = 3x 3 2x 2 + x 15 x = 5, 10, 5 B I. x = arcsin(x) ha 1 x 0 x = 1, arctg(x) ha 0 < x < + a) f (x) = 4 x 2 x+log

Matematikai programok

Gyakorlo feladatok a szobeli vizsgahoz

Tanulási cél Szorzatfüggvényekre vonatkozó integrálási technikák megismerése és különböző típusokra való alkalmazása. 5), akkor

Taylor-polinomok. 1. Alapfeladatok április Feladat: Írjuk fel az f(x) = e 2x függvény másodfokú Maclaurinpolinomját!

Keverési modellek. Színkeverés Beton/aszfalt keverés Benzin keverés Gázkeverékek koncentrációjának a meghatározása

Funkcionális és logikai programozás. { Márton Gyöngyvér, 2012} { Sapientia, Erdélyi Magyar Tudományegyetem }

HÁZI FELADAT PROGRAMOZÁS I. évf. Fizikus BSc. 2009/2010. I. félév

Matematikai programok

Numerikus matematika

TANTÁRGYI PROGRAM Matematikai alapok I. útmutató

First Prev Next Last Go Back Full Screen Close Quit

Érdekes informatika feladatok

és alkalmazások, MSc tézis, JATE TTK, Szeged, Témavezető: Dr. Hajnal Péter

2007. június 8. XXVII. Magyar Operációkutatási Konferencia, Balatonőszöd 1/22. feladatok megoldásában. Csendes Tibor

Végeselem modellezés alapjai 1. óra

Kétváltozós függvények differenciálszámítása

9. TÖBBVÁLTOZÓS FÜGGVÉNYEK DIFFERENCIÁLSZÁMITÁSA. 9.1 Metrika és topológia R k -ban

Megoldott feladatok november 30. n+3 szigorúan monoton csökken, 5. n+3. lim a n = lim. n+3 = 2n+3 n+4 2n+1

Numerikus matematika

Algoritmusok Tervezése. 4. Előadás Visual Basic 1. Dr. Bécsi Tamás

Matematika A1a Analízis

Példatár Lineáris algebra és többváltozós függvények

SCILAB programcsomag segítségével

DIFFERENCIÁLEGYENLETEK. BSc. Matematika II. BGRMA2HNND, BGRMA2HNNC

Kétdimenziós mesterséges festési eljárások. Hatások és alkalmazások

valós számot tartalmaz, mert az ilyen részhalmazon nem azonosság.

Matematika III előadás

Matematikai alapok. Dr. Iványi Péter

TANTÁRGYI PROGRAM Matematikai alapok I. útmutató

Numerikus integrálás

FEGYVERNEKI SÁNDOR, Valószínűség-sZÁMÍTÁs És MATEMATIKAI

n n (n n ), lim ln(2 + 3e x ) x 3 + 2x 2e x e x + 1, sin x 1 cos x, lim e x2 1 + x 2 lim sin x 1 )

Differenciálegyenletek numerikus integrálása április 9.

Az egyenlőtlenség mindkét oldalát szorozzuk meg 4 16-al:

Matematikai alapok 1 Tantárgyi útmutató

L'Hospital-szabály március 15. ln(x 2) x 2. ln(x 2) = ln(3 2) = ln 1 = 0. A nevez határértéke: lim. (x 2 9) = = 0.

Kifejezések. Kozsik Tamás. December 11, 2016

Komputeralgebra rendszerek

Véletlen jelenség: okok rendszere hozza létre - nem ismerhetjük mind, ezért sztochasztikus.

Határozatlan integrál

Gyakorló feladatok. Agbeko Kwami Nutefe és Nagy Noémi

Miskolci Egyetem. Részbenrendezés maximális kompatibilis kiterjesztéseir l ütemezéselméleti vonatkozásokkal. PhD értekezés

A Newton-Raphson iteráció kezdeti értéktől való érzékenysége

Függvények növekedési korlátainak jellemzése

AZ INFORMATIKA OKTATÁSÁNAK MÚLTJA ÉS JELENE A KOLOZSVÁRI EGYETEMEN

KOMPUTER-ALGEBRA RENDSZEREK VERIFIKÁCIÓJA

Határozatlan integrál

Kalkulus 2., Matematika BSc 1. Házi feladat

A matematikai feladatok és megoldások konvenciói

Meghatározás: Olyan egyenlet, amely a független változók mellett tartalmaz egy vagy több függvényt és azok deriváltjait.

Önéletrajz. Burai Pál Debreceni Egyetem, Informatikai Kar Alkalmazott Matematika és Valószín ségszámítás Tanszék

MATLAB alapismeretek I.

VIK A1 Matematika BOSCH, Hatvan, 5. Gyakorlati anyag

6. ELŐADÁS DIFFERENCIÁLSZÁMÍTÁS II. DIFFERENCIÁLÁSI SZABÁLYOK. BSc Matematika I. BGRMA1HNND, BGRMA1HNNC

Általánosan, bármilyen mérés annyit jelent, mint meghatározni, hányszor van meg

First Prev Next Last Go Back Full Screen Close Quit. Matematika I

BASH script programozás II. Vezérlési szerkezetek

Exponenciális, logaritmikus függvények

Vektorterek. Wettl Ferenc február 17. Wettl Ferenc Vektorterek február / 27

f(x) vagy f(x) a (x x 0 )-t használjuk. lim melyekre Mivel itt ɛ > 0 tetszőlegesen kicsi, így a a = 0, a = a, ami ellentmondás, bizonyítva

minden x D esetén, akkor x 0 -at a függvény maximumhelyének mondjuk, f(x 0 )-at pedig az (abszolút) maximumértékének.

Differenciálszámítás. 8. előadás. Farkas István. DE ATC Gazdaságelemzési és Statisztikai Tanszék. Differenciálszámítás p. 1/1

PTE PMMFK Levelező-távoktatás, villamosmérnök szak

Drótposta: ; ; Honlapom:

4. Laplace transzformáció és alkalmazása

Eljárások és függvények

Differenciálegyenletek megoldása próbafüggvény-módszerrel

Matematikai alapok. Dr. Iványi Péter

EXPONENCIÁLIS HATVÁNYFÜGGVÉNY egyszerű deriválása logaritmikus differenciálás nélkül

Alap-ötlet: Karl Friedrich Gauss ( ) valószínűségszámítási háttér: Andrej Markov ( )

Dierenciálhányados, derivált

MATEMATIKA I. RÉSZLETES ÉRETTSÉGI VIZSGAKÖVETELMÉNY A) KOMPETENCIÁK

First Prev Next Last Go Back Full Screen Close Quit

C programozási nyelv

1. Parciális függvény, parciális derivált (ismétlés)

Dinamikus modellek szerkezete, SDG modellek

FÜGGVÉNYTANI ALAPOK A) ÉRTELMEZÉSI TARTOMÁNY

The Mathematical Explorer

Tartalomjegyzék. 1. Előszó 1

1.1. Feladatok. x 0 pontban! b) f(x) = 2x + 5, x 0 = 2. d) f(x) = 1 3x+4 = 1. e) f(x) = x 1. f) x 2 4x + 4 sin(x 2), x 0 = 2. általános pontban!

A mérési eredmény megadása

Nemlineáris optimalizálási problémák párhuzamos megoldása grafikus processzorok felhasználásával

Határozott integrál és alkalmazásai

Hajlított tartó elmozdulásmez jének meghatározása Ritz-módszerrel

6. Folytonosság. pontbeli folytonosság, intervallumon való folytonosság, folytonos függvények

BIOMATEMATIKA ELŐADÁS

Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) Számelmélet I.

Átírás:

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 aderivaltakat 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 PASCAL- XSC [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. Erdekes 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 }oket 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 (mintpeldaul 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 dierencialasa y = f(x) a x a x a=x p x log(x) exp(x) cos(x) f 0 (x) 1 a ;y=x 0:5=y 1=x y ; sin(x) Maga az otlet nem nagyon bonyolult, es jellemz}omodon tobben egymastol fuggetlenulratalaltak [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) = f 1 (x) f 2 (x), akkor legyen f 0 (x) erteke f1(x)f 0 2 (x)+f 1 (x)f2(x), 0 ahol f1(x) 0 es f2(x) 0 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, a- melynek 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) = g 00 (x)+ h 00 (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 dierencialas 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 = h 0 (x)dx dv = k 0 (x)dx dw = [g u (u v)h 0 (x)+g v (u v)k 0 (x)]dx dy = f 0 (w)[g u (u v)h 0 (x) + g v (u v)k 0 (x)]dx sorrendet koveti. A fordtott eljaras az ellentetes iranyban alkalmazza a lancszabalyt: dy = f 0 (w)dw dy = f 0 (w)[g u (u v)du + g v (u v)dv] dy = f 0 (w)[g u (u v)du + g v (u v)k 0 (x)dx] dy = f 0 (w)[g u (u v)dh 0 (x) + g v (u v)k 0 (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) = x 1 (1 ; x 2 ) 2 fuggvenyt az x = [2 1] T pontban. A sma eljaras az egyes vegrehajtott m}uveletekkel egyutt a megfelel}o derivaltertekeket is meghatarozza: f 1 = x 1 =2 d 1 =(1 0), f 2 = x 2 = 1 d 2 = (0 1), f 3 = 1 d 3 = (0 0), f 4 = f 3 ; f 2 = 0 d 4 = d 3 ; d 2 = (0 ;1), f 5 = f 2 4 = 0 d 5 = 2f 4 d 4 = (0 0), f 6 = f 1 f 5 = 2 d 6 = f 1 d 5 + d 1 f 5 = (0 0). 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 f i ertekeket es a kiszamtasi fat, majd ennek segtsegevel el}oalltja a d i = @f =@f i ertekeket: d 6 =1 @f d 5 = d 6 6 @f 5 = d 6 f 1 =2, @f d 4 = d 5 5 @f 4 = d 5 2f 4 = 0, @f d 3 = d 4 4 @f 3 = d 4 1=0, @f d 2 = d 4 4 @f 2 = d 4 (;1) = 0, @f d 1 = d 6 6 @f 1 = d 6 f 5 =0. A gradiens erteket a[d 1 d 2 ] 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 dierencialas 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: 1. A zerus gyokok esete. Tekintsuk az f(x) = x 4 1 + x 4 2 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 q 7

2. Tablazat. A fontosabb automatikus dierencialasi 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 a f+ ; = p log exp sin cosg alapm}uveletek felett, es S(:): az argumentumok meghatarozasanak tarigenye. Feladat sima Algoritmus fordtott L(f rf) 4nL(f) 4L(f) L(f rf H) O(n 2 L(f)) (10n + 4)L(f) L(f J) O(nL(f)) (3m + 1)L(f) S(f rf) O(S(f)) O(S(f)+L(f)) S(f rf H) O(S(f)) O(S(f) + L(f)) S(f J) O(S(f)) O(S(f)+L(f)) a Number) ertek hozzarendelesevel. 2. A programelagazas esete. Tekintsuk az alabbi utastast: if x = 1 then f(x) = 1 else f(x) = x 2 Vilagos, hogy az gy 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

f 1 (x) =xe ;x2 f 2 (x) =xe ;x2 e ;x2 ::: f k = x(e ;x2 ) k ::: Automatikus dierencialassal (is) lim k!1 f 0 k(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 dierencialas implementalasa. A mar emltett 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 /pub/toolbox/cxsc konyvtarban. Ismertetese a [4] kotetben talalhato. 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 netlib@research.att.com 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 husch@wuarchive.wustl.edu 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 griewank@antares.mcs.anl.gov). 10

A MAPLE nev}u szamtogepes algebrarendszer az 5.1-es valtozatatol kezdve a szimbolikus derivalas mellett kepes az automatikus dierenci- alasra 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: Uber 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. Csendes Tibor, JATE Kalmar Laboratorium, Szeged, Arpad ter 2. A cikk rasa idejen a Bazeli Egyetem Informatikai Intezeteben volt osztondjas a Svajci Szovetsegi Osztondjbizottsag Kulonprogramja tamogatasaval. Automatic Dierentiation (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