Împărțirea polinoamelor

Î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] .

Enunțul problemei

Problema împărțirii polinoamelor cu rest poate fi formulată în următoarele formulări echivalente [2] .

Coeficient și rest

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] .

Setarea matricei

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)

Matricea inversă Toeplitz

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] .

Modul polinom invers

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 ).

Dovada

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] .

Seria de putere formală

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] .

Metode de rezolvare

Divizarea coloanelor

Î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] .

Exemplu

Lasă ș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.

Algoritmul Sieveking-Kohn

Î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] .

Exemplu

Lasă și . Datorită ( 4 ), este necesar să se găsească . Polinomul invers se caută după cum urmează:

  1. Aproximația inițială este definită ca ;
  2. Prima aproximare este definită ca ;
  3. A doua aproximare este definită ca .

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 .

Analiza algoritmilor

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] .

Vezi și

Note

  1. Skanavi M. I. Matematică elementară. - Ed. a II-a, revizuită. si suplimentare - M . : Nauka, 1972. - S. 142-147. — 592 p.
  2. ↑ 1 2 3 4 5 6 7 Bini, Pan, 1986 , p. 184-186
  3. ↑ 12 Knuth , 1997 , pp. 420-421
  4. Knuth, 1997 , pp. 525-533
  5. Sieveking, 1972
  6. Kung, 1974
  7. ↑ 1 2 Bini, Pan, 1986 , pp. 186-188

Literatură