Dělení polynomů

Divize polynomials  je operace divize se zbytkem v Euclidean kruhu polynomials v jedné proměnné přes nějaké pole . Naivní algoritmus, který implementuje tuto operaci, je zobecněná forma dělení sloupců , kterou lze snadno implementovat ručně.

Pro všechny polynomy a , , existují jedinečné polynomy a takové, že

,

a má nižší stupeň než .

Účelem algoritmů polynomiálního dělení je najít podíl a zbytek pro daného dělitelného a nenulového dělitele [1] .

Prohlášení o problému

Problém dělení polynomů se zbytkem lze formulovat v následujících ekvivalentních formulacích [2] .

Podíl a zbytek

Polynomy stupně a stupně jsou dány jejich koeficienty. Je nutné najít kvocient a zbytek takový, aby [2]

(jeden)

Takto definované polynomy jsou jednoznačné -- pokud předpokládáme , že rovnice ( 1 ) má dvě řešení a , pak

z čehož vyplývá, že buď , což také implikuje , nebo stupeň není menší než stupeň , což je z definice nemožné [3] .

Nastavení matice

Tento problém lze přepsat do maticového tvaru, pokud předpokládáme, že a jsou dány , a potřebujeme vypočítat tak, že [2]

(2)

Inverzní Toeplitzova matice

Vzhledem k tomu, že k vyřešení problému stačí najít podle prvních rovnic soustavy . Pokud vezmeme v úvahu pouze tyto rovnice, problém se stává

(3)

Matice této soustavy rovnic je dolní trojúhelníková a Toeplitzova , složená z vedoucích koeficientů a nul a řešení soustavy je ekvivalentní nalezení její inverzní [2] .

Inverzní polynom modulo

Nechť a  být polynomy získané z a obrácením posloupnosti koeficientů. Soustavu rovnic ( 3 ) lze formulovat jako

kde , a znamená, že se zbytky po dělení polynomů a tím rovnají. Dělení polynomu může být reprezentováno jako , takže zbytek se rovná polynomu získanému z prvních koeficientů , tj.

Pokud jsou polynomy a známy, pak , kde  je inverzní polynom v kruhu zbytků modulo . Hledání tak může být redukováno na nalezení , takže

(čtyři)

Tato formulace také umožňuje najít inverzní matici v systému ( 3 ):

Nechť je matice velikosti z ( 3 ). Pak je nižší trojúhelníková Toeplitzova matice, jejíž první sloupec je , kde jsou koeficienty z ( 4 ).

Důkaz

Soustava ( 3 ) je ekvivalentní rovnici . V souladu s tím systém

může být reprezentováno jako , což je v případě ( 4 ) ekvivalentní systému ( 3 ).

Vzhledem k libovolnosti polynomu definujícího prvky nám tato skutečnost umožňuje najít inverzní hodnotu k libovolné Toeplitzově dolní trojúhelníkové matici [2] .

Formální mocninná řada

Rovnice může být viděna nejen modulo , ale také jako rovnost v kruhu formálních mocninných řad . Dovolit a  být formální mocninné řady shodující se s polynomy a . Pokud v takových termínech najdeme formální řadu

(5)

pak jeho koeficienty u nižších mocnin budou odpovídat požadovanému polynomu . Tento přístup nám také umožňuje uvažovat problém ( 2 ) jako systém s nekonečně rozšířenou Toeplitzovou maticí a nekonečně rozšířeným sloupcem , ve kterém je vyloučen sloupec reziduí . Vyřešení prvních řádků takového systému dá první koeficienty řady , totiž . Přitom práce s mocninnými řadami obecně, ve kterých jsou zajímavé pouze první koeficienty řady (například kvůli omezené dostupné paměti), je ekvivalentní práci s polynomy, operace, na kterých se provádějí v modulo kruh zbytků [4] . Zejména hledání prvních koeficientů je ekvivalentní řešení rovnice [2] .

Metody řešení

Dělení sloupců

V průběhu algoritmu se koeficienty u vyšších mocnin postupně nulují tak, že se od nich odečítají vynásobené nějakou mocninou s koeficienty, které pak tvoří kvocient . Na začátku je koeficient určen rovný . Pokud se rozšíříme , pak

Nahrazením získá tato rovnice tvar

podobná rovnici ( 1 ). V tomto případě je tý koeficient podle definice roven , takže stupeň bude menší než stupeň . Postup se opakuje, dokud není stupeň menší než stupeň , což bude znamenat, že další se mu rovná [3] .

Příklad

Nechte a . Pro dané polynomy lze dělení sloupců podle zapsat jako

Takto,

to znamená, že polynom  je kvocient a a  je zbytek.

Sieveking-Kohnův algoritmus

V roce 1972 navrhl Malte Zieveking algoritmus pro nalezení řešení rovnice pro dané a [5] . V roce 1974 Kong Xiangzhong ukázal, že pro , algoritmus je iterací Newtonovy metody pro [6] . S tímto přístupem má iterace formu

Kde označuje derivaci funkce v bodě . Pro vyhodnocení přesnosti algoritmu lze odhadnout rozdíl

z čehož vyplývá, že pokud je dělitelný (což je ekvivalentní tomu, že první koeficienty jsou definovány správně), pak bude dělitelný . Při dané počáteční podmínce tedy každá iterace zdvojnásobí počet přesně definovaných koeficientů . Pro výpočet tedy stačí iterace . Použití rychlé Fourierovy transformace na násobení polynomů ve výše uvedeném vzorci vede ke konečné době běhu , což výrazně zlepšuje odhad pro obvyklé dlouhé násobení [7] .

Příklad

Nechte a . Kvůli ( 4 ) je nutné najít . Inverzní polynom se hledá následovně:

  1. Počáteční aproximace je definována jako ;
  2. První aproximace je definována jako ;
  3. Druhá aproximace je definována jako .

Vzhledem k vlastnostem Newtonovy metody jsou první koeficienty určeny správně. Vzhledem k tomu, že další výpočty se provádějí modulo , mohou být koeficienty při vyšších výkonech vyřazeny. Odtud

na základě kterého .

Analýza algoritmů

Pro hodnocení účinnosti různých metod se používá aritmetický obvod složitost  - celkový počet operací sčítání, násobení, odčítání a dělení nad polem komplexních čísel , které je nutné provést při operaci algoritmu. Odhaduje se také počet paralelních kroků potřebných pro víceprocesorovou implementaci algoritmu za předpokladu, že každý procesor v kterémkoli kroku nemůže provést více než jednu operaci [7] .

Každá iterace algoritmu dělení spočívá v odečtení offsetu o nějakou částku od , což lze provést v . Protože stupeň , zpočátku rovný , klesá, dokud není menší než , lze celkovou dobu běhu algoritmu odhadnout jako , kde [2] .

Viz také

Poznámky

  1. Skanavi M. I. Elementární matematika. - 2. vyd., přepracováno. a doplňkové - M .: Nauka, 1972. - S. 142-147. — 592 s.
  2. ↑ 1 2 3 4 5 6 7 Bini, Pan, 1986 , str. 184-186
  3. ↑ 12 Knuth , 1997 , s. 420-421
  4. Knuth, 1997 , pp. 525-533
  5. Sieveking, 1972
  6. Kung, 1974
  7. ↑ 1 2 Bini, Pan, 1986 , pp. 186-188

Literatura