ZÁPADOČESKÁ UNIVERZITA V PLZNI FAKULTA PEDAGOGICKÁ KATEDRA MATEMATIKY, FYZIKY A TECHNICKÉ VÝCHOVY IREDUCIBILITA POLYNOMŮ V Z(x) BAKALÁŘSKÁ PRÁCE JIŘÍ JANDL Přírodovědná studia, Matematická studia Vedoucí práce: doc. RNDr. Jaroslav HORA, CSc. Plzeň 0
Prohlašuji, že jsem bakalářskou práci vypracoval samostatně s použitím uvedené literatury a zdrojů informací. Plzeň,. února 0... vlastnoruční podpis
Děkuji mému vedoucímu bakalářské práce doc. RNDr. Jaroslavovi Horovi, CSc., za jeho cenné rady, připomínky a metodické vedení práce.
Obsah ÚVOD... 6 První kapitola... 7.. Polynomy a operace s nimi... 7.. Dělitelnost polynomů... 9 Druhá kapitola..... Pojem ireducibilita polynomu... Ferdinand Gotthold Max Eisenstein..... Eisensteinovo kritérium ireducibility... Třetí kapitola... 6.. Faktorizace polynomů čtvrtého stupně... 6 Čtvrtá kapitola... Leopold Kronecker... 4.. Kroneckerův algoritmus... Pátá kapitola... 5.. Square-free factorization... 5.. Musserův algoritmus... 7 5.. Tobeyho-Horowitzův algoritmus... 4 5.4. Yunův algoritmus... 4 Šestá kapitola... 45 6.. Ukázky výpočtů v prostředí Wolfram Mathematica 8... 45 6.. Rozklad polynomů pomocí algoritmů (Musserův, Tobeyho-Horowitzův, Yunnův) v prostředí Wolfram Mathematica 8... 50 Závěr... 60 Resumé... 6 Seznam použité literatury a internetových zdrojů... 6 5
ÚVOD V této bakalářské práci se budeme zabývat ireducibilitou, neboli nerozložitelností polynomů s celočíselnými koeficienty. Faktorizace polynomů, nebo chceme-li také řešení polynomiálních rovnic, je jedním z nejstarších problémů, kterými se matematika, respektive algebra, zabývá. Původně šlo vlastně o hledání kořenů či kořenových činitelů. V této práci si vysvětlíme pojmy ireducibilní a reducibilní mnohočlen a vysvětlíme některé algoritmy, které se dají použít k zjištění daných vlastností. V první kapitole si připomeneme základní věty a definice, které se týkají polynomů. Potom si připomeneme základní operace s polynomy. Větší pozornost budeme věnovat podílu polynomů. V druhé kapitole si vysvětlíme pojmy ireducibility a reducibility polynomů, kde hlavní tématikou je Eisensteinovo kritérium ireducibility polynomu v [ x]. Toto kritérium si uvedeme i s důkazem a předvedeme na několika příkladech. V třetí kapitole se budeme zabývat rozkladem polynomu čtvrtého stupně. Tato metoda byla již známa koncem 9. století. V dnešní době není obvyklé se s ní setkat v učebnicích moderní algebry. Rozklad polynomu je ručně poměrně náročný. Metodu pro tento rozklad si ukážeme a předvedeme ve stručnosti i na příkladech. Ve čtvrté kapitole si ukážeme, jak lze rozložit polynom pomocí Kroneckerova algoritmu. V roce 88 přišel Leopold Kronecker s algoritmem, který dokázal určit rozklad libovolného polynomu v [ x], ale tento postup je poněkud nepraktický, i když dovedl konstatovat, že polynom je ireducibilní. V poslední kapitole si vysvětlíme čtyři různé algoritmy pro rozklad polynomu v součinu faktorů nedělitelných čtvercem. Tyto algoritmy si podrobně vysvětlíme a předvedeme na příkladech. 6
První kapitola.. Polynomy a operace s nimi Polynomy nazýváme také jako mnohočleny, se kterými jsme se již seznámili na základní škole a posléze i na střední škole. Nejprve si nadefinujeme pojem polynomu a pak si připomeneme základní operace s mnohočleny. Definice.. (Polynom) Budiž (,, ) definovanou T některé z číselných komutativních těles a n přirozené číslo. Funkci f x předpisem n a x a x... a x a x a, kde a 0, nazýváme n n n 0 polynomem n tého stupně o jedné proměnné x nad tělesem T,,. Prvky a n, an,, a, a, a 0 z komutativního tělesa T,, nazýváme koeficienty polynomu. n Pod polynomem 0 tého stupně rozumíme polynom f x a0, kde a0 0. Nulový polynom f x 0, který budeme značit o x, nemá stupeň. Polynomy, jinak také mnohočleny v x jsou matematické výrazy ve tvaru n n n i n n... 0 i i0 a x a x a x a x a a x, kde a, n n a,, a, a 0 jsou koeficienty polynomu, a platí a n, an,, a, a0 a an 0, kde n nejvyšší exponent proměnné x s nenulovým koeficientem značí stupeň polynomu. Příkladem může být polynom 4 f x x x x, kde můžeme určit jeho stupeň, který je st f 4. Mezi polynomy také patří i konstanty, v tomto případě se jedná totiž o polynomy nultého stupně (nejvyšší exponent x s nenulovým koeficientem je absolutní člen zapsaný jako a a x 0 0 0 ). Je-li polynom px ( ) 0, pak budeme mluvit o tzv. nulovém polynomu a jeho stupeň bývá někdy definován jako st 0. 7
Definice.. (Primitivní polynom) Nenulový polynom (zapsaný v obecném tvaru) n f ( x) a x a x... a x a x a, n n n 0 kde koeficienty polynomu a n, an,, a, a0 se nazývá primitivní polynom, právě když jeho koeficienty jsou nesoudělné, tj. když největší společný dělitel Da, a,..., a, a. 0 n n Pro pochopení si uvedeme některé příklady primitivních polynomů např. x 4x 6x, x x. Je zřejmé, že z primitivního polynomu můžeme nejvýše vytknout konstantu. Jsou dány polynomy i f ( x) a x, n i0 i m i g( x) bi x, kde a n, bm 0 : i0 i r x f x g x ( ai bi) x, a) Součtem polynomů f x a g x je polynom l max m, n, vzniklý sečtením koeficientů se stejnýmiindexy. l i0 Příklad.. 4 Sečtěte polynomy f x 5x x x 4 a g x x x. Řešení: f x g x (5 x x x 4) ( x x) 5x x 4x x 4. 4 4 b) Rozdílem polynomů f x a g x rozumíme polynom sx f x g x l i0 i ( ai bi) x, l max( m, n), který vznikne odečtením koeficientů se stejnými indexy. t x f x g x a b x který vznikne vzájemným vynásobením jednotlivých členů obou polynomů mezi sebou, a c) Součinem polynomů f x a g x je polynom jeho výsledný stupeň je st st st s f g n m. m n i i j i j, i0 j0 Příklad.. 4 Vypočtěte součin f x g x, kde f x 5x x x 4 a g x x x. 8
Řešení: 4 6 5 4 5 4 x x f g (5 x x x 4) ( x x) 5x x x 4x 5x x x 4 x 6 5 4 5x x x x 4x 4 x. Další základní operací je dělení polynomu polynomem, které nelze definovat jako předešlé operace, proto se budeme podrobněji touto tématikou více zabývat v následující kapitole.... Dělitelnost polynomů Obecně nelze definovat podíl polynomů. Naším problémem je však zkoumat rozklad polynomů, a proto si připomeneme, jak lze realizovat dělení polynomu polynomem v případě, že koeficienty obou polynomů náležejí jistému tělesu T. Potom bez újmy na obecnosti můžeme předpokládat stupně polynomů st f n st g m. Pak existují polynomy Q x a R x, pro které platí f x Qx g x Rx, kde stupeň st R st g Rx 0, platí rovnost f x Qx g x, pak říkáme, že mnohočlen f mnohočlenem g x. Při počítání v. Pokud je x je dělitelný x však musíme navíc sledovat, zda polynomy Q x a R x mají celočíselné koeficienty. Pokud by nalezené polynomy neměly celočíselné koeficienty, pak polynomy Q x a R x nenáleží do oboru x. Věta.. Budiž dány polynomy f x 0, g x z oboru integrity potom existují polynomy Q x, Rx 0 nebo st Rx st g x Příklad.. Tx,,, kde st g x, R x takové, že platí f x Qx g x Rx. Tyto polynomy jsou jednoznačně určené., kde 4 Jsou dány polynomy f x x x 4x 5x 5 a g x x x polynomy Q x a R x takové, že platí f x Qx g x Rx.. Nalezněte 9
Řešení: V tomto případě je zřejmé, že budeme dělit polynom s nejvyšší mocninou polynomu x x 4 x, první člen odečteme od nemá stupeň menší než mocninou Q x je tedy f x polynomem g x. Člen f x dělíme členem s nejvyšší mocninou polynomu g x : x. Tímto členem násobíme polynom g x a výsledek f x, dostaneme f x f x x g x x x. Mnohočlen f x 5 5 g x, takže musíme pokračovat v dělení. Dělíme opět člen s nejvyšší f x členem s nejvyšší mocninou g x : polynomu Qx, ( ) kterým znovu násobíme x x g x a výsledek odečteme od Získáváme polynom f x f x x g x. Tento polynom f x, dostáváme druhý člen f x. x má stejný stupeň jako g x, tím musíme ještě dělení jednou opakovat. Opět dělíme člen s nejvyšší mocninou f x členem s nejvyšší mocninou g x : kterým znovu vynásobíme 9x x g x a výsledek odečteme od 9, dostáváme třetí člen polynomu Qx, ( ) f x. Polynom f x f x g x x. Tento polynom má již menší stupeň, než g x 9 a tím dělení můžeme ukončit a f x Rx je zbytek po dělení. Jelikož polynom 0 není polynom f x dělitelný g x. Tento postup předvedeme na schématu, který jsme používali na středních školách. 4 x x 4 x 5 x 5 : x x x x 9 x 6 x 4x 4 ------------------------------------------------------------- x 5 x 5 9 6 x x x ------------------------------------------------------------ 9 x x 5 Q x, 0
9 x 7 x 5 ------------------------------------------------------------ 6 x Zde je Qx x x 9 a zbytek Rx 6 x. Tedy platí 4 x x 4x 5x 5 ( x x ) (x x 9) (6x ). Příklad.4. Určete polynomy Qx, ( ) Rx ( ) z oboru integrity polynomů 5 4 4 5 5 5, f x x x x x x x ;,, je li dáno g x x x x 5. Řešení: Toto řešení příkladu je stejné jako v příkladě.. 5 x Postup je následující: x, takže první člen ( ) x Qx je x. Zpětným vynásobením a 5 0 5 odečtením dostaneme polynom opět člen s nejvyšší mocninou druhý člen mnohočlenu ( ) f x f x x g x x x x 5. Dělíme f x členem s nejvyšší mocninou g x : 5x x Qx. V tomto případě je ovšem f x f x g x 5, což je 5 0 a tím můžeme ukončit dělení, protože st f st g. Zároveň platí f x Qx dělení mnohočlenu mnohočlenem je nulový, takže f x je dělitelný g x. Schéma: x 5 x 4 4 x 5 x 5 x 5 : x x x 5 x 5 x x x 5x 5 4 -------------------------------------------------------------------------- 5 x 0 x 5 x 5 5 x 0 x 5 x 5 -------------------------------------------------------------------------- 0, zbytek po
Můžeme tedy konstatovat, že f x je rozložitelný a platí f x ( x 5) g x. Zde je Qx x 5 a 0 R x. Platí tedy 5 4 x x 4x 5x 5x 5 ( x x x 5) ( x 5). Druhá kapitola.. Pojem ireducibilita polynomu Pro připomenutí si zopakujeme ve stručnosti teoretické základy vyšetřované problematiky. Je známo, že obor integrity polynomů x s celočíselnými koeficienty je oborem integrity s jednoznačným rozkladem. To znamená, že každý nenulový prvek tohoto oboru integrity, který není jednotkou ve smyslu dělitelnosti, může být zapsán jako součin konečně mnoha ireducibilních prvků. Tito činitelé jsou přitom určeny jednoznačně až na pořadí a na asociované prvky. Z druhé strany připomeňme, že v společného dělitele užít Euklidův algoritmus. To znamená, že v x obecně nelze k určení největšího x není euklidovským oborem integrity a není ani oborem integrity hlavních ideálů. Zde je otázkou, jak rozeznat prvek v x, který je ireducibilní nebo nikoli. Ferdinand Gotthold Max Eisenstein Narodil se 6. dubna 8 v Berlíně do rodiny, která ještě před jeho narozením konvertovala od judaismu ke křesťanství. Měl šest sourozenců a jako jediný z nich přežil zápal mozkových blan, který je v dětství postihl. Ve svých čtrnácti letech nastoupil na Gymnázium Friedricha Wilhelma a následně přestoupil na Gymnázium Friedricha Werdera v Berlíně. Jeho učitelé rozpoznali jeho matematický talent a všemožně jej podporovali. V roce 84 byl přijat na Univerzitu Friedricha Wilhelma (nyní Humboltova Univerzita v Berlíně) a během dalšího roku zveřejnil dvacetpět svých článků v matematickém časopise Augusta Leopolda Crella. Crell jej představil Alexandru von Humboltovi, který se stal jeho celoživotním
kantorem a sponzorem a také ho seznámil s Karlem Friedrichem Gaussem. V roce 847 se stal profesorem matematiky a krátce před svou smrtí byl zvolen do Royal Prussian Academy of Sciences and Humanities. Zemřel. října 85 na tuberkulózu... Eisensteinovo kritérium ireducibility Ve školské matematice se nejčastěji zabýváme rozkladem na součin jistých polynomů s celočíselnými koeficienty, např. x x x x x x x 9 ( ) ( ), 64 ( 4) ( 4 6). Polynomy x 4, x 4 x x x x 6 ( 4) ( ) ( ), 4x 6 již nelze rozložit v součin polynomů prvního stupně s celočíselnými koeficienty, jak se snadno zjistí. Ovšem pro některé polynomy lze obtížně určit, zda jsou ireducibilní neboli nerozložitelné, např. pro 7 x x x x 4 8. Definice.. Buď f x x, f x 0, f x polynom, který nelze zapsat ani jako součin dvou polynomů kladných stupňů s celočíselnými koeficienty, ani ve tvaru f x k g x, k, k, g x x. Tak zvaně, že z polynomu polynom f f x není ani možné vytknout konstantu k. Pak říkáme, že x je nerozložitelný čili ireducibilní. Ireducibilní polynom je takový polynom, který nelze rozložit na součin jednodušších polynomů. Ireducibilními polynomy jsou např. x, mluvíme o reducibilním polynomu. Ireducibilní prvek v x x. V opačném případě x má pouze nevlastní dělitele (jednotky a prvky s ním asociované), např. x, x, 4 x, atd. Věta.. (Eisensteinovo kritérium ireducibility) n n Mnohočlen n tého stupně f x a x a x... a x a, f x x n n 0, nelze rozložit na součin polynomů kladných stupňů s celočíselnými koeficienty, pokud existuje takové prvočíslo p, pro které platí:
i) p nedělí a n, ii) p dělí všechny koeficienty a i, i0,,,..., n, iii) p nedělí a 0. Pokud polynom vyhovuje Eisensteinovu kritériu, lze z mnohočlenu vytknout maximálně celočíselnou konstantu neboli polynom nultého stupně. Zaměříme-li se právě na vytýkání konstant, uvědomíme si, že v oboru x existují právě dvě čísla, která můžeme vytknout z jakéhokoliv polynomu, sice a (vytknutím se polynom nezmění, vytknutím se u všech koeficientů polynomu změní znaménka na opačná). Jednu z podmnožin těchto polynomů dále tvoří mnohočleny, z nichž lze vytknout celé číslo různé od. Například f x x 7x 9 ( x 9x ). Zjištění požadovaného koeficientu, který lze vytknout, je oproti samotnému rozkladu na součin polynomů kladných stupňů poměrně jednoduchý úkol. Jedná se vlastně jen o zjištění největšího společného dělitele koeficientů polynomu an, an,..., a, a0 Důkaz: Provedeme sporem. tj. vytknutí čísla Dan, an,..., a, a0. Z dokázaného kritéria můžeme nanejvýš vytknout celočíselnou konstantu tzv. polynom stupně nula. Druhým důvodem pro reducibilitu polynomu f xx může být, že jej lze zapsat jako součin dvou polynomů kladných stupňů s celočíselnými koeficienty. Pokud budou splněny podmínky pro jisté prvočíslo p Eisensteinova kritéria ireducibility (i), (ii), (iii) a je li testovaný polynom primitivní, pak polynom je ireducibilní v několika příkladech. Příklady.. a) Polynom pro 7 4 6 5 x. Ukážeme si na f x x x je primitivní a splňuje podmínky Eisensteinova kritéria p, takže je ireducibilní v x 6 5 4 b) Polynom f x x x x x x je také ireducibilní v x 5 4 8 4 rovněž Eisensteinovo kritérium, lze volit p. splňuje 4
c) Každý polynom ve tvaru n x 4 d) Polynom f x x je také ireducibilní v x 5 p, kde n a p je prvočíslo, je ireducibilní v x Úvahou to ověříme. Tento polynom nemá reálné kořeny a tím ani kořeny celočíselné, proto se v rozkladu polynomu v oboru integrity x nemůže vyskytnout lineární faktor. Zbývá nám možnost rozložit tento polynom na dva kvadratické faktory, tj. f x x a x b x c x d, kde a, b, c, d Roznásobením a porovnáním koeficientů f x 0 x, x, x, x dostáváme soustavu čtyř rovnic o čtyřech neznámých a, b, c, d, která však nemá celočíselné řešení. Ověření tohoto faktu lze přenechat čtenáři. Hledaný rozklad f x x a x b x c x d, kde a, b, c, d, tedy neexistuje. I když na polynom f x nelze rovnou použít Eisensteinovo kritérium, je zde metoda, kterou je dobré znát. Píšeme li x z F z z 4 z 6 z 4 z 6,, dostaneme polynom 4 který je ireducibilní podle Eisensteinova kritéria, p. Pokud by existoval rozklad, kde g x, hx x, st g x, f x g x h x platit F z f z g z hz 0 0 st h x, pak by muselo, což je spor. Je tedy tento polynom ireducibilní. Substituce z x k, k mohou rozšířit oblast použitelnosti Eisensteinova kritéria, které nám již poskytly řadu ireducibilních polynomů. Nyní se budeme zajímat o algoritmy, kterými lze získat rozklad daného polynomu f x x v součin ireducibilních faktorů. Pokud budeme studovat rozložitelnost polynomů v omezující. Existuje však úzká souvislost mezi rozložitelností v polynomů s racionálními koeficienty primitivních polynomů. Věta.. x, mohlo by se zdát, že je příliš xa v oboru integrity xjak již víme, postačí nám zkoumat faktorizaci Nechť f x x je primitivní polynom, st f x. Existují li dva polynomy g x a x kladných stupňů tak, že f x g x hx, pak existují též polynomy h x g x, 5
takové, že f x g x h x. Přitom platí g x a g x, hx b h x h x x a, b, ab., Třetí kapitola.. Faktorizace polynomů čtvrtého stupně Nyní se budeme zabývat rozkladem polynomů čtvrtého stupně. Tato faktorizace polynomů již byla zmíněna v roce 886 v algebraické literatuře. V moderní době technika rozkladu polynomů čtvrtého stupně nad racionálními čísly není obvykle diskutována v učebnicích moderní algebry. Zdá se tedy, že faktorizační teorie pro polynomy čtvrtého stupně je již zapomenuta, proto si ji připomeneme. Rozložit polynom třetího stupně určitě dovedeme, např. x x x, tedy f x x 4x 4x na f x má netriviální rozklad a je tudíž reducibilní. Avšak obtížnější je faktorizace polynomu čtvrtého stupně, např. 4 x x x x 8 9 8. Základní nástroje pro rozklad polynomů jsou: Věta.. (O činiteli neboli faktoru) Nechť f xcje činitelem x a c. Pak je kořenem polynomu f x, tj. platí f c 0, jestliže f x. Věta.. (O racionálních kořenech) f x anx an x ax a0, kde koeficienty an, an,, a0 jsou celá čísla. n n Nechť Jestliže p q je racionální číslo v základním tvaru takové, že f p q 0, pak p dělí a0 a q dělí a n. Tyto věty dostačují pro rozklad jakéhokoli polynomu druhého a třetího stupně. Tyto polynomy jsou reducibilní právě tehdy, když mají nějaký kořen v. Nalezení takového kořene je snadné díky větě o racionálních kořenech a pak dlouhé dělení poskytuje odpovídající faktorizaci. 6
Polynomy čtvrtého stupně lze někdy rozložit na součin dvou polynomů druhého stupně, které nemají kořeny z, tj. nemají pochopitelně lineární faktory (činitele). Pak k určení, zda je, nebo není polynom čtvrtého stupně bez racionálních kořenů reducibilní, potřebujeme vědět, jestli je rozložitelný na součin dvou kvadratických polynomů. Věta. ukazuje, že tato otázka může být zodpovězena použitím asociovaného (sdruženého) polynomu třetího stupně, který se nazývá pomocný polynom (rezolventa). 4 Pro zjednodušení budeme brát v úvahu jen polynomy ve tvaru: f x ax bx cx dx e x tvar je polynom je, kde a 0, je libovolný polynom čtvrtého stupně, pak zjednodušený Např. zjednodušený tvar polynomu f x b /4a 4 4 8 9 8 je f x x x x x a f x x x 5x 6.. Zjednodušený tvar má koeficient u členu x 4 roven a nemá člen třetího stupně. Snadno vidíme, jak faktorizace zjednodušeného tvaru dává faktorizaci původního polynomu. Pak toto lze zobecnit v následující větě za předpokladu, že f x je vždy ve zjednodušeném tvaru 4 f x x cx dx e. Za těchto okolností pomocný polynomu je polynom třetího stupně R z z cz c 4 e z d. Pak je jednoduché počítat kořeny polynomu f x, když je rozložen; není překvapení, že pomocný polynom se objevuje v mnoha vydaných metodách pro nalezení kořenů polynomů čtvrtého stupně. Dále píšeme s s pro čtverce z. Věta.. 4 Polynom čtvrtého stupně f x x cx dx e x z x se rozloží na kvadratické polynomy právě tehdy, když je splněna alespoň jedna podmínka: 7
( A ) pomocný polynom R má nenulový kořen z. ( B ) d 0 a Důkaz: c 4e. Předpokládejme, že f x se rozloží jako f x x hx k x hx k, kde h, h, k, k vynásobením a spojením koeficientů dostaneme 0 h h, e k k,. Pak h h a rovnice je lineární, kde k a k d hk hk, c hh k k mohou být rozděleny do bloků dostaneme 4h e hk hk h ch d h ch d a 4 hk h ch d, hk h ck d 4. Z e k k 5. Vynásobením dostaneme h 6 ch 4 c 4e h d 0 6 a tak h 0, pak platí z věty 4. ( ) A. Jestliže h 0 dostaneme c e k k kk k k h je kořen pomocného polynomu R. Jestliže, pak z 6 vyplývá, že d 0 a z a 4 4. V tomto případě platí ( B ) věty 4.. Nyní budeme předpokládat, že pomocný polynom R je nenulový kořen z nějaké nenulové h takové, že platí 6. Rovnice h h, 7. Pak h, k, k h k h ch d f x se rozloží na kvadratické polynomy z c 4 e s pro libovolné s. Rovnice Pak h, h, k, k a k + k = c, opět f x rozloží na kvadratické polynomy z. Pak existuje h k h ch d a z 6 vyplývá 5, platí rovnice a. Pak x jako v. Předpokládejme, že d 0 a c s h h 0, k a c s k, 8. c s kk e, f x x k x k a potom se 4 x. Z důkazu této věty můžeme získat algoritmus pro rozklad polynomu čtvrtého stupně f x ve zjednodušeném tvaru. Nejdříve pomocí věty o racionálních kořenech najdeme racionální kořeny f x. Jestliže c je takový kořen, že splňuje podmínku z věty o faktoru, pak víme, že f x ( x c) gx pro libovolné polynomy třetího stupně gx, které mohou být 8
určeny dělením. Jestliže f x nemá racionální kořeny, pak hledáme racionální kořeny pomocného polynomu R. Jestliže podmínka věty 4. A h je nenulový kořen rezolventy R, pak platí a rovnice 7 a dají faktorizaci polynomu f x. Jestliže platí B věty. pak rovnice 8 a určují faktorizaci polynomu f x. Jestliže tyto kroky nevedou k faktorizaci, pak polynom f x je ireducibilní. Příklad.. Je dán polynom 4 f x x x x. Pak polynom f x a ani pomocný polynom R z z z z nemá racionální kořen, tudíž polynom f x je ireducibilní. Příklad.. f x x x 5x. Pak f x nemá racionální kořeny a pomocný polynom Polynom 4 R z z 4z 40z 5 má jeden racionální kořen, tj. hodnotu 5, který není v Q a tudíž polynom Příklad.. f x je ireducibilní. f x x x x. Tento polynom f x nemá racionální kořeny, ale Polynom 4 pomocný polynom R z z 4z 6z 9 má jeden racionální kořen, jmenovitě 9 Q. Pak polynom f x je reducibilní. Dosazením h 9 polynom f x x x x x. do rovnic 7 a dostaneme Příklad.4. f x x 8x x 9x 8, motivační příklad ze začátku této kapitoly. Tento Polynom 4 polynom f x nemá racionální kořeny. Přejdeme na zjednodušený tvar tohoto polynomu, tj. 4 5 6. Jeho pomocný polynom f x x x x racionální kořen, tj. f x x x x x. Dosazením h R z z 4z 8z 5 má jeden do rovnic 7 a dostaneme polynom. f x na. Pak dostaneme rozklad původního polynomu 9
dva polynomy druhého stupně f x x x x x reducibilní. 5 8. Polynom f x je tudíž 4 Tuto kapitolu zakončíme vyšetřením speciálního případu, kdy f x x cx e. Jestliže 4 r je kořen polynomu f x x cx e, pak také r je kořenem, a x r x polynom f x. Potom dělí f xje reducibilní právě tehdy, když lze rozložit na dva kvadratické polynomy. Pokud d 0, pomocný polynom (rezolventa) polynomu f x je z z cz c 4e s kořeny 0, c e. polynom Věta.4. f xireducibilní. 4 Polynom čtvrtého stupně f x x cx e x Rz Věta. nyní umožní zkoušku, zda je je reducibilní právě tehdy, když c 4 e, nebo c e a nebo c e. Pro podmínky zahrnující e, aby platily, je nutné, aby Příklad.5. e. f x x x. Rozložte polynom 4 Nejprve určíme c a e. Máme c 4e 5, c e 5, c e,. Pro výpočet faktorizace dosadíme h f x x x x x. Tento polynom Příklad.6. f x x 6x 4. Rozložte polynom 4 do rovnic 7 a f x je reducibilní. a dostáváme polynom Určíme c = 6 a e = 4. Máme tedy c 4e 40,. V tomto případě nenáleží hledané kořeny do, tudíž polynom c e 0, c e, f x je ireducibilní. 0
Čtvrtá kapitola Leopold Kronecker Klasickým algoritmem pro faktorizaci polynomů v xje tradičně nazýván Kroneckerův algoritmus, po německém matematikovi Leopoldu Kroneckerovi (8 89), který se narodil v zámožné a vzdělané židovské rodině, jeho mladší bratr Hugo (89-94) byl významný fyziolog. Získal vynikající vzdělání od domácích učitelů a na gymnáziu byl jeho učitelem Ernst Eduard Kummer, který v něm probudil zájem o matematiku. Roku 84 začal studovat filosofii na univerzitě v Berlíně, zajímal se hlavně o Descarta, Leibnize, Kanta, Hegela a Spinozu. Studoval také astronomii, chemii, meteorologii a zejména matematiku, k jeho učitelům patřili Dirichlet a Steiner. Po kratších pobytech na univerzitách v Bonnu a Vratislavi se roku 844 vrátil do Berlína. Tam v roce 845 promoval latinskou prací o Komplexních jednotkách. Pak se deset let s velkým úspěchem věnoval obchodu a zajistil si tak finanční nezávislost, také díky bohatému strýci a sňatku s jeho dcerou. Znovu začal s matematikou v roce 85, kdy rozšířil Galoisovu teorii algebraických rovnic. Kronecker publikoval množství prací na nejrůznější témata jako teorie čísel, eliptické funkce apod. Díky těmto pracím byl roku 860 přijat za člena berlínské Akademie. To mu dalo právo přednášet na univerzitě, kde vyučoval teorii čísel, teorii rovnic, teorii determinantů a integrálů. Nepřitahoval příliš mnoho studentů, jen málo z nich bylo schopno sledovat jeho myšlenky a dokonale jim porozumět. Mezi nimi byl například Georg Cantor a Edmund Husserl. Kronecker odmítl nabídku profesury na univerzitě v Göttingen, protože jej přitahoval Berlín, kde získal místo profesora v roce 88 po svém někdejším učiteli Kummerovi, a kde také roku 89 zemřel.
4.. Kroneckerův algoritmus Tento algoritmus je posloupnost několika kroků: a) Při hledání jistého polynomu g x s celočíselnými koeficienty, stupeň je menší nebo roven číslu n s. Zde symbol n značí tzv. celou část čísla n, tj. největší celé číslo, které je menší nebo rovno n. Je-li například stupeň n mnohočlenu f x roven devíti, pak je číslo 9 s 4. Tento horní odhad pro stupeň polynomu g x vyplývá z vlastností spjatých se součinem dvou polynomů. Pro stupně tří polynomů, platí st f st g st g f x g x g x předpokládat, že st g st g f x, g x a g x, kde. Bez újmy na obecnosti můžeme, v opačném případě bychom provedli přečíslování. Mezním případem je zde rovnost st g st g, kdy se rovnice st f st g st g také jako st f st g, z čehož plyne mnohočlenu g x, který dělí polynom b) Spočítáme s funkčních hodnot mnohočlenu Dostaneme tak dá zapsat st f st g. Proto je stupeň hledaného f x, z intervalu st g s, s celočíselných hodnot 0,,,..., st g. f x, např. pro x 0,,,..., s. f f f f s. c) Pokud má hledaný polynom g x dělit zadaný mnohočlen hodnoty v bodech x 0,,..., s f x, musí jeho funkční dělit příslušné vypočítané funkční hodnoty f g0 f 0, g f,, dělitelů čísel 0,,..., hodnoty 0 x. Přesněji g s f s. Zavedeme proto množiny Df (0), Df (),..., D f ( s) f f f s. To znamená, že D f (0) je množina všech dělitelů funkční f. f () D je množina všech dělitelů funkční hodnoty f, atd., Df () i, i 0,,..., s. Zde se ukazuje, že občas je vhodnější volit body x pro výpočet funkčních hodnot f x tak, aby tyto hodnoty měly co nejméně dělitelů. V příkladech se však budeme držet již zavedeného postupu.
Za zmínku stojí případ, kdy pro nějaké j 0,,..., s platí 0 bychom pouhým dosazením zjistili jeden kořen polynomu f j. V takovém případě f x, mnohočlen g x by byl zapsán g x ( x j) a k dokončení úlohy by zbývalo dělit mnohočlen f mnohočlenem x nalezeným g x. Získali bychom tedy rozklad f x g x hx ( x j) hx, kde x a st h st f. Pokud by pro žádnou funkční hodnotu h x f j, j 0,,..., s neplatilo f j 0, jsou všechny množiny Df (0), Df (),..., D f ( s) konečné a pokračujeme dalším krokem. d) Pomocí polynom s vybraných hodnot g0 Df (0), g Df (),, g s D f ( s ) g x, který v bodě x 0 nabývá vybrané hodnoty 0 g,, v bodě x s hodnoty gs. Tento mnohočlen určíme g, v bodě x hodnoty g x spočteme postupem užívaným pro nalezení tzv. Newtonova interpolačního polynomu. Při hledání Newtonova interpolačního polynomu jde v podstatě o nalezení předpisu pro mnohočlen přičemž známe jeho, s. Polynom s funkčních hodnot i g x kladného stupně s, f x, kterých nabývá v s bodech x 0,, g x zapíšeme ve tvaru g x 0 x x0 x x0 x x ( ) ( ) ( )... s( x x0)... ( x xs ). Výpočet polynomu g x, respektive dopočítání koeficientů 0,,, s se pak dá zjednodušit zapsáním do tzv. schématu rozdílů : g x g x g x i i i g xi g xi g xi g x g x g x, atd. i i i i
gx 0 gx 0 gx gx 0 gx gx 0 g x g x g x g x Koeficienty ukážeme na příkladech. k pak spočteme dosazením do vzorce k k g x k! i. Nyní si popsané kroky Příklad 4.. Nalezněte polynom nejvýše třetího stupně, pro který platí p. p0, p, p 9, Řešení: Nejprve si zapíšeme známé funkční hodnoty do schématu rozdílů, podle výše zmíněného postupu. Dále spočteme potřebné hodnoty a z nich potom dopočteme koeficienty k. 0 8 6 9 6 4 4
0 0!! 0 5! 6! Nyní dosadíme do rovnice tyto koeficienty: 0 0 0 0 p x ( x x ) ( x x ) ( x x ) ( x x ) ( x x ) ( x x ), potom dostaneme rovnici px ( x 0) 5 ( x 0)( x ) ( x 0)( x )( x ), po roznásobení závorek p x x x 5x. Pokud zpět dosadíme do zjištěného polynomu, můžeme si ověřit, že jeho funkční hodnoty odpovídají hodnotám zadaným. e) Takto získaný polynom nemusí být nutně z oboru mnohočlenů s celočíselnými koeficienty. Pokud tedy g x [ x], musíme se vrátit na začátek. f) Pokud vybereme jinou množinu hodnot g 0, g,..., g s. Má-li však mnohočlen g x všechny koeficienty celočíselné, otestujeme jej, zda v x dělí polynom f x. Pokud platí, že g x f x, je úloha vyřešena a nalezli jsme rozklad f x g x hx,, st g 0, st h 0. Nastane-li případ, že mnohočlen g x h x x f x, pak je nutno se vrátit na začátek oddílu d)., g x nedělí Opakujeme-li postup s jinou množinou funkčních hodnot g 0, g,..., g s a pokud vyzkoušíme všech ( s ) tic a přesto se nám nepodaří nalézt hledaný polynom g x, můžeme konstatovat, že polynom f x je nerozložitelný neboli ireducibilní v oboru x. Příklad 4.. Rozhodněte o ireducibilitě či reducibilitě polynomu f (x) = x 5 + x 4 + x +x +, f x [ x]. 5
Řešení: Stupeň polynomu f x je st f 5, hledaný mnohočlen g x tedy bude mít stupeň nejvýše st g funkčních hodnot Df (0),, 5 s Df (),,,, 9, 9, f x : f 0, f 9,. Nyní spočítáme ( s ) (v tomto případě je s ) f 05 a utvoříme množiny jejich dělitelů. Df (),,,, 5, 5, 7, 7, 5, 5,,, 5, 5, 05, 05. Množina D f (0) obsahuje prvky, D f () jich má 6 a D f () dokonce 6. V nejhorším případě bychom tedy museli vyzkoušet všech 66 9 uspořádaných trojic, abychom mohli konstatovat, že polynom f x je ireducibilní. ) Zvolíme g 0 g g. Pak ale dostáváme polynom g x, což je konstanta nebo též polynom nultého stupně. Konstanty však jdou vytknout z libovolného mnohočlenu, takže budeme pokračovat v testování jiné trojice. ) Vyzkoušíme g 0, g, g Vytvoříme schéma rozdílů.. Zde již nebude výsledkem konstanta. 0 Koeficienty k pak budou: 0, 0! 6
0 0,!.! g x ( x x ) ( x x )( x x ) dostaneme a po dosazení do vzorce 0 0 0 g x 0 ( x 0) ( x 0)( x ), což po roznásobení závorek dává Tento polynom mnohočlen f x. g x má sice stupeň g x x x. st g a je i z oboru [ x], avšak vydělíme-li jím f x, nedostaneme nulový zbytek. Polynom g x tedy není dělitelem polynomu ) Nyní vyberme hodnoty g 0, g, g 7 a opět sestavíme schéma. 4 7 Koeficienty k jsou 0 0!,!! Po dosazení dostaneme g x ( x 0) ( x 0)( x ) a po roznásobení máme g x x x. Tento mnohočlen již v [ x] rozklad polynomu dělí polynom f x beze zbytku. To znamená, že jsme nalezli f x na dva mnohočleny nižších stupňů a můžeme psát 7
5 4 f x x x x x ( x x ) ( x x x ) g x h x, kde mnohočlen g x, že daný polynom je reducibilní. hx a st g, st h, čímž jsme tento příklad vyřešili a zjistili, Příklad 4.. Rozhodněte v [ x] o reducibilitě či ireducibilitě polynomu Řešení: Stupeň polynomu 7 6 5 4 f x x x x 8x x 6 x 5x. f x je st f 7, takže 7 s Hledáme polynom g x nejvýše kubický. Potřebujeme ( s ) 4 pro několik vybraných čtveřic 0,,, g g g g f 89, ke kterým sestrojíme množiny dělitelů. Df (0),,,, Df (),, Df (),, 7, 7, 9, 9,,, funkčních hodnot f x : f 0, f, f, Df (),,,, 9, 9, 57, 57, 67, 67, 0, 0, 7, 7, 89, 89 V nejhorším případě bychom pro nalezení rozkladu polynomu f (x) museli projít všech 04 uspořádaných čtveřic, neboť 4 8 6 04 g a g g, máme ovšem g 0,. Zvolíme tedy například hodnoty g x, a tím nemusíme dosazovat do schématu rozdílu. Povšimněme si, že interpolační polynom nemusí mít právě stupeň s, ale může mít i stupeň nižší. V tomto případě jde o konstantu a nalezli jsme triviální dělitel gx polynomu f x. A tím je nutné pokračovat v hledání vhodných množin dělitelů. Zvolíme dalších několik vybraných čtveřic g 0, g, g, g 8
Hodnoty g 0, g, g 7, g 9 dosadíme do schématu rozdílu. 0 6 9 6 8 7 6 Koeficienty k potom budou Dosadíme je do vzorce a dostaneme 0, 0! 0 0,! 6,! 8 9! 9 g x 0 ( x 0) ( x 0)( x ) ( x 0)( x )( x ), po roznásobení máme oboru 9 47 g x x x x. Tento mnohočlen ovšem nepatří do x, protože nemá všechny koeficienty celočíselné, takže se vrátíme zpět k výběru hodnot z množin dělitelů a zvolíme jiné. ) Pro několik vybraných čtveřic g 0, g, g, g Hodnoty g 0, g, g 9, g 57 dosadíme opět do schématu rozdílu. 9
57 Opět určíme koeficienty k : Dosadíme je do vzorce a dostaneme 0 8 8 9 0 8 0, 0! 0 0,! 8 9!! g x 0 ( x 0) 9 ( x 0)( x ) ( x 0)( x )( x ), po roznásobení máme 5 g x x 8 x x. Tento mnohočlen opět nepatří do oboru [ x], protože nemá všechny koeficienty celočíselné, takže se vrátíme zpět k výběru hodnot z množin dělitelů a zvolíme jiné. 4) Pro několik vybraných čtveřic g 0, g, g, g Hodnoty g 0, g, g 9, g 67 a dosadíme opět do schématu rozdílu. 0 8 8 9 0 48 67 0
Vypočteme koeficienty k : 0, 0! 0 0,! 8 9!! Dosadíme je do vzorce a dostaneme g x 0 ( x 0) 9 ( x 0)( x ) ( x 0)( x )( x ), po roznásobení dostáváme g x x x 5x, g x x všechny koeficienty celočíselné. Pokud budeme dělit mnohočlen zjistíme, že podíl vyjde beze zbytku a můžeme tedy psát kde 4 ( 5 )( ) f x x x x x x g x h x, g x, hx x, st g,. Tento mnohočlen má tedy f x mnohočlenem g x st h. Aplikujeme-li navíc na oba polynomy g x, h x Eisensteinovo kritérium ireducibility, zjistíme pomocí prvočísla p, že oba polynomy jsou ireducibilní. Dostali jsme tedy úplný rozklad polynomu že tento polynom je rozložitelný, tzv. reducibilní. f x, což znamená, Obrázky, které jsme pořídili na kalkulátoru TI -9 Plus a využili jsme právě Kroneckerova algoritmu. Obrázek
Obrázek Zatímco na obrázku je případ, kdy se rozklad polynomu pátého stupně podařilo na kalkulátoru TI -9 Plus nalézt, vidíme na obrázku, že stejný typ kalkulátoru již u polynomu sedmého stupně úspěšný nebyl. Důvodem je zřejmě omezená paměť kalkulátoru, případně omezení pro čas výpočtu. Kroneckerův algoritmus lze tedy na malých kalkulátorech úspěšně provádět zhruba nanejvýš pro polynomy 6. stupně s nevelkými celočíselnými koeficienty. Pátá kapitola 5.. Square-free factorization Square free decomposition, je dalším algoritmem počítačové algebry. Jedná se o rozklad polynomu na součin faktorů nedělitelných čtvercem. V tomto algoritmu však nejde o úplnou faktorizaci, neboť ta vede k rozkladu mnohočlenu v součin ireducibilních faktorů. Poznamenejme, že ani tento algoritmus nemusí vždy dosáhnout úspěchu. Tento rozklad je zpravidla jednodušší a tím pádem i rychlejší než úplný rozklad, k jeho provedení stačí znalost určení formálních derivací a zároveň největších společných dělitelů. Jedná se o předstupeň k úplné faktorizaci, nicméně v některých situacích je Square free rozklad i sám o sobě užitečný, například když je nutné určit, zda je daný polynom n tou mocninou polynomu jiného.
Definice 5.. Primitivní mnohočlen vx I x, dělitelný čtvercem, pokud v Ix neexistuje takový polynom u x v x. I x je obor integrity s jednoznačným rozkladem, není u x, st u 0, pro který platí Definice 5.. Nechť f x je primitivní polynom v Ix. Tento polynom je rozložitelný v součin faktorů k nedělitelných čtvercem, pokud jej lze zapsat ve tvaru f x v x v x v x mnohočleny vi... k, kde I x nejsou dělitelné čtvercem a jsou po dvou nesoudělné, i j pro všechna i, j,,..., k, i j. D v, v, Poznámka: Skutečnost, kterou nesmíme opomenout je, že ireducibilita polynomu přímo implikuje jeho netriviální nerozložitelnost v součin faktorů nedělitelných čtvercem. Opačná implikace totiž neplatí (polynom může být nerozložitelný ve square-free decomposition, ale to ovšem neznamená důkaz ireducibility). Příklad 5.. ) Polynom f x x neboť stačí položit ) Polynom f x x je triviálně rozložitelný na součin faktorů nedělitelných čtvercem, v x x Ten faktor bude opět jediný, je ) Polynom a zároveň je ireducibilní. je triviálně rozložitelný v součin faktorů nedělitelných čtvercem. v x x a lze jej rozložit v součin x ( x ) ( x ). f x x x je rozložitelný v součin faktorů nedělitelných čtvercem, je totiž v x, v x x a také lze provést jeho úplnou faktorizaci f x x x. ( x ) ( x )( x ). K nalezení rozkladu polynomu v součin faktorů nedělitelných čtvercem ke square-free rozkladu využijeme formální derivaci, jak už bylo zmíněno na začátku této kapitoly. Formální derivace není konstruována pomocí pojmu limity funkce, jak je tomu v matematické analýze, nicméně vlastnosti obou typů derivací jsou shodné.
Definice 5.. n n Formální derivací polynomu f x a x a x a x a, f x I x n n 0 n n polynom f x na x ( n ) a x a x a, f x I x n n. Tato formální derivace má stejné vlastnosti jako derivace založená na limitě funkce., rozumíme Věta 5.. Mějme polynomy f x a g x I x, libovolnou konstantu k I, I je obor integrity, a proměnnou n. Potom platí:, tj. z derivace mnohočlenu lze vytknout libovolnou konstantu k, a) k f x k f x která je dělitelem všech koeficientů tohoto mnohočlenu,, tj. derivace součtu polynomů je rovna součtu derivací b) f x g x f x g x jednotlivých polynomů, kde v prvém sčítanci se vyskytuje derivace polynomu polynom g x a ve druhém sčítanci je polynom obecně pak pro n polynomů platí: f x fx fn x f x a f x násobený derivací mnohočlenu g x, f x f x f x f x f x f x f x f x f x n n n, tj. derivace součinu dvou polynomů f (x) a c) f x g x f x g x f x g x gx je rovna součtu dvou součinů, kde v prvém sčítanci se vyskytuje derivace polynomu f x a polynom g x a ve druhém sčítanci je polynom mnohočlenu g x, obecně pak pro n polynomů platí: f x f x fn x f x násobený derivací f x f x f x f x f x f x f x f x f x n n n n n d) f x n f x f x, tj. umocněný polynom je v podstatě složená funkce a derivuje se tedy stejným způsobem, což znamená: Nejprve derivujeme vnější funkce, v našem případě je umocnění polynomu, a výsledek se násobí derivací vnitřní funkce, kterou je samotný polynom. 4
Tuto větu použijeme v následující úvaze: Pokud je polynom f x I x dělitelný čtvercem nějakého polynomu vx I x, přičemž st v, lze jej zapsat ve tvaru f x u x v x, jeho derivace je f x ux v x u x v x v x. Tento zápis derivace můžeme upravit, pokud z obou sčítanců je možné vytknout právě polynom v x : f x vx uxvx u xvx. Jelikož derivací mnohočlenu a rovněž derivací součtu, rozdílu či součinu polynomů je opět polynom, tudíž lze zjednodušit zápis do tvaru f x vx wx, kde wx ux vx ux vx Vzhledem k tomu, že v obou polynomech, v v x, nejsou f x i jeho derivaci f x f x a f x nesoudělné, tj. D f x f x,. Zároveň při postupu z druhé strany můžeme tvrdit, že nejsou-li polynomy nesoudělné, tedy D f x, f x, je polynom polynomu.., se vyskytuje faktor f x a f x f x dělitelný čtvercem nějakého Důkaz: Provedeme sporem. Předpokládáme, že polynomy nesoudělné, tj. D f x, f x f x a f x, f x I x, f x I x, polynomu z oboru integrity Ix. Rozklad tohoto polynomu kde pro všechny polynomy a rovněž f, nejsou x není dělitelný čtvercem žádného f x lze tedy zapsat vztahem f x g x g x g x st gi a každé dva polynomy g i a i j. Derivujeme-li mnohočlen f x, dostaneme rovnici:, n gi x, i,,..., n, platí, že g i je ireducibilní polynom, g j jsou nesoudělné pro všechna i, j,,, n, f x g x g x g x g x g x g x g x g x g x. Jelikož,..., n, dělí n n n f x a f x nejsou nesoudělné, musí platit, že alespoň jeden z faktorů g i, i, f x i f x. Bez újmy na obecnosti můžeme předpokládat, že tímto faktorem je mnohočlen g (pokud by jím byl některý z ostatních faktorů, provedli bychom jejich přečíslování). 5
V tom případě tedy g musí dělit součet g x g x g x g x g x g x n... g x g x gn x. Ve druhém až n tém sčítanci je faktor g přímo obsažen a můžeme jej z nich vytknout, proto se blíže zaměříme jen na součin g x g x g x který také musí být dělitelný polynomem n, g. Jelikož podle předpokladu platí i j D g, g, pro všechna i, j,,, n, i j, musí faktor g nutně dělit mnohočlen g, který je však derivací g, a podle pravidel pro derivování víme, že st g st g, z čehož plyne g 0 (jinak by nešlo provést dělení polynomu nižšího stupně polynomem stupně vyššího). To pak znamená, že faktor g musí být konstanta, což je ve sporu s předpokladem st g i n, pro i,,..., n, a tudíž platí původní tvrzení. Tímto je dokázána nutná a postačující podmínka pro rozklad mnohočlenu v součinu faktorů nedělitelných čtvercem. Věta 5.. Nechť Ix je obor integrity s jednoznačným rozkladem charakteristiky 0 a f x I x primitivní polynom. Potom a f x nejsou nesoudělné, tj. D f x f x Příklad 5.. a) Ověřte, zda je polynom x oboru integrity. Řešení: Tento polynom je f x je dělitelný čtvercem právě tehdy, když mnohočleny f x,. f x = x 4x 5x dělitelný čtvercem nějakého polynomu v f x = x 4x 5x Nyní zjistíme, zda jsou polynomy f x x 8x 5. derivujeme a dostaneme f x a f x, z čehož vidíme, že f D f x, f x ( x ) a mnohočlen f soudělné nebo nesoudělné. x je tedy dělitelný čtvercem polynomu Provedeme-li rozklad polynomu f x a jeho derivace nejsou nesoudělné v x x. x na kořenové činitele, dostaneme rovnost, takže náš závěr byl správný a polynom f f x x x čtvercem. x je skutečně dělitelný 6
b) Ověřte, zda je polynom f x = oboru Z[x]. Řešení: Mnohočlen f x derivujeme, f x x x x + 4 4 dělitelný čtvercem nějakého polynomu v = x + x 4, a zjišťujeme soudělnost mnohočlenů f x a f x. D f x, f x, což znamená, že polynomy soudělné nejsou a f x tedy není dělitelný čtvercem. Úplný rozklad mnohočlenu zapíšeme = x x x f x = x + x 4 x 4 =, ze kterého je dobře vidět, že není existence čtverce dělícího tento mnohočlen. Nyní přejdeme algoritmu pro rozklad polynomu v oboru integrity Ix s jednoznačným rozkladem charakteristiky 0 v součin faktorů nedělitelných čtvercem, který pochází od Davida Mussera. 5.. Musserův algoritmus Polynom f x I x je primitivní polynom s koeficienty z oboru I. Chceme jej zapsat jako součin faktorů nedělitelných čtvercem, to znamená zapsat jej ve tvaru, kde mnohočleny k v I x f x v x v x... vk x nesoudělné ( i j i nejsou dělitelné čtvercem a jsou po dvou D v, v, pro všechna i, j,,..., k, i j ). Prvním krokem řešení je nalezení formální derivace polynomu f x, tj. k :... f x f x v x v x v x k = k k vxv x v x k v x v x v x... v x... v x v x... kv xvx... k. k k k 0 k Ze všech sčítanců této derivace můžeme maximálně vytknout součin v x v x v x který je obsažen i v zápisu mnohočlenu polynomů pomocný polynom členy v, i,,..., k i... k, f x. Zároveň se jedná o největší společný dělitel 0 k f x a f xd f x, f x v x v x... vk x p x f x, D f x f x jako polynom. Nyní zavedeme. Mnohočlen D f x, f x obsahuje stejné f x, ale každý má exponent o menší, z toho vyplývá, 7
že pomocný polynom px px v x v x v x v první mocnině., k, obsahuje všechny faktory vi a to Jestliže spočítáme největší společný dělitel D px, D f x, f x,, v x v x D p x D f x f x dělitele do podílu první faktor mnohočlenu k, dostaneme. Dosazením tohoto největšího společného,, k v x v x p x v x v x v x D p x D f x f x f x. k v x jsme získali Zbývající faktory lze zjistit dvěma způsoby. Prvním způsobem můžeme využít druhé derivace f x, nebo druhým způsobem dále pracovat s mnohočlenem D f x, f x další faktor v x, který se nachází v první mocnině, místo s polynomem f x., kde získáme Příklad 5.. Rozložte mnohočlen faktorů nedělitelným čtvercem, f x x Řešení: 6 5 4 f x x x x x x x 0 40 8 9 5 na součin. Nejprve podle výše popsaného postupu stanovíme první derivaci polynomu f x. Dostáváme 5 4 6 50 60 46 8 5, nyní zjistíme největší společný f x x x x x x dělitel p x d x D f x, f x x f x d Mnohočlen x 4x 5x. Vypočteme pomocný polynom 6 5 4 x 0 40 8 9 5 = x x x x x x 6x x 6 x 4 x +5x p x je součinem všech faktorů vyskytujících se v polynomu f x. Nyní vyčíslíme největší společný dělitel v x p x, D p x d x v polynomu f x x x D p x, d x x x a dosadíme do podílu 6 6 x x x. Tím získáváme faktor v x, který je x první mocnině. Dále budeme pokračovat ve výpočtu zbývajících faktorů. Jak bylo naznačeno v popisu algoritmu pro square-free decomposition, máme dvě možnosti dalšího řešení. Využijeme tu možnost, kde budeme dále pracovat s polynomem. 8
d x D f x f x x 4 x +5x, f x,, který obsahuje stejné faktory jako ovšem každý faktor bude mít exponent o jednu menší. Nejprve budeme derivovat dx x x x x x 4 +5 8 5 dělitele a použijeme ke zjištění největšího společného d x D d x, d x x. Nyní spočteme druhý pomocný polynom d x x 4 x +5x p x x x d x x oba výsledky dosadíme do podílu v x druhý faktor, který má v zadaném polynomu mnohočlen d x x, pomocí něj pak p x, D p x d x je třetím faktorem polynomu x D p x, d x x a x x, získáme x f x zastoupení ve druhé mocnině. Zároveň f x a je v něm zastoupen ve třetí mocnině. Polynom f x jsme rozložili na součin faktorů nedělitelných čtvercem, a proto můžeme psát f x x x x. Kontrolu můžeme provést pouhým roznásobením závorek a dostaneme opět původní polynom. 6 5 4 f x x x x x 0 x 40 x 8 x 9 x 5x. Tato rovnost skutečně platí. Příklad 5.4. Rozložte 0 9 8 7 6 5 4 g x x x x x x x x x x x g x 4 9 99 07 098 80 00, kde Z x, v součin faktorů nedělitelných čtvercem. Řešení: Opět začneme derivováním polynomu gx, 9 8 7 6 g x 0 x 9x 64x 87x 5 758x 4 4965x 448x 9x 96x 80 dělitele d x Dgx gx, a určením největšího společného 6 5 4 x x x x x x 6 70 09 76 0. Derivaci i největší společný dělitel dosadíme do podílu a dostaneme pomocný polynom p x 9
x g x d x 4 x x x 0, který použijeme ve výpočtu největšího společného dělitele, D p x d x x x x 0 p x, D p x d x. Nyní dosadíme do podílu v 4 x x x x x x x 0 0 Získali jsme první faktor, který je v polynomu gx x. obsažen v první mocnině. Přejdeme k určování druhého faktoru, k čemuž použijeme polynom (společného dělitele) dx Dgx, g x x x 6 x 5 6x 4 70x 09x 76x 0, v němž je tento druhý faktor v první mocnině. Spočítáme proto derivaci 64x 0x 8x 76 5 4 d x 6 x 0x a přejdeme k společnému děliteli d x D d x, d x x 4x 5 x a dosadíme do podílu x x x největšího společného jmenovatele v x p x, D p x d x x x x 0. Nyní zjistíme hodnotu D p x, d x x x a vypočítáme faktor 0 x x x 5. Dalším krokem je určování třetího faktoru. Derivujeme polynom d xd d x, d x x 4x 5x a dostaneme mnohočlen d x x 8x 5. Hledaný společný dělitel d je d x D d x, d x x a pomocný mnohočlen p x x Faktor je tedy v x zastoupen ve třetí mocnině. p x, D p x d x Přistoupíme k určení čtvrtého faktoru v4 d x x x. x x x. V polynomu x polynomu d x D d x, d x x, tudíž v4 xx. Tím jsme ukončili rozklad polynomu zapíšeme: gx x x 5 x x gx je x, který již nemusíme určovat, neboť je vidět v gx na součin faktorů nedělitelných čtvercem a 4. Zkoušku o správnosti square-free rozkladu se přesvědčíme pouhým roznásobením závorek. 40
x x 5 x x 4 x 0 x 9 x 8 + 4 x 7 9 x 6 99 x 5 + + x 098 x 80 x 00 Opět jsme ověřili, že tato rovnost platí. 4 07 x + Kromě tohoto algoritmu existují další varianty postupů při rozkladu v součin square-free faktorů, patří mezi ně například Tobeyho-Horowitzův algoritmus nebo Yunův algoritmus, které si také představíme. 5.. Tobeyho-Horowitzův algoritmus Nechť polynom f x I x je primitivní polynom s koeficienty z oboru I, přičemž platí k, kde mnohočleny v I x f x v x v x... vk x a jsou po dvou nesoudělné i j i nejsou dělitelné čtvercem (D v, v, pro všechna i, j,,, k, i j). Postupovat budeme tak, že nejprve spočteme první derivaci polynomu x f a největší společný dělitel k,... g x D f x f x v x v x v x. Pak bude následovat určení podílu, který budeme značit f h x, h x x gx v x v x... vk x k. V dalším kroku algoritmu k musíme spočítat polynom g xd g x, g x vx v4 x... vk x g h x x g x v x v x v x. Podíl... k a polynom v x určuje první faktor, f x kterém je zastoupen v první mocnině. Další lineární faktory v, i,, k, zjistíme určením polynomů g h x h x x D gix, g ki i x g vi x vi x... vk x a hi x i x gi x i v xv x v x, a podíl i i k postup.... Příklad 5.5. Rozložte i h vi x i x. Nyní si předvedeme na příkladu uvedený hi x 0 9 8 7 6 5 4 f x x x + 8 x 07 x 859 x 69 x x 45505 x +, f x Z x + 64050 x 97000 x 540000, v součin faktorů nedělitelných čtvercem. ve 4
Řešení: Zadaný polynom f x derivujeme a píšeme 464x 49x 7 6 54 x 8455 x 5 4 54x Nyní spočteme největší společný dělitel g x D f x f x h x 45 x + 4575x 4500 a podíl mnohočlen g x a získáváme, 9 8 0 07 f x x x 4655 x 80700 x 97000. x 6 7 x 5 90x 4 4x pokračujeme určením g x D g x, g x f x g x 4 x 6x 9x 94x 0. Derivujeme g x x x x x x. Nyní 5 4 6 85 60 4 80 4575 g a h x x g x x 55x 75 x 4x 7x 60. První faktor polynomu v x x h x h 4 x x x x x x x 6 9 94 0 4 7 60 x f x získáme pomocí podílu x a je obsažen v první mocnině. g Pokračujeme výpočtem mnohočlenu g x D g x, g x x 5 a h x x g x x x 55 75 x5 x x x 4 7 60 x 8x5 druhé mocnině. Pokračujeme k zjištění g x D g x, g x v x h h 4 x x x 8x 5. Podílem získáme druhý faktor, v x x 4. Druhý činitel v x x a 4 4 x 8x5 x je v polynomu x5 h h x x x se vyskytuje v polynomu f x g h4 x x faktorem v x h x x, kde se faktor nachází v polynomu 4 4 5 4 ve g x x5 x 5. Třetí faktor f x ve třetí mocnině a posledním f x ve čtvrté mocnině. 4 Tím jsme ukončili rozklad a můžeme napsat: f x x x 4 x x 5 O správnosti dosaženého výsledku se přesvědčíme roznásobením: xx 4 x x5. 4 0 9 8 7 6 5 x x + 8 x 07 x 859 x 69 x 4 x 45505 x + Získali jsme, že rovnost platí. 64050 x 97000 x 540000. 4
5.4. Yunův algoritmus Buď f x I x primitivní polynom s koeficienty z oboru I, přičemž platí k, kde mnohočleny v I x f x v x v x... vk x a jsou po dvou nesoudělné ( i j mnohočlen i nejsou dělitelné čtvercem D v, v, pro všechna i, j,,, k, i j). Derivujeme f x a získáme polynom fx. dostaneme polynom ux D f x, f x obsahuje všechny faktory polynomu Následuje výpočet podílů Spočteme-li nyní největší společný dělitel, k v x v x v x f f g x x ux... k, který x, ale každý s exponentem zmenšeným o jedna. a f h x x ux D g x, h x g x, který je prvním faktorem mnohočlenu f x konečně polynom v x vyskytujícím se v něm v první mocnině. Pro výpočet dalších faktorů v, i,, k, pak již stačí počítat polynomy gi x g v i i x x a hi dělitele. Tento postup si opět ukážeme v následujícím příkladě. i h i gi x x a jako poslední největšího společného vx Příklad 5.6. Rozložte: 0 8 7 6 5 4 f x x x x x x x x x x 5 + 0 +95 4 575 + 570 + 500 840 88, Z x, f x v součin faktorů nedělitelných čtvercem. Řešení: Nejprve vyjádříme derivaci 9 7 6 5 4 0 00 + 70 +70 60 00 70 000 840, f x x x x x x x x x a určíme největšího společného dělitele: Dosadíme do podílů:, u x D f x f x x 6 x 5 8x 4 4x x 8x. 4
f gx x u x 4 x x x 4x 4 h x a f x u x 0x 0x 80x 70. Nyní nalezneme D g x, h x g x, dostáváme první faktor v x x 4, zastoupený v polynomu f x první mocninou. Než budeme moci vypočítat druhý faktor jako podíl h g x x x x 4x 4 4 4 v x x který je v x, musíme nejprve zjistit mnohočlen g x x x 5x 6 a druhý mnohočlen h g x 6x 4x 54x56 x 6x 0x 4. Nyní musí následovat určení v x x 4 největšího společného dělitele faktor polynomu mnohočleny x 6x9 x g D g x, h x g x v x x a dostáváme druhý f x, který je zastoupený druhou mocninou. Pro třetí faktor opět počítáme x g x v x x x x 5x 6 x x a x, bez nichž nevyjádříme faktor x, jenž se v f x nachází ve třetí mocnině. Čtvrtý faktor h h g x x v x v x D g x, h x g x v4 x dostaneme dopočtením mnohočlenů g g4 x x v x x x x x a h4 x h g x v x x. Pokud x spočítáme derivaci g x a po odečtení derivace od h x resp. h x g x 4 4, 4 4, dostaneme rozdíl roven nule. Hledaný největší společný dělitel a zároveň čtvrtý faktor, můžeme psát, že v xd g x, h x g x, 0 4 4 4 4 získali všechny faktory, které se vyskytují v daném polynomu Dx x. Těmito kroky jsme f x, a proto ho můžeme zapsat ve tvaru f x x 4x x x 4. O kontrole správnosti rozkladu nalezeného square-free se přesvědčíme opět roznásobením: x 4x x x 840x 88. 4 0 8 7 6 5 4 x 5 x + 0 x +95x 4x 575 x + 570 x + 500x 44
Poznámka: Tobeyho-Horowitzův a Yunův algoritmus na rozdíl od Musserova algoritmu je mnohem výhodnější díky počítání jen jednoho největšího společného dělitele v každém kroku. Tento krok není zrovna jednoduchou záležitostí oproti zjištění první derivace či podílu mnohočlenů. Tato skutečnost pak nabývá na důležitosti zvláště při faktorizaci polynomů vyšších stupňů. Při hledání největšího společného dělitele dvou polynomů byl velkou oporou program počítačové algebry Wolfram Mathematica. Šestá kapitola 6.. Ukázky výpočtů v prostředí Wolfram Mathematica 8 V dnešní době již máme k dispozici několik počítačových programů, které mohou za velmi krátkou dobu provést náročnější početní operace. Mezi přední světové programy v současnosti patří Wolfram Mathematica a Maple. Příjemné prostředí nabízí Wolfram Mathematica 8 využijme této skutečnosti a pokusme se zjistit, kam až sahá výkon jádra tohoto programu. Příklady rozkladů polynomů, kterými jsme se již zabývali v této práci (nepoužili jsme přitom žádný počítačový algebraický systém), je tento program schopen vyřešit za dobu velmi krátkou. Zajímavější ovšem bude sestavit natolik komplikované polynomy, jejichž rozklad v součin bude trvat až několik sekund. Tento požadavek patrně není jednoduché splnit, proto postupujme opačně. Předem si sestavíme výsledek (již hotový součin), ke kterému se máme dopracovat. Tento součin upravíme (roznásobíme všechny závorky). Takto získaný polynom se opět pokusíme rozložit v součin, přičemž budeme sledovat dobu potřebnou k tomuto rozkladu. Příklad Definujme do paměti polynom 7 5 4 7 7 6 5 7 4 ( 0 )(40 6)(506 8)( 5 4)( 7 4) ( 4 5) ( ) ( 9 7) r x x x x x x x x x 45
Dále do paměti definujme polynom s x, který vznikne roznásobením závorek výše. Samozřejmě bychom mohli polynom s x nechat zobrazit na obrazovce, ale to by nemělo pro nás žádný význam zabrali bychom zde mnoho místa. Nyní se pokusíme tento polynom opět rozložit v součin, tj. v součin, který představuje polynom potřebný čas k provedení této operace. r x. Budeme přitom měřit Obdrželi jsme vektor, jehož první složkou je číslo 0, a druhou složkou je polynom tedy polynom r x, s x po faktorizaci. Provedení faktorizace tedy trvalo 0, sekund, což je ukazatelem velmi výkonného jádra programu uvažme, že polynom s x je velmi komplikovaný, jeho stupeň činní 98 a vedoucí koeficient u nejvyšší mocniny neznámé x činní 065458080558054540065875964749840. Příklad Definujme do paměti polynom 00 f x 4x 5 a (4x 5)(4x 0)... (4x 500). a Dále do paměti definujme polynom g x, který vznikne roznásobením závorek výše. Nyní se pokusíme tento polynom opět rozložit v součin, tj. v součin, který představuje polynom f x. Opět měřme potřebný čas k provedení této operace. Za příkazem výše jsme použili středník to proto, aby se polynom nezobrazoval. Dále opět bychom obdrželi vektor, jehož první složkou je hledaný čas a druhou složkou je polynom f x. Zajímá nás pouze hledaný čas, proto zobrazme jen první složku tohoto vektoru. 46
Potřebný čas k provedení faktorizace byl tedy 0,6 sekund. Příklad Postupujme analogicky jako v předchozích příkladech. Definujme polynom 00 b x x x a x x x x x x a 7 0 (7 0 )(7 0 )... (7 0 00). Dále definujme polynom c x, který vznikne roznásobením závorek výše. Změříme potřebný čas. Zde zjišťujeme zajímavější výsledek potřebná doba činila 9,07 sekund. Polynom, který byl faktorizován je stupně 00 a číslo, které představuje jeho vedoucí koeficient, má 85 cifer. Příklad 4 Definujme polynom 000 h x x a ( x 000)( x 999)... ( x ) x( x )... ( x 000). a000 Zvědavost nás může vést k otázce, jak Mathematica zobrazuje velmi dlouhé výrazy. Pokusme se zobrazit polynom h x : 47
Je vidět, že prostředí Mathematica bylo velmi dobře propracováno svými tvůrci i po grafické stránce. Dále definujme polynom j x, který vznikne roznásobením závorek výše. Změřme potřebný čas. 48
Hledaný čas je zobrazen v tabulce vlevo nahoře a činí 86,594 sekund. Tento výsledek je již zajímavější, k provedení operace bylo potřeba více než jedna minuta. Faktorizovali jsme polynom stupně 00, jehož vedoucí koeficient je ovšem roven jedné. Uvedené výsledky jsou vskutku fascinující a jsou výsledkem pokroku, který nejprve připravili matematici a v posledních letech zdokonalili softwaroví specialisté. Je poctivé říci, že hlavním motorem nemůže být postup, který jsme pod vlivem tradice označili jako Kroneckerův algoritmus, ačkoli byl asi znám dříve. Nahlédli jsme, že v tomto algoritmu s rostoucím stupněm polynomu velice rychle narůstá množina zkoumaných případů a s ní i nároky na využitou paměť i čas výpočtu. Jde však o algoritmus relativně jednoduchý po stránce programování. Proto je asi využit v kalkulátorech třídy TI-9 Plus, ale pro polynomy vyšších stupňů selže. Také algoritmy pro bezčtvercový rozklad polynomu mohou mít jen pomocný význam. Skutečným motorem stojícím za shora uvedenými výsledky jsou tzv. modulární algoritmy, nehledající rozklad polynomu f x v [ x], ale jeho obrazu f x v oboru integrity [ x], p prvočíslo. Takovýto rozklad by měl být snáze k nalezení s přihlédnutím k faktu, že zatímco v [ x ] existuje nekonečně mnoho ireducibilních polynomů daného stupně n, je p takovýchto polynomů v [ x ] jen konečně mnoho. Studiu rozkladů polynomů p x f [ x] se jm. věnovali K. Petr a zejména excelentní p slovenský matematik Š. Schwarz a ovšem i mnozí matematici zahraniční. Až příslušný rozklad polynomu x f nalezneme (a koeficienty tohoto polynomu jsou z tělesa zbytkových tříd modulo p, tj. 0,,, p), vznikne otázka, jak se vrátit k původnímu polynomu f x [ x] a získat jeho rozklad. Nyní jsou k dispozici i sofistikované techniky pro tento návrat (Henselovo zdvižení aj.). Studium těchto otázek je ale nad možnosti této bakalářské práce. p Závěrem k příkladům 4 je nutné dodat, že hledané doby k provedení daných operací jsou variabilní. Jejich variabilita je dána samozřejmě hardwarovou konfigurací daného počítače, dále také tím, do jaké míry je jádro programu zatíženo. Pokud provedeme daný výpočet podruhé, doba výpočtu se změní (zpravidla se zkracuje). Nelze proto generalizovat naše výsledky příkladů 4, ale samozřejmě je možno tvrdit, že pro školní účely je prostředí Mathematica naprosto dostačující. 49
6.. Rozklad polynomů pomocí algoritmů (Musserův, Tobeyho-Horowitzův, Yunnův) v prostředí Wolfram Mathematica 8 Příklad Faktorizujme polynom f ( x) 48800 88480x 98059408x 4855808 x 47690400x 4 5 6 7 8 9 487067664 x 9608568x 547764 x 6547576x 00699x 0 4 5 55004x 486946x 567708x 49005x 0966x 555x 7408x 9089x 68x 0x 0x x 6 7 8 9 0 Musserovým algoritmem. Použijme program Mathematica 8. Definujeme polynom f( x) do paměti. Vypočteme první derivaci polynomu f( x ). Definujeme polynom d x D f x, f ' x a výsledek zobrazme. Dále definujme pomocný polynom p x x x f d a tento ještě úpravami zjednodušme. 50
Vypočteme, D p x d x. Nakonec obdržíme hledaný polynom v x p x,. D p x d x Další postup je zcela analogický předchozímu, proto jej uveďme již bez komentářů. 5
Zde algoritmus končí, neboť jsme nalezli takové i, kde pi x. Je totiž Dále tedy můžeme zobrazit podobu polynomu f x po faktorizaci. p x. 6 5
Závěrem je možno provést zkoušku (není však povinná). Příklad Faktorizujme polynom 98808760 5758088x 66778849x 80585856x f x 4 5 6 7 84466099x 557096x 4040099088x 0054850 x 8 9 0 00749760x 664000580x 5747740x 589659x 4 5 6 98866x 6440467 x 6704x 57450x 749640x 44x 59x 09x x x 7 8 9 0 Tobeyho-Horowitzovým algoritmem. Použijme program Mathematica 8. Definujeme polynom f( x) do paměti. Vypočteme první derivaci polynomu f( x ). 5
Definujeme polynom g x D f x f x, '. Dále je potřeba nalézt polynom h x f g x x, výsledek rovnou upravme. Definujeme polynom g x D g x, g ` x. Dále nalézáme polynom h x g g x x, výsledek ihned upravme. Prvním faktorem polynomu f( x) je polynom mocnině. Tento faktor ihned upravme. v x h h x x, který je obsažen v první Algoritmus samozřejmě bude ještě pokračovat dále. Sled příkazů je zcela analogický sledu předchozímu. 54
55
Posledním faktorem je tedy polynom v6 f( x ) po faktorizaci má tedy následující podobu. x, který je obsažen v šesté mocnině. Polynom Závěrem je opět možné provést zkoušku, zda jsme provedli faktorizaci správně. Příklad Faktorizujme polynom f 4 96080480 487480704x 906560x 68970756x 6904x x 5 6 7 8 9 48474968x 7845046 x 800 x 7746697x 0566x 54605506x 7960x 8975x 54745x 4880x 0 4 6079x 5x 46x 74x x x 6 7 8 9 0 Yunnovým algoritmem. Použijme program Mathematica 8. Definujeme polynom f( x) do paměti. 00x 5 Vypočteme první derivaci tohoto polynomu. Definujeme polynom ux D f x, f ' x. 56