Împărțirea polinoamelor este operația de împărțire cu un rest în inelul euclidian de polinoame într-o variabilă într-un anumit câmp . Algoritmul naiv care implementează această operație este o formă generalizată de împărțire a coloanei , care este ușor de implementat manual.
Pentru orice polinoame și , , există polinoame unice și astfel încât
,si are un grad mai mic decat .
Scopul algoritmilor de împărțire polinomială este de a găsi câtul și restul pentru un divizibil dat și divizor diferit de zero [1] .
Problema împărțirii polinoamelor cu rest poate fi formulată în următoarele formulări echivalente [2] .
Polinoamele de grad și grad sunt date de coeficienții lor. Este necesar să se găsească câtul și restul astfel încât [2]
(unu) |
Polinoamele definite în acest fel și sunt unice - dacă presupunem că ecuația ( 1 ) are două soluții și , atunci
din care rezultă că fie , ceea ce implică și , fie gradul nu este mai mic decât gradul , ceea ce este imposibil prin definiție [3] .
Această problemă poate fi rescrisă sub formă de matrice, dacă presupunem că și sunt date , și trebuie să calculăm astfel încât [2]
(2) |
Datorită faptului că , pentru a rezolva problema, este suficient să găsim prin primele ecuații ale sistemului . Dacă luăm în considerare doar aceste ecuații, problema devine
(3) |
Matricea acestui sistem de ecuații este triunghiulară inferioară și Toeplitz , compusă din coeficienți conducători și zerouri, iar soluția sistemului este echivalentă cu găsirea inversului său [2] .
Fie și polinoame obținute din și prin inversarea șirului de coeficienți. Sistemul de ecuații ( 3 ) poate fi formulat ca
unde , și înseamnă că resturile după împărțirea polinoamelor și la sunt egale. Împărțirea unui polinom prin poate fi reprezentată ca , deci restul este egal cu polinomul obținut din primii coeficienți , adică
Dacă polinoamele și sunt cunoscute, atunci , unde este polinomul invers din inelul de reziduuri modulo . Astfel, căutarea poate fi redusă la găsirea , astfel încât
(patru) |
Această formulare permite, de asemenea, găsirea matricei inverse în sistem ( 3 ):
Fie matricea dimensiunilor din ( 3 ). Apoi este o matrice Toeplitz triunghiulară inferioară, a cărei prima coloană este , unde sunt coeficienții din ( 4 ). |
Sistemul ( 3 ) este echivalent cu ecuaţia . În consecință, sistemul
poate fi reprezentat ca , care în cazul ( 4 ) este echivalent cu sistemul ( 3 ). ■
Datorită caracterului arbitrar al polinomului care definește elementele , acest fapt ne permite să găsim inversul unei matrice triunghiulare inferioară Toeplitz arbitrară [2] .
Ecuația poate fi privită nu numai modulo , ci și ca o egalitate în inelul seriei de puteri formale . Fie și serii de puteri formale care coincid cu polinoamele și . Dacă în asemenea termeni găsim seria formală
(5) |
atunci coeficienții săi la puteri mai mici vor corespunde polinomului necesar . Această abordare ne permite de asemenea să considerăm problema ( 2 ) ca un sistem cu o matrice Toeplitz infinit extinsă și o coloană infinit extinsă , în care coloana de reziduuri este exclusă . Rezolvarea primelor rânduri ale unui astfel de sistem va da primii coeficienți ai seriei și anume . În același timp, lucrul cu serii de puteri în general, în care interesează doar primii coeficienți ai seriei (de exemplu, din cauza memoriei disponibile limitate), echivalează cu lucrul cu polinoame, operații asupra cărora sunt efectuate în modulo. inel de reziduuri [4] . În special, căutarea primilor coeficienți este echivalentă cu rezolvarea ecuației [2] .
În cursul algoritmului, coeficienții la puteri mai mari sunt zero succesiv scăzând din acesta înmulțit cu o putere cu coeficienți, care formează apoi câtul . Inițial, coeficientul este determinat egal cu . Dacă ne extindem , atunci
Prin înlocuirea , această ecuație ia forma
similar cu ecuația ( 1 ). În acest caz, al- lea coeficient , prin definiție , este egal cu , deci gradul va fi mai mic decât gradul . Procedura se repetă până când gradul devine mai mic decât gradul , ceea ce va însemna că următorul este egal cu acesta [3] .
ExempluLasă și . Pentru polinoame date, împărțirea coloanei cu poate fi scrisă ca
În acest fel,
adică polinomul este un cot și a este restul.
În 1972, Malte Zieveking a propus un algoritm pentru găsirea unei soluții la o ecuație pentru date și [5] . În 1974 Kong Xiangzhong a arătat că pentru , algoritmul este o iterație a metodei lui Newton pentru [6] . Cu această abordare, iterația ia forma
Unde denotă derivata funcției în punctul . Pentru a evalua acuratețea algoritmului, se poate estima diferența
din care rezultă că dacă este divizibil cu (ceea ce echivalează cu faptul că primii coeficienți sunt definiți corect), atunci va fi divizibil cu . Astfel, având în vedere condiția inițială , fiecare iterație dublează numărul de coeficienți definiți cu precizie . Prin urmare, iterațiile sunt suficiente pentru calcul . Aplicarea transformării rapide Fourier la înmulțirea polinoamelor în formula de mai sus conduce la timpul final de rulare , ceea ce îmbunătățește semnificativ estimarea pentru înmulțirea lungă obișnuită [7] .
ExempluLasă și . Datorită ( 4 ), este necesar să se găsească . Polinomul invers se caută după cum urmează:
Datorită proprietăților metodei lui Newton, primii coeficienți sunt determinați corect. Deoarece calculele suplimentare se fac modulo , coeficienții la puteri mai mari pot fi aruncați. De aici
în virtutea căreia .
Pentru a evalua eficacitatea diferitelor metode, se folosește complexitatea circuitului aritmetic - numărul total de operații de adunare, înmulțire, scădere și împărțire pe câmpul de numere complexe care trebuie efectuate în timpul funcționării algoritmului. Numărul de pași paraleli necesari pentru implementarea algoritmului multiprocesor este de asemenea estimat, presupunând că fiecare procesor la orice pas poate efectua nu mai mult de o operație [7] .
Fiecare iterație a algoritmului de împărțire constă în scăderea offset-ului cu o anumită sumă din , ceea ce se poate face în . Deoarece gradul , inițial egal cu , scade până când devine mai mic decât , timpul total de rulare al algoritmului poate fi estimat ca , unde [2] .