Polynomien jako on jakooperaatio polynomien euklidisen renkaan jäännöksellä yhdessä muuttujassa jonkin kentän yli . Tämän toiminnon toteuttava naiivi algoritmi on yleistetty sarakejaon muoto , joka on helppo toteuttaa manuaalisesti.
Kaikille polynomeille ja , , On olemassa ainutlaatuisia polynomeja ja sellaisia, että
,ja sen tutkinto on alempi kuin .
Polynomijakoalgoritmien tarkoitus on löytää osamäärä ja jäännös tietylle jaolliselle ja nollasta poikkeavalle jakajalle [1] .
Ongelma polynomien jakamisesta jäännöksellä voidaan muotoilla seuraavilla ekvivalenteilla formulaatioilla [2] .
Asteen ja asteen polynomit saadaan kertoimillaan. Osamäärä ja jäännös on löydettävä siten, että [2]
(yksi) |
Tällä tavalla määritellyt polynomit ovat ainutlaatuisia - jos oletetaan, että yhtälöllä ( 1 ) on kaksi ratkaisua ja
josta seuraa, että joko , mikä tarkoittaa myös , tai aste ei ole pienempi kuin aste , mikä on määritelmän mukaan mahdotonta [3] .
Tämä ongelma voidaan kirjoittaa uudelleen matriisimuotoon, jos oletetaan, että ja on annettu , ja meidän on laskettava siten, että [2]
(2) |
Johtuen siitä, että ongelman ratkaisemiseksi riittää löytää järjestelmän ensimmäisten yhtälöiden avulla . Jos tarkastelemme vain näitä yhtälöitä, ongelma tulee
(3) |
Tämän yhtälöjärjestelmän matriisi on alakolmio ja Toeplitz , joka koostuu johtavista kertoimista ja nollia, ja järjestelmän ratkaisu vastaa sen käänteisen löytämistä [2] .
Olkoon ja polynomeja, jotka on saatu kertoimien sarjasta ja käänteisillä. Yhtälöjärjestelmä ( 3 ) voidaan muotoilla seuraavasti
jossa , ja tarkoittaa, että jakojäännökset polynomien ja arvon jakamisen jälkeen ovat yhtä suuret. Polynomin jako voidaan esittää muodossa , joten jäännös on yhtä suuri kuin ensimmäisistä kertoimista saatu polynomi , eli
Jos polynomit ja tunnetaan, niin , Missä on käänteinen polynomi jäännösten renkaassa modulo . Siten haku voidaan lyhentää löytämiseen siten, että
(neljä) |
Tämä muotoilu mahdollistaa myös käänteisen matriisin löytämisen järjestelmästä ( 3 ):
Olkoon kokomatriisi alkaen ( 3 ). Sitten on alempi kolmiomainen Toeplitz-matriisi, jonka ensimmäinen sarake on , missä ovat kertoimet kohdasta ( 4 ). |
Järjestelmä ( 3 ) vastaa yhtälöä . Vastaavasti järjestelmä
voidaan esittää muodossa , joka tapauksessa ( 4 ) vastaa järjestelmää ( 3 ). ■
Alkiot määrittävän polynomin mielivaltaisuudesta johtuen tämä tosiasia mahdollistaa käänteisarvon mielivaltaiselle Toeplitzin alemmalle kolmiomatriisille [2] .
Yhtälöä voidaan tarkastella paitsi modulon myös tasa-arvona muodollisten potenssisarjojen kehässä . Antaa ja olla muodollinen potenssisarja, joka vastaa polynomeja ja . Jos näillä termeillä löydämme muodollisen sarjan
(5) |
silloin sen kertoimet pienemmillä tehoilla vastaavat vaadittua polynomia . Tämän lähestymistavan avulla voimme myös tarkastella ongelmaa ( 2 ) järjestelmänä, jossa on äärettömästi laajennettu Toeplitz-matriisi ja äärettömästi laajennettu sarake , jossa jäännössarake on jätetty pois . Sellaisen järjestelmän ensimmäisten rivien ratkaiseminen antaa sarjan ensimmäiset kertoimet , nimittäin . Samanaikaisesti työskentely yleisesti potenssisarjoilla, joissa vain sarjan ensimmäiset kertoimet kiinnostavat (esimerkiksi rajoitetun muistin vuoksi), vastaa työskentelyä polynomien kanssa, joiden toiminnot suoritetaan modulossa. jäännösrengas [4] . Erityisesti ensimmäisten kertoimien etsiminen vastaa yhtälön [2] ratkaisemista .
Algoritmin aikana suuremmilla tehoilla olevat kertoimet nollataan peräkkäin vähentämällä siitä kerrottuna jollain potenssilla kertoimilla, jotka sitten muodostavat osamäärän . Aluksi kerroin määritetään yhtä suureksi kuin . Jos laajennetaan , niin
Korvaamalla tämä yhtälö saa muodon
samanlainen kuin yhtälö ( 1 ). Tässä tapauksessa th kerroin määritelmän mukaan on yhtä suuri kuin , joten aste on pienempi kuin aste . Toimenpide toistetaan, kunnes aste on pienempi kuin aste , mikä tarkoittaa, että seuraava on yhtä suuri kuin se [3] .
EsimerkkiAnna ja . Tietyille polynomeille sarakkeen jako voidaan kirjoittaa muodossa
Tällä tavalla,
eli polynomi on osamäärä ja a on jäännös.
Vuonna 1972 Malte Zieveking ehdotti algoritmia ratkaisun löytämiseksi yhtälöön annetuille ja [5] . Vuonna 1974 Kong Xiangzhong osoitti, että , algoritmi on iteraatio Newtonin menetelmästä [ 6] . Tällä lähestymistavalla iteraatio saa muodon
Missä tarkoittaa funktion derivaatta pisteessä . Algoritmin tarkkuuden arvioimiseksi voidaan arvioida ero
josta seuraa, että jos se on jaollinen (mikä vastaa sitä tosiasiaa, että ensimmäiset kertoimet on määritelty oikein), niin se on jaollinen . Näin ollen, kun otetaan huomioon alkuehto , jokainen iteraatio kaksinkertaistaa tarkasti määriteltyjen kertoimien määrän . Siksi iteraatiot ovat riittäviä laskentaan . Nopean Fourier-muunnoksen soveltaminen polynomien kertolaskuun yllä olevassa kaavassa johtaa lopulliseen ajoaikaan , mikä parantaa merkittävästi estimaattia tavalliselle pitkälle kertolaskulle [7] .
EsimerkkiAnna ja . Kohdan ( 4 ) vuoksi on tarpeen löytää . Käänteispolynomia etsitään seuraavasti:
Newtonin menetelmän ominaisuuksista johtuen ensimmäiset kertoimet määritetään oikein. Koska lisälaskelmia tehdään modulo , suurempien tehojen kertoimet voidaan hylätä. Täältä
jonka nojalla .
Eri menetelmien tehokkuuden arvioimiseksi käytetään aritmeettisen piirin monimutkaisuutta - algoritmin toiminnan aikana suoritettavien yhteen-, kerto-, vähennys- ja jakolaskuoperaatioiden kokonaismäärä kompleksilukujen kentässä. Arvioidaan myös algoritmin moniprosessoritoteutukseen tarvittavien rinnakkaisten vaiheiden määrä olettaen , että jokainen prosessori missä tahansa vaiheessa voi suorittaa enintään yhden toiminnon [7] .
Jokainen jakoalgoritmin iteraatio koostuu offsetin vähentämisestä jollain määrällä arvosta , mikä voidaan tehdä kohdassa . Koska aste , joka on alun perin yhtä suuri kuin , pienenee, kunnes siitä tulee pienempi kuin , algoritmin kokonaisajoaika voidaan arvioida muodossa , jossa [2] .