Huom! Jotta tämän sivun kaavojen alaindeksit ja eksponentit näkyisivät oikein, HTML 3:n soveltuvin osin hallitseva selain on tarpeen. TKK:n atk-keskuksen koneissa sellaisia ovat Arena ja Netscape 2.0, jotka käynnistyvät komennoilla arena ja netscape2.
Numeerisen ja symbolisen laskennan kurssin harjoitustyö

Polynomiyhtälöryhmän ratkaisemisesta Groebner-kantojen avulla


Tarkastellaan yhtälöryhmää, jossa on n tuntematonta x1,...,xn ja m riippumatonta yhtälöä

(1)       fi(x1,...,xn) = 0,      i = 1,...,m.
Sen ratkaisuja ovat siis polynomien f1,...,fn yhteiset nollakohdat.

Lineaarinen tapaus

Polynomien fi ollessa lineaarisia yhtälöryhmä (1) voidaan kirjoittaa matriisimuotoon Ax = b. Kun n = m, yhtälö voidaan tällöin ratkaista Gaussin eliminaatiolla, jossa matriisi A muokataan yläkolmiomuotoon.

Näin saatavasta n yhtälöstä alimmasta on eliminoitu muut muuttujat paitsi xn. Siitä ratkaistu xn voidaan sijoittaa toiseksi alimpaan yhtälöön, jossa esiintyy muuttujat xn ja xn-1, jolloin saadaan ratkaistua xn-1. Näin menetellen saadaan ratkaistua kaikki tuntemattomat.

Epälineaarinen tapaus

Epälineaarisessa tapuksessa ei ole itsestään selvää, että yhtälöryhmästä (1) voidaan eliminoida muut muuttujat yhtä lukuunottamatta. Groebner-kantojen avulla tämä kuitenkin onnistuu.

Groebner-kantojen teoria ei ole kovin raskasta, mutta sen esittäminen vie kuitenkin jonkin verran tilaa ja siihen perehtyminen aikaa. En siis käy sitä kovin perusteellisesti läpi, vaan esittelen Groebnerin kantojen käyttöä polynomiyhtälöryhmien ratkaisemisessa. Teorian osalta viittaan lähteisiin, joista [1] on oikein selkeä esitys asiasta, [2] puolestaan on luettavissa WWW:llä.

Joukko {v1,...,vn} on tunnetusti lineaariavaruuden V kanta, jos jokainen V:n alkio v voidaan esittää yksikäsitteisesti muodossa a1v1+...+anvn. Joukko G = {g1,...,gm} useamman muuttujan polynomeja puolestaan on Groebner-kanta, jos jokainen näiden muuttujien polynomi on lausuttavissa muodossa a1g1+...+angn+r, missä kertoimet ai ovat polynomeja, ja jakojäännös r on yksikäsitteinen. G on polynomijoukkoa F = {f1,...,fn} vastaava Groebner-kanta, jos fi:den yhteiset nollakohdat ovat samat kuin gi:den yhteiset nollakohdat.

Groebner-kantoja voidaan muodostaa ns. Buchbergerin algoritmilla. Se muistuttaa hieman yhden muuttajan polynomien jakojäännöksen laskemisalgoritmia, jossa jaettava jaetaan jakajalla termi kerrallaan, muuttujan alenevien potenssien mukaisessa järjestyksessä. Myös Buchbergerin algoritmia käytettäessä on tarpeen järjestää useamman muuttujan polynomien termit jollakin tavalla. Siihen on monia vaihtoehtoja.

Eräs vaihtoehto termien järjestämiseen on ns. leksikografinen järjestys. Sitä käyttäen muodostettu Groebner-kanta vastaa lineaarisen tapauksen yläkolmiomuotoa: Jos yhtälöryhmällä (1) on ratkaisuja, G:ssä on polynomi, jossa esiintyy vain muuttuja xn, jolloin xn voidaan ratkaista (juurilausekkeina, ultraradikaaleina tai numeerisesti). G:ssä on tällöin myös polynomi, jossa esiintyy vain muuttujat xn ja xn-1, joten myös xn-1 saadaan ratkaistua, kun siihen sijoitetaan edellä ratkaistu xn. Kaikki tuntemattomat saadaan tällä tavoin ratkaistua yksi kerrallaan.

Maple-sovelluksia

Groebner-kannat laskeva Buchbergerin algoritmi on toteutettu Maplessa valmiina groebner-paketissa. Tästä linkistä pääset tutustumaan Maplella tekemiini Groebner-kantoja hyödyntäviin laskuihin ja apuohjelmiin.


Lähteet

  1. D. Cox, J. Little, D. O'Shea: Ideals, Varieties, and Algorithms, Springer-Verlag, 1992
  2. A. M. Cohen: Groebner Bases - A Primer, CAIN Europe, http://www.can.nl/CA_Library/Groebner/Tutorials/Cohen/notes.html
  3. W. K. Nicholson: Abstract Algebra, PWS, 1993
  4. W. Hock, K. Schittkowski: Test Examples for Nonlinear Programming Codes, Lecture Notes in Economics and Mathematical Systems, Springer-Verlag, 1981

Kenrick Bingham 18.5.1996