Algoritmická matematika 3 Mgr. Petr Osička, Ph.D. ZS Rozděl a panuj

Rozměr: px
Začít zobrazení ze stránky:

Download "Algoritmická matematika 3 Mgr. Petr Osička, Ph.D. ZS 2014. Rozděl a panuj"

Transkript

1 Algoritmická matematika 3 KMI/ALM3 Mgr. Petr Osička, Ph.D. ZS Základní princip Rozděl a panuj Technika rozděl a panuj je založená na následující myšlence. Z dané vstupní instance I vygenerujeme několik menších instancí I k stejného problému takovým způsobem, že jsme schopni, pokud známe řešení instancí I k, sestavit řešení původní instance I. Přitom pro nalezení řešení k instancím I k použijeme rekurzivně stejný postup. Rekurzi zastavíme v momentě, kdy jsou instance natolik malé, že pro ně známe řešení, nebo je jejich řešení možno rychle spočítat jiným algoritmem. Příklad 1. Přístup můžeme demonstrovat na problému vypočtení n-tého Fibonnaciho čísla. Toto číslo budeme značit jako F(n). Připomeňme si, že toto číslo je definováno následujícím rekurentním vztahem. F (n) = { F (n 1) + F (n 2) n 2 n n {0, 1} (1) Předchozí vztah ihned nabízí sestavení algoritmu přístupem rozděl a panuj. Je-li n rovno 0 nebo 1, výsledek známe. Jinak spočítáme F (n) tak, že nejprve spočteme F (n 1) a F (n 2) a poté tato čísla sečteme. Tedy, vstupní instancí I našeho algoritmu je číslo n. Z toho čísla vygenerujeme dvě menší instance n 1 a n 2. Spočítáme pro ně výsledky, a řešení pro původní instanci, dostaneme jednoduchým sečtením. Malé instance, pro které již známe výsledek, jsou v tomto případě čísla 0 a 1. V algoritmech realizujících techniku Rozděl a panuj můžeme rozpoznat dvě oddělené fáze, které ji dali název. Během první fáze, které říkáme Rozděl, algoritmus vygeneruje množinu menších instancí. Pojmenování fáze naznačuje, že původní instanci rozdělíme na několik menších. I když je označení Rozděl nepřesné, protože instanci nemusíme přímo rozdělit, toto označení se zažilo (+ existuje očividná analogie s pořekadlem o panovnících). Během druhé fáze, pojmenované jako Panuj, sestavíme ze řešení vypočtených pro menší instance řešení instance původní. Příklad 2. Mergesort je algoritmus určený pro třídění prvků porovnáváním, který znáte z ALM2. V tomto algoritmu ve fázi rozděl vstupní instanci skutečně rozdělujeme (přibližně na poloviny). Pro jednoduchost předpokládejme, že chceme setřídit pole A, který obsahuje celá čísla. Algoritmus uvádíme jako Algoritmus 1, kde je rozepsán do dvou procedur. V proceduře MergeSort, jejíž cílem je setřídít část pole A omezenou indexy l a p, nejdříve na řádku 2 ověříme, zda-li už není instance triviální, to jest zda-li nemá A[l]... A[p] méně než dva prvky. Pokud ano, můžeme tuto část pole považovat za setříděnou. Na řádku 3 probíhá fáze Rozděl, kdy část pole k setřízení rozdělíme na dvě části (jejichž velikost se liší maximálně o jeden prvek). Na následujících dvou řádcích poté setřídíme obě tyto části stejným postupem (tedy pomocí MergeSort). Na řádku 7 pak setříděné části slijeme pomocí procedury Merge. To odpovídá fázi Panuj. Nyní si již napišme obecný předpis pro algoritmus používající techniku rozděl a panuj. 1: procedure Divide-and-Conquer(I) 2: if I c then Jeli I dostatečně malé (menší než konstanta c), 3: return BasicAlgoritm(I) použijeme jiný algoritmus 4: end if 5: Vytvoř instance I 1... I k menší velikosti než I 6: for i 1 to k do 7: x i Divide-and-Conquer(x i ) x i je řešení instance I i 8: end for 9: Zkombinuj x 1... x k do x x je řešení instance I 10: return x 11: end procedure

2 KMI/ALM3: Rozděl a panuj 2 Algoritmus 1 Mergesort 1: procedure MergeSort(A, l, p) 2: if p < l then 3: q (l + p)/2 rozděl 4: MergeSort(A, l, q) 5: MergeSort(A, q + 1, p) 6: end if 7: Merge(A, l, q, p) panuj 8: end procedure 1: procedure Merge(A, l, q, p) 2: n 1 q l + 1 3: r q 4: for i 0 to n 1 1 do 5: L[i] A[l + 1] 6: end for 7: for i 0 to n 1 1 do 8: R[i] A[q + i + 1] 9: end for 10: L[n 1 ] R[ ] 11: i j 0 12: for k l to p do 13: if L[i] R[j] then 14: A[k] L[i] 15: i i : else 17: A[k] R[j] 18: j j : end if 20: end for 21: end procedure 2 Řešení rekurencí Analýza složitosti algoritmů rozděl a panuj vede k rekurencím. Z pohledu celého algoritmu Divide-and Conquer je složitost BasicAlgorithm brána jako konstantní, voláme ho totiž vždy pro instance, které mají shora omezenou velikost. Označíme-li si složitost Divide-and-Conquer jako T (n), pak ji lze vyjádřit rekurentně jako s okrajovou podmínkou T (n) = k T (n i ) + f(n). i=1 T (a) = O(1), pro všechna a c. Okrajové podmínky v rekurencích se často neuvádí. Pokud je tomu tak, většinou předpokládáme, že má tvar T (1) = 1. Při konkrétní práci s rekurencí pak můžeme, za určitých podmínek, jedničku na pravé i na levé straně změnit na jinou konstantu. Číslo n i ve výrazu je velikost instance I i (v konkrétních rekurencích bývá n i vyjádřena funkcí závislou na n) a f(n) zachycuje složitost vytvoření menších instancí (řádek 5) a kombinace řešení těchto instancí (řádek 9). Cílem této kapitoly je ukázat několik základních metod řešení takových rekurencí. Řešením rekurence je její uzavřená forma, tj. vyjádření, které neobsahuje rekurentní volání sama sebe na pravé straně rovnosti. To, že budeme řešení odhadovat znamená, že výsledkem nebude přesné znění uzavřené formy, ale její asymptotický odhad. 2.1 Substituční metoda První metoda, kterou si ukážeme je metoda substituce. Její princip spočívá ve dvou krocích 1. Odhadneme asymptotický odhad uzavřené formy 2. Vybereme jednu funkci z toho odhadu a indukcí se pokusíme dokázat správnost. Postup si ukážeme na příkladu. Uvažujme rekurenci T (n) = T ( n/2 ) + T ( n/2 ) + 1. (2)

3 KMI/ALM3: Rozděl a panuj 3 Odhadneme, že řešením je lineární funkce, tedy že odhadem je O(n). Zvolíme jednoho reprezentanta z O(n), např. cn b pro nějaké konstanty c, b. Nyní musíme indukcí dokázat, že pro vhodné konstanty c a b platí, že T (n) cn b. Předpokládejme tedy, že platí T ( n/2 ) c n/2 b a T ( n/2 ) c n/2 b. Po dosazení zpět do rekurence dostaneme T (n) (c n/2 b) + (c n/2 b) + 1 = cn 2b + 1 (3) Výraz cn 2b + 1 tedy rozdělíme na sumu výrazu, který chceme obdržet a zbytku, tzv. residentu cn 2b + 1 = cn b + ( b + 1). Vidíme, že aby rovnost platila, musí se b rovnat 1 (zvolíme tak totiž jako řešení cn 1 a na konci nerovnosti (3) dostaneme také cn 1, čímž dokončíme důkaz indukčního kroku). Pro potřeby důkazu indukcí zbývá ověřit, že nerovnost platí pro okrajovou podmínku T (1) = 1. Pokud do ní dosadíme, dostaneme nerovnost T (1) = 1 c 1, která platí pro c 2. (Dokázali jsme tedy například nerovnost T (n) 2n 1). Indukcí jsme tedy dokázali, že řešení rekurence leží v O(n). Protože se v substituční metodě nachází několik voleb, které se zdají být těžké (např. jak uhodnout odhad řešení rekurence, kterou funkci z asymptotického odhadu vybrat pro důkaz indukcí) záleží schopnost použít substituční metodu na zkušenostech, citu a ochotě experimentovat. Přesto si uvedeme několik triků, které mohou být užitečné. Často se stane, že problém, na který narazíme při důkazu indukcí nám napoví, jak lépe zvolit reprezentanta z asymptotického odhadu. Uvažme opět rekurenci (2), tentokrát však z O(n) zvolíme funkci cn. Po dosazení indukčního předpokladu do rekurence pak získáme T (n) c n/2 + c n/2 + 1 = cn + 1 Vidíme, že v residentu se nevyskytuje žádná konstanta a důkaz tedy nelze dokončit. Potřebujeme tedy dostat do residentu konstantu, jejímž vhodným nastavením bychom jedničku odečetli. To můžeme provést tak, že místo cn zvolíme cn b jako v předchozím případě. Pokud se stane, že jsme dokázali nerovnost pro obecný indukční krok, ale pro okrajovou podmínku naše řešení nefunguje, můžeme to vyřešit tím, že okrajovou podmínku vhodně změníme. Ukážeme si na příkladu. Uvažme rekurenci T (n) = 2T ( n/2 ) + n. (4) Správný odhad je O(n lg n). Pokud vybereme funkci cn lg n můžeme dokázat správnost obecného indukčního kroku pro c 1 T (n) 2(c n/2 lg( n/2 ) + n cn lg(n/2) + n = cn lg n cn lg 2 + n cn lg n U okrajové podmínky ovšem narazíme na problém. T (1) = 1 1 lg 1 = 0 Můžeme využít toho, že dokazujeme asymptotický odhad a nerovnost proto může platit až od určitého n 0. Pro n > 3 už (4) nezávisí na T (1). Volbou n 0 = 2 můžeme posunout okrajovou podmínku směrem nahoru (čímž případ n = 1, který způsobuje problémy, z důkazu vypustíme) a nahradit okrajovou podmínku pomocí T (2) = 4, T (3) = 5, s tím, že nyní musí být c 2 (nové okrajové podmínky jsme dostali dosazením 2 a 3 do (4)).

4 KMI/ALM3: Rozděl a panuj 4 f(n) f(n) f(n 1 ) f( ) f(n k ) + k i=1 f(n k) počet listů Obrázek 1: Idea metody odhadu pomocí stromu rekurze = výsledek 2.2 Odhad pomocí stromu rekurze Metoda popsaná v této kapitole je užitečný nástroj jak odhadnout asymptotické omezení dané rekurence. Neměli bychom zapomenout, že je nutné ještě dokázat správnost odhadu pomocí substituční metody. Metoda odhadu pomocí stromu rekurze je založená na jednoduché myšlence. Rekurentní vztah T (n) = k T (n i ) + f(n). i=1 si představíme jako strom. Uzly stromu odpovídají jednotlivým rekurzivním voláním. Každému uzlu přiřadíme množství práce, kterou pomyslný algoritmus při daném volání provede. Listové uzly tak budou mít přiřazenu konstantu, která odpovídá okrajovým podmínkám rekurentního vztahu. Množství práce vnitřních uzlů pak odpovídá aplikaci funkce f na argument daného rekurzivního volání. V kořenu tedy provedeme f(n) práce, v jeho i-tém potomku pak f(n i ). Přirozeně, pokud sečteme práci přiřazenou všem uzlům, dostaneme řešení rekurence. Součet provedeme ve dvou krocích. Nejdříve pro každou úroveň stromu sečteme práci provedenou v uzlech na oné úrovni, poté sečteme sumy z jednotlivých vrstev. Metodu si opět předvedeme na příkladu. Uvažujme rekurenci T (n) = 2T (n/4) +. (5) Začněme konstruovat strom rekurze. Kořenu přiřadíme. Potomkům kořene, kteří odpovídají T (n/4) přiřadíme (n/4) 2. Uzlům v další vrstvě, odpovídajícím T (n/16) (rekurzivní volání pro (5) s argumentem n/4) přiřadíme (n/16) 2. V první vrstvě se nachází 2 uzly, suma práce je tedy 2(n/4) 2, v druhé vrstvě se nachází 4 uzly, suma je tedy 4(n/16) 2. Nyní si můžeme všimnout určité pravidelnosti. Práce, kterou provedeme v jednom uzlu v i-té vrstvě (kořen je v nulté vrstvě) odpovídá (n/4 i ) 2, počet uzlů v i-té vrstvě je 2 i, suma přes všechny uzly v této vrstvě je tedy 2 i (n/4 i ) 2 = /8 i. Listy se nacházejí ve vrstvě log 4 n, jejich počet je tedy 2 log 4 n = n log 4 2 = n 1/2. (Vysvětlení předchozí rovnosti: platí, že log 2 n = log 4 n log 4 2 a tedy log 4 n = log 2 n log 4 2 = log 2 nlog 4 2. Nyní stačí dosadit obdržený výraz zpět do 2 log 4 n a dostaneme požadovanou rovnost). Pokud nyní sečteme všechny vrstvy, dostaneme T (n) = log 4 n 1 ( /8 i ) + n 1/2 log 4 n 1 = (1/8 i ) + n 1/2

5 KMI/ALM3: Rozděl a panuj n log 4 2 Obrázek 2: Strom rekurze pro rekurenci (5). Abychom se zbavili závislosti na n v sumě, nahradíme ji sumou celé geometrické posloupnosti. Dostaneme tedy log 4 n 1 T (n) = (1/8 i ) + n 1/2 (1/8 i ) + n 1/2 = 1 1 1/8 + n1/2 Odhad řešení rekurence je tedy O( ). 2.3 Master theorem Master theorem je jednoduchý návod pro nalezení odhadu řešení rekurencí, které se vyskytují při analýze algoritmů, které ve fázi rozděl dělí vstupní instanci na několik stejně velkých podinstancí. Věta 1. Nechť a 1 a b 1 jsou konstanty a f(n) je funkce a T (n) je definovaná na nezáporných celých číslech pomocí rekurence T (n) = at (n/b) + f(n), přičemž n/b interpretujeme jako n/b nebo n/b. Pak můžeme T (n) následovně asymptoticky omezit. 1. Pokud f(n) = O(n log b a ϵ ) pro ϵ 0, pak T (n) = Θ(n log b a ). 2. Pokud f(n) = Θ(n log b a ) pak T (n) = Θ(n log b a lg n). 3. Pokud f(n) = Ω(n log b a+ϵ ) pro ϵ 0 a pokud af(n/b) cf(n) pro konstantu 0 < c < 1 a všechna dostatečně velká n, pak T (n) = Θ(f(n)). 3 Příklady algoritmů 3.1 Násobení polynomů a FFT Součin reálných funkcí f a g je funkce f g definovaná jako (f g)(x) = f(x)g(x) pro každé reálné x. Součin AB(x) polynomů A(x) = a 0 + a 1 x + a 2 x a d x d a B(x) = b 0 + b 1 x + b 2 x b d x d je opět polynom definovaný jako AB(x) = c 0 + c 1 x + c 2 x c 2d x 2d,

6 KMI/ALM3: Rozděl a panuj 6 kde c k = a 0 b k + a 1 b k a k b 0 = k a i b k i. (O správnosti předchozího tvrzení se lze jednoduše přesvědčit symbolickým vynásobením obou polynomu, tj. roznásobením závorek ). Algoritmus přímo založený na předchozím vztahu má složitost O(d 2 ), kde d je stupeň polynomů. Pro výpočet c k potřebujeme k + 1 součinů a k součtů. Pro celý polynom, tj. 2d koeficientů je to 2d k=0 (2k + 1) = O(d2 ) operací. Princip zefektivnění algoritmu pro násobení leží ve změně reprezentace polynomu a je založen na následující větě známé z algebry. Věta 2. Polynom stupně d je jednoznačně reprezentován svými hodnotami v alespoň d + 1 různých bodech. Tedy místo hodnotami koeficientů lze polynom reprezentovat pomocí hodnot polynomu v odpovídajícím počtu bodů. Mezi oběma reprezentacemi lze libovolně přecházet. Koeficienty a 0,a 1,...,a d Vyhodnocení Interpolace Hodnoty A(x 0 ),A(x 1 ),...,A(x d ) Násobení polynomů A a B reprezentovaných hodnotami v stejných bodech x i lze jednoduše provést vynásobením příslušných hodnot AB(x i ) = A(x i ) B(x i ). Tak získáme reprezentaci výsledného algoritmu pomocí hodnot, kterou můžeme převést zpět na koeficienty. Toto násobení má lineární složitost. Pokud tedy najdeme dostatečně efektivní algoritmus pro převod mezi reprezentacemi polynomu, dostaneme efektivní algoritmus pro násobení polynomů. Pro rychlý výpočet hodnot polynomu i interpolaci lze použít Rychlou Fourierovu Transformaci (FFT). Vstupem FFT je polynom A reprezentovaný n koeficienty. Musí platit n = 2 k, což nás ale nijak neomezuje, protože koeficienty mocnin vyšších než je stupeň polynomu jsou rovny 0. Výstupem je reprezentace polynomu hodnotami v n bodech. FFT je založena na jednoduchém pozorování, že sudé mocniny v opačných bodech se rovnají, tedy, že pro sudé k platí ( x) k = x k. Předpokládejme tedy, že chceme spočítat hodnoty polynomu v bodech ±x 0, ±x 1, ± x n/2 1. (6) Takovou volbu můžeme provést, protože počet koeficientů je vždy mocnina dvou. Polynom rozdělíme na členy se sudými a s lichými mocninami A(x) = (a 0 + a 2 x ) + x(a 1 + a 3 x ) Výhodné je, že oba výrazy v závorkách jsou opět polynomy. Výraz (a 0 + a 2 x ) je polynom A S (z) = a 0 + a 2 z +..., do kterého dosadíme x 2 za z, a tedy (a 0 + a 2 x ) = A S (x 2 ). (7) Stejnou úvahou dostaneme pro polynom v pravé závorce polynom A L = a 1 + a 3 z +..., pro který platí (a 1 + a 3 x ) = A L (x 2 ). (8) Polynomy A S a A L mají poloviční stupeň jako n. Hodnoty pro ±x i pak lze vyjádřit jako A(x i ) = A s (x 2 i ) + x i A l (x 2 i ), (9) A( x i ) = A s (x 2 i ) x i A l (x 2 i ). (10) K výpočtu hodnot polynomu A v n bodech tedy potřebujeme vypočítat hodnoty polynomů A S a A L v n/2 bodech. Samozřejmě, v duchu rozděl a panuj použijeme stejný postup opakovaně pro výpočet hodnot A S a A L. Musíme ještě vyřešit jeden drobný zádrhel, ale nejdříve příklad.

7 KMI/ALM3: Rozděl a panuj 7 ( i) ( i) ( i) ( i) i i 1 1 i i Obrázek 3: Idea nalezení bodů pro výpočet hodnoty polynomu pomocí FFT. Potomci každého uzlu jsou jeho druhé odmocniny. 1 Příklad 3. Uvažujme polynom 3x 3 + 2x 2 + x 3. Pak algoritmus projde postupně následující strom polynomů (A S vlevo, A L vpravo). Body, ve kterých se hodnoty počítají ještě neuvažujeme. 3x 3 + 2x 2 + x 3 2x 2 3; A s (z) = 2z 3 3x 2 + 1; A L (z) = 3z + 1 A S (z) = 3 A L (z) = 2 A S (z) = 1 A S (z) = 3 Řekněme, že v předchozím příkladě budeme chtít spočítat hodnoty polynomu pro body ±x 0, ±x 1. Při rekurzivním volání pak musíme spočítat hodnoty polynomů (2z 3) a (3z + 1) pro x 2 0 a x 2 1. Problém je, že x 2 0 a x 2 1 nemohou být opačná čísla, protože druhé mocniny reálných čísel jsou vždycky kladné. Abychom našli takové body, jejichž druhá mocnina je záporná, musíme přejít od reálných čísel ke komplexním. Nejjednodušší je případ, kdy je polynom stupně 1 a hodnoty počítáme pouze pro dvojici bodů (když je polynom jenom konstanta, je jeho hodnotou vždy tato konstanta a tedy nemá smysl volit body dvojici opačných bodů). Zvolme pro tuto úroveň rekurze (tedy úroveň stromu rekurze, na které se vyskytují polynomy stupně 1) body ±1. O úroveň výše (úroveň, na které se vyskytují polynomy stupně 3) potřebujeme 2 páry bodů, druhá mocnina jednoho páru se musí rovnat 1, druhá mocnina druhého páru se musí rovnat 1. Přirozeně tyto body jsou ±1, ±i, kde i je imaginární jednotka. Opakováním této konstrukce získáme body, pro které potřebujeme spočítat hodnoty polynomu v kořeni stromu rekurze (viz obrázek 4). Každá z úrovní stromu na obrázku 4 obsahuje právě všechny odmocniny z 1. Přesněji, je-li v dané úrovni n uzlů, obsahuje právě všechny n 1. Algoritmus FFT využívá následujících vlastností n 1. Pro n = 2 k platí, že (a) n-té odmocniny jedné jsou ω 0 = 1, ω, ω 2,..., ω n 1, kde ω = e 2πi n. (b) ω +j = ω j (c) Množina druhých mocnin n 1 jsou právě {1, ω 2, (ω 2 ) 2,..., (ω 2 ) n/2 1 }, tedy n/2-té odmocniny 1. Tyto vlastnosti nám umožňují iterovat přes všechny n 1. Stačí spočítat ω a pak iterovat přes její mocniny. Konec iterace poznáme podle toho, že se dostaneme na hodnotu 1. Například pro n = 4 je ω = i a jednotlivé mocniny jsou postupně ω 2 = 1, ω 3 = i, ω 4 = 1. Vlastnost (b) říká, že množina všech n 1 tvoří opravdu

8 KMI/ALM3: Rozděl a panuj 8 dvojice opačných bodů a k jejich nalezení stačí iterovat pouze přes polovinu mocnin. Druhá polovina jsou právě opačné body. Například pro n = 4 máme ω = i a opačný bod je ω 1+2 = ω 3 = i, pro ω 2 = 1 je opačný bod ω 2+2 = ω 4 = 1. Díky (c) v rekurzivních voláních skutečně počítáme s druhými mocninami bodů. Nyní si již můžeme uvést pseudokód FFT. Algoritmus 2 Rychlá Fourierova transformace 1: procedure FFT(A[0,..., n 1], ω) n je mocnina dvou 2: if ω = 1 then V tomto případě už A = 1 3: return A 4: end if 5: for i 0 to n/2 1 do 6: A S [i] A[i 2] Koeficienty pro sudé mocniny 7: A L [i] A[i 2 + 1] Koeficienty pro liché mocniny 8: end for 9: S FFT(A S, ω 2 ) 10: L FFT(A L, ω 2 ) 11: x 1 Začínáme od ω 0 12: for j 0 to n/2 1 do 13: R[j] S[j] + x L[j] Rovnice (9) 14: R[j + n/2] S[j] x L[j] Rovnice (10) 15: x x ω Další mocnina ω 16: end for 17: return R 18: end procedure Složitost FFT vyjádříme pomocí rekurence. V algoritmu jsou dvě rekurzivní volání, každému z nich předáváme instanci o velikosti n/2. Zbývající část algoritmu (tedy cykly na řádcích 5 až 8 a 13 az 17) má složitost O(n). Rekurence je tedy T (n) = 2T (n/2) + O(n) s okrajovou podmínkou T (1) = 1. Podle master theoremu je pak složitost FFT vyjádřena Θ(n log n). Připomeňme si, že algoritmus přímým dosazením do polynomu má složitost O( ). Nyní si můžeme ukázat rychlý algoritmus pro násobení polynomů. Nechť A a B jsou polynomy, které chceme násobit se stupni s a t. Výsledný polynom AB bude mít stupeň s+t. Abychom tedy mohli interpolovat z hodnot výsledného polynomu jeho koeficienty, potřebujeme jich znát nejméně s + t + 1. Pro potřeby FFT ovšem musí být počet hodnot mocninou dvou, proto je skutečně počítaný počet hodnot roven n = 2 log 2 (s+t+1), tedy nejbližší větší mocnině dvou. Algoritmus nejdříve volá FFT, aby spočítal hodnoty A a B v n bodech, poté tyto body vynásobí a získá hodnoty v těchto bodech pro AB. Posledním krokem je interpolace koeficientů. Díky vlastnostem n 1 ji lze vypočítat také pomocí FFT. Pro hodnoty AB(ω 0 ), AB(ω), AB(ω 2 ),..., AB(ω n 1 ) dostaneme koeficienty ab 0, ab 1,..., ab n 1 pomocí [ab 0, ab 1,..., ab n 1 ] = 1 n FFT([AB(ω0 ), AB(ω), AB(ω 2 ),..., AB(ω n 1 )], ω 1 ). Pseudokód algoritmu je označen jako Algoritmus 4. Složitost FastPolyMultiply je O(n log n). Algoritmus třikrát volá FFT se složitostí O(n log n). Řádek 4, cyklus na řádcích 7 až 9, i násobení pomocí 1/n na řádku 10 mají složitost O(n). Celkově je tedy složitost dominována FFT.

9 KMI/ALM3: Rozděl a panuj 9 Algoritmus 3 Rychlé násobení polynomů 1: procedure FastPolyMultiply(A[0,..., s], B[0,..., t]) 2: n 2 log 2 (s+t+1) 3: ω e 2πi n 4: Doplň pomocí nul A i B na n prvků. Nuly přidávám na konec 5: V A FFT(A, ω) Hodnoty pro A 6: V B FFT(B, ω) Hodnoty pro B 7: for i 0 to n 1 do 8: V AB [i] V A [i] V B [i] Násobení polynomů 9: end for 10: return 1 n FFT(V AB, ω 1 ) Interpolace pomocí FFT 11: end procedure Reference [1] Donald Knuth. The Art of Computer Programming, Volume I. Addison-Wesley, 1997 [2] Donald Knuth. Selected papers on analysis of algorithms. Center for the study of language an information, 2000 [3] Cormen et. al. Introduction to algorithms. The MIT press [4] Donald Knuth Concrete mathematics: A foundation for computer science. Addison-Wesley professional, 1994 [5] John Kleinberg, Éva Tardes. Algorithm design. Addison-Wesley, [6] U. Vazirani et. al. Algorithms. McGraw-Hill, [7] Steve Skiena. The algorithm design manual. Springer, [8] Juraj Hromkovič. Algorithmics for hard problems. Springer, [9] Oded Goldreich. Computational complexity: a conceptual perspective. Cambridge university press, 2008.

Algoritmizace složitost rekurzivních algoritmů. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010

Algoritmizace složitost rekurzivních algoritmů. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010 složitost rekurzivních algoritmů Jiří Vyskočil, Marko Genyg-Berezovskyj 2010 Vyjádřen ení složitosti rekurzivního algoritmu rekurentním m tvarem Příklad vyjádření složitosti rekurzivního algoritmu rekurencí:

Více

Dynamické programování

Dynamické programování Algoritmická matematika 3 KMI/ALM3 Mgr. Petr Osička, Ph.D ZS 2014 1 Základní princip Dynamické programování Princip dynamického programování je založen na podobné myšlence jako rozděl a panuj. Vstupní

Více

1 Mnohočleny a algebraické rovnice

1 Mnohočleny a algebraické rovnice 1 Mnohočleny a algebraické rovnice 1.1 Pojem mnohočlenu (polynomu) Připomeňme, že výrazům typu a 2 x 2 + a 1 x + a 0 říkáme kvadratický trojčlen, když a 2 0. Číslům a 0, a 1, a 2 říkáme koeficienty a písmenem

Více

Binární vyhledávací stromy pokročilé partie

Binární vyhledávací stromy pokročilé partie Binární vyhledávací stromy pokročilé partie KMI/ALS lekce Jan Konečný 30.9.204 Literatura Cormen Thomas H., Introduction to Algorithms, 2nd edition MIT Press, 200. ISBN 0-262-5396-8 6, 3, A Knuth Donald

Více

1 Mnohočleny a algebraické rovnice

1 Mnohočleny a algebraické rovnice 1 Mnohočleny a algebraické rovnice 1.1 Pojem mnohočlenu (polynomu) Připomeňme, že výrazům typu a 2 x 2 + a 1 x + a 0 říkáme kvadratický trojčlen, když a 2 0. Číslům a 0, a 1, a 2 říkáme koeficienty a písmenem

Více

KMI/ALM3 Mgr. Petr Osička, Ph.D. ZS ANO je slovo 1 a kódováním NE je slovo 0, pak je problém popsán pomocí dvojice L, R takové, že:

KMI/ALM3 Mgr. Petr Osička, Ph.D. ZS ANO je slovo 1 a kódováním NE je slovo 0, pak je problém popsán pomocí dvojice L, R takové, že: Algoritmická matematika 3 KMI/ALM3 Mgr. Petr Osička, Ph.D. ZS 2014 Algoritmický problém Přednáška 1 Definice 1. Abeceda Σ je konečná neprázdná množina. Prvkům Σ říkáme symboly. Slovo (řetězec) nad abecedou

Více

Mimo samotné správnosti výsledku vypočteného zapsaným algoritmem je ještě jedno

Mimo samotné správnosti výsledku vypočteného zapsaným algoritmem je ještě jedno 12 Délka výpočtu algoritmu Mimo samotné správnosti výsledku vypočteného zapsaným algoritmem je ještě jedno neméně důležité hledisko k posouzení vhodnosti algoritmu k řešení zadané úlohy. Jedná se o čas,

Více

Zpracoval: hypspave@fel.cvut.cz 7. Matematická indukce a rekurse. Řešení rekurentních (diferenčních) rovnic s konstantními koeficienty.

Zpracoval: hypspave@fel.cvut.cz 7. Matematická indukce a rekurse. Řešení rekurentních (diferenčních) rovnic s konstantními koeficienty. Zpracoval: hypspave@fel.cvut.cz 7. Matematická indukce a rekurse. Řešení rekurentních (diferenčních) rovnic s konstantními koeficienty. (A7B01MCS) I. Matematická indukce a rekurse. Indukční principy patří

Více

1 Polynomiální interpolace

1 Polynomiální interpolace Polynomiální interpolace. Metoda neurčitých koeficientů Příklad.. Nalezněte polynom p co nejmenšího stupně, pro který platí p() = 0, p(2) =, p( ) = 6. Řešení. Polynom hledáme metodou neurčitých koeficientů,

Více

Metoda hrubé sily, backtracking a branch-and-bound

Metoda hrubé sily, backtracking a branch-and-bound Algoritmická matematika 3 KMI/ALM3 Mgr. Petr Osička, Ph.D. ZS 04 Metoda hrubé sily, backtracking a branch-and-bound Základní princip Metoda hrubé síly se dá popsat jednoduchou větou zkus všechny možnosti.

Více

Příklad. Řešte v : takže rovnice v zadání má v tomto případě jedno řešení. Pro má rovnice tvar

Příklad. Řešte v : takže rovnice v zadání má v tomto případě jedno řešení. Pro má rovnice tvar Řešte v : má rovnice tvar takže rovnice v zadání má v tomto případě jedno řešení. Pro má rovnice tvar takže rovnice v zadání má v tomto případě opět jedno řešení. Sjednocením obou případů dostaneme úplné

Více

NÁVRH ALGORITMŮ. poznámky pro Algoritmickou matematiku 3. Petr Osička

NÁVRH ALGORITMŮ. poznámky pro Algoritmickou matematiku 3. Petr Osička NÁVRH ALGORITMŮ poznámky pro Algoritmickou matematiku 3 Petr Osička i Text obsahuje poznámky ke kurzu Algoritmická matematika 3. Petr Osička Olomouc, podzim 2017 Obsah 1 Úvod 1 2 Rozděl a panuj 6 3 Dynamické

Více

z nich byla poprvé dokázána v 19. století velikány analytické teorie čísel (Pafnutij Lvovič Čebyšev, Charles-Jean de la Vallée Poussin a další).

z nich byla poprvé dokázána v 19. století velikány analytické teorie čísel (Pafnutij Lvovič Čebyšev, Charles-Jean de la Vallée Poussin a další). 0. Tři věty o prvočíslech Martin Mareš Úvodem Při analýze algoritmů se často využívají různá tvrzení o prvočíslech. Většina z nich byla poprvé dokázána v 9. století velikány analytické teorie čísel (Pafnutij

Více

Složitost algoritmů. Karel Richta a kol. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Karel Richta a kol.

Složitost algoritmů. Karel Richta a kol. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Karel Richta a kol. Složitost algoritmů Karel Richta a kol. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Karel Richta a kol., 2017 Datové struktury a algoritmy, B6B36DSA 02/2017, Lekce 3

Více

V předchozí kapitole jsme podstatným způsobem rozšířili naši představu o tom, co je to číslo. Nadále jsou pro nás důležité především vlastnosti

V předchozí kapitole jsme podstatným způsobem rozšířili naši představu o tom, co je to číslo. Nadále jsou pro nás důležité především vlastnosti Kapitola 5 Vektorové prostory V předchozí kapitole jsme podstatným způsobem rozšířili naši představu o tom, co je to číslo. Nadále jsou pro nás důležité především vlastnosti operací sčítání a násobení

Více

IB108 Sada 1, Příklad 1 Vypracovali: Tomáš Krajča (255676), Martin Milata (256615)

IB108 Sada 1, Příklad 1 Vypracovali: Tomáš Krajča (255676), Martin Milata (256615) IB108 Sada 1, Příklad 1 ( ) Složitost třídícího algoritmu 1/-Sort je v O n log O (n.71 ). Necht n = j i (velikost pole, které je vstupním parametrem funkce 1/-Sort). Lehce spočítáme, že velikost pole předávaná

Více

PŘEDNÁŠKA 2 POSLOUPNOSTI

PŘEDNÁŠKA 2 POSLOUPNOSTI PŘEDNÁŠKA 2 POSLOUPNOSTI 2.1 Zobrazení 2 Definice 1. Uvažujme libovolné neprázdné množiny A, B. Zobrazení množiny A do množiny B je definováno jako množina F uspořádaných dvojic (x, y A B, kde ke každému

Více

1 Linearní prostory nad komplexními čísly

1 Linearní prostory nad komplexními čísly 1 Linearní prostory nad komplexními čísly V této přednášce budeme hledat kořeny polynomů, které se dále budou moci vyskytovat jako složky vektorů nebo matic Vzhledem k tomu, že kořeny polynomu (i reálného)

Více

Polynomy. Mgr. Veronika Švandová a Mgr. Zdeněk Kříž, Ph. D. 1.1 Teorie Zavedení polynomů Operace s polynomy...

Polynomy. Mgr. Veronika Švandová a Mgr. Zdeněk Kříž, Ph. D. 1.1 Teorie Zavedení polynomů Operace s polynomy... Polynomy Obsah Mgr. Veronika Švandová a Mgr. Zdeněk Kříž, Ph. D. 1 Základní vlastnosti polynomů 2 1.1 Teorie........................................... 2 1.1.1 Zavedení polynomů................................

Více

Definice 13.1 Kvadratická forma v n proměnných s koeficienty z tělesa T je výraz tvaru. Kvadratická forma v n proměnných je tak polynom n proměnných s

Definice 13.1 Kvadratická forma v n proměnných s koeficienty z tělesa T je výraz tvaru. Kvadratická forma v n proměnných je tak polynom n proměnných s Kapitola 13 Kvadratické formy Definice 13.1 Kvadratická forma v n proměnných s koeficienty z tělesa T je výraz tvaru f(x 1,..., x n ) = a ij x i x j, kde koeficienty a ij T. j=i Kvadratická forma v n proměnných

Více

Nechť je číselná posloupnost. Pro všechna položme. Posloupnost nazýváme posloupnost částečných součtů řady.

Nechť je číselná posloupnost. Pro všechna položme. Posloupnost nazýváme posloupnost částečných součtů řady. Číselné řady Definice (Posloupnost částečných součtů číselné řady). Nechť je číselná posloupnost. Pro všechna položme. Posloupnost nazýváme posloupnost částečných součtů řady. Definice (Součet číselné

Více

Nejdřív spočítáme jeden příklad na variaci konstant pro lineární diferenciální rovnici 2. řádu s kostantními koeficienty. y + y = 4 sin t.

Nejdřív spočítáme jeden příklad na variaci konstant pro lineární diferenciální rovnici 2. řádu s kostantními koeficienty. y + y = 4 sin t. 1 Variace konstanty Nejdřív spočítáme jeden příklad na variaci konstant pro lineární diferenciální rovnici 2. řádu s kostantními koeficienty. Příklad 1 Najděte obecné řešení rovnice: y + y = 4 sin t. Co

Více

0.1 Úvod do lineární algebry

0.1 Úvod do lineární algebry Matematika KMI/PMATE 1 01 Úvod do lineární algebry 011 Lineární rovnice o 2 neznámých Definice 011 Lineární rovnice o dvou neznámých x, y je rovnice, která může být vyjádřena ve tvaru ax + by = c, kde

Více

KMI/ALM3 Mgr. Petr Osička, Ph.D. Update: 15. listopadu 2016

KMI/ALM3 Mgr. Petr Osička, Ph.D. Update: 15. listopadu 2016 Algoritmická matematika 3 KMI/ALM3 Mgr. Petr Osička, Ph.D. Update: 15. listopadu 2016 Algoritmický problém Přednáška 1 Definice 1. Abeceda Σ je konečná neprázdná množina. Prvkům Σ říkáme symboly. Slovo

Více

15. KubickÈ rovnice a rovnice vyööìho stupnï

15. KubickÈ rovnice a rovnice vyööìho stupnï 15. KubickÈ rovnice a rovnice vyööìho stupnï Čas od času je možné slyšet v pořadech o počasí jména jako Andrew, Mitch, El Ňiňo. otom následuje zpráva o katastrofálních vichřicích, uragánech a jiných mimořádných

Více

Matematika IV 9. týden Vytvořující funkce

Matematika IV 9. týden Vytvořující funkce Matematika IV 9. týden Vytvořující funkce Jan Slovák Masarykova univerzita Fakulta informatiky jaro 2015 Obsah přednášky 1 Vytvořující funkce a Fibonacciho čísla 2 Vytvořující funkce - připomenutí 3 Řešení

Více

Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy

Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy Lukáš Havrlant Univerzita Palackého 10. ledna 2014 Primární zdroj Jiří Adámek: Foundations of Coding. Strany 137 160. Na webu ke stažení, heslo:

Více

Rekurentní rovnice, strukturální indukce

Rekurentní rovnice, strukturální indukce Rekurentní rovnice, strukturální indukce Jiří Velebil: A7B01MCS 26. září 2011: 1/20 Příklad (Parketáž triminy z minulé přednášky) P(n) = počet parket k vyparketování místnosti rozměru n 1 P(1) = 1. 2 P(n

Více

Necht tedy máme přirozená čísla n, k pod pojmem systém lineárních rovnic rozumíme rovnice ve tvaru

Necht tedy máme přirozená čísla n, k pod pojmem systém lineárních rovnic rozumíme rovnice ve tvaru 2. Systémy lineárních rovnic V této kapitole se budeme zabývat soustavami lineárních rovnic s koeficienty z pole reálných případně komplexních čísel. Uvádíme podmínku pro existenci řešení systému lineárních

Více

Kolik existuje různých stromů na pevně dané n-prvkové množině vrcholů?

Kolik existuje různých stromů na pevně dané n-prvkové množině vrcholů? Kapitola 9 Matice a počet koster Graf (orientovaný i neorientovaný) lze popsat maticí, a to hned několika různými způsoby. Tématem této kapitoly jsou incidenční matice orientovaných grafů a souvislosti

Více

Jednoduchá exponenciální rovnice

Jednoduchá exponenciální rovnice Jednoduchá exponenciální rovnice Z běžné rovnice se exponenciální stává, pokud obsahuje proměnnou v exponentu. Obecně bychom mohli exponenciální rovnici zapsat takto: a f(x) = b g(x), kde a, b > 0. Typickým

Více

9 Kolmost vektorových podprostorů

9 Kolmost vektorových podprostorů 9 Kolmost vektorových podprostorů Od kolmosti dvou vektorů nyní přejdeme ke kolmosti dvou vektorových podprostorů. Budeme se zabývat otázkou, kdy jsou dva vektorové podprostory na sebe kolmé a jak to poznáme.

Více

Matematika (CŽV Kadaň) aneb Úvod do lineární algebry Matice a soustavy rovnic

Matematika (CŽV Kadaň) aneb Úvod do lineární algebry Matice a soustavy rovnic Přednáška třetí (a pravděpodobně i čtvrtá) aneb Úvod do lineární algebry Matice a soustavy rovnic Lineární rovnice o 2 neznámých Lineární rovnice o 2 neznámých Lineární rovnice o dvou neznámých x, y je

Více

1. Několik základních pojmů ze středoškolské matematiky. Na začátku si připomeneme následující pojmy:

1. Několik základních pojmů ze středoškolské matematiky. Na začátku si připomeneme následující pojmy: Opakování středoškolské matematiky Slovo úvodem: Tato pomůcka je určena zejména těm studentům presenčního i kombinovaného studia na VŠFS, kteří na středních školách neprošli dostatečnou průpravou z matematiky

Více

1.13 Klasifikace kvadrik

1.13 Klasifikace kvadrik 5 KAPITOLA 1. KVADRIKY JAKO PLOCHY. STUPNĚ 1.13 Klasifikace kvadrik V této části provedeme klasifikaci kvadrik. Vyšetříme všechny případy, které mohou různou volbou koeficientů v rovnici kvadriky a 11

Více

(Cramerovo pravidlo, determinanty, inverzní matice)

(Cramerovo pravidlo, determinanty, inverzní matice) KMA/MAT1 Přednáška a cvičení, Lineární algebra 2 Řešení soustav lineárních rovnic se čtvercovou maticí soustavy (Cramerovo pravidlo, determinanty, inverzní matice) 16 a 21 října 2014 V dnešní přednášce

Více

Matematika III. Miroslava Dubcová, Daniel Turzík, Drahoslava Janovská. Ústav matematiky

Matematika III. Miroslava Dubcová, Daniel Turzík, Drahoslava Janovská. Ústav matematiky Matematika III Řady Miroslava Dubcová, Daniel Turzík, Drahoslava Janovská Ústav matematiky Přednášky ZS 202-203 Obsah Číselné řady. Součet nekonečné řady. Kritéria konvergence 2 Funkční řady. Bodová konvergence.

Více

VEKTORY. Obrázek 1: Jediný vektor. Souřadnice vektoru jsou jeho průměty do souřadných os x a y u dvojrozměrného vektoru, AB = B A

VEKTORY. Obrázek 1: Jediný vektor. Souřadnice vektoru jsou jeho průměty do souřadných os x a y u dvojrozměrného vektoru, AB = B A VEKTORY Vektorem se rozumí množina všech orientovaných úseček, které mají stejnou velikost, směr a orientaci, což vidíme na obr. 1. Jedna konkrétní orientovaná úsečka se nazývá umístění vektoru na obr.

Více

Rekurentní rovnice, strukturální indukce

Rekurentní rovnice, strukturální indukce , strukturální indukce Jiří Velebil: Y01DMA 23. února 2010: Strukturální indukce 1/19 Backusova-Naurova forma Například syntaxe formuĺı výrokové logiky kde a At. Poznámky 1 Relaxace BNF. ϕ ::= a tt (ϕ

Více

a a

a a 1.. Cíle V této kapitole se naučíme určovat zejména celočíselné kořeny některých polynomů. Výklad Při výpočtu hodnoty polynomu n k p( x) = ak x n-tého stupně n 1 v bodě x 0 C k = 0 musíme provést ( n 1)

Více

Lingebraické kapitolky - Počítání s maticemi

Lingebraické kapitolky - Počítání s maticemi Lingebraické kapitolky - Počítání s maticemi Jaroslav Horáček KAM MFF UK 20 Rozehřívačka: Definice sčítání dvou matic a násobení matice skalárem, transpozice Řešení: (A + B ij A ij + B ij (αa ij α(a ij

Více

Věta 12.3 : Věta 12.4 (princip superpozice) : [MA1-18:P12.7] rovnice typu y (n) + p n 1 (x)y (n 1) p 1 (x)y + p 0 (x)y = q(x) (6)

Věta 12.3 : Věta 12.4 (princip superpozice) : [MA1-18:P12.7] rovnice typu y (n) + p n 1 (x)y (n 1) p 1 (x)y + p 0 (x)y = q(x) (6) 1. Lineární diferenciální rovnice řádu n [MA1-18:P1.7] rovnice typu y n) + p n 1 )y n 1) +... + p 1 )y + p 0 )y = q) 6) počáteční podmínky: y 0 ) = y 0 y 0 ) = y 1 y n 1) 0 ) = y n 1. 7) Věta 1.3 : Necht

Více

Na začátku rozdělíme práci a určíme, které podproblémy je potřeba vyřešit. Tyto

Na začátku rozdělíme práci a určíme, které podproblémy je potřeba vyřešit. Tyto Kapitola 1 Rozděl a panuj Rozděl a panuj je programovací metoda. Často se označuje latinsky Divide et Empera nebo anglicky Divide and Conquer. Vychází z toho, že umíme zadaný problém rozložit na menší

Více

Matematická analýza ve Vesmíru. Jiří Bouchala

Matematická analýza ve Vesmíru. Jiří Bouchala Matematická analýza ve Vesmíru Jiří Bouchala Katedra aplikované matematiky jiri.bouchala@vsb.cz www.am.vsb.cz/bouchala - p. 1/19 typu: m x (sin x, cos x) R(x, ax +...)dx. Matematická analýza ve Vesmíru.

Více

1 Lineární prostory a podprostory

1 Lineární prostory a podprostory Lineární prostory a podprostory Přečtěte si: Učebnice AKLA, kapitola první, podkapitoly. až.4 včetně. Cvičení. Které z následujících množin jsou lineárními prostory s přirozenými definicemi operací?. C

Více

[1] Determinant. det A = 0 pro singulární matici, det A 0 pro regulární matici

[1] Determinant. det A = 0 pro singulární matici, det A 0 pro regulární matici [1] Determinant je číslo jistým způsobem charakterizující čtvercovou matici det A = 0 pro singulární matici, det A 0 pro regulární matici používá se při řešení lineárních soustav... a v mnoha dalších aplikacích

Více

2. Určete jádro KerL zobrazení L, tj. nalezněte alespoň jednu jeho bázi a určete jeho dimenzi.

2. Určete jádro KerL zobrazení L, tj. nalezněte alespoň jednu jeho bázi a určete jeho dimenzi. Řešené příklady z lineární algebry - část 3 Typové příklady s řešením Příklad 3.1: Zobrazení L: P 3 R 23 je zobrazení z prostoru P 3 všech polynomů do stupně 3 (včetně nulového polynomu) do prostoru R

Více

Limita a spojitost funkce

Limita a spojitost funkce Přednáška 5 Limita a spojitost funkce V této přednášce se konečně dostaneme k diferenciálnímu počtu funkce jedné reálné proměnné. Diferenciální počet se v podstatě zabývá lokálním chováním funkce v daném

Více

V každém kroku se a + b zmenší o min(a, b), tedy vždy alespoň o 1. Jestliže jsme na začátku dostali 2

V každém kroku se a + b zmenší o min(a, b), tedy vždy alespoň o 1. Jestliže jsme na začátku dostali 2 Euklidův algoritmus Doprovodný materiál pro cvičení Programování I. NPRM044 Autor: Markéta Popelová Datum: 31.10.2010 Euklidův algoritmus verze 1.0 Zadání: Určete největšího společného dělitele dvou zadaných

Více

označme j = (0, 1) a nazvěme tuto dvojici imaginární jednotkou. Potom libovolnou (x, y) = (x, 0) + (0, y) = (x, 0) + (0, 1)(y, 0) = x + jy,

označme j = (0, 1) a nazvěme tuto dvojici imaginární jednotkou. Potom libovolnou (x, y) = (x, 0) + (0, y) = (x, 0) + (0, 1)(y, 0) = x + jy, Komplexní čísla Množinu všech uspořádaných dvojic (x, y) reálných čísel x, y nazýváme množinou komplexních čísel C, jestliže pro každé dvě takové dvojice (x, y ), (x 2, y 2 ) je definována rovnost, sčítání

Více

1 Řešení soustav lineárních rovnic

1 Řešení soustav lineárních rovnic 1 Řešení soustav lineárních rovnic 1.1 Lineární rovnice Lineární rovnicí o n neznámých x 1,x 2,..., x n s reálnými koeficienty rozumíme rovnici ve tvaru a 1 x 1 + a 2 x 2 +... + a n x n = b, (1) kde koeficienty

Více

Vektory a matice. Obsah. Aplikovaná matematika I. Carl Friedrich Gauss. Základní pojmy a operace

Vektory a matice. Obsah. Aplikovaná matematika I. Carl Friedrich Gauss. Základní pojmy a operace Vektory a matice Aplikovaná matematika I Dana Říhová Mendelu Brno Obsah 1 Vektory Základní pojmy a operace Lineární závislost a nezávislost vektorů 2 Matice Základní pojmy, druhy matic Operace s maticemi

Více

M - Kvadratické rovnice a kvadratické nerovnice

M - Kvadratické rovnice a kvadratické nerovnice M - Kvadratické rovnice a kvadratické nerovnice Určeno jako učební tet pro studenty dálkového studia. VARIACE 1 Tento dokument byl kompletně vytvořen, sestaven a vytištěn v programu dosystem - EduBase.

Více

úloh pro ODR jednokrokové metody

úloh pro ODR jednokrokové metody Numerické metody pro řešení počátečních úloh pro ODR jednokrokové metody Formulace: Hledáme řešení y = y() rovnice () s počáteční podmínkou () y () = f(, y()) () y( ) = y. () Smysl: Analyticky lze spočítat

Více

Praha & EU: investujeme do vaší budoucnosti. Daniel Turzík, Miroslava Dubcová,

Praha & EU: investujeme do vaší budoucnosti. Daniel Turzík, Miroslava Dubcová, E-sbírka příkladů Seminář z matematiky Evropský sociální fond Praha & EU: investujeme do vaší budoucnosti Daniel Turzík, Miroslava Dubcová, Pavla Pavlíková Obsah 1 Úpravy výrazů................................................................

Více

sin(x) x lim. pomocí mocninné řady pro funkci sin(x) se středem x 0 = 0. Víme, že ( ) k=0 e x2 dx.

sin(x) x lim. pomocí mocninné řady pro funkci sin(x) se středem x 0 = 0. Víme, že ( ) k=0 e x2 dx. Použití mocniných řad Nejprve si ukážeme dvě jednoduchá použití Taylorových řad. Příklad Spočtěte následující limitu: ( ) sin(x) lim. x x ( ) Najdeme lim sin(x) x x pomocí mocninné řady pro funkci sin(x)

Více

VZOROVÝ TEST PRO 3. ROČNÍK (3. A, 5. C)

VZOROVÝ TEST PRO 3. ROČNÍK (3. A, 5. C) VZOROVÝ TEST PRO 3. ROČNÍK (3. A, 5. C) max. 3 body 1 Zjistěte, zda vektor u je lineární kombinací vektorů a, b, je-li u = ( 8; 4; 3), a = ( 1; 2; 3), b = (2; 0; 1). Pokud ano, zapište tuto lineární kombinaci.

Více

Riemannův určitý integrál

Riemannův určitý integrál Riemannův určitý integrál 1. Motivační příklad Příklad (Motivační příklad pro zavedení Riemannova integrálu). Nechť,. Vypočtěme obsah vybarvené oblasti ohraničené grafem funkce, osou a svislými přímkami

Více

Obsah. Euler-Fermatova věta. Reziduální aritmetika. 3. a 4. přednáška z kryptografie

Obsah. Euler-Fermatova věta. Reziduální aritmetika. 3. a 4. přednáška z kryptografie Obsah Počítání modulo n a jeho časová složitost 3. a 4. přednáška z kryptografie 1 Počítání modulo n - dokončení Umocňování v Zn 2 Časová složitost výpočtů modulo n Asymptotická notace Základní aritmetické

Více

Maticí typu (m, n), kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru:

Maticí typu (m, n), kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru: 3 Maticový počet 3.1 Zavedení pojmu matice Maticí typu (m, n, kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru: a 11 a 12... a 1k... a 1n a 21 a 22...

Více

Dijkstrův algoritmus

Dijkstrův algoritmus Dijkstrův algoritmus Hledání nejkratší cesty v nezáporně hranově ohodnoceném grafu Necht je dán orientovaný graf G = (V, H) a funkce, která každé hraně h = (u, v) H přiřadí nezáporné reálné číslo označované

Více

KOMPLEXNÍ ČÍSLA INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ

KOMPLEXNÍ ČÍSLA INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ KOMPLEXNÍ ČÍSLA Gymnázium Jiřího Wolkera v Prostějově Výukové materiály z matematiky pro vyšší gymnázia Autoři projektu Student na prahu 21. století - využití ICT ve vyučování matematiky na gymnáziu INVESTICE

Více

0.1 Úvod do lineární algebry

0.1 Úvod do lineární algebry Matematika KMI/PMATE 1 01 Úvod do lineární algebry 011 Vektory Definice 011 Vektorem aritmetického prostorur n budeme rozumět uspořádanou n-tici reálných čísel x 1, x 2,, x n Definice 012 Definice sčítání

Více

Lineární algebra Operace s vektory a maticemi

Lineární algebra Operace s vektory a maticemi Lineární algebra Operace s vektory a maticemi Robert Mařík 26. září 2008 Obsah Operace s řádkovými vektory..................... 3 Operace se sloupcovými vektory................... 12 Matice..................................

Více

Matematika III přednáška Aplikace vytvořujících funkcí - další úlohy

Matematika III přednáška Aplikace vytvořujících funkcí - další úlohy S Matematika III - 14. přednáška Aplikace vytvořujících funkcí - další úlohy Michal Bulant Masarykova univerzita Fakulta informatiky 18. 12. 2007 Obsah přednášky Řešení rekurencí Q Exponenciální vytvořující

Více

Obsah. Aplikovaná matematika I. Gottfried Wilhelm Leibniz. Základní vlastnosti a vzorce

Obsah. Aplikovaná matematika I. Gottfried Wilhelm Leibniz. Základní vlastnosti a vzorce Neurčitý integrál Aplikovaná matematika I Dana Říhová Mendelu Brno Obsah Primitivní funkce, neurčitý integrál Základní vlastnosti a vzorce Základní integrační metody Úpravy integrandu Integrace racionálních

Více

Operace s maticemi. 19. února 2018

Operace s maticemi. 19. února 2018 Operace s maticemi Přednáška druhá 19. února 2018 Obsah 1 Operace s maticemi 2 Hodnost matice (opakování) 3 Regulární matice 4 Inverzní matice 5 Determinant matice Matice Definice (Matice). Reálná matice

Více

Základy matematické analýzy

Základy matematické analýzy Základy matematické analýzy Spojitost funkce Ing. Tomáš Kalvoda, Ph.D. 1, Ing. Daniel Vašata 2 1 tomas.kalvoda@fit.cvut.cz 2 daniel.vasata@fit.cvut.cz Katedra aplikované matematiky Fakulta informačních

Více

M - Příprava na 1. zápočtový test - třída 3SA

M - Příprava na 1. zápočtový test - třída 3SA M - Příprava na 1. zápočtový test - třída 3SA Autor: Mgr. Jaromír JUŘEK Kopírování a jakékoliv další využití výukového materiálu je povoleno pouze s uvedením odkazu na www.jarjurek.cz. VARIACE 1 Tento

Více

V exponenciální rovnici se proměnná vyskytuje v exponentu. Obecně bychom mohli exponenciální rovnici zapsat takto:

V exponenciální rovnici se proměnná vyskytuje v exponentu. Obecně bychom mohli exponenciální rovnici zapsat takto: Eponenciální rovnice V eponenciální rovnici se proměnná vyskytuje v eponentu. Obecně bychom mohli eponenciální rovnici zapsat takto: a ( ) f ( ) f kde a > 0, b > 0 b Příkladem velmi jednoduché eponenciální

Více

Stromy, haldy, prioritní fronty

Stromy, haldy, prioritní fronty Stromy, haldy, prioritní fronty prof. Ing. Pavel Tvrdík CSc. Katedra počítačů FEL České vysoké učení technické DSA, ZS 2008/9, Přednáška 6 http://service.felk.cvut.cz/courses/x36dsa/ prof. Pavel Tvrdík

Více

z = a bi. z + v = (a + bi) + (c + di) = (a + c) + (b + d)i. z v = (a + bi) (c + di) = (a c) + (b d)i. z v = (a + bi) (c + di) = (ac bd) + (bc + ad)i.

z = a bi. z + v = (a + bi) + (c + di) = (a + c) + (b + d)i. z v = (a + bi) (c + di) = (a c) + (b d)i. z v = (a + bi) (c + di) = (ac bd) + (bc + ad)i. KOMLEXNÍ ČÍSLA C = {a + bi; a, b R}, kde i 2 = 1 Číslo komplexně sdružené k z = a + bi je číslo z = a bi. Operace s komplexními čísly: z = a + bi, kde a, b R v = c + di, kde c, d R Sčítání Odčítání Násobení

Více

Dynamické programování

Dynamické programování Dynamické programování prof. Ing. Pavel Tvrdík CSc. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Efektivní algoritmy (BI-EFA)

Více

Obecná informatika. Matematicko-fyzikální fakulta Univerzity Karlovy v Praze. Podzim 2012

Obecná informatika. Matematicko-fyzikální fakulta Univerzity Karlovy v Praze. Podzim 2012 Obecná informatika Přednášející Putovních přednášek Matematicko-fyzikální fakulta Univerzity Karlovy v Praze Podzim 2012 Přednášející Putovních přednášek (MFF UK) Obecná informatika Podzim 2012 1 / 18

Více

Matematika I (KMI/5MAT1)

Matematika I (KMI/5MAT1) Přednáška první aneb Úvod do algebry (opakování ze SŠ a možná i ZŠ) Seznámení s předmětem Osnova přednášky seznámení s předmětem množiny pojem množiny operace s množinami číselné obory intervaly mocniny

Více

7B. Výpočet limit L Hospitalovo pravidlo

7B. Výpočet limit L Hospitalovo pravidlo 7B. Výpočet it L Hospitalovo pravidlo V prai často potřebujeme určit itu výrazů, které vzniknou operacemi nebo složením několika spojitých funkcí. Většinou pomohou pravidla typu ita součtu násobku, součinu,

Více

Derivace funkcí více proměnných

Derivace funkcí více proměnných Derivace funkcí více proměnných Pro studenty FP TUL Martina Šimůnková 16. května 019 1. Derivace podle vektoru jako funkce vektoru. Pro pevně zvolenou funkci f : R d R n a bod a R d budeme zkoumat zobrazení,

Více

Limita a spojitost funkce a zobrazení jedné reálné proměnné

Limita a spojitost funkce a zobrazení jedné reálné proměnné Přednáška 4 Limita a spojitost funkce a zobrazení jedné reálné proměnné V několika následujících přednáškách budeme studovat zobrazení jedné reálné proměnné f : X Y, kde X R a Y R k. Protože pro každé

Více

9. Soustavy rovnic DEFINICE SOUSTAVY LINEÁRNÍCH ROVNIC O DVOU NEZNÁMÝCH. Soustava lineárních rovnic o dvou neznámých je:

9. Soustavy rovnic DEFINICE SOUSTAVY LINEÁRNÍCH ROVNIC O DVOU NEZNÁMÝCH. Soustava lineárních rovnic o dvou neznámých je: 9. Soustavy rovnic Správný nadpis této kapitoly by měl znít soustavy lineárních rovnic o dvou neznámých, z důvodu přehlednosti jsem jej zkrátil. Hned v úvodu čtenáře potěším teorie bude tentokrát krátká.

Více

Symetrické a kvadratické formy

Symetrické a kvadratické formy Symetrické a kvadratické formy Aplikace: klasifikace kvadrik(r 2 ) a kvadratických ploch(r 3 ), optimalizace(mpi) BI-LIN (Symetrické a kvadratické formy) 1 / 20 V celé přednášce uvažujeme číselné těleso

Více

α β ) právě tehdy, když pro jednotlivé hodnoty platí β1 αn βn. Danou relaci nazýváme relace

α β ) právě tehdy, když pro jednotlivé hodnoty platí β1 αn βn. Danou relaci nazýváme relace Monotónní a Lineární Funkce 1. Relace předcházení a to Uvažujme dva vektory hodnot proměnných α = α,, 1 αn ( ) a β = ( β β ) 1,, n x,, 1 xn. Říkáme, že vekto r hodnot α předchází vektor hodnot β (značíme

Více

Lineární algebra : Lineární prostor

Lineární algebra : Lineární prostor Lineární algebra : Lineární prostor (3. přednáška) František Štampach, Karel Klouda LS 2013/2014 vytvořeno: 17. dubna 2014, 14:43 1 2 3.1 Aximotické zavedení lineárního prostoru Číselné těleso Celou lineární

Více

Věta o dělení polynomů se zbytkem

Věta o dělení polynomů se zbytkem Věta o dělení polynomů se zbytkem Věta. Nechť R je okruh, f, g R[x], přičemž vedoucí koeficient polynomu g 0 je jednotka okruhu R. Pak existuje jediná dvojice polynomů q, r R[x] taková, že st(r) < st(g)

Více

M - Kvadratické rovnice

M - Kvadratické rovnice M - Kvadratické rovnice Určeno jako učební tet pro studenty denního i dálkového studia. VARIACE 1 Tento dokument byl kompletně vytvořen, sestaven a vytištěn v programu dosystem - EduBase. Více informací

Více

MO-ME-N-T MOderní MEtody s Novými Technologiemi

MO-ME-N-T MOderní MEtody s Novými Technologiemi Projekt: Reg.č.: Operační program: Škola: Tematický okruh: Jméno autora: MO-ME-N-T MOderní MEtody s Novými Technologiemi CZ.1.07/1.5.00/34.0903 Vzdělávání pro konkurenceschopnost Hotelová škola, Vyšší

Více

M - Příprava na pololetní písemku č. 1

M - Příprava na pololetní písemku č. 1 M - Příprava na pololetní písemku č. 1 Určeno pro třídy 3SA, 3SB. VARIACE 1 Tento dokument byl kompletně vytvořen, sestaven a vytištěn v programu dosystem - EduBase. Více informací o programu naleznete

Více

ANALYTICKÁ GEOMETRIE V ROVINĚ

ANALYTICKÁ GEOMETRIE V ROVINĚ ANALYTICKÁ GEOMETRIE V ROVINĚ Analytická geometrie vyšetřuje geometrické objekty (body, přímky, kuželosečky apod.) analytickými metodami. Podle prostoru, ve kterém pracujeme, můžeme analytickou geometrii

Více

Interpolace Uvažujme třídu funkcí jedné proměnné ψ(x; a 0,..., a n ), kde a 0,..., a n jsou parametry, které popisují jednotlivé funkce této třídy. Mějme dány body x 0, x 1,..., x n, x i x k, i, k = 0,

Více

Učební texty k státní bakalářské zkoušce Matematika Vlastní čísla a vlastní hodnoty. študenti MFF 15. augusta 2008

Učební texty k státní bakalářské zkoušce Matematika Vlastní čísla a vlastní hodnoty. študenti MFF 15. augusta 2008 Učební texty k státní bakalářské zkoušce Matematika Vlastní čísla a vlastní hodnoty študenti MFF 15. augusta 2008 1 14 Vlastní čísla a vlastní hodnoty Požadavky Vlastní čísla a vlastní hodnoty lineárního

Více

Příklad 1. Řešení 1a Máme řešit rovnici ŘEŠENÉ PŘÍKLADY Z M1A ČÁST 1. Řešte v R rovnice: 8 3 5 5 2 8 =20+4 1 = + c) = f) +6 +8=4 g) h)

Příklad 1. Řešení 1a Máme řešit rovnici ŘEŠENÉ PŘÍKLADY Z M1A ČÁST 1. Řešte v R rovnice: 8 3 5 5 2 8 =20+4 1 = + c) = f) +6 +8=4 g) h) Příklad Řešte v R rovnice: a) 8 3 5 5 2 8 =20+4 b) = + c) = d) = e) + =2 f) +6 +8=4 g) + =0 h) = Řešení a Máme řešit rovnici 8 3 5 5 2 8 =20+4 Zjevně jde o lineární rovnici o jedné neznámé. Nejprve roznásobíme

Více

ALGORITMY A DATOVÉ STRUKTURY

ALGORITMY A DATOVÉ STRUKTURY Název tématického celku: Cíl: ALGORITMY A DATOVÉ STRUKTURY Metodický list č. 1 Časová složitost algoritmů Základním cílem tohoto tematického celku je vysvětlení potřebných pojmů a definic nutných k popisu

Více

Základní datové struktury III: Stromy, haldy

Základní datové struktury III: Stromy, haldy Základní datové struktury III: Stromy, haldy prof. Ing. Pavel Tvrdík CSc. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Efektivní

Více

VYBRANÉ PARTIE Z NUMERICKÉ MATEMATIKY

VYBRANÉ PARTIE Z NUMERICKÉ MATEMATIKY VYBRANÉ PARTIE Z NUMERICKÉ MATEMATIKY Jan Krejčí 31. srpna 2006 jkrejci@physics.ujep.cz http://physics.ujep.cz/~jkrejci Obsah 1 Přímé metody řešení soustav lineárních rovnic 3 1.1 Gaussova eliminace...............................

Více

Lineární algebra : Násobení matic a inverzní matice

Lineární algebra : Násobení matic a inverzní matice Lineární algebra : Násobení matic a inverzní matice (8. přednáška) František Štampach, Karel Klouda frantisek.stampach@fit.cvut.cz, karel.klouda@fit.cvut.cz Katedra aplikované matematiky Fakulta informačních

Více

0. Lineární rekurence Martin Mareš, 2010-07-04

0. Lineární rekurence Martin Mareš, 2010-07-04 0 Lineární rekurence Martin Mareš, 2010-07-04 V tomto krátkém textu se budeme zabývat lineárními rekurencemi, tj posloupnostmi definovanými rekurentní rovnicí typu A n+k = c 0 A n + c 1 A n+1 + + c k 1

Více

Modely Herbrandovské interpretace

Modely Herbrandovské interpretace Modely Herbrandovské interpretace Petr Štěpánek S využitím materialu Krysztofa R. Apta 2006 Logické programování 8 1 Uvedli jsme termové interpretace a termové modely pro logické programy a také nejmenší

Více

SPECIÁLNÍCH PRIMITIVNÍCH FUNKCÍ INTEGRACE RACIONÁLNÍCH FUNKCÍ

SPECIÁLNÍCH PRIMITIVNÍCH FUNKCÍ INTEGRACE RACIONÁLNÍCH FUNKCÍ VÝPOČET PEIÁLNÍH PRIMITIVNÍH FUNKÍ Obecně nelze zadat algoritmus, který by vždy vedl k výpočtu primitivní funkce. Nicméně eistují jisté třídy funkcí, pro které eistuje algoritmus, který vždy vede k výpočtu

Více

INTEGRÁLY S PARAMETREM

INTEGRÁLY S PARAMETREM INTEGRÁLY S PARAMETREM b a V kapitole o integraci funkcí více proměnných byla potřeba funkce g(x) = f(x, y) dy proměnné x. Spojitost funkce g(x) = b a f(x, y) dy proměnné x znamená vlastně prohození limity

Více

Dosud jsme se zabývali pouze soustavami lineárních rovnic s reálnými koeficienty.

Dosud jsme se zabývali pouze soustavami lineárních rovnic s reálnými koeficienty. Kapitola 4 Tělesa Dosud jsme se zabývali pouze soustavami lineárních rovnic s reálnými koeficienty. Všechna čísla byla reálná, vektory měly reálné souřadnice, matice měly reálné prvky. Také řešení soustav

Více

Diferenciální počet 1 1. f(x) = ln arcsin 1 + x 1 x. 1 x 1 a x 1 0. f(x) = (cos x) cosh x + 3x. x 0 je derivace funkce f(x) v bodě x0.

Diferenciální počet 1 1. f(x) = ln arcsin 1 + x 1 x. 1 x 1 a x 1 0. f(x) = (cos x) cosh x + 3x. x 0 je derivace funkce f(x) v bodě x0. Nalezněte definiční obor funkce Diferenciální počet f = ln arcsin + Definiční obor funkce f je určen vztahy Z těchto nerovností plyne < + ln arcsin + je tedy D f =, Určete definiční obor funkce arcsin

Více