Division av polynom

Division av polynom  är operationen av division med en rest i den euklidiska ringen av polynom i en variabel över något fält . Den naiva algoritmen som implementerar denna operation är en generaliserad form av kolumndelning , som enkelt implementeras manuellt.

För alla polynom och , , Det finns unika polynom och sådant

,

och har en lägre grad än .

Syftet med polynomdivisionsalgoritmer är att hitta kvoten och resten för en given delbar och icke-nolldelare [1] .

Förklaring av problemet

Problemet med att dela polynom med resten kan formuleras i följande ekvivalenta formuleringar [2] .

Kvotient och återstod

Polynom av grad och grad ges av deras koefficienter. Det är nödvändigt att hitta kvoten och resten så att [2]

(ett)

Polynomen definierade på detta sätt och är unika - om vi antar att ekvationen ( 1 ) har två lösningar och , då

därav följer att antingen , vilket också innebär , eller graden är inte mindre än graden , vilket är omöjligt per definition [3] .

Matrisinställning

Detta problem kan skrivas om i matrisform, om vi antar att och är givna , och vi behöver beräkna så att [2]

(2)

Invers Toeplitz-matris

På grund av det faktum att , för att lösa problemet, räcker det att hitta genom de första ekvationerna i systemet . Om vi ​​bara betraktar dessa ekvationer blir problemet

(3)

Matrisen för detta ekvationssystem är lägre triangulär och Toeplitz , sammansatt av ledande koefficienter och nollor, och systemets lösning är likvärdig med att hitta dess invers [2] .

Invers polynom modulo

Låta och  vara polynom erhållna från och genom att vända koefficientsekvensen. Ekvationssystemet ( 3 ) kan formuleras som

där , och betyder att resten efter att ha dividerat polynomen och med är lika. Delingen av ett polynom med kan representeras som , så resten är lika med polynomet som erhålls från de första koefficienterna , det vill säga,

Om polynomen och är kända, då , Där  är det inversa polynomet i ringen av rester modulo . Således kan sökningen reduceras till att hitta , så att

(fyra)

Denna formulering gör det också möjligt att hitta den inversa matrisen i systemet ( 3 ):

Låt vara storleksmatrisen från ( 3 ). Sedan är en lägre triangulär Toeplitz-matris, vars första kolumn är , var är koefficienterna från ( 4 ).

Bevis

System ( 3 ) är ekvivalent med ekvationen . Följaktligen systemet

kan representeras som , vilket i fallet ( 4 ) motsvarar system ( 3 ).

På grund av godtyckligheten hos polynomet som definierar elementen , tillåter detta faktum oss att hitta inversen till en godtycklig Toeplitz nedre triangulär matris [2] .

Formell maktserie

Ekvationen kan ses inte bara modulo , utan också som en likhet i ringen av formella effektserier . Låta och  vara formell potensserier som sammanfaller med polynomen och . Om vi ​​i sådana termer finner den formella serien

(5)

då kommer dess koefficienter vid lägre potenser att motsvara det erforderliga polynomet . Detta tillvägagångssätt tillåter oss också att betrakta problem ( 2 ) som ett system med en oändligt utökad Toeplitz-matris och en oändligt utökad kolumn , i vilken kolumnen av residualer är exkluderad . Att lösa de första raderna i ett sådant system kommer att ge de första koefficienterna i serien , nämligen . Samtidigt är att arbeta med potensserier i allmänhet, där endast de första koefficienterna i serien är av intresse (till exempel på grund av begränsat tillgängligt minne), likvärdigt med att arbeta med polynom, på vilka operationer utförs i modulo ring av rester [4] . I synnerhet är sökningen efter de första koefficienterna ekvivalent med att lösa ekvationen [2] .

Lösningsmetoder

Kolumnindelning

Under algoritmens gång nollställs koefficienterna vid högre potenser sekventiellt genom att subtrahera från den multiplicerat med någon potens med koefficienter, som sedan bildar kvoten . Inledningsvis bestäms koefficienten lika med . Om vi ​​expanderar , alltså

Genom att ersätta , tar denna ekvation formen

liknande ekvation ( 1 ). I det här fallet är den e koefficienten , per definition , lika med , så graden kommer att vara mindre än graden . Proceduren upprepas tills graden blir mindre än graden , vilket kommer att innebära att nästa är lika med den [3] .

Exempel

Låt och . För givna polynom kan kolumndelning med skrivas som

På det här sättet,

det vill säga polynomet  är en kvot och a  är resten.

Sieveking-Kohn algoritm

1972 föreslog Malte Zieveking en algoritm för att hitta en lösning på en ekvation för givna och [5] . 1974 visade Kong Xiangzhong att för , algoritmen är en iteration av Newtons metod för [6] . Med detta tillvägagångssätt tar iterationen formen

Där betecknar derivatan av funktionen i punkten . För att utvärdera algoritmens noggrannhet kan man uppskatta skillnaden

av vilket det följer att om den är delbar med (vilket motsvarar det faktum att de första koefficienterna är korrekt definierade), så kommer den att vara delbar med . Med tanke på det initiala villkoret fördubblar varje iteration således antalet exakt definierade koefficienter . Därför räcker iterationer för beräkningen . Att tillämpa den snabba Fouriertransformen på multiplikationen av polynom i formeln ovan leder till den slutliga körtiden , vilket avsevärt förbättrar uppskattningen för den vanliga långa multiplikationen [7] .

Exempel

Låt och . På grund av ( 4 ) är det nödvändigt att hitta . Det inversa polynomet söks på följande sätt:

  1. Den initiala approximationen definieras som ;
  2. Den första approximationen definieras som ;
  3. Den andra approximationen definieras som .

På grund av egenskaperna hos Newtons metod bestäms de första koefficienterna korrekt. Eftersom ytterligare beräkningar görs modulo , kan koefficienterna vid högre potenser förkastas. Härifrån

i kraft av vilken .

Analys av algoritmer

För att utvärdera effektiviteten av olika metoder används den aritmetiska kretsens komplexitet  - det totala antalet additions-, multiplikations-, subtraktions- och divisionsoperationer över fältet av komplexa tal som måste utföras under driften av algoritmen. Antalet parallella steg som krävs för multiprocessorimplementeringen av algoritmen uppskattas också, förutsatt att varje processor i vilket steg som helst inte kan utföra mer än en operation [7] .

Varje iteration av divisionsalgoritmen består i att subtrahera förskjutningen med något belopp från , vilket kan göras i . Eftersom graden , initialt lika med , minskar tills den blir mindre än , kan den totala körtiden för algoritmen uppskattas som , där [2] .

Se även

Anteckningar

  1. Skanavi M. I. Elementär matematik. - 2:a uppl., reviderad. och ytterligare - M . : Nauka, 1972. - S. 142-147. — 592 sid.
  2. ↑ 1 2 3 4 5 6 7 Bini, Pan, 1986 , s. 184-186
  3. ↑ 12 Knuth , 1997 , s. 420-421
  4. Knuth, 1997 , s. 525-533
  5. Sieveking, 1972
  6. Kung, 1974
  7. ↑ 1 2 Bini, Pan, 1986 , s. 186-188

Litteratur