Polynomiální největší společný dělitel - Polynomial greatest common divisor
![]() | tento článek potřebuje další citace pro ověření.Září 2012) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
V algebře je největší společný dělitel (často zkráceně GCD) dvou polynomy je polynom, nejvyššího možného stupně, tj. a faktor obou původních polynomů. Tento koncept je obdobou největší společný dělitel dvou celých čísel.
V důležitém případě univariate polynomy nad a pole polynomiální GCD může být vypočítán, stejně jako pro celé číslo GCD, pomocí Euklidovský algoritmus použitím dlouhé rozdělení. Polynomiální GCD je definován pouze až do násobení invertibilní konstantou.
Podobnost mezi celočíselným GCD a polynomiálním GCD umožňuje rozšířit k univariaci polynomů všechny vlastnosti, které lze odvodit z euklidovského algoritmu a Euklidovské dělení. Polynomiální GCD má navíc specifické vlastnosti, díky nimž je základním pojmem v různých oblastech algebry. Typicky kořeny GCD dvou polynomů jsou společné kořeny dvou polynomů, a to poskytuje informace o kořenech bez jejich výpočtu. Například více kořenů polynomu jsou kořeny GCD polynomu a jeho derivátu a další výpočty GCD umožňují výpočet faktorizace bez čtverců polynomu, který poskytuje polynomy, jejichž kořeny jsou kořeny daného multiplicita původního polynomu.
Největší společný dělitel může být definován a existuje obecněji pro vícerozměrné polynomy přes pole nebo kruh celých čísel a také přes a jedinečná faktorizační doména. Existují algoritmy pro jejich výpočet, jakmile má jeden algoritmus GCD v kruhu koeficientů. Tyto algoritmy pokračují a rekurze o počtu proměnných ke snížení problému na variantu euklidovského algoritmu. Jsou základním nástrojem v počítačová algebra, protože systémy počítačové algebry systematicky je používejte ke zjednodušení zlomků. Naopak, většina moderní teorie polynomiální GCD byla vyvinuta, aby uspokojila potřebu účinnosti systémů počítačové algebry.
Obecná definice
Nechat p a q být polynomy s koeficienty v integrální doména F, typicky a pole nebo celá čísla. A největší společný dělitel z p a q je polynom d který rozděluje p a q, a takové, že každý společný dělitel p a q také rozděluje d. Každý pár polynomů (ne oba nula) má GCD právě tehdy F je jedinečná faktorizační doména.
Li F je pole a p a q nejsou oba nula, polynom d je největší společný dělitel právě tehdy, když rozděluje oba p a q, a má největší stupeň mezi polynomy, které mají tuto vlastnost. Li p = q = 0, GCD je 0. Někteří autoři se však domnívají, že v tomto případě není definována.
Největší společný dělitel p a q je obvykle označeno "gcd (p, q)".
Největší společný dělitel není jedinečný: pokud d je GCD z p a q, potom polynom F je další GCD právě tehdy, když existuje invertibilní prvek u z F takhle
a
- .
Jinými slovy, GCD je jedinečný až do násobení invertibilní konstantou.
V případě celých čísel byla tato neurčitost vyřešena výběrem, jako GCD, jedinečného pozitivního (existuje další, který je jeho opakem). S touto konvencí je GCD dvou celých čísel také největším (pro obvyklé řazení) společným dělitelem. Protože však neexistuje žádný přirozený celková objednávka pro polynomy nad integrální doménou zde nelze postupovat stejným způsobem. Pro univariate polynomy nad polem, lze navíc požadovat, aby byl GCD monic (to znamená mít 1 jako jeho koeficient nejvyššího stupně), ale v obecnějších případech neexistuje žádná obecná konvence. Rovnosti proto mají rádi d = gcd (p, q) nebo gcd (p, q) = gcd (r, s) jsou běžná zneužití notace, která by měla být přečtena "d je GCD z p a q" a "p a q mít stejnou sadu GCD jako r a s". Zejména, gcd (p, q) = 1 znamená, že invertibilní konstanty jsou jedinými společnými děliteli. V tomto případě to analogicky s celočíselným případem říká jeden p a q jsou coprime polynomy.
Vlastnosti
- Jak je uvedeno výše, GCD dvou polynomů existuje, pokud koeficienty patří buď do pole, do kruhu celých čísel, nebo obecněji do jedinečná faktorizační doména.
- Li C je jakýkoli společný dělitel p a q, pak C rozděluje jejich GCD.
- pro libovolný polynom r. Tato vlastnost je základem důkazu euklidovského algoritmu.
- Pro jakýkoli invertibilní prvek k prstence koeficientů, .
- Proto pro všechny skaláry takhle je invertibilní.
- Li , pak .
- Li , pak .
- Pro dva univariate polynomy p a q nad polem existují polynomy A a A, takový, že a rozděluje každou takovou lineární kombinaci p a q (Bézoutova identita ).
- Největší společný dělitel tří nebo více polynomů lze definovat podobně jako u dvou polynomů. To může být vypočítáno rekurzivně z GCD dvou polynomů podle identit:
- a
GCD ručním výpočtem
Existuje několik způsobů, jak najít největšího společného dělitele dvou polynomů. Dva z nich jsou:
- Faktorizace polynomů, ve kterém jeden najde faktory každého výrazu, pak vybere soubor společných faktorů držených všemi z každé sady faktorů. Tato metoda může být užitečná pouze v jednoduchých případech, protože factoring je obvykle obtížnější než výpočet největšího společného dělitele.
- The Euklidovský algoritmus, které lze použít k vyhledání GCD dvou polynomů stejným způsobem jako u dvou čísel.
Factoring
Chcete-li najít GCD dvou polynomů pomocí factoringu, jednoduše proveďte faktorizaci dvou polynomů úplně. Poté vezměte součin všech běžných faktorů. V této fázi nemusíme nutně mít monický polynom, takže to nakonec vynásobte konstantou, aby se z něj stal monický polynom. Toto bude GCD dvou polynomů, protože zahrnuje všechny běžné dělitele a je monické.
Příklad jedna: Najděte GCD z X2 + 7X + 6 a X2 − 5X − 6.
- X2 + 7X + 6 = (X + 1)(X + 6)
- X2 − 5X − 6 = (X + 1)(X − 6)
Jejich GCD tedy je X + 1.
Euklidovský algoritmus
Faktorování polynomů může být obtížné, zvláště pokud mají polynomy velkou míru. The Euklidovský algoritmus je metoda, která funguje pro jakoukoli dvojici polynomů. Opakovaně využívá Euklidovské dělení. Při použití tohoto algoritmu na dvou číslech se velikost čísel v každé fázi zmenšuje. U polynomů se stupeň polynomů v každé fázi snižuje. Poslední nenulový zbytek, vyrobený monic je-li to nutné, je GCD dvou polynomů.
Přesněji řečeno, pro nalezení gcd dvou polynomů A(X) a b(X), lze předpokládat b ≠ 0 (jinak je GCD A(X)), a
Euklidovské dělení poskytuje dva polynomy q(X), kvocient a r(X), zbytek takhle
Polynom G(X) rozděluje obě A(X) a b(X) právě tehdy, když rozděluje obojí b(X) a r0(X). Tím pádem
Nastavení
lze opakovat euklidovské dělení a získat nové polynomy q1(X), r1(X), A2(X), b2(X) a tak dále. V každé fázi máme
takže posloupnost nakonec dosáhne bodu, ve kterém
a jeden má GCD:
Příklad: nalezení GCD z X2 + 7X + 6 a X2 − 5X − 6:
- X2 + 7X + 6 = 1 ⋅ (X2 − 5X − 6) + (12 X + 12)
- X2 − 5X − 6 = (12 X + 12) (1/12 X − 1/2) + 0
Od té doby 12 X + 12 je poslední nenulový zbytek, je to GCD původních polynomů a monic GCD je X + 1.
V tomto příkladu není obtížné vyhnout se zavedení jmenovatelů vyřazením 12 před druhým krokem. To lze vždy provést pomocí sekvence pseudo-zbytku, ale bez opatrnosti to může během výpočtu zavést velmi velká celá čísla. Proto se pro počítačový výpočet používají jiné algoritmy, které jsou popsány níže.
Tato metoda funguje pouze v případě, že lze otestovat nulovou rovnost koeficientů, které se vyskytnou během výpočtu. V praxi tedy koeficienty musí být celá čísla, racionální čísla, prvky a konečné pole, nebo k někomu musí patřit konečně generované rozšíření pole jednoho z předchozích polí. Pokud jsou koeficienty čísla s plovoucí desetinnou čárkou které představují reálná čísla které jsou známé jen přibližně, pak je třeba znát stupeň GCD pro dobře definovaný výsledek výpočtu (to je numericky stabilní výsledek; v tomto případě mohou být použity jiné techniky, obvykle založené na rozklad singulární hodnoty.
Jednorozměrné polynomy s koeficienty v poli
Případ jednorozměrných polynomů nad polem je obzvláště důležitý z několika důvodů. Zaprvé je to nejzákladnější případ, a proto se objevuje ve většině prvních kurzů algebry. Za druhé, je to velmi podobné případu celých čísel a tato analogie je zdrojem pojmu Euklidovská doména. Třetím důvodem je, že teorie a algoritmy pro vícerozměrný případ a pro koeficienty v a jedinečná faktorizační doména jsou silně založeny na tomto konkrétním případě. V neposlední řadě umožňují polynomiální algoritmy GCD a odvozené algoritmy získat užitečné informace o kořenech polynomu, aniž by je musely počítat.
Euklidovské dělení
Euklidovské dělení polynomů, které se používá v Euklidův algoritmus pro výpočet GCD je velmi podobný Euklidovské dělení celých čísel. Jeho existence je založena na následující větě: Vzhledem k tomu, dva univariate polynomy A a b ≠ 0 definované nad polem, existují dva polynomy q (dále jen kvocient) a r (dále jen zbytek) které uspokojují
a
kde „deg (...)“ označuje stupeň a stupeň nulového polynomu je definován jako záporný. Navíc, q a r jsou těmito vztahy jednoznačně definovány.
Rozdíl od euklidovského dělení celých čísel spočívá v tom, že u celých čísel je stupeň nahrazen absolutní hodnotou a pro jedinečnost je třeba předpokládat, že r není negativní. Kruhy, pro které taková věta existuje, se nazývají Euklidovské domény.
Stejně jako u celých čísel lze euklidovské rozdělení polynomů vypočítat pomocí dlouhé rozdělení algoritmus. Tento algoritmus je obvykle prezentován pro výpočet papírem a tužkou, ale na počítačích funguje dobře, když je formalizován následujícím způsobem (všimněte si, že názvy proměnných přesně odpovídají oblastem papírového listu ve výpočtu tužkou a papírem dlouhých divize). V následujícím výpočtu „deg“ znamená stupeň jeho argumentace (s konvencí deg (0) <0) a „lc“ znamená přední koeficient, koeficient nejvyššího stupně proměnné.
Euklidovské děleníVstup: A a b ≠ 0 dva polynomy v proměnné X;Výstup: q, kvocient, a r, zbytek;Začít q := 0 r := A d : = deg (b) C : = lc (b) zatímco deg (r) ≥ d dělat s := lc (r)/C Xdeg (r)−d q := q + s r := r − sb konec udělej vrátit se (q, r)konec
Důkaz platnosti tohoto algoritmu závisí na skutečnosti, že během celé smyčky „while“ máme A = bq + r a deg (r) je nezáporné celé číslo, které se snižuje při každé iteraci. Důkaz platnosti tohoto algoritmu tedy také dokazuje platnost euklidovského dělení.
Euklidův algoritmus
Pokud jde o celá čísla, euklidovské dělení nám umožňuje definovat Euklidův algoritmus pro výpočet GCD.
Počínaje dvěma polynomy A a b, Euklidův algoritmus spočívá v rekurzivní výměně páru (A, b) podle (b, rem (A, b)) (kde "rem (A, b)"označuje zbytek euklidovské divize, vypočítaný algoritmem předchozí části), dokud b = 0. GCD je poslední nenulový zbytek.
Euklidův algoritmus může být formován ve stylu rekurzivního programování jako:
Ve stylu imperativního programování se stane stejný algoritmus, který pojmenuje každý přechodný zbytek:
pro (; ; ) dělat konec udělejvrátit se
Posloupnost stupňů ri přísně klesá. Tedy po nanejvýš deg (b) kroky, jeden dostane nulový zbytek, řekněme rk. Tak jako (A, b) a (b, rem (A,b)) mají stejné dělitele, sada společných dělitelů se nemění Euklidovým algoritmem a tedy všechny páry (ri, ri+1) mít stejnou sadu společných dělitelů. Společní dělitelé A a b jsou tedy společnými děliteli rk−1 a 0. Tedy rk−1 je GCD z A a bTo nejen dokazuje, že Euklidův algoritmus počítá GCD, ale také dokazuje, že GCD existují.
Bézoutova identita a rozšířený algoritmus GCD
Bézoutova identita je věta související s GCD, původně prokázaná pro celá čísla, která platí pro všechny hlavní ideální doména. V případě jednorozměrných polynomů nad polem lze uvést následující.
Li G je největší společný dělitel dvou polynomů A a b (ne oba nula), pak existují dva polynomy u a proti takhle
- (Bézoutova identita)
a buď u = 1, proti = 0nebo u = 0, proti = 1nebo
Zájem o tento výsledek v případě polynomů spočívá v tom, že existuje účinný algoritmus pro výpočet polynomů u a proti„Tento algoritmus se liší od Euklidova algoritmu několika dalšími výpočty provedenými při každé iteraci smyčky. Proto se tomu říká rozšířený algoritmus GCD. Další rozdíl od Euklidova algoritmu spočívá v tom, že používá pouze kvocient, označený „quo“, euklidovského dělení, nikoli pouze zbytek. Tento algoritmus funguje následovně.
Rozšířená GCD algoritmusVstup: A, b, jednorozměrné polynomyVýstup: G, GCD z A a b u, proti, jak je uvedeno výše A1, b1, takový, že Začít pro (i = 1; ri ≠ 0; i = i+1) dělat konec udělej konec
Důkaz, že algoritmus splňuje svoji výstupní specifikaci, závisí na tom, že pro každého i my máme
z toho vyplývá rovnost
Tvrzení o stupních vyplývá ze skutečnosti, že při každé iteraci jsou stupně si a ti zvýší se maximálně o stupeň ri klesá.
Zajímavou vlastností tohoto algoritmu je, že když jsou potřebné koeficienty Bezoutovy identity, získá se zdarma kvocient vstupních polynomů jejich GCD.
Aritmetika algebraických rozšíření
Důležitou aplikací rozšířeného algoritmu GCD je, že umožňuje vypočítat rozdělení algebraická rozšíření pole.
Nechat L algebraické rozšíření pole K., generovaný prvkem, jehož minimální polynom F má titul n. Prvky L jsou obvykle reprezentovány jednorozměrnými polynomy K. stupně menší než n.
Přidání v L je jednoduše přidání polynomů:
Násobení v L je násobení polynomů následované dělením F:
Inverzní hodnota nenulového prvku A z L je koeficient u v Bézoutově identitě au + F v = 1, které lze vypočítat rozšířeným algoritmem GCD. (GCD je 1, protože minimální polynom F je neredukovatelný). Nerovnost stupňů ve specifikaci rozšířeného algoritmu GCD ukazuje, že další dělení F není nutné získat deg (u)
Subresultanti
V případě jednorozměrných polynomů existuje silný vztah mezi největšími společnými děliteli a výslednice. Přesněji řečeno, výslednice dvou polynomů P, Q je polynomiální funkcí koeficientů P a Q který má hodnotu nula právě tehdy, když je GCD P a Q není konstantní.
Teorie subresultantů je zobecněním této vlastnosti, která umožňuje obecně charakterizovat GCD dvou polynomů, a výsledkem je n-tý subresultantní polynom.[1]
The i-th subresultantní polynom Si(P ,Q) dvou polynomů P a Q je polynom stupně i jehož koeficienty jsou polynomiálními funkcemi koeficientů P a Qa i-th hlavní subresultantní koeficient si(P ,Q) je koeficient stupně i z Si(P, Q). Mají tu vlastnost, ze které GCD P a Q má titul d kdyby a jen kdyby
- .
V tomto případě, Sd(P ,Q) je GCD z P a Q a
Každý koeficient subresultant polynomials is defined as the determinant of a submatrix of the Sylvesterova matice z P a Q. To znamená, že subresultanti se „specializují“ dobře. Přesněji řečeno, subresultanti jsou definováni pro polynomy přes libovolný komutativní kruh R, a mají následující vlastnost.
Nechat φ být prstencovým homomorfismem R do jiného komutativního kruhu S. Rozšiřuje se na další homomorfismus, označovaný také φ mezi polynomy zazvoní R a S. Pak, pokud P a Q jsou jednorozměrné polynomy s koeficienty v R takhle
a
pak subresultantní polynomy a hlavní subresultantní koeficienty φ(P) a φ(Q) jsou obrázky od φ těch z P a Q.
Subresultanti mají dvě důležité vlastnosti, které je činí základními pro výpočet GCD dvou polynomů s celočíselnými koeficienty na počítačích. Za prvé, jejich definice pomocí determinantů umožňuje ohraničení, prostřednictvím Hadamardova nerovnost, velikost koeficientů GCD. Zadruhé tato vazba a vlastnost dobré specializace umožňují vypočítat GCD dvou polynomů s celočíselnými koeficienty prostřednictvím modulární výpočet a Čínská věta o zbytku (vidět níže ).
Technická definice
Nechat
být dva jednorozměrné polynomy s koeficienty v poli K.. Označme tím the K. vektorový prostor dimenze i polynomy stupně menší než i. Pro nezáporné celé číslo i takhle i ≤ m a i ≤ n, nechť
být taková lineární mapa
The výsledný z P a Q je určující pro Sylvesterova matice, což je (čtvercová) matice na základě pravomocí X. Podobně i-subresultantní polynom je definován z hlediska determinantů dílčích matic matice
Popíšme tyto matice přesněji;
Nechat pi = 0 pro i <0 nebo i > m, a qi = 0 pro i <0 nebo i > n. The Sylvesterova matice je (m + n) × (m + n) -matice taková, že koeficient i-tá řada a j-tý sloupec je pm+j−i pro j ≤ n a qj−i pro j > n:[2]