Algoritmická matematika 3 Mgr. Petr Osička, Ph.D. ZS Rozděl a panuj
|
|
- Rostislav Vítek
- před 8 lety
- Počet zobrazení:
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
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íceDynamické 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íce1 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íceBiná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íce1 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íceKMI/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íceMimo 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íceZpracoval: 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íce1 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íceMetoda 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ícePří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íceNÁ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ícez 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íceSlož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íceV 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íceIB108 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ícePŘ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íce1 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ícePolynomy. 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íceDefinice 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íceNechť 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íceNejdří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íce0.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íceKMI/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íce15. 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íceMatematika 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íceTeorie 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íceRekurentní 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íceNecht 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íceKolik 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íceJednoduchá 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íce9 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íceMatematika (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íce1. 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íce1.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)
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íceMatematika 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íceVEKTORY. 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íceRekurentní 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ícea 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íceLingebraické 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íceVě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íceNa 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íceMatematická 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íce1 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 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íce2. 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íceLimita 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íceV 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íceoznač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íce1 Ř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íceVektory 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íceM - 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
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ícePraha & 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ícesin(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íceVZOROVÝ 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íceRiemannů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íceObsah. 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íceMaticí 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íceDijkstrů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íceKOMPLEXNÍ ČÍ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íce0.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íceLineá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íceMatematika 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íceObsah. 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íceOperace 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íceZá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íceM - 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íceV 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íceStromy, 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ícez = 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íceDynamické 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íceObecná 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íceMatematika 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íce7B. 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íceDerivace 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íceLimita 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íce9. 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íceSymetrické 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
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íceLineá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íceVě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íceM - 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íceMO-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íceM - 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íceANALYTICKÁ 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íceInterpolace 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íceUč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ícePří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íceALGORITMY 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íceZá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íceVYBRANÉ 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íceLineá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íce0. 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íceModely 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íceSPECIÁ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íceINTEGRÁ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íceDosud 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íceDiferenciá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