Tartalomjegyzék 1. Komputeralgebra (Járai Antal és Kovács Attila)1.1. Adatábrázolás1.2. Polinomok közös gyökei1.2.1. Klasszikus és bővített euklideszi algoritmus1.2.2. Primitív euklideszi algoritmus1.2.3. A rezultáns1.2.4. Moduláris legnagyobb közös osztó1.3. Gröbner-bázis1.3.1. Monomiális rendezés1.3.2. Többváltozós polinomok maradékos osztása1.3.3. Monomiális ideálok és Hilbertféle bázistétel1.3.4. A Buchberger-algoritmus1.3.5. Redukált Gröbner-bázis1.3.6. A Gröbner-bázis számítási bonyolultsága1.4. Szimbolikus integrálás1.4.1. Racionális függvények integrálásaDifferenciáltestDifferenciáltest bővítéseHermite módszere1.4.2. Risch integráló algoritmusaElemi függvényekExponenciális elemekElemi kiterjesztésekElemi függvények integrálásaRisch-algoritmusRischalgoritmus: logaritmikus esetLogaritmikus eset, racionális részLogaritmikus eset, polinom részRisch-algoritmus: exponenciális esetExponenciális eset, racionális részExponenciális eset, polinom rész1.5. Elmélet és gyakorlat1.5.1. Egyéb szimbolikus algoritmusok1.5.2. A komputeralgebra-rendszerek áttekintéseIrodalomjegyzékTárgymutatóNévmutató 1. Komputeralgebra (Járai Antal és Kovács Attila) A különféle matematikai számítások elvégzésére képes informatikai eszközök nélkülözhetetlenek a modern tudományban és ipari technológiában. Képesek vagyunk kiszámolni bolygók, csillagok pályáját, vezérelni atomerőműveket, egyenletekkel leírni, modellezni a természet számos törvényét. Ezek a számítások alapvetően kétfélék lehetnek: numerikusak és szimbolikusak . Ámbár a numerikus számítások nemcsak elemi aritmetikai műveleteket foglalnak magukban, hanem olyan műveleteket is, mint matematikai függvények numerikus értékének, polinomok gyökeinek vagy mátrixok sajátértékének meghatározása, ezek a műveletek alapvetően számokon értelmezettek, és ezek a számok a legtöbb esetben nem pontosak, pontosságuk az adott számítógépes architektúra lebegőpontos ábrázolási módjától függ. A szimbolikus számításokat matematikai vagy informatikai objektumokat jelentő szimbólumokon értelmezzük. Ezek az objektumok lehetnek számok (egészek, racionális számok, valós és komplex számok, algebrai számok), de lehetnek polinomok, racionális és trigonometrikus függvények, egyenletek, egyenletrendszerek, algebrai struktúrák elemei, vagy éppen halmazok, listák, táblázatok. A szimbolikus számítások elvégzésére alkalmas számítógépes rendszereket (amelyek legtöbbször numerikus számításokra és az eredmények grafikus megjelenítésére egyaránt képesek) komputeralgebra-rendszereknek vagy szimbolikusalgebrai rendszereknek nevezzük. Az,,algebra” szó a szimbolikus objektumokkal végzett műveletek algebrai eredetére utal. A komputeralgebra-rendszerek mint számítógépes programok alapfeladata: (1) matematikai objektumok szimbolikus ábrázolása, (2) aritmetika ezekkel az objektumokkal.A komputeralgebra, mint tudományterület feladata pedig erre az aritmetikára épülő hatékony algoritmusok keresése, elemzése és megvalósítása tudományos kutatásokhoz és alkalmazásokhoz. Mivel a komputeralgebra-rendszerek szimbolikusan, (lényegében) tetszőleges pontossággal és hibamentesen képesek számolni, először tisztázni kell, milyen adatszerkezeteket lehet hozzárendelni a különféle objektumokhoz. A 1.1. alfejezet a matematikai objektumok ábrázolásának problémakörét taglalja. A továbbiakban a szimbolikus algoritmusok közül ismertetjük azokat, melyek az idők folyamán a mindennapi tudomány és technika elengedhetetlen részévé váltak. A természettudományok többsége jelenségeit, gondolatait matematikai egyenletekkel írja le. A lineáris egyenletek, egyenletrendszerek szimbolikus megoldásainak vizsgálata a jól ismert eliminációs módszereken alapul. A nemlineáris egyenletrendszerek megoldásainak megkeresésére először megvizsgáljuk az euklideszi algoritmus különféle változatait és a rezultánsmódszert. A hatvanas évek közepén Buchberger doktori dolgozatában egy hatékony módszert dolgozott ki többváltozós polinomegyenletek szimbolikus megoldásainak meghatározására, amit ma Gröbner-bázis elmélet néven ismerünk. Buchberger munkájára csak évekkel később kezdtek felfigyelni, azóta a terület a komputeralgebra egyik legnépszerűbb ága. Ezekről lesz szó a 1.2. és a 1.3. alfejezetekben. A következő bemutatandó terület a szimbolikus integrálás. Habár a probléma formális természete már több, mint 100 éve ismert (Liouville-elmélet), csak 1969-ben tudott Risch hatékony algoritmust adni annak eldöntésére, hogy ha adott egy valós elemi f függvény, akkor az f(x)dx integrál is elemi-e és ha igen, az algoritmus meg is adja az integrál értékét. A módszerrel a 1.4. alfejezetben foglalkozunk. A fejezet végén áttekintjük a szimbolikus algoritmusok elméleti és gyakorlati vonatkozásait (1.5. alfejezet), külön részt szánva napjaink komputeralgebrarendszereinek. 1.1. Adatábrázolás A komputeralgebrában a legkülönfélébb matematikai objektumok fordulnak elő. Ahhoz, hogy ezekkel az objektumokkal számolni lehessen, ábrázolni és tárolni kell őket a számítógép memóriájában. Ez elméleti és gyakorlati problémák egész sorát veti fel. Ebben az alfejezetben ezekről a kérdésekről lesz szó. Tekintsük az egészeket. Egyrészt matematikai tanulmányainkból tudjuk, hogy halmazuk megszámlálható számosságú, viszont informatikai szemszögből azzal is tisztában vagyunk, hogy számítógépünk csak véges sok egész tárolására képes. Az, hogy mekkora a legnagyobb egész, amit minden további erőfeszítés nélkül ábrázolni tudunk, attól függ, hogy számítógépes architektúránkban mekkora a gépi szó mérete. Ez tipikusan 16,32,48 vagy 64 bit. Az egy gépi szóban ábrázolható egészeket egyszeres pontosságú egészeknek nevezzük. Nem biztos, hogy egy tetszőleges egész szám elfér egy gépi szóban, vagyis olyan adatstruktúrára van szükség, ami több gépi szó felhasználásával tetszőlegesen nagy egész ábrázolására képes. Természetesen a,,tetszőlegesen nagy” nem jelent,,végtelen nagyot”, hiszen valamilyen tervezési igény vagy a memória mérete mindenképpen korlátot szab. Emellett olyan adatábrázolást kell megvalósítani, amelyre hatékony műveletek építhetők. Az egészek reprezentációjának alapvetően két útja van: helyiértékes (a hagyományos decimális számrendszerbeli ábrázolás általánosítása), amelyben egy n egészet i=0k1diBi alakban írunk fel, ahol a B alapszám akármilyen, egynél nagyobb egész lehet. A hatékonyság növelése miatt B -t úgy érdemes választani, hogy B1 beleférjen egy gépi szóba. A di jegyek (0ik1) vagy a kanonikus {0diB1} vagy a szimmetrikus {B/2<diB/2} jegyhalmazból való egyszeres pontosságú egészek. Az így leírható többszörös pontosságú egészek lineáris listás [d0,d1,...,dk1] ábrázolásának számítógépes megvalósítása történhet dinamikusan vagy statikusan, attól függően, hogy a lineáris listát láncolt listaként vagy tömbként implementáljuk. moduláris, amelyben az n egész megfelelő számú, egyszeres pontosságú, páronként relatív prím modulusokkal vett moduláris képeinek lineáris listájaként adható meg. A moduláris képekből n a kínai maradéktétel segítségével rekonstruálható. A moduláris alak gyorsabb az összeadás, kivonás és szorzás műveleteket tekintve, de lényegesen lassabb például oszthatósági vizsgálatoknál (amelyek sok esetben elkerülhetetlenek). Nyilvánvaló, hogy az adatstruktúra megválasztása erősen befolyásolja algoritmusaink sebességét. 1.1. példa. Az alábbi példában az egyszerűség kedvéért természetes számokkal dolgozunk. Tegyük fel, hogy olyan számítógép architektúránk van, ahol a gépi szó 32 bites, vagyis számítógépünk az I1=[0,2321]=[0,4294967295] intervallum egészeivel képes egész aritmetikát végezni. Erre az aritmetikára építve az architektúránkon valósítsunk meg olyan egész aritmetikát, amellyel az I2=[0,1050] intervallumban is számolni tudunk. A helyiértékes ábrázoláshoz legyen B=104, továbbá n1=123456789098765432101234567890,n2=2110. Ekkor n1=[7890,3456,1012,5432,9876,7890,3456,12],n2=[2110],n1+n2=[0,3457,1012,5432,9876,7890,3456,12],n1*n2=[7900,3824,6049,1733,9506,9983,3824,6049,2], ahol az összeadást és a szorzást helyiértékesen számoltuk. A moduláris ábrázoláshoz válasszunk páronként relatív prím számokat az I1 intervallumból úgy, hogy szorzatuk nagyobb legyen 1050-nél. Legyenek például m1=4294967291,m2=4294967279,m3=4294967231 és m4=4294967197,m5=4294967189,m6=4294967161 prímek, ahol i=16mi>1050. Egy I2 intervallumbeli egészet tehát az I1 intervallumból vett számhatossal ábrázolunk. Ekkor n12009436698(mod m1),n1961831343(mod m2),n14253639097(mod m3),n11549708(mod m4),n12459482973(mod m5),n13373507250(mod m6), valamint n22110(mboxmodmi),(1i6), vagyis n1+n2=[2009438808,961833453,4253641207,1551818,2459485083,3373509360],n1*n2=[778716563,2239578042,2991949111,3269883880,1188708718,1339711723], ahol az összeadás és a szorzás koordinátánként modulárisan elvégezve értendő. Általánosabban, a matematikai objektumok ábrázolásának három absztrakciós szintjét érdemes megkülönböztetni: 1. Az objektumok szintje. Ezen a szinten az objektumok formális matematikai objektumoknak tekinthetők. Például 2+2,3*35 és 4 ugyanazt az objektumot jelölik. Hasonlóan, az (x+1)2(x1) és x3+x2x1 polinomok az objektumok szintjén azonosnak tekinthetők.2. A forma szintje. Itt már megkülönböztetjük az objektumok eltérő ábrázolásait. Például az (x+1)2(x1) és x3+x2x1 polinomok ugyanannak a polinomnak különböző reprezentációi, hiszen az előbbi egy szorzat, utóbbi egy összeg. 3. Az adatstruktúra szintje. Itt a számítógép memóriájában eltérő ábrázolásokat tekintjük különbözőknek. Az x3+x2x1 polinomnak ezen a szinten többféle reprezentációja is lehet, a polinomot leírhatja például egy együtthatókból álló tömb: [1,1,1,1], egy láncolt lista: [1,0][1,1][1,2][1,3]. A különböző matematikai objektumok számítógépes ábrázolásához a komputeralgebrarendszerek tervezőinek dönteniük kell mind a forma, mind az adatstruktúra szintjén. A döntést olyan kérdések nehezítik, mint a reprezentáció memóriaigénye, olvashatósága, vagy az ábrázolás számítási ideje. Például az f(x)=(x1)2(x+1)3(2x+3)4=16x980x8+88x7+160x6359x5+x4+390x3162x2135x+81 polinom szorzat alakja kifejezőbb, mint az összeg alakja, de utóbbi előnyösebb, ha mondjuk az x5 -es tag együtthatójára vagyunk kíváncsiak. A forma szintjére vonatkozó döntési nehézségeket szemlélteti az alábbi példa: x10001 és (x1)(x999+x998++x+1), (x+1)1000 és x1000+1000x999++1000x+1. A matematikai objektumok minden igényt kielégítő ábrázolására tökéletes módszert nem ismerünk. A gyakorlatban az objektumoknak különböző reprezentációi is megengedettek. Ez azt a problémát veti fel, hogy ugyanazon objektum eltérő ábrázolása esetén meg kell tudnunk állapítani azok egyenlőségét, konvertálni kell tudnunk egyik alakból a másikba és az egyértelmű ábrázoláshoz egyszerűsítéseket kell tudnunk azokon végrehajtani. A forma szintjén például minden egész számot felírhatunk valamely B alapú számrendszerben, míg az adatstruktúra szintjén a forma szintjén kapott lineáris listát láncolt listaként vagy tömbként reprezentálhatjuk. A racionális számok egészek párjaiból, a számlálóból és a nevezőből állnak. Memória takarékosság érdekében, valamint két racionális szám könnyű összehasonlíthatósága miatt célszerű a számláló és a nevező legnagyobb közös osztójával egyszerűsített alakot ábrázolni. Mivel az egészek euklideszi gyűrűt alkotnak, a legnagyobb közös osztó euklideszi algoritmussal gyorsan számolható. Az ábrázolás egyértelműségéhez a nevezőt érdemes pozitívnak választani, a racionális szám előjele így a számláló előjele lesz. A többváltozós polinomok (az R[x1,x2,...,xn]n -változós polinomgyűrű elemei, ahol R gyűrű) a1xe1+a2xe2++anxen alakúak, ahol aiR\{0},ei=(ei1,...,ein) és xei -t írtunk x1ei1x2ei2...xnein helyett. A forma szintjén az alábbi reprezentációs lehetőségek adódnak. 1. Kiterjesztett vagy faktorizált ábrázolás, ahol a polinom összegként vagy szorzatként jelenik meg: x2yx2+y1, (x2+1)(y1). 2. Rekurzív vagy disztributív ábrázolás (csak többváltozós esetben). Például kétváltozós polinomgyűrűben f(x,y) tekinthető R[x,y] -belinek, (R[x])[y] belinek vagy (R[y])[x] -belinek: x2y2+x2+xy21, (x2+x)y2+x21, (y2+1)x2+y2x1. Az adatstruktúra szintjén ritka vagy teljes reprezentáció lehetséges, például a ritka x41 polinom teljes ábrázolása x4+0x3+0x2+0x1. A gyakorlatban a többváltozós polinomok ritka ábrázolása a célravezető. A i=0aixi alakú hatványsorok legegyszerűbb ábrázolása az, ha valamilyen véges rendig adjuk csak meg az együtthatók sorozatát, így lényegében egyváltozós polinomoknak tekintjük őket. Ezzel a megközelítéssel az a probléma, hogy különböző hatványsorokhoz tartozhat ugyanaz a reprezentáció. Ezt elkerülendő, a hatványsort az együtthatói sorozatát generáló függvénnyel szokás leírni. A generáló függvény egy olyan kiszámítható f függvény, amire f(i)=ai. A hatványsorokkal végzett műveletekhez ekkor elegendő azt ismerni, hogy hogyan kell az operandusok együtthatóiból előállítani a művelet eredményét reprezentáló sorozat együtthatóit. Például az f és g hatványsorok szorzatát jelölő h hatványsor együtthatóit a hi=k=0ifkgik függvény segítségével származtathatjuk. Ekkor a hi együtthatókat csak akkor kell ténylegesen kiszámolni, ha szükség van az értékükre. Ezt a komputeralgebrában is gyakran használt technikát késleltetett kiértékelésnek nevezzük. Mivel a komputeralgebra-rendszerek szimbolikusan számolnak, az algoritmusok műveletigényének vizsgálatán kívül mindig szükség van memóriaigényük vizsgálatára is, hiszen a memóriaigény befolyásolja a tényleges futási időt. (A futási időt mi a RAM-modellnek megfelelően műveletszámban mérjük. Ha Turing-gép modellt és konstans hosszú gépi szavakat használnánk, akkor ilyen probléma nem merülne fel, mert a tár mindig alsó korlátja az időnek.) Tekintsünk egyszerű példaként egy n ismeretlenes, n egyenletből álló lineáris egyenletrendszert, ahol minden egyes egész együttható elfér a számítógép ω hosszúságú rekeszében. Kizárólag egész aritmetikát és Gauss-eliminációt alkalmazva a redukció eredményeként kapott együtthatók egyenként 2n1ω tárhelyet igényelhetnek. Ha az együtthatók polinomok lennének és polinomaritmetikát használnánk, az eredmény polinomok együtthatóinak mérete, csakúgy mint a fokszámuk, exponenciális növekedést mutatna. A megfigyelt exponenciális növekedés ellenére a kapott végeredmény mégis,,normális” méretű, hiszen a Cramer-szabály miatt a megoldások determinánsok hányadosaiként is megkaphatók, amelyek pedig közelítőleg csak nω tárhelyet igényelnek. Ezt a jelenséget nevezzük köztes számítási tárrobbanásnak. Előfordulása gyakori a komputeralgebra algoritmusokban. 1.2. példa. Egész aritmetikát használva oldjuk meg az alábbi lineáris egyenletrendszert. 37x+22y+22z=1,31x14y25z=97,11x+13y+15z=86. Először a második egyenlet x változóját elimináljuk. Szorozzuk meg az első sort 31gyel, a másodikat 37 -tel és adjuk össze őket. Ha ezt a módszert alkalmazzuk a harmadik egyenlet x változójának eliminációjára, az eredmény az alábbi lesz: 37x+22y+22z=1,1200y+1607z=3558,723y+797z=3171. Most y eliminálásához a második sort 723-mal, a harmadikat 1200 -zal szorozzuk, majd összeadjuk őket. Az eredmény: 37x+22y+22z=1,1200y+1607z=3558,205461z=1232766. Tovább folytatva az eljárást és sorban eliminálva a változókat végül azt kapjuk, hogy 1874311479932400x=5622934439797200,246553200y=2712085200,205461z=1232766. Egyszerűsítés után x=3,y=11,z=6 adódik. Természetesen, ha a számítások közben a legnagyobb közös osztókkal egyszerűsítünk, az együtthatók nagysága kevésbé drasztikusan nő. A számítási tárrobbanás elkerülésére moduláris módszerek használatosak: ahelyett, hogy a számításainkat az R struktúra (pl. euklideszi gyűrű) egészeivel végeznénk, valamely faktorstruktúrában dolgozunk, majd az eredményt,,visszatranszformáljuk” R -be (1.1. ábra). A moduláris redukció és a moduláris számítások általában hatékonyan elvégezhetők, a rekonstrukciós lépés pedig valamilyen interpolációs stratégiával történhet. 1.1. ábra. A moduláris algoritmusok általános sémája. Megjegyezzük, hogy a moduláris algoritmusok nagyon gyakoriak a komputeralgebrában, de nem univerzálisak. 1.2. Polinomok közös gyökei Legyen R egy integritási tartomány, továbbá legyenek f(x)=f0+f1x++fm1xm1+fmxmR[x],fm0,(1.1)g(x)=g0+g1x++gn1xn1+gnxnR[x],gn0(1.2) tetszőleges polinomok, n,mN,n+m>0. Állapítsuk meg, hogy mi annak a szükséges és elégséges feltétele, hogy a két polinomnak legyen közös gyöke R -ben. 1.2.1. Klasszikus és bővített euklideszi algoritmus Ha T test, akkor T[x] euklideszi gyűrű. Emlékeztetőül, az R integritási tartományt euklideszi gyűrűnek nevezzük a φ:R\{0}N euklideszi függvénnyel, ha bármely a,bR(b0) esetén létezik olyan q,rR, hogy a=qb+r, ahol r=0 vagy φ(r)<φ(b), továbbá minden a,bR\{0} esetén φ(ab)φ(a). A q=a quo b elemet hányadosnak, az r=a rem b elemet maradéknak nevezzük. Ha egy R euklideszi gyűrűben dolgozunk, azt szeretnénk, ha a legnagyobb közös osztó egyértelműen meghatározható lenne. Ehhez az R gyűrű egységszorzók által meghatározott ekvivalencia-osztályainak mindegyikéből egyetlen elem kiválasztása szükséges. (Például az egészek {0},{1,1},{2,2},... osztályaiból mindig a nemnegatívat választjuk.) Így minden aR egyértelműen írható fel a= unit (a) normal (a) alakban, ahol normal (a) -t az a elem normálalakjának nevezzük. Tekintsünk egy T test feletti R=T[x] euklideszi gyűrűt. Ekkor az aR elem normálalakja legyen a megfelelő normált főpolinom, vagyis normal (a)=a/lc (a) , ahol lc (a) jelenti az a polinom főegyütthatóját. Foglaljuk össze a lényegesebb eseteket: ha R=Z, akkor unit (a)= sgn (a)(a0) és φ(a)= normal (a)=|a|, ha R=T[x] ( T test), akkor unit (a)= lc (a) (az a polinom főegyütthatója a unit (0)=1 megállapodással), normal (a)=a/lc (a) és φ(a)=dega. Az alábbi algoritmus tetszőleges euklideszi gyűrűben kiszámítja két elem legnagyobb közös osztóját. Megjegyezzük, hogy a világ egyik legősibb algoritmusáról van szó, amit Euklidész már i.e. 300 körül ismert. Az egészek gyűrűjében a 4. sor maradék képzése cc/d -t jelenti. Ha R=T[x], ahol T test, akkor a 4. sor maradék képzése az EGYHATÁROZATLANÚPOLINOMOK-MARADÉKOS-OSZTÁSA (c,d) algoritmussal számolható, melynek elemzését az 1.2-1. gyakorlatra hagyjuk. A 1.2. ábra a KLASSZIKUS-EUKLIDESZ működését mutatja Z -ben és Q[x] -ben. Megjegyezzük, hogy Z -ben a program a while ciklusba mindig nemnegatív számokkal lép be, a maradék képzés mindig nemnegatív számot eredményez, így a 7. sorban a normalizálás felesleges. A KLASSZIKUS-EUKLIDESZ algoritmus futási idejének vizsgálata előtt annak egy bővített változatával foglalkozunk. iteráció rcd18 30 1 18 30 18 2 12 18 12 3 6 12 6 4 0 6 0 (a) KLASSZIKUS-EUKLIDESZ(-18,30) működése. iteráció rcdx4173x3+133x2233x+143x3203x2+7x21 4x2383x+203x3203x2+7x24x2383x+2032 234x+2364x2383x+203234x+2363 0 234x+2360 (b) KLASSZIKUS-EUKLIDESZ (12x468x3+52x292x+56,12x3+80x284x+24) működése. 1.2. ábra. A KLASSZIKUS-EUKLIDESZ algoritmus működésének bemutatása Z -ben és Q[x] -ben. Az (a) esetben a bemenő adatok a=18,b=30,a,bZ. A pszeudokód első két sora a bemenő számok abszolút értékét számolja ki. A harmadik sortól az hatodik sorig tartó ciklus négyszer fut le, a különböző iterációkban számolt r,c és d értékeket mutatja a táblázat. A KLASSZIKUS-EUKLIDESZ(-18,30) algoritmus eredményül a 6-ot szolgáltatja. A (b) esetben a bemenő paraméterek a=12x468x3+52x292x+56,b=12x3+80x284x+24Q[x]. A program első két sora a polinomok normálalakját eredményezi, majd a while ciklus háromszor fut le. Az algoritmus kimenete a normal (c)=x2/3 polinom. Ismert, hogy az R euklideszi gyűrűben az a,bR elemek legnagyobb közös osztója alkalmas u,vR elemekkel kifejezhető lnko (a,b)=au+bv alakban. De nem csak egy ilyen számpár létezik. Ha ugyanis u0,v0 megfelelők, akkor u1=u0+bt és v1=v0at is azok minden tR esetén: au1+bv1=a(u0+bt)+b(v0at)=au0+bv0= lnko (a,b). A KLASSZIKUS-EUKLIDESZ algoritmust úgy egészítettük ki, hogy eredményül ne csak a legnagyobb közös osztót szolgáltassa, hanem az iméntieknek megfelelően egy konkrét u,vR számpárt is megadjon. Legyen a,bR , ahol R euklideszi gyűrű a φ euklideszi függvénnyel. A BŐVÍTETT-EUKLIDESZ pszeudokód első két sora kezdeti értékadásainak megfelelően az r0=u0a+v0b és r1=u1a+v1b(1.3) egyenletek nyilván teljesülnek. Megmutatjuk, hogy a (1.3) egyenlőségek a pszeudokód while ciklusának transzformációira invariánsak. Tegyük fel, hogy a ciklus valamely iterációjának végrehajtása előtt a (1.3) feltételek teljesülnek. Ekkor a pszeudokód 4–5. sora szerint r=r0qr1=u0a+v0bq(au1+bv1)=a(u0qu1)+b(v0qv1), amiből a 6–7. sorok miatt r=a(u0qu1)+b(v0qv1)=au+bv. A 8–9. sorok olyan értékadásokat jelentenek, melyben u0,v0 felveszi u1 és v1, majd u1,v1 felveszi u és v értékeit, továbbá r0,r1 felveszi r1 és r értékét. Ezért (1.3) egyenlőségei a while ciklus kiértékelése után is teljesülnek. Mivel a ciklus újabb és újabb végrehajtásakor φ(r1)<φ(r0), így a 8–9. sorok értékadásai során keletkezett {φ(ri)} sorozat a természetes számok szigorúan monoton csökkenő sorozatát alkotja, ezért a vezérlés előbb utóbb kilép a while ciklusból. A legnagyobb közös osztó az algoritmus maradékos osztás sorozatának utolsó nem nulla maradéka, a 8–9. soroknak megfelelően r0. 1.3. példa. Vizsgáljuk meg a BŐVÍTETT-EUKLIDESZ algoritmus maradéksorozatát az a(x)=63x5+57x459x3+45x28,(1.4)b(x)=77x4+66x3+54x25x+99(1.5) polinomok esetében: r0=x5+1921x45963x3+57x2863,r1=x467x35477x2+577x97,r2=61854851x3+1016539x2+18941617x+943441,r3=771300096420796475x2+224465568420796475x+10065842738254225,r4=125209969836038125113868312759339264x3541728593586625101216278008301568,r5=471758016363569992743605121180322986033315115805436875. Az pszeudokód 10. sorának végrehajtása előtt az u0,v0 változók értékei: u0=113868312759339264125209969836038125x36626390528589783378565622481964993651506870820653125x21722144452624036901282056661901614930166575579027184375x+1451757987487069224981678954901614930166575579027184375,v0=113868312759339264125209969836038125x46506938160811183887881353681964993651506870820653125x3+17827050543462762675144607981964993651506870820653125x2+638085922305129542614635381964993651506870820653125x17981800118341313301244561781964993651506870820653125. A visszatérési értékek: lnko (a,b)=1,u=2580775248128467729710968369x33823697946464779549518280615x2271022094234832338648554841845x+7615669511954779549518280615,v=703847794944155909903656123x4+3072083769824779549518280615x3252497524726332338648554841845x2301255883677779549518280615x+254689355871592338648554841845. Láthatjuk, hogy az együtthatók drasztikus növekedést mutatnak. Felvetődik a kérdés: miért nem normalizálunk a while ciklus minden iterációjában? Ez az ötlet vezet el a polinomok euklideszi algoritmusa normalizált változatához. 1.4. példa. Nézzük meg a BŐVÍTETT-EUKLIDESZ-NORMALIZÁLT algoritmus során keletkezett maradéksorozatot és az e együtthatósorozatot a korábbi (1.4), (1.5) polinomokra: 2-k48b) A pszeudokód 14. sorának végrehajtásakor az lnko (a,b)=r0,u=u0,v=v0 változók értékei: lnko (a,b)=1,u=2580775248128467729710968369x33823697946464779549518280615x2271022094234832338648554841845x+7615669511954779549518280615,v=703847794944155909903656123x4+3072083769824779549518280615x3252497524726332338648554841845x2301255883677779549518280615x+254689355871592338648554841845. Q[x] -ben az együtthatók nagyságát tekintve az euklideszi algoritmus normalizált változatának előnye szembetűnő, de az együtthatók növekedését így sem kerültük el. A BŐVÍTETT-EUKLIDESZ-NORMALIZÁLT algoritmus gépi architektúra függő leírásához, elemzéséhez bevezetjük az alábbi jelölést. Legyen λ(a)=log2|a|/w+1, ha aZ\{0}, és λ(0)=0,λ(a)=max{λ(b),λ(c)}, ha a=b/cQ,b,cZ, lnko (b,c)=1,λ(a)=max{λ(b),λ(a0),...,λ(an)}, ha a=0inaixi/bQ[x],aiZ,bN+, lnko (b,a0,...,an)=1, ahol w a számítógépes architektúra szóhossza bitekben. Könnyű meggondolni, hogy ha a,bZ[x] és c,dQ, akkor λ(c+d)λ(c)+λ(d)+1,λ(a+b)max{λ(a),λ(b)}+1,λ(cd),λ(c/d)λ(c)+λ(d),λ(ab)λ(a)+λ(b)+λ(min{dega,degb}+1). Az alábbi tételeket bizonyítás nélkül közöljük. 1.1. tétel. Ha a,bZ és λ(a)=mn=λ(b), akkor a KLASSZIKUS-EUKLIDESZ és a BŐVÍTETT-EUKLIDESZ algoritmusok O(mn) gépi szóban mért elemi aritmetikai műveletet igényelnek. 1.2. tétel. Ha F test, a,b,F[x],deg(a)=mn=deg(b), akkor a KLASSZIKUS-EUKLIDESZ, a BŐVÍTETT-EUKLIDESZ és a BŐVÍTETT-EUKLIDESZ-NORMALIZÁLT algoritmusok O(mn)F -beli elemi aritmetikai műveletet igényelnek. Vajon az együtthatók imént látott növekedése pusztán csak a példaválasztásból fakad? Vizsgáljunk meg a BŐVÍTETT-EUKLIDESZ-NORMALIZÁLT algoritmusban egyetlen maradékos osztást. Legyen a=bq+e*r, ahol a=xm+1ci=0m1aixiQ[x],b=xn+1di=0n1bixiQ[x],rQ[x] főpolinomok, ai,biZ,e*Q,c,dN+, és tekintsük az n=m1 esetet. Ekkor q=x+am1dbn1ccd,(1.6)λ(q)λ(a)+λ(b)+1,e*r=aqb=acd2xbcd2(am1dbn1c)bdcd2,λ(e*r)λ(a)+2λ(b)+3. Vegyük észre, hogy a (1.6) becslés az r maradék polinom együtthatóira is érvényes, vagyis λ(r)λ(a)+2λ(b)+3. Így λ(a)λ(b) esetén maradékos osztásonként az együtthatók mérete legfeljebb kb. háromszorosára nőhet. Pszeudovéletlen polinomokra a becslés élesnek tűnik, a kísérletezni vágyó Olvasónak ajánljuk a 1-1. feladatot. A legrosszabb esetre kapott becslés azt sejteti, hogy λ(rl)=O(3lmax{λ(a),λ(b)}), ahol l jelöli a BŐVÍTETT-EUKLIDESZ-NORMALIZÁLT algoritmus futási idejét, vagyis lényegében azt, hogy a while ciklus hányszor hajtódik végre. Szerencsére, ez az exponenciális növekedés nem teljesül az algoritmus minden iterációjában, végeredményben pedig az együtthatók növekedése a bemenet függvényében polinomiálisan korlátos. A későbbiekben látni fogjuk, hogy moduláris technika alkalmazásával az együtthatók növekedése teljesen elkerülhető. Összefoglalva, az euklideszi algoritmus segítségével az f,gR[x] ( R test) polinomok legnagyobb közös osztóját kiszámítva f -nek és g -nek pontosan akkor van közös gyöke, ha a legnagyobb közös osztójuk nem konstans. Ha ugyanis lnko (f,g)=dR[x] nem konstans, akkor d gyökei f -nek és g -nek is gyökei, hiszen d osztója f -nek és g -nek is. Megfordítva, ha f -nek és g -nek van közös gyöke, akkor a legnagyobb közös osztójuk nem lehet konstans, mert a közös gyök ennek is gyöke. 1.2.2. Primitív euklideszi algoritmus Amennyiben R euklideszi gyűrű vagy alaptételes gyűrű (amelyben érvényes a számelmélet alaptételének megfelelő állítás, miszerint bármely nem nulla és nem egység elem sorrendtől és egységszorzóktól eltekintve egyértelműen bontható irreducibilis elemek szorzatára), akkor a helyzet bonyolultabb, hiszen R[x] -ben nem feltétlenül létezik euklideszi algoritmus. Szerencsére, mégis több módszer kínálkozik, melyek használhatóságának két oka van: (1) R[x] alaptételes gyűrű, (2) alaptételes gyűrűben két vagy több elem legnagyobb közös osztója mindig létezik. Az első kínálkozó módszer az, hogy a legnagyobb közös osztó számítását R hányadostestében végezzük el. A p(x)R[x] polinomot primitív polinomnak nevezzük, ha nincs olyan R -beli prím, ami p(x) összes együtthatóját osztaná. Gauss híres lemmája szerint primitív polinomok szorzata is primitív, melynek következménye, hogy f,g primitív polinomok esetén pontosan akkor lesz d= lnko (f,g)R[x], ha d= lnko (f,g)H[x], ahol H jelöli R hányadostestét. Vagyis az R[x] beli legnagyobb közös osztó számítás visszavezethető H[x] -belire. Sajnos, ez a megközelítés nem igazán hatékony, mert a H hányadostestben használt aritmetika lényegesen költségesebb, mint az R -beli. Második lehetőségként egy, az euklideszi algoritmushoz hasonló algoritmus segíthet: integritási tartomány feletti egyhatározatlanú polinomgyűrűben ún. pszeudo-maradékos osztást lehet definiálni. A (1.1), (1.2) polinomokat használva ha mn, akkor létezik olyan q,rR[x], hogy gnmn+1f=gq+r, ahol r=0 vagy degr<degg. A q polinomot az f és g polinomok pszeudohányadosának, az r polinomot pszeudo-maradékának nevezzük. Jelölésben q= pquo (f,g),r= prem (f,g). 1.5. példa. Legyen f(x)=12x468x3+52x292x+56Z[x],(1.7)g(x)=12x3+80x284x+24Z[x].(1.8) Ekkor pquo (f,g)=144(x+1), prem (f,g)=1152(6x219x+10). Másrészt egységszorzótól eltekintve minden f(x)R[x] polinom egyértelműen írható fel f(x)= cont (f) pp (f) alakban, ahol cont (f)R és pp (f)R[x] primitív polinom. Ekkor cont (f) -et f összetevőjének, pp (f) -et az f(x) polinom primitív részének nevezzük. A felírások egyértelműsége az egységek normalizálásával érhető el. Például Z -ben az egységek {1,1} halmazából mindig a pozitívat választjuk. Az alábbi algoritmus pszeudo-maradékos osztások sorozatát hajtja végre. Az algoritmus felhasználja a pszeudo-maradékot kiszámító prem () függvényt, feltételezi az R -beli legnagyobb közös osztó, valamint az R[x] -beli polinomok összetevőjének és primitív részének kiszámíthatóságát. Bemenete az a,bR[x] polinomok, ahol R alaptételes gyűrű. Az algoritmus eredménye a lnko (a,b)R[x] polinom. Az algoritmus működését a 1.3. ábra szemlélteti. A PRIMITÍV-EUKLIDESZ algoritmus futási idejének nagyságrendje megegyezik az euklideszi algoritmus korábban látott változatainak futási idejével. iteráció rcd3x417x3+13x223x+143x3+20x221x+61 108x2342x+1083x3+20x221x+66x219x+102 621x4146x219x+103x23 0 3x20 1.3. ábra. A PRIMITÍV-EUKLIDESZ algoritmus működésének bemutatása az a(x)=12x468x3+52x292x+56,b(x)=12x3+80x284x+24Z[x] bemenő adatok esetén. A program első két sora a bemeneti polinomok primitív részét számolja ki. A harmadik sortól a hatodik sorig tartó ciklus háromszor fut le, a különböző iterációkban számolt r,c és d értékeket mutatja a táblázat. A program 7. sorában a γ változó értéke lnko (4,4)=4. A PRIMITÍV-EUKLIDESZ (a,b) algoritmus eredményül 4(3x2) -t szolgáltat. PRIMITÍV-EUKLIDESZ algoritmus azért nagyon lényeges, mert az R test feletti többváltozós R[x1,x2,...xt] polinomgyűrű alaptételes gyűrű, így az algoritmust úgy alkalmazzuk, hogy kiszámoljuk a legnagyobb közös osztót mondjuk R[x2...,xt][x1] -ben, majd rekurzívan az R[x3,...,xt],...,R[xt] alaptételes gyűrűkben. Vagyis a többváltozós polinomgyűrűk rekurzív szemlélete természetes módon vezet a PRIMITÍV-EUKLIDESZ algoritmus rekurzív alkalmazásához. Észrevehetjük, hogy az algoritmus a korábban látottakhoz hasonlóan együttható növekedést mutat. Vizsgáljuk meg részletesebben a Z[x] alaptételes gyűrűt. A legnagyobb közös osztó együtthatóinak nagyságára vonatkozó becslést az alábbi, bizonyítás nélkül közölt tétel mutatja. 1.3. tétel (Landau–Mignotte). Legyen a(x)=i=0maixi , b(x)=i=0nbixiZ[x] , am0bn, továbbá b(x)|a(x). Ekkor i=1n|bi|2n|bnam|2i=0mai2. 1.4. következmény. Az előző tétel jelöléseivel az lnko (a,b)Z[x] polinom bármely együtthatója abszolút értékben kisebb, mint 2min{m,n} lnko (am,bn)min{1|am|2i=1mai2,1|bn|2i=1nbi2}. Bizonyítás. Az a és b polinomok legnagyobb közös osztója nyilván osztja a -t és b -t, a foka pedig legfeljebb az a és b polinomok fokainak minimuma. Továbbá a legnagyobb közös osztó főegyütthatója osztója am -nek és bn -nek is, így lnko (am,bn) -nek is. 1.6. példa. A 1.4. következmény szerint a (1.4), (1.5) polinomok legnagyobb közös osztója bármely együtthatójának abszolút értéke legfeljebb 32/923197=201 , a (1.7), (1.8) polinomok esetében pedig legfeljebb 322886=952. 1.2.3. A rezultáns Az alábbiakban ismertetendő módszer a legáltalánosabb keretek között tárgyalja az (1.1), (1.2) polinomok közös gyökeire vonatkozó szükséges és elégséges feltételeket. További előnye, hogy magasabb fokú algebrai egyenletrendszerek megoldására is alkalmazható. Legyen tehát R egy integritási tartomány és H a hányadosteste. Tekintsük H -nak azt a legszűkebb K bővítését, melyben a (1.1)-beli f(x) polinom és a (1.2)-beli g(x) polinom is lineáris faktorokra bomlik. Jelöljük az f(x) polinom ( K -beli) gyökeit α1,α2,...,αm -nel, a g(x) polinom gyökeit pedig β1,β2,...,βn nel. Készítsük el a következő szorzatot: res (f,g)=fmngnm(α1β1)(α1β2)(α1βn)(α2β1)(α2β2)(α2βn)(αmβ1)(αmβ2)(αmβn)=fmngnmmi=1nj=1(αiβj). Nyilvánvaló, hogy res (f,g) akkor és csak akkor lesz 0 , ha valamilyen i -re és j -re αi=βj , azaz ha f -nek és g -nek van közös gyöke. Ezt a res (f,g) szorzatot az f és g polinomok rezultánsának nevezzük. Vegyük észre, hogy a rezultáns értéke függ az f és g polinomok sorrendjétől, azonban a különböző sorrendben képzett rezultánsok legfeljebb csak előjelben térhetnek el egymástól: res (g,f)=gnmfmnnj=1mi=1(βjαi)=(1)mnfmngnmmi=1nj=1(αiβj)=(1)mn res (f,g). A rezultánsnak ez az alakja a gyakorlatban természetesen használhatatlan, mivel a gyökök ismeretét tételezi fel. Vizsgáljuk meg tehát a rezultáns különböző alakjait. Mivel f(x)=fm(xα1)(xα2)(xαm)(fm0),g(x)=gn(xβ1)(xβ2)(xβn)(gn0), ezért g(αi)=gn(αiβ1)(αiβ2)(αiβn)=gnnj=1(αiβj). Így res (f,g)=fmnmi=1(gnnj=1(αiβj))=fmnmi=1g(αi)=(1)mngnmnj=1f(βj). Ámbár ez az alak sokkal barátságosabb, még mindig feltételezi legalább az egyik polinom gyökeinek ismeretét. Az alábbiakban azt nézzük meg, hogyan lehetne a rezultánst pusztán csak a polinomok együtthatói segítségével kifejezni. Ez a vizsgálat vezet el a rezultáns Sylvester-féle alakjához. Tegyük fel, hogy a (1.1)-beli f és a (1.2)-beli g polinomoknak van közös gyöke. Ez azt jelenti, hogy van olyan αK szám, amelyre f(α)=fmαm+fm1αm1++f1α+f0=0,g(α)=gnαn+gn1αn1++g1α+g0=0. A két egyenletet szorozzuk meg rendre az αn1,αn2,...,α,1, illetve az αm1 , αm2,...,α,1 számokkal. Ekkor az első egyenletből n, a második egyenletből m újabb egyenletet nyerünk. Ezt az m+n egyenletet fogjuk úgy fel, mint egy m+n ismeretlenre vonatkozó homogén lineáris egyenletrendszert, melynek αm+n1,αm+n2,...,α,1 a megoldása. A megoldás nyilván nem-triviális, hiszen 1 is a gyökök között szerepel. Ismert, hogy az olyan homogén lineáris egyenletrendszernek, amely ugyanannyi egyenletből áll, mint ahány ismeretlent tartalmaz, csak abban az esetben van nemtriviális megoldása, ha a rendszer determinánsa zérus. Vagyis arra jutottunk, hogy f -nek és g -nek csak akkor lehet közös gyöke, ha a determináns nulla (a ki nem írt és nem pontozott helyeken mindenütt nullák állnak). A közös gyök létezésének tehát szükséges feltétele, hogy az (m+n) edrendű D determináns 0 legyen. Az alábbiakban bebizonyítjuk, hogy a D determináns megegyezik az f és g polinomok rezultánsával, amiből az következik, hogy D=0 a közös gyökök létezésének elégséges feltétele is. A () determinánst nevezzük az f és g polinomok rezultánsa Sylvester-féle alakjának. 1.5. tétel. A korábbi jelölésekkel D=fmnmi=1g(αi). Bizonyítás. m -re vonatkozó teljes indukcióval dolgozunk. m=0 -ra f=fm=f0, így a jobb oldal f0n. A bal oldalon D egy n -edrendű determináns, melynek a főátlójában csupa f0 áll, a többi helyen pedig nulla. Így D=f0n, az állítás tehát igaz. A továbbiakban tegyük fel, hogy m>0 és hogy a bizonyítandó állítás n1 -re igaz. Ha tehát f helyett az f*(x)=fm(xα1)(xαm1)=fm1*xm1+fm2*xm2++f1*x+f0* polinomot vesszük, akkor f* ra és g -re az állítás teljesül: Mivel f=f*(xαm), ezért f és f* együtthatói között az fm=fm1*,fm1=fm2*fm1*αm,...,f1=f0*f1*αm,f0=f0*αm összefüggések állnak fenn. Így A determinánst a következőképpen alakítjuk át: az első oszlop αm -szeresét hozzáadjuk a második oszlophoz, az új második oszlop αm -szeresét a harmadik oszlophoz stb., végig valamennyi oszlopon. Ezáltal az első n sorból eltűnnek az αm -ek, vagyis az átalakított D első n sora megegyezik a fenti D* első n sorával. Az utolsó m sorban az elsőből vonjuk ki a második αm -szeresét, majd hasonlóan mindegyikből a rákövetkező αm -szeresét. Végül D -ből az alábbi determináns lesz: Az utolsó oszlop szerint kifejtve, a D=D*g(αm) egyenlőséghez jutunk, amiből az indukciós feltevés alapján D=fmni=1mg(αi) következik. Azt kaptuk tehát, hogy D= res (f,g), vagyis az f és g polinomoknak akkor és csak akkor van közös gyökük K -ban, ha a D determináns eltűnik. Algoritmikus szempontból magasabb fokú polinomok esetén a rezultáns Sylvesterféle alakjának kiszámolása egy nagy determináns kiszámítását jelenti. Az alábbi tétel szerint a pszeudo-maradékos osztás egyszerűsítheti a számításokat. 1.6. tétel. A (1.1)-beli f és (1.2)-beli g polinomokra mn>0 esetén Bizonyítás. A (2.9) determináns első sorát szorozzuk meg gnmn+1 gyel. Legyenek q=qmnxmn++q0R[x] és r=rdxd++r0R[x]azok az egyértelműen meghatározott polinomok, melyekre gnmn+1(fmxm++f0)=(qmnxmn++q0)(gnxn++g0)+rdxd++r0,(1.9) ahol r= prem (f,g). Ekkor a rezultáns (n+1) -edik sorát qmn -nel, az (n+2) edik sorát qmn1 -gyel stb. szorozva, majd az első sorból kivonva a determinánst kapjuk. Itt rd az első sor (md+1) -edik oszlopában van, r0 pedig az első sor (m+1) -edik oszlopában. Hasonló módon folytatva szorozzuk meg a második sort gnmn+1 -gyel, majd szorozzuk meg az (n+2) -edik, (n+3) -adik, ... sort qmn -nel, qmn1 -gyel stb., és vonjuk ki őket a második sorból. Ugyanígy a harmadik, ...,n -edik sorra. Az eredmény: Sorcserék után azt kapjuk, hogy Vegyük észre, hogy ezért gnn(mn+1) res (f,g)=(1)mngnmd res (g,r), amiből gn(mn)(n1)+d res (f,g)=(1)mn res (g,r)(1.10) következik. A (1.10) egyenlet egy nagyon fontos kapcsolatot ír le. Ahelyett, hogy az esetleg óriási méretű res (f,g) determinánst számítanánk ki, pszeudo-maradékos osztások sorozatát végezzük el, majd minden lépésnél (1.10)-et alkalmazzuk. Csak akkor számoljuk ki a rezultánst, ha már több pszeudo-maradékos osztás nem végezhető el. A tétel fontos következménye az alábbi 1.7. következmény. Léteznek olyan u,vR[x] polinomok, melyre res (f,g)=fu+gv, ahol degu<degg,degv<degf. Bizonyítás. A rezultáns determináns alakjában az i-edik oszlopot szorozzuk meg xm+ni-vel és adjuk az utolsó oszlophoz minden i=1,...,(m+n1)-re. Az eredmény az alábbi lesz: A determinánst az utolsó oszlopa szerint kifejtve, majd f -et és g -t kiemelve kapjuk az állításban szereplő egyenlőséget a fokokra vonatkozó megszorításokkal. A rezultánsmódszer legfontosabb előnye a korábban látott módszerekhez képest, hogy a bemeneti polinomok szimbolikus együtthatókat is tartalmazhatnak. 1.7. példa. Legyen f(x)=2x3ξx2+x+3Q[x],g(x)=x25x+6Q[x]. Ekkor f és gQ -beli közös gyökeinek létezését az euklideszi algoritmus variánsai segítségével nem tudjuk eldönteni, míg a rezultánsmódszerrel igen: pontosan akkor van közös gyök, ha vagyis ha ξ=20/3, vagy ξ=21/4. A rezultáns jelentősége nemcsak abban áll, hogy segítségével két polinom közös gyökének létezése eldönthető, hanem abban is, hogy használatával algebrai egyenletrendszerek rekurzív módon visszavezethetők egyismeretlenes algebrai egyenletek megoldására. 1.8. példa. Legyen f(x,y)=x2+xy+2x+y1Z[x,y],(1.11)g(x,y)=x2+3xy2+2y1Z[x,y].(1.12) Értelmezzük az f és g polinomokat úgy, mint (Z[x])[y]-beli elemeket. Pontosan akkor létezik közös gyökük, ha Z -beli közös gyökök tehát az x{3,0,1} esetben létezhetnek. Minden x -hez (immáron Z[y] -ban) visszahelyettesítéssel megoldjuk a (1.11), (1.12) egyenleteket, amikor is azt kapjuk, hogy az egyenletek egész megoldásai a (3,1),(0,1),(1,1) számpárok. Megjegyezzük, hogy a rezultánsmódszer többváltozós polinomegyenlet-rendszerek megoldásainak megkeresésére is alkalmas, ámbár nem igazán hatékony. Az egyik probléma az, hogy a determináns kiszámítása során számítási tárrobbanás lép fel. Megfigyelhetjük, hogy az egyhatározatlanú m és n -edfokú polinomok rezultánsa determináns alakjának kiszámítása a szokásos Gauss-eliminációval O((m+n)3) -ös műveletigényű, míg az euklideszi algoritmus változatai kvadratikusak. A másik probléma, hogy a számítási bonyolultság erősen függ a határozatlanok sorrendjétől. Sokkal hatékonyabb, ha a polinomegyenlet-rendszer összes változóját egyszerre elimináljuk. Ez az út vezet el a többváltozós rezultánsok elméletéhez. 1.2.4. Moduláris legnagyobb közös osztó A polinomok közös gyökeinek létezésére és meghatározására szolgáló eddigi módszerek mindegyikére jellemző volt a számítási tárrobbanás. Ösztönösen vetődik fel a kérdés: van-e lehetőség moduláris módszerek alkalmazására? Az alábbiakban az a(x),b(x)Z[x] esetet vizsgáljuk (a,b0). Ekkor Zp[x] -ben a KLASSZIKUS-EUKLIDESZ algoritmus maradéksorozata az alábbi lesz: r0=11x5+5x4+6x3+6x2+5,r1=x4+x3+2x2+8x+8,r2=3x3+8x2+12x+1,r3=x2+10x+10,r4=7x,r5=10. Azt kapjuk tehát, hogy Zp[x] -ben az a és b polinomok relatív prímek. Az alábbi tétel a Z[x] -ben és Zp[x] -ben vett legnagyobb közös osztók közötti kapcsolatot írja le. 1.8. tétel. Legyen a,bZ[x],a,b0 . Legyen p olyan prím, amelyre p lc (a) és p lc (b) . Legyen továbbá c= lnko (a,b)Z[x] , ap=a rem p , bp=b rem p és cp=c rem p . Ekkor (1) deg( lnko (ap,bp))deg( lnko (a,b)), (2) ha p res (a/c,b/c) , akkor lnko (ap,bp)=cp. Bizonyítás. (1) bizonyítása: mivel cp|ap és cp|bp ezért cp|lnko (ap,bp). Így deg( lnko (ap,bp))deg( lnko (a,b)modp). Azonban a feltételek miatt p lc ( lnko (a,b)), ezért deg( lnko (a,b)modp)=deg( lnko (a,b)). (2) bizonyítása: mivel lnko (a/c,b/c)=1, valamint cp nemtriviális, ezért lnko (ap,bp)=cp lnko (ap/cp,bp/cp).(1.13) Ha lnko (ap,bp)cp , akkor (1.13) jobb oldala nemtriviális, így res (ap/cp,bp/cp)=0. De a rezultáns az együtthatók megfelelő szorzatainak összege, így p| res (a/c,b/c), ami ellentmondás. 1.9. következmény. Véges sok olyan p prím van, amire p lc (a) , p lc (b) és deg( lnko (ap,bp))>deg( lnko (a,b)). Amikor a 1.8. tétel (1) állításában egyenlőség teljesül, akkor azt mondjuk, hogy p egy,,szerencsés prím”. Máris körvonalazhatunk egy legnagyobb közös osztót kiszámoló moduláris algoritmust. Az algoritmus első sora a Landau–Mignotte-korlát kiszámítását kéri. A negyedik sor szerint olyan,,elég nagy” prímet kell választani, amely nem osztja sem a, sem b főegyütthatóját. Az ötödik sor (például a Zp[x] -beli KLASSZIKUS-EUKLIDESZ algoritmussal) kiszámolja az a és b polinomok legnagyobb közös osztóját modulo p. A kapott polinom együtthatóit szimmetrikus ábrázolással tároljuk. A hatodik sor cp|a és cp|b teljesülését vizsgálja, melynek igazsága esetén cp a keresett legnagyobb közös osztó. Ha ez nem teljesül, akkor p egy,,szerencsétlen prím”, így új prímet választunk. Mivel a 1.8. tétel szerint csak véges sok,,szerencsétlen prím” van, ezért az algoritmus előbb-utóbb véget ér. Amennyiben a prímeket megfelelő stratégia szerint választjuk, a H halmaz alkalmazása szükségtelen. A MODULÁRIS-LNKO-NAGYPRÍM hátránya, hogy a bemeneti polinomok fokszámának növekedtével a Landau–Mignotte-konstans exponenciálisan nő, így ez esetben nagy prímekkel kell számolni. Felmerül a kérdés, hogyan módosítsuk az algoritmust, hogy,,sok kis prímmel” számolhassunk? Mivel Zp[x] -ben a legnagyobb közös osztó az együtthatók konstanssal vett szorzata erejéig egyértelmű, ezért az új algoritmusban ügyelni kell a részpolinomok együtthatóira. Mielőtt tehát a kínai maradéktételt alkalmazzuk a különböző prímekkel vett moduláris legnagyobb közös osztók együtthatóira, minden lépésnél normalizálni kell az lnko (ap,bp) főegyütthatóját. Amennyiben am és bn az a és b polinomok főegyütthatói, akkor lnko (a,b) főegyütthatója osztja lnko (am,bn) -t. Primitív a és b polinomok esetén lnko (ap,bp) főegyütthatóját ezért lnko (am,bn)modp -re normalizáljuk, majd a legvégén vesszük az eredmény polinom primitív részét. Ahogy a MODULÁRIS-LNKO-NAGYPRÍM algoritmusnál, a moduláris számítások eredményét most is szimmetrikus ábrázolással tároljuk. Ezek a meggondolások vezetnek az alábbi, kis prímeket használó moduláris legnagyobb közös osztó algoritmushoz. Észrevehetjük, hogy a MODULÁRIS-LNKO-KISPRIMEK algoritmusban nincs szükség annyi kis prímre, mint amennyit a Landau–Mignotte-korlát meghatároz. Amennyiben a g polinom értéke néhány iteráción keresztül nem változik, a 13– 16. sorokban teszteljük, hogy g valóban a legnagyobb közös osztó-e. Ezen iterációk számát tárolja a hatodik sor n változója. Megjegyezzük, hogy n értékét a bemeneti polinomoktól függően változtatni is lehetne. Az algoritmusban használt prímeket célszerű egy olyan előre eltárolt listából választani, amely az architektúrának megfelelő gépi szóban elférő prémeket tartalmazza; ilyenkor a H halmaz használata szükségtelen. A 1.9. következmény miatt a MODULÁRIS-LNKO-KISPRÍMEK algoritmus befejeződik. Az EHÉPÍT algoritmus a bemeneti a,b polinomok azonos fokú tagjainak együtthatóira felírt, modulo m1 és m2 vett két lineáris kongruenciából álló egyenletrendszer megoldását számolja ki a kínai maradéktételnek megfelelően. Nagyon fontos, hogy az eredmény polinom együtthatóit szimmetrikus ábrázolással tároljuk. 1.9. példa. Először vizsgáljuk meg a MODULÁRIS-LNKOKISPRIMEK algoritmus működését a korábban is vizsgált (1.4), (1.5) polinomokra. A könnyebb érthetőség kedvéért kis prímekkel fogunk számolni. Emlékeztetőül, a(x)=63x5+57x459x3+45x28Z[x],b(x)=77x4+66x3+54x25x+99Z[x]. Az algoritmus első hat sorának végrehajtása után a p=5 választással d=7,cp=x2+3x+2 és gp=2x2+x1 lesznek. Mivel a 7. sor miatt a j változó értéke 1, ezért a 10–12. sorok végrehajtódnak. A gp polinom nem nulla, ezért g=2x2+x1,j=0, valamint P=5 lesznek a végrehajtás utáni változóértékek. A 13. sorban a feltétel értéke nem teljesül, így újabb prímet választunk. A p=7 rossz választás, a p=11 viszont megengedett. A 19–20. sorok szerint ekkor cp=1,gp=4. Mivel deggp<degg, ezért j=1 lesz és a 25–30. sorok nem hajtódnak végre. A gp polinom konstans, így a 11. sorban a visszatérési érték 1 lesz, jelezve, hogy az a és b polinomok relatív prímek. 1.10. példa. Második példánkban tekintsük a korábbi a(x)=12x468x3+52x292x+56Z[x],b(x)=12x3+80x284x+24Z[x], polinomokat. Legyen ismét p=5. Az algoritmus első hat sora után d=12,cp=x+1,gp=2x+2. A 10–12. sorok végrehajtása után P=5,g=2x+2 lesznek a változók értékei. A következő prím legyen p=7. Így az új értékek cp=x+4,gp=2x1. Mivel deggp=degg, ezért a 25–30. sorok után P=35 és g új értéke 12x8 lesz. Az i változó értéke továbbra is 1. A következő prímet válasszuk 11-nek. Ekkor cp=gp=x+3. A gp és g fokai megegyeznek, így g együtthatóit módosítjuk. Ekkor g1=12x8 és mivel g=g1, ezért i=2, valamint P=385 lesznek. Az új prím legyen 13. Ekkor cp=x+8,gp=x+5. A gp és g fokai továbbra is megegyeznek, ezért a 25–30 sorok végrehajtódnak, a változók értékei g=12x8,P=4654,i=3 lesznek. A 17–18. sorok végrehajtása után kiderül, hogy g|a és g|b ezért a legnagyobb közös osztó g=12x8. Az alábbi tételt bizonyítás nélkül közöljük. 1.10. tétel. A MODULÁRIS-LNKO-KISPRIMEK algoritmus megfelelően működik. Az algoritmus számítási bonyolultsága O(m3(logm+λ(K))2) gépi szóban mért művelet, ahol m=min{dega,degb},K pedig az a és b polinomok Landau– Mignotte-korlátja. Gyakorlatok 1.2–1. Legyen R egy kommutatív egységelemes gyűrű, a=i=0maixiR[x],b=i=0nbixiR[x], továbbá bn egység, mn0. Az alábbi algoritmus az a és b polinomokkal végzett maradékos osztás eredményeként előállítja azokat a q,rR[x] polinomokat, melyekre a=qb+r és degr<n vagy r=0. Bizonyítsuk be, hogy az algoritmus legfeljebb (2degb+1)(degq+1)=O(m2)R -beli műveletet igényel. 1.2–2. Mi a különbség Z -ben a BŐVÍTETT-EUKLIDESZ és a BŐVÍTETT-EUKLIDESZNORMALIZÁLT algoritmusok között? 1.2–3. Bizonyítsuk be, hogy res (fg,h)= res (f,h)res (g,h). 1.2– 4. Az f(x)R[x] polinom ( degf=m, lc (f)=fm ) diszkriminánsának a discr f=(1)m(m1)2fm res (f,f)R elemet nevezzük, ahol f az fx -beli deriváltját jelenti. Az f polinomnak nyilván akkor és csak akkor van többszörös gyöke, ha diszkriminánsa nulla. Számítsuk ki (discr f) -et általános másodés harmadfokú polinomok esetében. 1.3. Gröbner-bázis Legyen F test, R=F[x1,x2,...,xn] az F feletti n -határozatlanú polinomok gyűrűje, továbbá legyen f1,f2,...,fsR. Állapítsuk meg, hogy mi annak a szükséges és elégséges feltétele, hogy az f1,f2,...,fs polinomoknak legyen közös gyöke R -ben. Látható, hogy a probléma az előző alfejezet s=2 esetének bizonyos értelemben vett általánosítása. Jelölje I=f1,...,fs={1isqifi:qiR} az f1,...,fs polinomok által generált ideált. Ekkor az f1,...,fs polinomok az I ideál bázisát alkotják. Az I ideál varietásán a V(I)={uFn:f(u)=0 minden fI polinomra } halmazt értjük. A varietás ismerete természetesen az f1,...,fs polinomok közös megoldásainak ismeretét is jelenti. A varietásról, illetve az I ideálról feltehető legfontosabb kérdések: V(I)? V(I) ,,mekkora” ? Adott fR esetén fI ? I=R ? Az I ideál Gröbner-bázisa egy olyan bázis, ahol ezeket a kérdéseket könnyű megválaszolni. Mindenekelőtt vizsgáljuk meg az n=1 esetet. Mivel F[x] euklideszi gyűrű, ezért f1,...,fs= lnko (f1,...,fs).(1.14) Feltehetjük, hogy s=2 . Legyen f,gF[x] , és osszuk el maradékosan f et g -vel. Ekkor egyértelműen léteznek olyan q,rF[x] polinomok, melyekre f=qg+r, ahol degr<degg. Vagyis fgr=0, továbbá V(g)={u1,...,ud}, amennyiben xu1,...,xud a gF[x] polinom összes különböző lineáris faktora. Sajnos a (1.14) egyenlőség két vagy több határozatlan esetén már nem teljesül. Sőt, akármilyen test feletti többváltozós polinomgyűrű nem euklideszi gyűrű, így a maradékos osztás lehetőségét is újra kell gondolni. Ebben az irányban haladunk tovább. 1.3.1. Monomiális rendezés A ‘ Nn teljes rendezési relációt megengedettnek nevezzük, ha (i) (0,...,0)v minden vNn -re, (ii) minden v1,v2,vNn esetén v1v2v1+vv2+v.Nem nehéz bizonyítani, hogy Nn minden megengedett rendezése egyben jólrendezés is (vagyis bármely nemüres részhalmazának van legkisebb eleme). A korábbi jelöléseket figyelembe véve tekintsük a T={x1i1xnin} halmazt, melynek elemeit monomoknak nevezzük. Vegyük észre, hogy T zárt az F[x1,...,xn] -beli szorzásra, valamint a művelettel kommutatív monoidot alkot. Az NnT , (i1,...,in)x1i1xnin leképezés izomorfizmus, ezért egy T -beli megengedett teljes rendezésre (i) 1t minden tT -re, (ii) minden t1,t2,tT esetén t1t2t1tt2t. A T -beli megengedett rendezéseket monomiális rendezéseknek nevezzük. Tekintsünk néhány példát. Legyen α=x1i1xnin,β=x1j1xnjnT. Ekkor az alábbi rendezéseket szokás definiálni. Lexikografikus rendezés.αlexβ létezik olyan l{1,...,n} , hogy il<jl és il+1=jl+1,...,in=jn . Tiszta lexikografikus rendezés.αplexβ létezik olyan l{1,...,n} , hogy il<jl és i1=j1,...,il1=jl1 . Összfokszám szerint, majd lexikografikus rendezés.αgrlexβi1++in<j1++jn vagy ( i1++in=j1++jn és αlexβ ). Összfokszám szerint, majd fordított lexikografikus rendezés.αtdegβi1++in<j1++jn vagy ( i1++in=j1++jn és létezik olyan l{1,...,n} , melyre il>jl és il+1=jl+1,...,in=jn ). A tdeg monomiális rendezést némely szerzők grrevlex -nek jelölik (,,graded reverse lexicographic order”), hiszen a rendezés a monomok fokszámösszehasonlítás utáni lexikografikus rendezésének felel meg. 1.11. példa. Legyen =plex. Ekkor zyx esetén 1zz2yyzyz2y2y2zy2z2xxzxz2xyxy2x2. Legyen =tdeg. Ekkor zyx esetén 1zyxz2yzxzy2xyx2z3yz2xz2y2zxyzx2zy3xy2x2yx3. A továbbiakban mindig feltesszük, hogy valamilyen rögzített monomiális rendezés mellett dolgozunk. Legyen f=αNncαxαR egy nem nulla polinom, cαF és legyen adott egy monomiális rendezés. Ekkor cαxα(cα0) az f polinom tagjai, discr (f)=max{αNn:cα0} a polinom multifoka (a maximum a monomiális rendezés mellett értendő), lc (f)=c discr (f)F\{0} a polinom főegyütthatója, lm (f)=xdiscr (f)R a polinom főmonomja, lc (f)= lc (f)lm (f)R a polinom főtagja. Legyenek továbbá lc (0)= lc (0)= lm (0)=0 és discr (0)=. 1.12. példa. Tekintsük az f(x,y,z)=2xyz23x3+4y45xy2zQ[x,y,z] polinomot. Amennyiben =plex és zyx , akkor discr (f)=(3,0,0), lc (f)=3x3, lm (f)=x3, lc (f)=3, ha pedig =tdeg és zyx , akkor discr (f)=(0,4,0), lc (f)=4y4, lm (f)=y4, lc (f)=4. 1.3.2. Többváltozós polinomok maradékos osztása Ebben a pontban adott f,f1,...,fsR többváltozós polinomok és adott monomiális rendezés esetén olyan q1,...,qsR és rR polinomokat keresünk, melyekre f=q1f1++qsfs+r és r egyetlen monomja sem osztható lc (f1),..., lc (fs) egyikével sem. Az algoritmus helyes működése abból következik, hogy az 5–10. sorok while ciklusának minden iterációjában fennállnak az alábbi tulajdonságok: (i) discr (p) discr (f) és f=p+q1f1++gsfs+r, (ii) qi0 discr (qifi) discr (f) minden 1is esetén, (iii) r egyetlen tagja sem osztója egyik lc (fi) -nek sem. Algoritmusunknak van egy gyenge pontja: a többváltozós polinomok maradékos osztása nem egyértelmű. A 7. sorban a megfelelő i értékek közül tetszőlegesen választhatunk. 1.13. példa. Legyen f=x2y+xy2+y2Q[x,y],f1=xy1,f2=y21, a monomiális rendezés plex,yplexx, és a 7. sorban mindig a legkisebb indexű megfelelő i értéket válasszuk. Ekkor az algoritmus eredménye q1=x+y,q2=1,r=x+y+1. De ha f1 és f2 szerepét felcseréljük, vagyis f1=y21 és f2=xy1, akkor az algoritmus kimenete q1=x+1,q2=x és r=2x+1 lesz. Az iménti példában látott módon (nevezetesen, hogy a pszeudokód 7. sorában mindig a legkisebb megfelelő pozitív i értéket választjuk) az algoritmus determinisztikussá tehető. Ilyenkor a q1,...,qs hányadosok és az r maradék egyértelmű, amit úgy jelölünk, hogy r=f rem (f1,...,fs). Az s=1 esetben az algoritmus választ ad az ideál-tartalmazás problémájára: ff1 akkor és csak akkor, ha az f polinom f1 polinommal vett maradékos osztásakor a maradék nulla. Sajnos s2 esetén ez nem teljesül: a plex monomiális rendezéssel xy2x rem (xy+1,y21)=xy, a hányadosok pedig q1=y,q2=0. Másrészről viszont xy2x=x(y21)+0, ami azt mutatja, hogy xy2xxy+1,y21. 1.3.3. Monomiális ideálok és Hilbert-féle bázistétel További célunk tetszőleges polinomideálhoz olyan bázis keresése, hogy ezzel a bázissal vett maradékos osztáskor a maradék egyértelmű legyen, így választ tudjunk adni az ideál-tartalmazás problémára. Vajon ilyen bázis egyáltalán létezik? És ha igen, véges elemszámú? Az IR ideált monomiális ideálnak nevezzük, ha létezik olyan ANn, melyre I=xA={xαT:αA}, vagyis az ideált monomok generálják. 1.11. lemma. Legyen I=xAR egy monomiális ideál, és βNn. Ekkor xβIαAxα|xβ. Bizonyítás. A irány nyilvánvaló. Megfordítva, legyen α1,...,αsA és q1,...,qsR, melyekre xβ=iqixαi. Ekkor az összegnek legalább egy olyan qixαi tagja létezik, melyben xβ előfordul, így xαi|xβ. A lemma legfontosabb következménye, hogy monomiális ideálok pontosan akkor egyeznek meg, ha ugyanazokat a monomokat tartalmazzák. 1.12. lemma(Dickson-lemma). Minden monomiális ideál végesen generálható, vagyis minden ANn -hez létezik olyan BA véges halmaz, melyre xA=xB. 1.13. lemma. Legyen I egy ideál R=F[x1,...,xn] -ben. Ha GI egy olyan véges halmaz, melyre lc (G)=lc (I), akkor G=I. Bizonyítás. Legyen G={g1,...,gs}. Ha fI egy tetszőleges polinom, akkor G -vel vett maradékos osztás szerint f=q1g1++qsgs+r, ahol q1,...,qs,rR olyanok, hogy vagy r=0 , vagy r egyetlen tagja sem osztható egyetlen gi főtagjával sem. De ekkor r=fq1g1gsgsI, és így lc (r) lc (I)lc (g1),..., lc (gs). A (1.11) lemma miatt ezért r=0, vagyis fg1,...,gs=G. Amennyiben a Dickson-lemmát lc (I) -re alkalmazzuk, továbbá figyelembe vesszük, hogy a zérópolinom a 0 ideált generálja, az alábbi nevezetes eredményt kapjuk. 1.14. tétel (Hilbert-féle bázistétel). Minden IR=F[x1,...,xn] ideál végesen generálható, vagyis létezik olyan GI véges halmaz, melyre G=I és lc (G)=lc (I). 1.15. következmény (ideállánc-feltétel). Legyen I1I2R -beli ideálok egy növekvő lánca. Ekkor létezik olyan nN , melyre In=In+1= . Bizonyítás. Legyen I=j1Ij . Ekkor I ideál, ami a Hilbertféle bázistétel miatt végesen generálható. Legyen I=g1,...,gs . Az n=min{j1:g1,...,gsIj} választással azt kapjuk, hogy In=In+1==I . Azokat a gyűrűket, melyekben teljesül az ideál-lánc feltétel, Noethergyűrűknek nevezzük. Speciálisan, amennyiben F test, akkor F[x1,...,xn] Noether-gyűrű. Legyen egy monomiális rendezés R -en és IR egy ideál. A GI véges halmazt az I ideál rendezésre vonatkozó Gröbner-bázisának nevezzük, ha lc (G)=lc (I) . A Hilbert-féle bázistétel következménye az alábbi 1.16. következmény. R=F[x1,...,xn] minden I ideáljának van Gröbner-bázisa. Könnyű megmutatni, hogy egy G Gröbner-bázissal vett maradékos osztáskor a maradék nem függ a báziselemek sorrendjétől. Ilyenkor az f rem G=rR jelölés használatos. Az alábbi tétel szerint a Gröbner-bázis segítségével az ideáltartalmazás problémája egyszerűen megválaszolható. 1.17. tétel. Legyen G az IR ideál monomiális rendezésre vonatkozó Gröbner-bázisa és legyen fR. Ekkor fIf rem G=0. Bizonyítás. Bebizonyítjuk, hogy egyértelműen létezik olyan rR, amelyre (1) frI,(2) r egyetlen tagja sem osztható lc (G) egyetlen monomjával sem. Ilyen r létezése a maradékos osztásból következik. Az egyértelműséghez feltesszük, hogy f=h1+r1=h2+r2 valamilyen h1,h2I -re és r1 vagy r2 egyik tagja sem osztható lc (G) egyetlen monomjával sem. Ekkor r1r2=h2h1I , továbbá a 1.11. lemma miatt lc (r1r2) osztható lc (g) -vel valamely gG -re. Ez azt jelenti, hogy r1r2=0. Ha tehát G az R egy Gröbner-bázisa, akkor minden f,g,hR esetén g=f rem G és h=f rem Gg=h. 1.3.4. A Buchberger-algoritmus Észrevehetjük, hogy a Hilbert-féle bázistétel nem konstruktív: nem ad választ arra, hogyan konstruáljuk meg egy I ideál Gröbner-bázisát. Az alábbiakban úgy okoskodunk, hogy azt vizsgáljuk, egy véges halmaz mikor nem Gröbner-bázisa az I ideálnak. Legyenek g,hR nem nulla polinomok, α=(α1,...,αn)= discr (g),β=(β1,...,βn)= discr (h),γ=(max{α1,β1},...,max{αn,βn}). A g és h polinomok S-polinomján az S(g,h)=xγlc (g)gxγlc (h)hR polinomot értjük. Észrevehetjük, hogy S(g,h)=S(h,g), továbbá xγ/lc (g),xγ/lc (h)R így S(g,h)g,h. A most következő, bizonyítás nélkül közölt tétel egy egyszerű tesztet ad egy halmaz Gröbner-bázis mivoltára. 1.18. tétel. A G={g1,...,gs}R halmaz akkor és csak akkor lesz a G ideál Gröbner-bázisa, ha S(gi,gj)rem (g1,...,gs)=0 minden 1i<js esetén. Az S -polinomok segítségével könnyen adható Gröbner-bázist konstruáló algoritmus (Buchberger, 1965): adott f1,...,fsR=F[x1,...,xn] és adott monomiális rendezés mellett az alábbi algoritmus megadja az I=f1,...,fs ideál egy GR Gröbner-bázisát. Először megmutatjuk, hogy a Gröbner-bázis algoritmus helyesen működik. Az algoritmus futásának bármely pillanatában G az I ideál bázisa, hiszen kezdetben az, a továbbiakban pedig kizárólag olyan elemek kerülnek G -be, melyeket G elemeiből képzett S-polinomok G -vel vett maradékos osztásaként kapunk. Amennyiben az algoritmus befejeződik, az összes lehetséges képezhető S -polinom G vel vett maradéka nulla, így a (1.18) tétel miatt G egy Gröbner-bázis. Most bebizonyítjuk, hogy az algoritmus befejeződik. Legyenek G és G* a pszeudokód while ciklusa két egymást követő végrehajtásakor kapott halmazok. Nyilván GG*, továbbá lc (G)lc (G*) . De a (1.15) következmény miatt az egymást követő iterációk lc (G) ideállánca stabilizálódik, vagyis véges számú lépés után lc (G)=lc (G*) teljesül. Azt állítjuk, hogy ekkor G=G*. Legyen f,gG és r=S(f,g)rem G. Ekkor rG* és vagy r=0 vagy lc(r)lc (G*)=lc (G), amiből a maradék képzésének definíciója miatt r=0 következik. 1.14. példa. Legyen F=Q,=plex,zyx,f1=xyz,f2=x+yz2,f3=x2+y21. Ekkor a pszeudokód első sora miatt G={f1,f2,f3}, a második sorból pedig P={(f1,f2),(f1,f3),(f2,f3)}. A while ciklus első végrehajtása során válasszuk az (f1,f2) párt. Ekkor P={(f1,f3),(f2,f3)},S(f1,f2)=2yz+z2 és r=f4=S(f1,f2)rem G=2yz+z2. Ezért G={f1,f2,f3,f4} és P={(f1,f3),(f2,f3),(f1,f4),(f2,f4),(f3,f4)}. A ciklus második végrehajtásakor válasszuk az (f1,f3) párt. Ekkor P=P\{f1,f3},S(f1,f3)=xyxzy2+1,r=f5=S(f1,f3)rem G=1/2z41/2z2+1, így G={fi|1i5} és P={(f2,f3),(f1,f4),...,(f3,f4),(f1,f5),...,(f4,f5)}. A ciklus harmadik végrehajtása során válasszuk az (f2,f3) párt. Ekkor P=P\{(f2,f3)},S(f2,f3)=xyxz2y2+1 , r=S(f2,f3)rem G=0. A while ciklus negyedik végrehajtása során válasszuk az (f1,f4) párt. Ekkor P=P\{f1,f4},S(f1,f4)=2y2+2yz+xzxz2 , r=S(f1,f4)rem G=0. Hasonlóan, az összes fennmaradó pár S -polinomjának G -vel vett maradékos osztásakor a maradék 0, így a visszatérő érték G={xyz,x+yz2,x2+y21,2yz+z2,1/2z41/2z2+1} egy Gröbner-bázis. 1.3.5. Redukált Gröbner-bázis A Buchberger-algoritmus által eredményezett Gröbner-bázis általában nem minimális és nem egyértelmű. Szerencsére egy kis ravaszkodással mindkettő elérhető. 1.19. lemma. Ha G az IR ideál egy Gröbner-bázisa és lc (g)lc (G\{g}), akkor G\{g} is egy Gröbner-bázisa I nek. Azt mondjuk, hogy a GR halmaz az I=G ideál minimális Gröbner-bázisa, ha Gröbner-bázis és minden gG esetén lc (g)=1 , lc (g)lc (G\{g}). A G Gröbner-bázis egy gG eleme redukált a G -re nézve, ha g egyetlen monomja sincs az lc (G\{g}) ideálban. Egy minimális G Gröbner-bázis redukált, ha G -re vonatkozóan minden eleme redukált. 1.20. tétel. Minden ideálhoz egyértelműen létezik egy redukált Gröbner-bázis. 1.15. példa. A 1.14. példát alapul véve nemcsak G, hanem G={xyz,2yz+z2,1/2z41/2z2+1} is Gröbner-bázis. Nem nehéz megmutatni, hogy Gr={x1/2z21/2z,y1/2z21/2z,z4+z2z} redukált Gröbner-bázis. 1.3.6. A Gröbner-bázis számítási bonyolultsága A Gröbner-bázis elmélet kialakulása óta eltelt fél évszázad sem volt elég teljesen tisztázni az algoritmus számítási bonyolultságát. A tapasztalatok azt mutatják, hogy számítási tárrobbanással állunk szemben. De most, ellentétben az euklideszi algoritmus variánsainál látott számítási tárrobbanással, a növekedés ütemét nem lehet kordában tartani. A Gröbner-bázis számításnál fellépő számítási bonyolultságot szokás az EXPSPACEteljes osztályba sorolni. Legyenek f,f1,...,fsF[x1,...,xn] az F test feletti legfeljebb d -ed fokú polinomok (=tdeg). Ha ff1,f2,...fs, akkor f=f1g1++fsgs olyan g1,...,gsF[x1,...,xn] polinomokra, melyek fokai β=β(n,d)=(2d)2n -nel felülről korlátosak. Ez a duplán exponenciális korlát lényegében elkerülhetetlen, amit számos példa bizonyít. Sajnos, az F=Q esetben az ideáltartalmazás probléma ilyen. Szerencsére, speciális esetekben drasztikus redukció érhető el. Ha f=1 (a Hilbert-féle Nullstellensatz), akkor a d=2 esetben β=2n+1 , a d>2 esetben pedig β=dn. Márpedig a V(f1,...,fs) varietás pontosan akkor üres, ha 1f1,f2,...fs, vagyis a polinomegyenlet-rendszerek megoldhatósága PSPACE-beli probléma. Számos eredmény szól amellett, hogy bizonyos feltételek mellett az (általános) ideál-tartalmazás probléma is PSPACEbeli. Ilyen feltétel például, hogy f1,f2,...fs zéró-dimenziós. Ezen számítási bonyolultság ellenére a Gröbner-bázis elmélet komoly sikereket könyvelhet el: automatikus geometriai tételbizonyítás, robotok mozgásvezérlése és polinomegyenlet-rendszerek megoldása talán a legelterjedtebb alkalmazási területek. Az alábbiakban felsoroljuk azokat az területeket, ahol az elmélet sikeresen alkalmazható. Polinomegyenletek ekvivalenciája. Két polinomhalmaz pontosan akkor generálja ugyanazt az ideált, ha Gröbner-bázisuk megegyezik (tetszőleges monomiális rendezés mellett). Polinomegyenletek megoldhatósága. Az fi(x1,...,xn)=0,1is egyenletrendszer pontosan akkor oldható meg, ha az 1f1,...,fs. Polinomegyenletek megoldáshalmaza végessége. Az fi(x1,...,xn)=0,1is egyenletrendszernek pontosan akkor van véges számú megoldása, ha f1,...,fs -ben minden xi változóhoz van olyan polinom, hogy az adott monomiális rendezés melletti főtagja xi valamilyen hatványa. Polinomegyenletek véges megoldásai száma. Legyen az fi(x1,...,xn)=0,1is egyenletrendszernek véges sok megoldása. Ekkor multiplicitással számolva a polinomegyenlet megoldásszáma azon monomok halmazának számossága, melyek nem többszörösei a f1,...,fs Gröbnerbázisa elemei egyetlen főtagjának sem (tetszőleges monomiális rendezés mellett). Kifejezések egyszerűsítése. A legutóbbira példát is mutatunk. 1.16. példa. Legyenek a,b,cR olyanok, hogy a+b+c=3,a2+b2+c2=9,a3+b3+c3=24. Számítsuk ki a4+b4+c4 értékét. Legyenek tehát f1=a+b+c3,f2=a2+b2+c29 és a3+b3+c324 az R[a,b,c] elemei, továbbá legyen =plex , cba . Ekkor az f1,f2,f3 Gröbner-bázisa G={a+b+c3,b2+c23b3c+bc,13c2+c3}. Így a4+b4+c4 rem G=69 , ami a feladat megoldása. Gyakorlatok 1.3–1. Bizonyítsuk be, hogy a lex,plex,grlex és tdeg monomiális rendezések valóban megengedettek. 1.3–2. Legyen egy monomiális rendezés R -en, f,gR\{0}. Lássuk be az alábbiakat: a. discr (fg)= discr (f)+ discr (g),b. ha f+g0 , akkor discr (f+g)max{discr (f), discr (g)}, ahol discr (f)discr (g) esetén egyenlőség teljesül. 1.3–3. Legyen f=2x4y2z3x4yz2+4xy4z25xy2z4+6x2y4z7x2yz4Q[x,y,z].a. Rendezzük a polinom tagjait plex,grlex és tdeg monomiális rendezések esetén, ahol mindhárom esetben zyx.b. Mindhárom monomiális rendezés esetén határozzuk meg discr (f), lc (f), lm (f) és lc (f) -et. 1.3–4.* Bizonyítsuk be a Dickson-lemmát. 1.3–5. Számítsuk ki az I=x2+y1,xyxQ[x,y] ideál Gröbner-bázisát és redukált Gröbner-bázisát a =lex monomiális rendezés esetén, ahol yx. Határozzuk meg, hogy az alábbi polinomok közül melyik eleme az ideálnak: f1=x2+y2y,f2=3xy24xy+x+1. 1.4. Szimbolikus integrálás A határozatlan integrálás problémája egy adott f függvényhez olyan g függvényt találni, amelynek deriváltja f, azaz amelyre g(x)=f(x); ezen összefüggés jelölésére az f(x)dx=g(x) jelölést is használjuk. A bevezető analízis előadásokon a határozatlan integrálási problémák megoldására különböző módszerekkel próbálkozunk, amelyek között heurisztikus módon próbálunk választani: helyettesítések, trigonometrikus helyettesítések, parciális integrálás stb. Csak a racionális törtfüggvények integrálására szokás algoritmikus módszert használni. Megmutatható, hogy a határozatlan integrálás teljes általánosságban algoritmussal megoldhatatlan probléma. Tehát csak arra van lehetőségünk, hogy minél nagyobb algoritmussal megoldható részt keressünk. Az első lépés a probléma algebraizálása: teljesen elvonatkoztatunk minden analízisbeli fogalomtól, és a differenciálást úgy tekintjük, mint egy új (egyváltozós) algebrai műveletet, amely az összeadással és a szorzással adott kapcsolatban van, és ennek a műveletnek az,,inverzét” keressük. Ez a felfogás vezetett a differenciálalgebra fogalmának bevezetéséhez. A komputeralgebra rendszerek (például a MAPLE integráló rutinja, hasonlóan hozzánk, először néhány heurisztikus módszerrel próbálkozik. Polinomok (vagy kicsit általánosabban, véges Laurent-sorok) integrálja könnyen meghatározható. Ezután egy egyszerű táblázatban való keresés következik (a MAPLE esetén például 35 alapintegrál felhasználása). Lehet persze könyvekből bevitt integráltáblázatokat is használni. Ezután speciális eseteket kereshetünk, amelyre megfelelő módszerek ismertek. Például eax+bsin(cx+d)p(x) alakú integrálok esetén, ahol p polinom, parciális integrálás használható az integrál meghatározására. Ha a fenti módszerek sikertelenek, akkor helyettesítéssel próbálkozik az úgynevezett,,beosztás a deriválttal” módszer formájában: ha az integrandus összetett kifejezés, akkor minden f(x) részkifejezésére osztunk f deriváltjával, majd kipróbáljuk, hogy u=f(x) helyettesítés után a kapott kifejezésből eltűnik-e x. Ezek az egyszerű módszerek meglepően sok határozatlan integrál kiszámítására elegendőek. Nagy előnyük, hogy az egyszerű problémákat gyorsan oldják meg. Ha nem vezetnek célhoz, akkor próbálkozunk az algoritmikus módszerekkel. Ezek között az első a racionális törtfüggvények integrálása. Mint látni fogjuk, a komputeralgebra rendszerekben használt változat lényegesen eltér a kézi számolásra használt változattól, mert a cél az, hogy a futási idő még bonyolult esetekben is kicsi legyen, és az eredmény a lehető legegyszerűbb formában keletkezzen. Az elemi függvények integrálására használt Risch-algoritmus a racionális törtfüggvények integrálására használt algoritmusokon alapul. Ezt is ismertetjük, de nem tárgyaljuk teljes részletességgel. A bizonyításokra inkább csak utalunk. 1.4.1. Racionális függvények integrálása Ebben a pontban bevezetjük a differenciáltest és a differenciáltest bővítésének fogalmát, majd ismertetjük Hermite módszerét. Differenciáltest Legyen K egy nulla karakterisztikájú test, amelyen adott egy ff leképezése K -nak önmagába az alábbi két tulajdonsággal: (1) (f+g)=f+g (additivitás); (2) (fg)=fg+gf (Leibniz-szabály). Ekkor az ff leképezést differenciáloperátornak, differenciálásnak vagy deriválásnak, K -t pedig differenciáltestnek nevezzük. A C={cK:c=0} halmaz a konstansok részteste K -ban. Ha f=g, akkor azt is írjuk, hogy f=g. Nyilván bármely cC konstansra f+c=g. Egy 0fK elem logaritmikus deriváltjánf/f -et értjük. (Formálisan ez,, log(f) deriváltja”.) 1.21. tétel. Az előző definíció jelöléseivel, a deriválás szokásos tulajdonságai teljesülnek: (1) 0=1=(1)=0; (2) a differenciálás C -lineáris: (af+bg)=af+bg , ha f,gK , a,bC; (3) ha g0 , f tetszőleges, akkor (f/g)=(fggf)/g2; (4) (fn)=nffn1, ha 0fK és nZ; (5) fg=fggf, ha f,gK ( parciális integrálás ). 1.17. példa. (1) Az előző definíció jelöléseivel, az f0 leképezés K -n a triviális deriválás, erre C=K.(2) Legyen K=Q(x). Egyetlen olyan differenciálás van Q(x) -en, a szokásos, amelyre x=1. Erre a konstansok Q elemei. Valóban, indukcióval n=0, ha nN, és így Z illetve Q elemei is konstansok. Indukcióval adódik, hogy a hatványfüggvények deriváltja a szokásos, ahonnan a linearitás miatt a polinomoké is, így a hányados differenciálási szabálya szerint kapjuk az állítást. Nem nehéz kiszámolni, hogy a szokásos differenciálásra a konstansok Q elemei.(3) Ha K=C(x), ahol C tetszőleges nulla karakterisztikájú test, akkor egyetlen olyan differenciálás van K -n, a szokásos, amelyre a konstansok részteste C és x=1; az állítás hasonlóan adódik, mint az előző. Ha C tetszőleges nulla karakterisztikájú test és K=C(x) a szokásos differenciálással, akkor 1/x nem deriváltja semminek. (Az állítás bizonyítása nagyon hasonlít annak bizonyításához, hogy 22 irracionális, de kettővel való oszthatóság helyett az x polinommal való oszthatósággal kell dolgoznunk.) A példa azt mutatja, hogy 1/x és más hasonló függvények integrálásához a differenciáltestet bővíteni kell. A racionális törtfüggvények integrálásához elég lesz logaritmusokkal bővíteni. Differenciáltest bővítése Legyen L egy differenciáltest, KL pedig egy részteste L -nek. Ha a differenciálás nem vezet ki K -ból, akkor azt mondjuk, hogy K egy differenciálrészteste L -nek, illetve hogy L egy differenciálbővítése K -nak. Ha valamely f,gL -re f=g/g, azaz ha f deriváltja a g logaritmikus deriváltja, akkor azt írjuk, hogy f=logg. (Megjegyezzük, hogy log, ugyanúgy, mint , nem függvény, hanem reláció. Más szóval a log itt egy absztrakt fogalom, nem pedig egy meghatározott alapú logaritmus függvény.) Ha gK választható, akkor azt mondjuk, hogy f logaritmikus K felett. 1.18. példa. (1) Legyen g=xK=Q(x),L=Q(x,f), ahol f egy új határozatlan, és legyen f=g/g=1/x, azaz f=log(x). Ekkor 1/xdx=log(x). (2) Hasonlóan, 1x22=224log(x22)224log(x+22) a Q(22)(x,log(x22),log(x+22)) differenciáltestben van. (3) Mivel 1x3+x=log(x)12log(x+i)12log(xi)=log(x)12log(x2+1), az integrál tekinthető Q(x,log(x),log(x2+1)) elemének is és Q(i)(x,log(x),log(xi),log(x+i)) elemének is. Nyilván célszerűbb az első lehetőséget választani, mert ekkor az alaptest bővítésére nincs szükség. Hermite módszere Legyen K egy nulla karakterisztikájú test, f,gK[x] nemnulla és relatív prím polinomok. Az f/g integrál kiszámításához Hermite módszerével olyan a,b,c,dK[x] polinomokat találhatunk, amelyekre fg=cd+ab,(1.15) ahol dega<degb és b négyzetmentes főpolinom. A c/d racionális függvényt az integrál racionális részének, az a/b kifejezést pedig az integrál logaritmikus részének nevezzük. A módszer elkerüli g -nek a (felbontási testben vagy valamely még bővebb testben) lineáris tényezőkre való bontását, sőt, még a K felett irreducibilis tényezőkre való felbontást is. Nyilván feltehetjük, hogy g főpolinom. Maradékos osztással f=pg+h, ahol degh<degg, így f/g=p+h/g. A p polinomrész integrálása triviális. Határozzuk meg g négyzetmentes felbontását, azaz keressünk olyan g1,...,gmK[x] négyzetmentes és páronként relatív prím főpolinomokat, amelyekre gm1 és g=g1g22gmm. Bontsunk parciális törtekre (ez euklideszi algoritmussal megvalósítható): hg=i=1mj=1ihi,jgij, ahol minden hi,j foka kisebb, mint gi foka. A Hermite-redukció a következő lépés ismétlése: ha j>1 , akkor az hi,j/gij integrált egy racionális függvény és egy, az eredetihez hasonló alakú integrál összegére redukáljuk, amelyben j eggyel kisebb. Felhasználva, hogy gi négyzetmentes, azt kapjuk, hogy lnko (gi,gi)=1, így a bővített euklidészi algoritmussal kaphatunk olyan s,tK[x] polinomokat, amelyekre sgi+tgi=hi,j és degs,degt<deggi. Innen parciális integrálással hi,jgij=tgigij+sgij1=t(j1)gij1+t(j1)gij1+sgij1=t(j1)gij1+s+t/(j1)gij1. Megmutatható, hogy gyors algoritmusokat választva, ha degf,degg<n, akkor az eljárás O(M(n)logn) darab K testbeli műveletet igényel, ahol M(n) a legfeljebb n -ed fokú polinomok szorzásához szükséges műveletek számának korlátja. Hermite módszerének van olyan változata is, amely elkerüli h/g parciális törtekre bontását. Ha m=1, akkor g négyzetmentes. Ha m>1, akkor legyen g*=g1g22gm1m1=ggmm. Mivel lnko (gm,g*gm)=1, léteznek olyan s,tK[x] polinomok, amelyekre sgm+tg*gm=h. Mindkét oldalt osztva g=g*gmm -el és parciálisan integrálva hg=t(m1)gmm1+s+g*t/(m1)g*gmm1, így m -et eggyel csökkentettük. Megjegyezzük, hogy a és c a határozatlan együtthatók módszerével is meghatározhatók (Horowitz módszere). Osztás után feltehetjük, hogy degf<degg. Mint az algoritmusból látszik, d=g2g32gmm1 és b=g1g2gm választható. (1.15) differenciálásával az a polinom degb darab és a c polinom degd darab együtthatójára, tehát összesen n darab együtthatóra egy lineáris egyenletrendszert kapunk. Ez a módszer általában nem olyan gyors, mint Hermite módszere. Az alábbi algoritmus az x változó adott f/g racionális függvényére elvégzi a Hermite-redukciót. Ha valamely nulla karakterisztikájú K testre az a/b integrált akarjuk kiszámítani, ahol a,bK[x] nem nulla relatív prím polinomok, dega<degb , b négyzetmentes és főpolinom, akkor eljárhatunk úgy, hogy a b polinom L felbontási testében felírjuk b -t gyöktényezős alakban: b=k=1n(xk), majd L felett parciális törtekre bontunk: a/b=k=1nck/(xk), végül integrálunk: ab=k=1ncklog(xk)L(x,log(x1),...,log(xn)). Ennek az eljárásnak, mint az 1/(x3+x) függvény példáján láttuk, a hátránya, hogy az L testbővítés foka túl magas lehet. Előfordulhat az is, hogy L foka K felett n! , ami teljesen kezelhetetlen esetekhez vezet. Másrészt az sem világos, hogy kell-e az adott esetben az alaptestet bővíteni, például az 1/(x22) függvény esetében nem lehet-e az integrálást az alaptest bővítése nélkül elvégezni. A következő tétel lehetővé teszi, hogy L testbővítés fokát a lehető legkisebbre válasszuk. 1.22. tétel (Rothstein–Trager-féle integráló algoritmus). Legyen K nulla karakterisztikájú test, a,bK[x] nem nulla relatív prím polinomok, dega<degb,b négyzetmentes és főpolinom. Ha L algebrai bővítése K -nak, c1,...,ckL\K páronként különböző, v1,...,vkL[x]\L pedig négyzetmentes és páronként relatív prím főpolinomok, akkor az alábbiak ekvivalensek: ab=i=1k (2) Az r= res x(b,ayb)K[y] polinom L felett lineáris tényezőkre bomlik, c1,...,ck pontosan az r különböző gyökei, és vi= lnko (b,acib) , ha i=1,...,k. Itt res x az x határozatlanban vett rezultáns. 1.19. példa. Tekintsük ismét az 1/(x3+x)dx integrál kiszámításának problémáját. Ebben az esetben r= res x(x3+x,1y(3x2+1))=4z3+3y+1=(2y+1)2(y1), amelynek gyökei c1=1 és c2=1/2. Így v1= lnko (x3+x,1(3x2+1))=x,v2= lnko (x3+x,1+12(3x2+1))=x2+1. Az előző tétel alapján könnyen felírható integráló algoritmus kicsit javítható: vi= lnko (b,acib) -nek (az L test feletti számításokkal történő) kiszámítása helyett vi megkapható K feletti számítással is, a BŐVÍTETT-EUKLIDESZNORMALIZÁLT algoritmus segítségével. Ezt egymástól függetlenül Trager, illetve Lazard és Rioboo vette észre. Nem nehéz belátni, hogy az így adódó teljes integráló algoritmus futásideje O(nM(n)logn) , ha degf,degg<n. 1.23. tétel (Lazard–Rioboo–Trager-formula). Az előző tétel jelöléseivel, jelölje e a ci -nek mint az r= res x(b,ayb) polinom gyökének a multiplicitását. Ekkor (1) degvi=e; (2) ha w(x,y)K(y)[x] jelöli a b -re és ayb -re K(y)[x] -ben végrehajtott Bővített-Euklidesz-normalizált -algoritmus e -ed fokú maradékát, akkor vi=w(x,ci). Az alábbi algoritmus a Rothstein–Trager-módszer Lazard–Rioboo–Tragerféle javítása. Az x változó adott a/b racionális függvényére kiszámítjuk a/b-t, ahol b négyzetmentes főpolinom és dega<degb. 1.20. példa. Tekintsük ismét az 1/(x22)dx integrál kiszámításának problémáját. Ebben az esetben r= res x(x22,1y2x)=8y2+1. A polinom irreducibilis Q[x] -ben, így Q bővítése elkerülhetetlen. Az r gyökei ±1/28. A Q(y) feletti BŐVÍTETT-EUKLIDESZ-NORMALIZÁLT algoritmusból w1(x,y)=x1/(2y), így az integrál 1x22dx=128log(x22)128log(x+22). 1.4.2. Risch integráló algoritmusa Meglepő módon, a racionális függvények integrálására talált módszerek általánosíthatók a szokásos függvényeket ( sin , exp stb.) és inverzeiket tartalmazó kifejezések integrálására. A komputeralgebra rendszerek meglepően bonyolult kifejezések integrálását is elvégzik, néha azonban látszólag igen egyszerű esetekben sem adják meg az integrált, például az x/(1+ex)dx kifejezést kiértékeletlenül kapjuk vissza, vagy az eredmény nem elemi speciális függvényt tartalmaz, például az integrállogaritmus függvényt. Ez azért van, mert ezekben az esetekben az integrál nem is fejezhető ki,,zárt alakban”. Bár a,,zárt alakban” kifejezhető integrálokra vonatkozó alapvető eredményt Liouville 1833-ban találta, a megfelelő algoritmikus módszereket Risch csak 1968-ban fejlesztette ki. Elemi függvények A,,zárt alakban” megadható függvényeknek azokat a függvényeket szokás tekinteni, amelyek felépíthetők a racionális függvények, az exponenciális és logaritmus függvény, a trigonometrikus és hiperbolikus függvények és inverzeik, valamint gyökvonások, illetve sokkal általánosabban polinom függvények,,inverzei”, azaz egyenletek gyökeinek képzése segítségével, tehát ezen függvények egymásba helyettesítésével. Észrevehetjük, hogy míg az 1/(1+x2)dx integrált arctg (x) alakban szokás megadni, a racionális törtfüggvény integrálására megadott algoritmus az eredményt 11+x2dx=i2log(x+i)i2log(xi) alakban adja. Mivel C -ben a trigonometrikus és hiperbolikus függvények kifejezhetők az exponenciális függvény, inverzeik pedig a logaritmus függvény segítségével, csak az exponenciális és a logaritmus függvényre szorítkozhatunk. Meglepő módon kiderül, hogy az integrálok kifejezéséhez (algebrai számokkal való bővítések mellett) itt is csak logaritmusokkal való bővítésekre van szükség. Exponenciális elemek Legyen L a K differenciáltest differenciálbővítése. Ha egy θL elemhez van olyan uK, hogy θ/θ=u, azaz ha θ logaritmikus deriváltja K valamely elemének a deriváltja, akkor azt mondjuk, hogy θ exponenciális K felett, és azt írjuk θ= exp (u). Ha csak az teljesül, hogy a θL elemhez van olyan uK, hogy θ/θ=u, azaz, ha θ logaritmikus deriváltja K eleme, akkor azt mondjuk, hogy θ hiperexponenciális K felett. A K felett logaritmikus, exponenciális vagy hiperexponenciális elemek lehetnek algebraiak vagy transzcendensek K felett. Elemi kiterjesztések Legyen L a K differenciáltest differenciálbővítése. Ha L=K(θ1,θ2,...,θn), ahol j=1,2,...,n -re θj logaritmikus, exponenciális vagy algebrai Kj1=K(θ1,...,θj1) felett ( K0=K ), akkor azt mondjuk, hogy L a K elemi kiterjesztése. Ha j=1,2,...,n -re θj transzcendens és logaritmikus vagy transzcendens és exponenciális Kj1 felett, akkor azt mondjuk, hogy L a K transzcendens elemi kiterjesztése. Legyen C(x) a racionális függvények teste CC konstans testtel és a szokásos differenciálással. Ennek egy elemi kiterjesztését elemi függvénytestnek, transzcendens elemi kiterjesztését pedig transzcendens elemi függvénytestnek nevezzük. 1.21. példa. Az f= exp (x)+ exp (2x)+ exp (x/2) függvény f=θ1+θ2+θ3Q(x,θ1,θ2,θ3) alakban írható, ahol θ1= exp (x),θ2= exp (2x) , θ3= exp (x/2). Nyilván θ1 exponenciális Q(x) felett, θ2 exponenciális Q(x,θ1) felett és θ3 exponenciális Q(x,θ1,θ2) felett. Mivel θ2=θ12 , Q(x,θ1,θ2)=Q(θ1), így f az egyszerűbb f=θ1+θ12+θ3 alakba írható. A θ3 függvény nemcsak exponenciális Q(x,θ1) felett, hanem algebrai is, mivel θ32θ1=0 , azaz θ3=θ11/2. Így f=θ1+θ12+θ11/2Q(x,θ1,θ11/2). De f még ennél egyszerűbb alakban is felírható: f=θ32+θ34+θ3Q(x,θ3). 1.22. példa. Az f=2log(x2+3x+2)(log(x+1)+log(x+2)) függvény felírható f=θ4Q(x,θ1,θ2,θ3,θ4) alakban, ahol θ1=log(x2+3x+1) , θ2=log(x+1),θ3=log(x+2) , θ4 pedig a θ42θ1(θ2+θ3)=0 algebrai egyenletnek tesz eleget, de sokkal egyszerűbben f=θ1Q(x,θ1) alakban is. 1.23. példa. Az f= exp (log(x)/2) függvény felírható f=θ2Q(x,θ1,θ2) alakban, ahol θ1=log(x) és θ2= exp (θ1/2), így θ1 logaritmikus Q(x) felett, θ2 pedig exponenciális Q(x,θ1) felett. Azonban θ22x=0, így θ2 algebrai Q(x) felett, és f(x)=x1/2. Elemi függvények integrálása Tetszőleges elemi függvénytestek elemeinek integrálját, ha elemi függvény, a Liouville-elv teljesen jellemezni fogja. Mindazonáltal az algebrai kiterjesztési lépések – ha nem csak a konstansok testét terjesztjük ki – nagy nehézségeket okoznak. Itt csak a transzcendens elemi függvénytestek függvényeinek Risch-algoritmussal történő integrálásával foglalkozunk. A gyakorlatban egy Q(α1,...,αk)(x,θ1,...,θn) transzcendens elemi függvénytest valamely eleméről van szó, ahol α1,...,αk algebrai számok Q felett, az integrál pedig egy Q(α1,...,αk,...,αk+h)(x,θ1,...,θn,...,θn+m) elemi függvénytest eleme lesz. Elvileg legegyszerűbb lenne a konstansok testét C -nek választani, de mint a racionális függvények integrálásánál láttuk, ez nem lehetséges, mert csak bizonyos számtestekben, például algebrai számtestekben tudunk pontosan számolni, sőt, igyekeznünk kell az αk+1,...,αk+h algebrai számok számát és fokaikat a lehető legalacsonyabban tartani. Mindazonáltal a konstansok testének algebrai bővítéseit kezelhetjük dinamikusan, a szükségessé váló bővítésekről elképzelhetjük, hogy már előre elvégeztük őket, a gyakorlatban pedig mindig csak akkor hajtjuk végre a bővítést, ha szükségessé válik. Miután a trigonometrikus és hiperbolikus függvények exponenciálisra, inverzeiknek pedig logaritmusra való konverzióját elvégeztük, az integrandust mint egy elemi függvénytest elemét kapjuk meg. A 1.21. és 1.22. példák mutatják, hogy bár lehet, hogy a függvény,,első pillantásra” nem tűnik egy transzcendens elemi kiterjesztés elemének, mégis az, a 1.23. példa pedig azt, hogy lehet, hogy a függvény,,első pillantásra” transzcendens elemi kiterjesztés elemének tűnik, mégsem az. Az első lépés tehát az, hogy a különböző exponenciális és logaritmikus függvények közötti algebrai kapcsolatok vizsgálatával az integrandust mint transzcendens elemi függvénytest elemét állítjuk elő. Hogy ez hogyan lehetséges, azzal nem foglalkozunk. Hogy ez sikerült-e, az ellenőrizhető a Risch-től származó struktúratétel segítségével. A tétel bizonyítását elhagytuk. Szükségünk lesz egy definícióra. Egy θ elem monomiális a K differenciáltest felett, ha transzcendens K felett, exponenciális vagy logaritmikus K felett, valamint K -ban és K(θ) -ban ugyanazok a konstansok. 1.24. tétel (struktúra-tétel). Legyen K a konstansok teste és Kn=K(x,θ1,...,θn) egy differenciál-kiterjesztése K(x) -nek, amelyben a konstansok teste K . Tegyük fel, hogy minden θj vagy algebrai Kj1=K(x,θ1,...,θj1) felett, vagy θj=wj , ahol wj=log(uj) és ujKj1 , vagy θj=uj , ahol uj= exp (wj) és wjKj1. Ekkor 1. g=log(f) , ahol fKn\K , pontosan akkor monomiális Kn felett, ha nincs olyan fkujkj,k,kjZ,k0 szorzat, amely K -beli; 2. g= exp (f) , ahol fKn\K , pontosan akkor monomiális Kn felett, ha nincs olyan f+cjwj,cjQ lineáris kombináció, amely K -beli. A szorzatképzés, illetve összegzés csak a logaritmikus és exponenciális lépésekre történik. Az egész elmélet legfontosabb, klasszikus eredménye a következő tétel. 1.25. tétel (Liouville-elv). Legyen K egy differenciáltest a C konstans testtel. Legyen L egy elemi differenciálkiterjesztése K -nak ugyanazzal a C konstans testtel. Tegyük fel, hogy g=fK . Ekkor léteznek olyan c1,...,cmC konstansok és v0,v1,...,vmK elemek, hogy f=v0+j=1mcjvjvj, azaz hogy g=f=v0+j=1mcjlog(vj). Figyeljük meg, hogy a helyzet hasonló, mint a racionális függvények integrálásánál. A tételt nem bizonyítjuk. Bár a bizonyítás hosszadalmas, az ötlete könnyen elmondható. Először megmutatjuk, hogy egy transzcendens exponenciális bővítést differenciálással nem lehet,,kiküszöbölni”, azaz egy racionális függvényét deriválva, abból az új elem nem tűnik el. Ez azon múlik, hogy a transzcendens exponenciális bővítő elem egy polinomját deriválva, a derivált újra az elem egy polinomja lesz, a polinom foka nem változik, és a derivált nem osztható az eredeti polinommal, kivéve, ha az monom volt. Utána megmutatjuk, hogy algebrai bővítésre nincs szükség az integrál kifejezéséhez. Ez lényegében azon múlik, hogy az algebrai bővítő elemet a minimálpolinomjába beírva nullát kapunk, és ezt az egyenletet differenciálva, a kapott egyenletből kifejezhető a bővítő elem deriváltja, mint az elem racionális függvénye. Végül a transzcendens logaritmikus elemekkel való bővítéseket kell még megvizsgálnunk. Megmutatjuk, hogy egy ilyen bővítő elem differenciálással pontosan akkor küszöbölhető ki, ha egy konstans együtthatós elsőfokú polinomja szerepel. Ez azon múlik, hogy egy ilyen bővítő elem egy polinomját deriválva, annak egy polinomját kapjuk, aminek fokszáma vagy ugyanannyi, mint az eredetié, vagy eggyel kisebb, és ez utóbbi eset csak akkor fordulhat elő, ha a főegyüttható konstans. Risch-algoritmus Legyen K algebrai számtest Q felett, Kn=K(x,θ1,...,θn) pedig transzcendens elemi függvénytest. Az algoritmus rekurzív n -ben: θ=θn jelöléssel egy f(θ)/g(θ)Kn=Kn1(θ) függvényt fogunk integrálni, ahol Kn1=K(x,θ1,...,θn1). (Az n=0 eset a racionális függvények integrálása.) Feltehetjük, hogy f és g relatív prímek és g főpolinom. Az x szerinti differenciálás mellett használni fogjuk a θ szerinti deriválást is, ezt d/dθ -val jelöljük. A továbbiakban csak az algoritmusokat ismertetjük. Risch-algoritmus: logaritmikus eset Az előző pont jelöléseivel, először feltesszük, hogy θ transzcendens és logaritmikus, θ=u/u , uKn1. Maradékos osztással f(θ)=p(θ)g(θ)+h(θ), ahonnan f(θ)g(θ)=p(θ)+h(θ)g(θ). A racionális függvények integrálásával ellentétben, most a polinomrész integrálása a nehezebb. Ezért a racionális rész integrálásával kezdjük. Logaritmikus eset, racionális rész Legyen g(θ)=g1(θ)g22(θ)gmm(θ) a g(θ) négyzetmentes felbontása. Ekkor lnko (gj(θ),ddθgj(θ))=1 nyilván teljesül. Megmutatható, hogy a jóval erősebb lnko (gj(θ),gj(θ))=1 feltétel is teljesül. Parciális törtekre bontással h(θ)g(θ)=i=1mj=1ihi,j(θ)gi(θ)j. Hermite-redukciót fogunk használni: a bővített euklidészi algoritmussal kaphatunk olyan s(θ),t(θ)Kn1[θ] polinomokat, amelyekre s(θ)gi(θ)+t(θ)gi(θ)=hi,j(θ) és degs(θ),degt(θ)<deggi(θ). Innen parciális integrálással hi,j(θ)gij(θ)=t(θ)gi(θ)gi(θ)j+s(θ)gi(θ)j1=t(θ)(j1)gi(θ)j1+t(θ)(j1)gi(θ)j1+s(θ)gi(θ)j1=t(θ)(j1)gi(θ)j1+s(θ)+t(θ)/(j1)gi(θ)j1. Addig alkalmazva ezt az eljárást, amíg j>1, azt kapjuk, hogy h(θ)g(θ)=c(θ)d(θ)+a(θ)b(θ), ahol a(θ),b(θ),c(θ),d(θ)Kn1[θ] , dega(θ)<degb(θ) és b(θ) négyzetmentes főpolinom. Megmutatható, hogy az a(θ)/b(θ) integrál kiszámítására a Rothstein– Trager-módszer alkalmazható. Számítsuk ki az r(y)= res θ(b(θ),a(θ)yb(θ)) rezultánst. Megmutatható, hogy az integrál pontosan akkor elemi, ha r(y)=ør(y)s alakban írható, ahol ør(y)K[y] és sKn1 . Ha tehát kiszámítjuk r(y) primitív részét, ezt választjuk ør(y) -nak, és ør(y) bármelyik együtthatója nem konstans, akkor nem létezik elemi integrál. Egyébként legyenek c1,...,ck az ør(y) különböző gyökei annak felbontási testében és legyen vi(θ)= lnko (b(θ),a(θ)cib(θ))Kn1(c1,...,ck)[θ], ha i=1,...,k. Megmutatható, hogy a(θ)b(θ)=i=1kcilog(vi(θ)). Tekintsünk néhány példát. 1.24. példa. Az 1/log(x) integrál integrandusa 1/θQ(x,θ) , ahol θ=log(x). Mivel r(y)= res θ(θ,1y/x)=1y/xQ(x)[y] primitív polinom és van nem konstans együtthatója, az integrál nem elemi. 1.25. példa. Az 1/(xlog(x)) integrál integrandusa 1/(xθ)Q(x,θ), ahol θ=log(x). Itt r(y)= res θ(θ,1/xy/x)=1/xy/xQ(x)[y], aminek primitív része 1y. Ennek minden együtthatója konstans, így az integrál elemi, c1=1,v1(θ)= lnko (θ,1/x1/x)=θ, így 1xlog(x)=c1log(v1(θ))=log(log(x)). Logaritmikus eset, polinom rész Marad a p(θ)=pkθk+pk1θk1++p0Kn1[θ] polinomrész integrálásának problémája. A Liouville-elv szerint p(θ) pontosan akkor elemi, ha p(θ)=v0(θ)+j=1kcjvj(θ)vj(θ), ahol cjK és viKn1(θ) , ha j=0,1,...,m, továbbá KC a K valamely bővítése és Kn1=K(x,θ1,...,θn1). Meg fogjuk mutatni, hogy K lehet a K egy algebrai bővítése. Hasonlóan érvelve, mint a Liouville-elv bizonyításában, megmutatható, hogy v0(θ)Kn1[θ] és vj(θ)Kn1 (azaz független θ -tól), ha j=1,2,...,m. Így p(θ)=v0(θ)+j=1mcjvjvj. A Liouville-elv bizonyításánál használt érveléssel azt is megkapjuk, hogy v0(θ) foka legfeljebb k+1. így ha v0(θ)=qk+1θk+1+qkθk++q0, akkor pkθk+pk1θk1++p0=(qk+1θk+1+qkθk++q0)+j=1mcjvjvj. Innen a következő egyenletrendszert kapjuk: 0=qk+1,pk=(k+1)qk+1θ+qk,pk1=kqkθ+qk1,p1=2q2θ+q1,p0=q1θ+øq0, ahol az utolsó egyenletben øq0=q0+j=1mcjlog(vj). Az első egyenlet megoldása egyszerűen egy bk+1 konstans. Ezt visszahelyettesítve a következő egyenletbe és mindkét oldalt integrálva azt kapjuk, hogy pk=(k+1)bk+1θ+qk. Az integrálási eljárást rekurzív módon alkalmazva pkKn1 integrálja kiszámítható, azonban ez az egyenlet csak akkor oldható meg, ha az integrál elemi, és legfeljebb egy logaritmikus bővítést használ és az éppen θ=log(u) . Ha ez nem teljesül, akkor p(θ) nem lehet elemi. Ha ez teljesül, akkor pk=ckθ+dk valamely ckK és dkKn1 -gyel, ahonnan bk+1=ck+1/(k+1)K és qk=dk+bk egy tetszőleges bk integrációs konstanssal. Behelyettesítve qk -t a következő egyenletbe és átrendezve pk1kdkθ=kbkθ+qk1, vagyis mindkét oldalt integrálva (pk1kdkuu)=kbkθ+qk1 adódik. A jobb oldalon az integrandus Kn1 -beli, így az integrációs eljárást rekurzív módon hívhatjuk. Ugyanúgy mint fent, az egyenlet csak akkor oldható meg, ha az integrál elemi, és legfeljebb egy logaritmikus bővítést használ és az éppen θ=log(u) . Tegyük fel, hogy ez teljesül és (pk1kdkuu)=ck1θ+dk1, ahol ck1K és dk1Kn1. Ekkor a keresett megoldás bk=ck1/kK és qk1=dk1+bk1, ahol bk1 egy tetszőleges integrációs konstans. Az eljárást folytatva, az utolsó előtti egyenlet megoldása b2=c1/2K és q1=d1+b1 valamely b1 integrációs konstanssal. Behelyettesítve q1 -et az utolsó egyenletbe, átrendezve, majd integrálva (p0d1uu)=b1θ+øq0. Ez alkalommal csak az a feltétel, hogy az integrál elemi függvény legyen. Ha elemi függvény, mondjuk (p0d1uu)=d0Kn1, akkor b1K a θ=log(u) együtthatója d0 -ban és øq0=d0b1log(u), az eredmény pedig p(θ)=bk+1θk+1+qkθk++q1θ+øq0. Nézzünk néhány példát. 1.26. példa. Az log(x) integrál integrandusa θQ(x,θ), ahol θ=log(x). Ha az integrál elemi, akkor θ=b2θ2+q1θ+øq0 és 0=b2,1=2b2θ+q1,0=q1θ+øq0. Az ismeretlen b2 konstanssal a második egyenletből 1=2b2θ+q1. Mivel 1=x+b1 , azt kapjuk, hogy b2=0 , q1=x+b1. A harmadik egyenletből xθ=b1θ+øq0. Mivel θ=1/x, integrálva 1=b1θ+øq0, és 1=x, azt kapjuk, hogy b1=0,øq0=x, így log(x)=xlog(x)x. 1.27. példa. Az log(log(x)) integrál integrandusa θ2Q(x,θ1,θ2), ahol θ1=log(x) és θ2=log(θ1). Ha az integrál elemi, akkor θ2=b2θ22+q1θ2+øq0 és 0=b2,1=2b2θ2+q1,0=q1θ2+øq0. Az ismeretlen b2 konstanssal a második egyenletből 1=2b2θ+q1. Mivel 1=x+b1, azt kapjuk, hogy b2=0,q1=x+b1. A harmadik egyenletből xθ2=b1θ2+øq0. Mivel θ2=θ1/θ1=1/(xlog(x)), teljesülnie kell az 1log(x)=b1θ2+øq0 egyenlőségnek, azonban a 1.24. példából tudjuk, hogy a bal oldalon álló integrál nem elemi. Risch-algoritmus: exponenciális eset Most feltesszük, hogy θ transzcendens és exponenciális, θ/θ=u , uKn1 . Maradékos osztással f(θ)=q(θ)g(θ)+h(θ) , ahonnan f(θ)g(θ)=q(θ)+h(θ)g(θ). Tervünk az, hogy a racionális részre Hermite módszerét fogjuk alkalmazni. Kellemetlen meglepetés ér azonban bennünket, mert a négyzetmentes felbontásban szereplő gj(θ) függvényekre bár lnko (gj(θ),ddθgj(θ))=1 nyilván teljesül, a jóval erősebb lnko (gj(θ),gj(θ))=1 feltétel már nem. Például ha gj(θ)=θ , akkor lnko (gj(θ),gj(θ))= lnko (θ,uθ)=θ. Megmutatható azonban, hogy ez a kellemetlen jelenség nem lép fel, ha θgj(θ) , ekkor már lnko (gj(θ),gj(θ))=1 . Elég tehát, ha a θ tényezőt eltávolítjuk a nevezőből. Legyen g(θ)=θøg(θ) , ahol már θøg(θ) , és keressünk olyan øh(θ),s(θ)Kn1[θ] polinomokat, amelyekre øh(θ)θ+t(θ)øg(θ)=h(θ) , degøh(θ)<degøg(θ) és degs(θ)< . Mindkét oldalt osztva g(θ) -val azt kapjuk, hogy f(θ)g(θ)=q(θ)+t(θ)θl+h(θ)g(θ). A p(θ)=q(θ)+t(θ)/θl jelöléssel p(θ) véges Laurent-sor, ennek integrálása azonban semmivel sem lesz nehezebb, mint egy polinom integrálása. Ez nem meglepő, ha meggondoljuk, hogy θ1= exp (u) . Még így is, itt is a,,polinomrész” integrálása a nehezebb. A másikkal kezdjük. Exponenciális eset, racionális rész Legyen øg(θ)=g1(θ)g22(θ)gmm(θ) a øg(θ) négyzetmentes felbontása. Ekkor θgj(θ) miatt lnko (gj(θ),gj(θ))=1. Parciális törtekre bontással h(θ)g(θ)=i=1mj=1ihi,j(θ)gi(θ)j. A Hermite-redukció ugyanúgy megy, mint a logaritmikus résznél. Azt kapjuk, hogy h(θ)g(θ)=c(θ)d(θ)+a(θ)b(θ), ahol a(θ),b(θ),c(θ),d(θ)Kn1[θ] , dega(θ)<degb(θ) és b(θ) négyzetmentes főpolinom, θb(θ). Megmutatható, hogy az a(θ)/b(θ) integrál kiszámítására a Rothstein– Trager-módszer alkalmazható. Számítsuk ki a r(y)= res θ(b(θ),a(θ)yb(θ)) rezultánst. Megmutatható, hogy az integrál pontosan akkor elemi, ha r(y)=ør(y)s alakban írható, ahol ør(y)K[y] és sKn1. Ha tehát kiszámítjuk r(y) primitív részét, ezt választjuk ør(y) -nak, és ør(y) bármelyik együtthatója nem konstans, akkor nem létezik elemi integrál. Egyébként legyenek c1,...,ck az ør(y) különböző gyökei annak felbontási testében és legyen vi(θ)= lnko (b(θ),a(θ)cib(θ))Kn1(c1,...,ck)[θ], ha i=1,...,k. Megmutatható, hogy a(θ)b(θ)=((i=1kcidegvi(θ)))+i=1kcilog(vi(θ)). Nézzünk néhány példát. 1.28. példa. Az 1/(1+ exp (x)) integrál integrandusa 1/(1+θ)Q(x,θ), ahol θ= exp (x). Mivel r(y)= res θ(θ+1,1yθ)=1yQ(x)[y] primitív polinom és csak konstans együtthatói vannak, az integrál elemi, c1=1,v1(θ)= lnko (θ+1,1+θ)=1+θ, így 11+ exp (x)=c1xdegv1(θ)+c1log(v1(θ))=xlog( exp (x)+1). 1.29. példa. Az x/(1+exp (x)) integrál integrandusa x/(1+θ)Q(x,θ), ahol θ= exp (x). Mivel r(y)= res θ(θ+1,xyθ)=xyQ(x)[y] primitív polinom, amelynek van nem konstans együtthatója, az integrál nem elemi. Exponenciális eset, polinom rész Marad a p(θ)=i=kpiθiKn1(θ) ,,polinomrész” integrálásának problémája. A Liouville-elv szerint p(θ) pontosan akkor elemi, ha p(θ)=v0(θ)+j=1mcjvj(θ)vj(θ), ahol cjK és vjKn1(θ) , ha j=0,1,...,m, továbbá KC a K valamely bővítése és Kn1=K(x,θ1,...,θn1). Megmutatható, hogy K lehet a K egy algebrai bővítése. Hasonlóan érvelve, mint a Liouvilleelv bizonyításában, megmutatható, hogy az általánosság megszorítása nélkül feltehetjük: vj(θ) vagy Kn1 eleme (azaz független θ -tól) vagy pedig főpolinom és irreducibilis Kn1[θ] ban, ha j=1,2,...,m . Továbbá az is belátható, hogy v0(θ) nevezőjében nem lehet nem monom tényező, mivel egy ilyen tényező megmaradna a derivált nevezőjében is. Hasonlóan vj(θ) -nak (j=1,2,...,m) sem lehet nem monom tényezője. Így azt kapjuk, hogy vj(θ) vagy Kn1 eleme, vagy pedig vj(θ)=θ , mivel ez az egyetlen irreducibilis monom, amely főpolinom. Ha azonban vj(θ)=θ, akkor a megfelelő tag az összegben cjvj(θ)/vj(θ)=cju, ami beolvasztható v0(θ) -be. Ebből azt kapjuk, hogy ha p(θ) -nak van elemi integrálja, akkor p(θ)=((j=kqjθj))+j=1mcjvjvj, ahol qj,vjKn1 és cjK; az, hogy az összegzési határok az első összegben meg kell egyezzenek a p(θ) előállításában szereplő összegzési határokkal, következik abból, hogy (qjθj)=(qj+jugj)θj. Az együtthatók összehasonlításával a pj=qj+juqj,hajk,j0,p0=øq0, egyenletrendszert kapjuk, ahol øq0=q0+j=1mcjlog(vj). A p0=øq0 egyenlet megoldása egyszerűen øq0=p0; ha ez az integrál nem elemi, akkor p(θ) sem elemi, ha viszont elemi, akkor meghatároztuk øq0 -at. A j0 esetben egy differenciálegyenletet kell megoldanunk qj meghatározásához, az úgynevezett Risch-differenciálegyenletet. A differenciálegyenlet y+fy=g alakú, ahol az adott f,g függvények Kn1 elemei és Kn1 -beli megoldásokat keresünk. Első pillantásra úgy tűnik, hogy az integrálás problémáját egy nehezebb problémával helyettesítettük, azonban az, hogy az egyenletek lineárisak, a megoldásnak pedig Kn1 -ben kell lenni, sokat segít. Ha valamelyik Risch-differenciálegyenletnek nincs Kn1 -beli megoldása, akkor p(θ) nem elemi, egyébként p(θ)=j0qjθj+øq0. A Risch-differenciálegyenlet algoritmussal megoldható, ezt nem részletezzük. Tekintsünk néhány példát. 1.30. példa. Az exp (x2) integrál integrandusa θQ(x,θ) , ahol θ= exp (x2). Ha az integrál elemi, akkor θ=q1θ , ahol q1C(x). Nem nehéz belátni, hogy a differenciálegyenletnek nincs racionális megoldása, így exp (x2) nem elemi. 1.31. példa. Az xx integrál integrandusa exp (xlog(x))=θ2Q(x,θ1,θ2), ahol θ1=log(x) és θ2= exp (xθ1). Ha az integrál elemi, akkor θ2=q1θ2 , ahol q1C(x,θ1). Mindkét oldal differenciálva θ2=q1θ2+q1(θ1+1)θ2, ahonnan 1=q1+(θ1+1)q1. Mivel θ1 transzcendens C(x) felett, az együtthatók összehasonlításával 1=q1+q1 és 0=q1, aminek nincs megoldása. így xx nem elemi. 1.32. példa. Az (4x2+4x1)(exp (x2)+1)(exp (x2)1)(x+1)2 integrál integrandusa f(θ)=4x2+4x1(x+1)2(θ21)Q(x,θ), ahol θ= exp (x2). Ha az integrál elemi, akkor f(θ)=q2θ2+q0 alakú, ahol q2+4xq2=4x2+4x1(x+1)2,q0=4x2+4x1(x+1)2. A második egyenlet integrálható, és q0 elemi. Az első egyenletnek megoldása q2=1/(1+x). Innen f(θ)=1x+1 exp 2(x2)(2x+1)2x+1+4log(x+1). Gyakorlatok 1.4–1. Alkalmazzuk a Hermite-redukciót az alábbi f(x)Q(x) függvényre: f(x)=441x7+780x6286x5+4085x4+769x3+3713x243253x+245009x6+6x565x4+20x3+135x2154x+49. 1.4–2. Számítsuk ki az f integrált, ahol f(x)=36x6+126x5+183x4+13807/6x3407x23242/5x+3044/15(x2+7/6x+1/3)2(x2/5)3Q(x). 1.4–3. Alkalmazzuk a Risch-algoritmust az alábbi integrál kiszámítására: x(x+1){(x2e2x2log(x+1)2)+2xe3x2(x(2x3+2x2+x+1)log(x+1))}((x+1)log2(x+1)(x3+x2)e2x2)2dx. 1.5. Elmélet és gyakorlat A fejezet eddigi részében arra törekedtünk, hogy néhány lényeges szimbolikus algoritmus bemutatásán keresztül érzékeltessük a komputeralgebra tudományterületének algoritmustervezési problémáit. A következőkben az érdeklődő Olvasó áttekintést kaphat a szimbolikus algoritmusok kutatásának szélesebb világából. 1.5.1. Egyéb szimbolikus algoritmusok A fejezetben bemutatott rezultánsmódszer és a Gröbner-bázis elmélet mellett létezik algoritmus nemlineáris egyenletek és egyenlőtlenségek valós szimbolikus gyökeinek meghatározására is (Collins). Figyelemre méltó algoritmusok születtek differenciálegyenletek szimbolikus megoldásainak vizsgálata során. A Risch-algoritmushoz hasonló döntési eljárás létezik racionálisfüggvény-együtthatójú homogén másodrendű közönséges differenciálegyenletek zárt alakú megoldásainak kiszámítására. Magasabb rendű lineáris esetben az Abramov-eljárás a polinomegyütthatós egyenletek zárt racionális megoldásait, a Bronstein-algoritmus pedig az exp (f(x)dx) alakú megoldásokat határozza meg. Parciális differenciálegyenletek esetében a Lie-féle szimmetria-módszerek állnak rendelkezésre. Létezik algoritmus formális hatványsorok és racionális függvények feletti lineáris differenciáloperátorok faktorizálására is. A faktorizáláson alapuló eljárások komoly jelentőséggel bírnak a komputeralgebrai algoritmusok kutatásában. Olyannyira igaz ez a megállapítás, hogy sokan az egész tudományterület születését Berlekamp azon publikációjától számítják, amelyben hatékony algoritmust ad kis p karakterisztikájú véges testek feletti egyhatározatlanú polinomok faktorizációjára. Berlekamp eredményét később nagyobb p karakterisztikákra is kiterjesztette. Azért, hogy hasonlóan jó futási időt kapjon, az algoritmusába véletlen elemeket illesztett. A mai komputeralgebra rendszerek nagyobb véges testekre is rutinszerűen alkalmazzák Berlekamp eljárását talán anélkül, hogy a felhasználók többségének az algoritmus valószínűségi eredetéről tudomása lenne. A módszer könyvünk második kötetében kerül ismertetésre. Megjegyezzük, hogy véges testek feletti polinomok faktorizálására számos algoritmus létezik. Nem sokkal azután, hogy a véges testek feletti polinomfaktorizáció megoldódott, Zassenhaus – van der Waerden 1936-os Moderne Algebra könyvét alapul véve – a p -adikus számok aritmetikájának ún. Hensel-lemmáját alkalmazta a faktorok kiterjesztésére. A,,Hensel-lifting” – ahogy ma az eljárását nevezik – általános megközelítési módszer arra, hogyan rekonstruáljuk a faktorokat moduláris képeikből. Az interpolációval ellentétben, ami több képpont meglétét követeli meg, a Hensel-lifting kiindulásul csak egyetlen képpontot igényel. Az egész együtthatós polinomok faktorizációjára adott Berlekamp–Zassenhaus-féle algoritmus alapvető jelentőségű, mégis rejteget magában két csapdát. Az egyik, hogy bizonyos fajta polinomokra az algoritmus futási ideje exponenciális. Sajnos, az algebrai számtestekre épített polinomok faktorizációjánál sok ilyen,,rossz” polinom kerül elő. A második, hogy többváltozós polinomokra hasonló reprezentációs probléma lép fel, mint amilyet ritka mátrixok Gauss-eliminációjánál tapasztalunk. Az első problémát egy, a számok geometriáján alapuló diofantoszi optimalizálás, a Lenstra–Lenstra–Lovász nevével fémjelzett ún. rácsredukciós algoritmus oldotta meg, amit a Berlekampmódszerrel együtt használnak. Ezen polinomiális algoritmus mellé még egy olyan eljárás társul, amely arról gondoskodik, hogy a Hensel-lifting ,,jó” moduláris képről induljon és,,megfelelő időben” véget érjen. A többváltozós polinomfaktorizáció említett reprezentációs problémájára is születtek megoldások. Ez a második olyan terület, ahol a véletlenítés kritikus szerepet kap a hatékony algoritmusok tervezésében. Megjegyezzük, hogy a gyakorlatban a Berlekamp– Zassenhaus–Hensel-féle algoritmus hatékonyabban működik, mint a Lenstra– Lenstra–Lovász-féle eljárás. Összevetésképpen a polinomfaktorizálás problémája tehát polinomiális időben megoldható, míg az N egész faktorizálására a bizonyítottan legjobb algoritmikus korlát O~(N1/4) (Pollard és Strassen) a determinisztikus, és L(N)1+o(1) (Lenstra és Pomerance) a valószínűségi esetben, ahol L(N)=e2lnNlnlnN. Valójában a heurisztikus, valószínűségi módszereknek egy új elmélete van születőben a komputeralgebrában egyrészt az számítási tárrobbanás elkerülésére, másrészt a determinisztikusan nagy futási idejű algoritmusok hatékonyságának növelésére. A valószínűségi algoritmusok esetében a nem megfelelő működésnek is van pozitív valószínűsége, ami vagy az esetleges rossz válaszban nyilvánul meg (Monte Carlo csoport), vagy, habár sohasem kapunk rossz választ (Las Vegas csoport), elképzelhető, hogy polinomiális időben nem kapunk semmit. A már említetteken kívül heurisztikákkal szép eredményeket értek el többek között polinomazonosság tesztelésénél, polinomok irreducibilitásának vizsgálatánál, mátrixok normálformáinak (Frobenius, Hilbert, Smith) meghatározásánál. Szerepük minden valószínűség szerint a jövőben is növekedni fog. A fejezet eddigi részében a lényegesebb szimbolikus algoritmusokat tekintettük át. Már a bevezetőben említettük, hogy a komputeralgebra-rendszerek többsége képes numerikus számítások elvégzésére is: a hagyományostól eltérően a számítási pontosságot a felhasználó határozhatja meg. Gyakran előfordul, hogy a szimbolikus és numerikus számításokat együtt célszerű használni. Tekintsük például egy differenciálegyenlet szimbolikusan kiszámolt hatványsor megoldását. A csonkított hatványsort ezután bizonyos pontokban a szokásos lebegőpontos aritmetikával kiértékelve a differenciálegyenlet megoldásának numerikus approximációját kapjuk. Amennyiben a megoldandó probléma valamilyen valós fizikai probléma approximációja, a szimbolikus számítások vonzó lehetőségei gyakran érvényüket vesztik; egyszerűen mert túl bonyolultak vagy túl lassúak ahhoz, hogy hasznosak vagy szükségesek legyenek, hiszen a megoldást is numerikusan keressük. Más esetekben, ha a probléma szimbolikusan kezelhetetlen, az egyetlen lehetséges út a numerikus approximációs módszerek használata. Ilyen akkor fordulhat elő, ha a létező szimbolikus algoritmus nem talál zárt megoldást (pl. nem elemi függvények integrálja stb.), vagy nem létezik a problémát kezelni tudó szimbolikus algoritmus. Ámbár egyre több numerikus algoritmusnak létezik szimbolikus megfelelője, a numerikus eljárások nagyon fontosak a komputeralgebrában. Gondoljunk csak a differenciálés integrálszámítás területére: bizonyos esetekben a hagyományos algoritmusok – integráltranszformációk, hatványsor-approximációk, perturbációs módszerek – lehetnek a legcélravezetőbbek. A komputeralgebra algoritmusok tervezésénél a jövőben egyre nagyobb szerepet kapnak a párhuzamos architektúrájú számítógépek. Habár sok meglévő algoritmus,,ránézésre” párhuzamosítható, nem biztos, hogy a jó szekvenciális algoritmusok párhuzamos architektúrákon is a legjobbak lesznek: az optimum talán egy teljesen különböző eljárással érhető el. 1.5.2. A komputeralgebra-rendszerek áttekintése A komputeralgebra-rendszerek fejlődésének története szoros kapcsolatban áll az informatika és az algoritmikus matematika fejlődésével. A számítástechnika kezdeti időszakában a különböző tudományterületek művelői szimbolikus számítási igényeik megkönnyítése és felgyorsítása érdekében kezdték el fejleszteni az első komputeralgebra-rendszereket, amelyek átdolgozva, folyamatosan megújulva és a sokadik változatban napjainkban is jelen vannak. A hetvenes években jelentek meg az általános célú komputeralgebra-rendszerek, amelyeket beépített adatstruktúrák, matematikai függvények és algoritmusok széles tárháza jellemez, minél nagyobb felhasználói területet próbálva meg lefedni. A jelentős számítógépes erőforrásigény miatt robbanásszerű elterjedésük a nyolcvanas évek elejére, a mikroprocesszor alapú munkaállomások megjelenésének idejére tehető. A jobb hardver környezet, a hatékonyabb erőforrás-gazdálkodás, rendszerfüggetlen, magasszintű alapnyelv használata, és nem utolsósorban a társadalmi-gazdasági igények fokozatosan piaci termékké érlelték az általános célú komputeralgebra-rendszereket, ami viszont erős javulást hozott a felhasználói felület és dokumentumkészítés terén. Az alábbiakban a legismertebb általános és speciális célú komputeralgebra rendszereket, könyvtárakat soroljuk fel. 1. Általános célú komputeralgebra rendszerek: AXIOM, DERIVE, FORM, GNU-CALC, JACAL, MACSYMA, MAXIMA, MAPLE, DISTRIBUTED MAPLE, MATHCAD, MATLAB SYMBOLIC, MATH TOOLBOX, SCILAB, MAS, MATHEMATICA, MATHVIEW, MOCK-MMA, MuPAD, REDUCE, RISA. 2. Algebra és számelmélet: Bergman, CoCoA, Felix, Fermat, GRB, Kan, Macaulay, Magma, Numbers, Pari, Simath, Singular.3. Algebrai geometria: CASA, GANITH.4. Csoportelmélet: GAP, LiE, MAGMA, SCHUR.5. Tenzor analízis: CARTAN, FEYNCALC, GRG, GRTENSOR, MATHTENSOR, REDTEN, RICCI, TTC.6. Komputeralgebra könyvtárak: Apfloat, BigNum, GNU MP, Kant, LiDiA, NTL, Saclib, Ubasic, Weyl, Zen. Az általános célú komputeralgebra rendszerek többsége olyan tulajdonságokkal bír, mint 1. interaktivitás,2. matematikai tények ismerete,3. matematikai objektumok kezelésére képes deklaratív, magas szintű programozási nyelv funkcionális programozási lehetőségekkel (a deklaratív programozási nyelvek a kívánt eredményt specifikálják és nem a hozzájuk vezető utat, mint ahogy az imperatív nyelvek teszik), 4. az operációs rendszer és más programok felé való kiterjeszthetőség, 5. szimbolikus és numerikus számítások integrálása, 6. automatikus (optimalizált) C és Fortran kódszegmens generálása, 7. grafikus felhasználói környezet, 8. 2 és 3 dimenziós grafika, animáció, 9. szövegszerkesztési lehetőség és automatikus LA T E X konverzió, 10. on-line súgó.A komputeralgebra-rendszereket matematikai szakértői rendszereknek is nevezik. Napjainkban az általános célú komputeralgebra-rendszerek szédítő iramú fejlődésének lehetünk szemtanúi, elsősorban tudásuknak és széles körű alkalmazhatóságuknak köszönhetően. Mégis hiba volna alábecsülni a speciális rendszereket, amelyek egyrészt igen fontos szerepet játszanak sok tudományterületen, másrészt sok esetben könnyebben kezelhetők és hatékonyabbak, jelölésrendszerük és algoritmusaik alacsony szintű programnyelvi megvalósításaa miatt. Nagyon lényeges, hogy egy adott probléma megoldásához az arra legalkalmasabb komputeralgebrarendszert válasszuk ki. Feladatok 1-1. Maradékos osztás maradéksorozata együtthatói hosszának vizsgálata Generáljunk két (n=10) -ed fokú pszeudovéletlen polinomot Z[x] -ben l=10 decimális jegyből álló együtthatókkal. Hajtsunk végre egyetlen maradékos osztást ( Q[x] -ben) és számítsuk ki a maradék polinom és az eredeti polinom ( λ függvénnyel meghatározott) maximális együtthatóhosszának arányát. Ismételjük meg a számításokat (t=20) -szor és számítsunk átlagot. Mennyi lesz a kapott érték? Ismételjük meg a fenti kísérletet l=100,500,1000 esetén. 1-2. A MODULÁRIS-LNKO-KISPRIMEK algoritmus szimulációs vizsgálata Szimulációs vizsgálattal adjunk becslést a MODULÁRIS-LNKO-KISPRIMEK algoritmusban az n változó optimális értékére. Használjunk véletlen polinomokat különböző fokszám és együttható-nagyság esetén. 1-3. Módosított pszeudo-maradékos osztás Legyen f,gZ[x],degf=mn=degg. A pszeudo-maradékos osztást módosítsuk oly módon, hogy a gnsf=gq+r egyenletnél az s=mn+1 kitevő helyett a lehető legkisebb olyan sN érték szerepeljen, amellyel q,rZ[x]. Az így származtatott spquo () és sprem () eljárásokkal helyettesítve a Primitív-Euklidesz algoritmus pquo () és prem () eljárásait véletlen polinomokat alkalmazva vessük össze az algoritmusok tárigényét. 1-4. Redukált Gröbnerbázis konstrukciója Tervezzünk algoritmust, amely adott G Gröbner-bázisból redukált Gröbnerbázist állít elő. 1-5. A Hermite-redukció megvalósítása Valósítsuk meg a Hermite-redukciót valamilyen választott komputeralgebra nyelven. 1-6. Racionális törtfüggvény integrálása Írjunk programot a racionális törtfüggvények integrálására. Megjegyzések a fejezethez A KLASSZIKUS-EUKLIDESZ és BŐVÍTETT-EUKLIDESZ algoritmusok nemnegatív egész bemenet esetén működő változata megtalálható [7]-ben. A rezultánsok elméletének természetes folytatásaként juthatunk el a szubrezultánsokhoz, melynek segítségével a BŐVÍTETTEUKLIDESZ algoritmus során látott együttható-növekedés jól kordában tartható (lásd például [9] [10]). A Gröbner-bázisokat B. Buchberger vezette be 1965-ben [2]. Polinomideálok bázisaival több szerző is foglalkozott ezt megelőzően. A legismertebb talán Hironaka , aki 1964-ben C feletti szingularitások feloldására hatványsorok ideáljainak bázisát használta. Munkájáért Fields-érmet kapott. Azonban Hironaka módszere nem volt konstruktív. A Gröbner-bázisokat az utóbbi két évtizedben számos algebrai struktúrára általánosították. A differenciálalgebra alapjait J. F. Ritt fektette le 1948-ban [26]. A szimbolikus integrálás során használt négyzetmentes felbontás algoritmusa megtalálható például a [9] [10] könyvekben. A Hermite-redukcióban a testbővítés foka lehető legkisebbre választásának fontosságát igazolja a [10]-ben található 11.11. példa, amelyben a felbontási test rendkívül magas fokú, míg az integrál egy másodfokú testbővítésben felírható. A Rothstein–Trager-féle integráló algoritmus bizonyítása megtalálható [9]-ben (22.8. tétel). Megjegyezzük, hogy az algoritmust Rothstein és Trager egymástól függetlenül találták. A Lazard–Rioboo–Trager-formula helyességének bizonyítása, a Logaritmikus-rész-integrál algoritmus futási idejének elemzése, az algebrai kiterjesztési lépések nehézségének kezelésével kapcsolatos eljárások vázlatos ismertetése, a C(x) felett hiperexponenciális elem hiperexponenciális integráljának meghatározása (ha ilyen létezik), a Liouville-elv bizonyítása, a Risch-algoritmussal kapcsolatos állítások bizonyításai megtalálhatók a [9] könyvben. A komputeralgebráról és a kapcsolódó tudományterületekről számos publikáció és könyv született. Magyar nyelven [7], [12] és [21] érhető el. Angolul az érdeklődőknek az összefoglaló matematikai jellegű munkák közül felsorolunk néhányat: Caviness [3], Davenport és társai [8], von zur Gathen és társai [9], Geddes és társai [10], Knuth [17] [18] [19], Mignotte [22], Mishra [23], Pavelle és társai [25], Winkler [28]. A komputeralgebra informatikai oldaláról az érdeklődő Olvasó további információt találhat az alábbiakban: Christensen [4], Gonnet és Gruntz [11], Harper és társai [14], valamint a világhálón. Az alkalmazásokról könyvek és cikkek nagyon széles választéka áll rendelkezésre, pl. Akritas [1], Cohen és társai (ed.) [5] [6], Grossman (ed.) [13], Hearn (ed.) [15], Kovács [20] és Odlyzko [24]. A komputeralgebra-rendszerek oktatásban betöltött szerepéről lásd pl. Karian [16] és Uhl [27] munkáját. Konferencia kiadványok: AAECC, DISCO, EUROCAL, EUROSAM, ISSAAC és SYMSAC. Komputeralgebra folyóiratok: Journal of Symbolic Computation – Academic Press, Applicable Algebra in Engineering, Communication and Computing – Springer-Verlag, SIGSAM Bulletin – ACM Press. Az Eötvös Loránd Tudományegyetem Informatikai Karának Komputeralgebra Tanszéke az oktatásban a [10] [22] [9] [28] munkákat veszi alapul. Irodalomjegyzék [1] A. G. Akritas. Elements of Computer Algebra with Applications . John Wiley & Sons, 1989. [2] B. Buchberger. Ein Algorithmus zum Auffinden der Basiselemente des Restklassenringes nach einem nulldimensionalen Polynomideal , 1965. PhD disszertáció, Leopold Franzens -Universit¨at, Innsbruck. [3] B. F. Caviness. Computer algebra: past and future . Journal of Symbolic Computations, 2:217–263, 1986. [4] S. M. Christensen. Resources for Computer Algebra . Computers in Physics, 8:308–315, 1994. [5] A. M. Cohen, L. van Gasten, és S. Lunel, editors. Computer Algebra for Industry 2, Problem Solving in Practice . John Wiley & Sons, 1995. [6] A. M. Cohen, szerkesztő. Computer Algebra for Industry: Problem Solving in Practice . John Wiley & Sons, 1993. [7] T. H. Cormen, C. E. Leiserson, R. L. Rivest, és C. Stein. Introduction to Algorithms . The MIT Press/McGraw -Hill, 2004 (Második kiadás ötödik, javított utánnyomása. Magyarul: Új algoritmusok. Scolar Kiadó, 2003). [8] J. Davenport, Y. Siret, és E. Tournier, E.. Computer Algebra: Systems and Algorithms for Algebraic Computation . Academic Press, 2000. [9] J. Gathen, von zur. Modern Computer Algebra . Cambridge University Press, 2003. [10] K. O. Geddes S. Czapor és G. Labahhn. Algorithms for Computer Algebra . Kluwer Academic Publishers, 1992. [11] G. Gonnet, D. Gruntz, és L. Bernardin. Computer Algebra Systems . In A. Ralston, E. D. Reilly, és D. Hemmendinger, editors, Encyclopedia of Computer Science, pages 287–301. Nature Publishing Group, 4. kiadás, 2000. [12] R. L. Graham, D. E. Knuth, és O. Patashnik. Concrete Mathematics . Addison -Wesley, 1994 (2. kiadás. Magyarul: Konkrét matematika, Műszaki Könyvkiadó, 1998). [13] R. Grossman. Symbolic Computation: Applications to Scientific Computing , volume 5 of Frontiers in Applied Mathematics. SIAM, 1989. [14] D. Harper és C. Wooff D. Hodginson. A Guide to Computer Algebra Systems . John Wiley & Sons, 1991. [15] A. C. Hearn. Future Directions for Research in Symbolic Computation . SIAM Reports on Issues in the Mathematical Sciences. SIAM, 1990. [16] Z. Karian és A. Starrett. Use of Symbolic Computation in Probability and Statistics . In Z. Karian, szerkesztő, Symbolic Computation in Undergraduate Mathematics Education, number 24 in Notes of Mathematical Association of America. Mathematical Association of America, 1992. [17] D. E. Knuth. Fundamental Algorithms , volume 1 of The Art of Computer Programming. Addison -Wesley, 1968 (3., javított kiadás 1997. Magyarul: A számítógép-programozás művészete. 1. kötet. Alapvető algoritmusok, Műszaki Könyvkiadó, 1993, 2. kiadás.). [18] D. E. Knuth. Seminumerical Algorithms , volume 2 of The Art of Computer Programming. Addison -Wesley, 1969 (3. javított kiadás 1998. Magyarul: A számítógép-programozás művészete. 2. kötet. Szeminumerikus algoritmusok, Műszaki Könyvkiadó, 1993, 2. kiadás.). [19] D. E. Knuth. Sorting and Searching , volume 3 of The Art of Computer Programming. Addison -Wesley, 1973 (3., javított kiadás 1997. Magyarul: A számítógép-programozás művészete. 3. kötet. Keresés és rendezés, Műszaki Könyvkiadó, 1994, 2. kiadás.). [20] A. Kovács. Komputer algebra a tudományokban és a gyakorlatban (Computer algebra in science and practice) . Alkalmazott Matematikai Lapok, 18:181–202, 1994-98. [21] A. Kovács. Computer Algebra: Impact and Perspectives . Nieuw Archief voor Wiskunde, 17(1):29–55, 1999. [22] M. E. Mignotte. Mathematics for Computer Algebra . Springer, 1992. [23] B. E. Mishra. Algorithmic Algebra . Springer, 1993. [24] A. Odlyzko. Applications of Symbolic Mathematics to Mathematics . Kluwer Academic Publishers, 1985. [25] R. Pavelle és M. Rothstein. Computer Algebra . Scientific American, 245(12):102–113, 1981. [26] J. Ritt. Integration in Finite Terms . Columbia University Press, 1948. [27] J. J. Uhl. mathematica and me . Notices of AMS, 35:1345–1345, 1988. [28] F. Winkler. Polynomial Algorithms in Computer Algebra . Springer -Verlag, 1990. Tárgymutató A, Áalgebrai, bővítés algebrai, elem BBŐVÍTETT-EUKLIDESZ , * , * BŐVÍTETT-EUKLIDESZ-NORMALIZÁLT , * Dderiválás Dickson-lemma , * differenciálalgebra differenciálás differenciálbővítés , * differenciál-kiterjesztés differenciálrésztest , * differenciáltest diszkrimináns E, Éegész számok EHÉPÍT elemi, függvénytest elemi függvény exponenciális elem , * Ffőegyüttható GGauss-elimináció Gröbner-bázis , * , * , * , * , * , * Gröbner-bázis, minimális Hhányados , * hatványsor helyiértékes számábrázolás Hermite-redukció , * , * , * , * , * , * Hilbert-bázis hiperexponenciális elem Horowitz-módszer I, Íideállánc , * integrállogaritmus Kkésleltetett kiértékelés kifejezések egyszerűsítése KLASSZIKUS-EUKLIDESZ , * KLASSZIKUS-EUKLIDESZ algoritmus működése komputeralgebra konstansok részteste köztes számítási tárrobbanás LLaurent-sor Lazard–Rioboo–Trager-formula Leibniz-szabály Liouville-elv , * , * , * , * , * logaritmikus, elem LOGARITMIKUS-RÉSZ-INTEGRÁL Mmaradék , * matematikai szakértői rendszer MODULÁRIS-LNKO-KISPRÍMEK MODULÁRIS-LNKO-NAGYPRÍM moduláris számábrázolás monom NNoether-gyűrű normálalak Pparciális törtekre bontás polinom, összetevője polinom, primitív polinom, többváltozós polinom diszkriminánsa polinomegyenletek, megoldhatósága polinomok-maradékos-osztása, egyhatározatlanú PRIMITÍV-EUKLIDESZ PRIMITÍV-EUKLIDESZ algoritmus működése pszeudo-hányados pszeudo-maradék Rracionális függvények integrálása racionális számok rendezés, monomiális rezultáns , * , * rezultánsmódszer Risch-algoritmus , * , * , * Risch-differenciálegyenlet , * , * Rothstein–Trager-módszer , * , * SS-polinom SZszámítási tárrobbanás szerencsés prím Ttöbbváltozós polinom, főmonomja többváltozós polinom, főtagja többváltozós polinom, multifoka többváltozós polinom, tagjai Névmutató A, ÁAbramov, Szergej Alekszandrovics BBerlekamp, Elwyn Ralph , * , * , * , * Bronstein, Manuel Buchberger, Bruno , * , * , * , * CCaviness, Bob Forrester Cohen, Arjeh M. Collins, Georges Edwin Cramer, Gabriel DDickson, Leonard Eugene , * , * E, ÉEuklidész FFrobenius, Ferdinand Georg GGathen, Joachim, von zur Gauss, Johann Carl Friedrich (1777–1855) , * , * , * Geddes, Keith Oliver Gonnet, Haas Gaston Henry Gröbner, Wolfgang Anton Maria , * , * , * , * , * , * HHearn, Anthony Clern Hensel, Kurt Wilhelm Sebastian , * , * Hermite, Charles (1822–1901) , * , * , * , * , * , * Hilbert, David , * , * , * , * Hironaka, Heisuke Horowitz, Ellis KKnuth, Donald Erwin Kovács Attila LLandau, Edmund Georg Hermann (1877–1938) , * , * , * Laurent, Pierre Alphonse , * , * Lazard, Daniel , * Leibniz, Gottfried Wilhelm (1646–1716) Lenstra, Arjen Klaas , * , * Lenstra, Hendrik Willem Jr. , * Lie, Marius Sophus Liouville, Joseph (1809–1882) , * , * , * , * , * , * , * Lovász László , * MMignotte, Maurice , * , * , * , * , * Mishra, Bhubaneswar NNoether, Emmy (1882–1935) O, ÓOdlyzko, Andrew Michael PPollard, John Michael Pomerance, Karl RRioboo, Renaud , * Risch, Robert , * , * , * , * , * , * , * , * , * Ritt, Joseph Fels Rothstein, Michael , * , * SSmith, Henry John Stephen Strassen, Volker Sylvester, James Joseph (1817–1897) , * , * TTrager, Barry Marshall , * , * , * , * WWaerden, Bartel Leendert, van der (1903–1996) Winkler, Franz ZZassenhaus, Hans Julius , * , *