From: Martin Mares Date: Tue, 1 Dec 2009 21:49:53 +0000 (+0100) Subject: FFT: Preformatovano Komplexni intermezzo. X-Git-Url: http://mj.ucw.cz/gitweb/?a=commitdiff_plain;h=7be23343f72bc21cbcf857e126fcda43bd86407f;p=ads2.git FFT: Preformatovano Komplexni intermezzo. --- diff --git a/9-fft/9-fft.tex b/9-fft/9-fft.tex index e0ff2be..d20bff6 100644 --- a/9-fft/9-fft.tex +++ b/9-fft/9-fft.tex @@ -64,7 +64,7 @@ Cel vyhodnocovat -- zvolí-li se obecná $x_j$, tak se to rychle neumí, pro speciální $x_j$ ale uká¾eme, ¾e to rychle jde. -\ss{ Vyhodnocení polynomu metodou Rozdìl a~panuj (algoritmus FFT):} +\ss{Vyhodnocení polynomu metodou Rozdìl a~panuj (algoritmus FFT):} Mìjme polynom $P$ stupnì $\leq d$ a~chtìjme jej vyhodnotit v~$n$ bodech. Vybereme si body tak, aby byly spárované, èili $\pm x_{0}, \pm x_{1}, \ldots , \pm x_{n/2-1} $. To nám výpoèet urychlí, proto¾e pak se druhé @@ -92,57 +92,54 @@ Te být záporná a~tím pádem u¾ v~druhé úrovni rekurze body spárované nebudou. Z~tohoto dùvodu musíme pou¾ít komplexní èísla -- tam druhé mocniny záporné býti mohou. + % komplex -\medskip -\>{\bf Komplexní intermezzo} +\h{Komplexní intermezzo} +\def\i{{\rm i}} +\def\\{\hfil\break} + +\s{Základní operace} + \itemize\ibull -\def\i{i} % ???; taky: ? sit, -> it -{\parskip12pt -\hfill{\bf Základní operace} \:Definice: ${\bb C} = \{a + b\i \mid a,b \in {\bb R}\}$ -\:Sèítání: $(a+b\i)\pm(p+q\i) = (a\pm p) + (b\pm q)\i$. -\vglue-8pt -\qquad Pro $\alpha\in{\bb R}$ je $\alpha(a+b\i) = \alpha a + \alpha b\i$. +\:Sèítání: $(a+b\i)\pm(p+q\i) = (a\pm p) + (b\pm q)\i$. \\ +Pro $\alpha\in{\bb R}$ je $\alpha(a+b\i) = \alpha a + \alpha b\i$. -\:Komplexní sdru¾ení: $\overline{a+b\i} = a-b\i$. -\vglue-8pt -\qquad $\overline{\overline x} = x$, $\overline{x\pm y} = \overline{x} \pm +\:Komplexní sdru¾ení: $\overline{a+b\i} = a-b\i$. \\ +$\overline{\overline x} = x$, $\overline{x\pm y} = \overline{x} \pm \overline{y}$, $\overline{x\cdot y} = \overline x \cdot \overline y$, $x \cdot \overline x \in {\bb R}$. \:Absolutní hodnota: $\vert x \vert = \sqrt{x\cdot\overline{x}}$, tak¾e $\vert -a+b\i \vert = \sqrt{a^2+b^2}$. - -\vglue-8pt -\qquad Také $\vert \alpha x \vert = \vert \alpha\vert \cdot \vert x \vert$. +a+b\i \vert = \sqrt{a^2+b^2}$. \\ +Také $\vert \alpha x \vert = \vert \alpha\vert \cdot \vert x \vert$. \:Dìlení: $x/y = (x\cdot \overline{y}) / (y \cdot \overline{y})$. +\endlist -\hfill{\bf Gau{\scharfs}ova rovina a goniometrický tvar} +\s{Gau{\scharfs}ova rovina a goniometrický tvar} +\itemize\ibull \:Komplexním èíslùm pøiøadíme body v~${\bb R}^2$: $a+b\i \leftrightarrow (a,b)$. \:$\vert x\vert$ je vzdálenost od~bodu $(0,0)$. -\:$\vert x\vert = 1$ pro èísla le¾ící na~jednotkové kru¾nici ({\it komplexní -jednotky\/}). - -\vglue-8pt -\qquad Pak platí $x=\cos\varphi + \i\sin\varphi$ pro nìjaké $\varphi\in\left[ +\:$\vert x\vert = 1$ pro èísla le¾ící na~jednotkové kru¾nici ({\I komplexní jednotky}). \\ +Pak platí $x=\cos\varphi + \i\sin\varphi$ pro nìjaké $\varphi\in\left[ 0,2\pi \right)$. \:Pro libovolné $x\in{\bb C}$: $x=\vert x \vert \cdot (\cos\varphi(x) + -\i\sin\varphi(x))$. - -\vglue-8pt -\qquad Èíslu $\varphi(x)\in\left[ 0,2\pi \right)$ øíkáme {\it argument\/} +\i\sin\varphi(x))$. \\ +Èíslu $\varphi(x)\in\left[ 0,2\pi \right)$ øíkáme {\I argument} èísla~$x$, nìkdy znaèíme $\mathop{\rm arg} x$. \:Navíc $\varphi({\overline{x}}) = -\varphi(x)$. +\endlist -\hfill{\bf Komplexní èísla: Exponenciální tvar} +\s{Exponenciální tvar} +\itemize\ibull \:Eulerova formule: $e^{i\varphi} = \cos\varphi + \i\sin\varphi$. \:Ka¾dé $x\in{\bb C}$ lze tedy zapsat jako $\vert x\vert \cdot e^{\i\cdot @@ -150,73 +147,65 @@ jednotky\/}). \:Násobení: $xy = \left(\vert x\vert\cdot e^{\i\cdot\varphi(x)}\right) \cdot \left(\vert y\vert\cdot e^{\i\cdot\varphi(y)}\right) = \vert x\vert - \cdot \vert y\vert \cdot e^{\i\cdot(\varphi(x) + \varphi(y))}$. - -\vglue-8pt -\qquad (absolutní hodnoty se násobí, argumenty sèítají) + \cdot \vert y\vert \cdot e^{\i\cdot(\varphi(x) + \varphi(y))}$. \\ +(absolutní hodnoty se násobí, argumenty sèítají) \:Umocòování: $x^\alpha = \left(\vert x\vert\cdot e^{\i\cdot\varphi(x)}\right)^ \alpha = {\vert x\vert}^\alpha\cdot e^{\i \alpha \varphi(x)}$. \:Odmocòování: $\root n\of x = {\vert x\vert}^{1/n} \cdot e^{\i\cdot -\varphi(x)/n}$. - -\vglue-8pt -\qquad pozor -- odmocnina není jednoznaèná: $1^4=(-1)^4=\i^4=(-\i)^4=1$. +\varphi(x)/n}$. \\ +Pozor -- odmocnina není jednoznaèná: $1^4=(-1)^4=\i^4=(-\i)^4=1$. +\endlist -\hfill{\bf Komplexní èísla: Odmocniny z~jednièky} +\s{Odmocniny z~jednièky} +\itemize\ibull \:Je-li nìjaké $x\in{\bb C}$ $n$-tou odmocninou z~jednièky, musí platit: -\vglue-8pt -\qquad $\vert x \vert = 1$, tak¾e $x=e^{\i\varphi}$ pro nìjaké~$\varphi$, -\vglue-8pt -\qquad $e^{\i\varphi n} = \cos{\varphi n} + \i\sin\varphi n = 1$, proèe¾ -$\varphi n = 2k\pi$ pro nìjaké $k\in{\bb Z}$. +$\vert x \vert = 1$, tak¾e $x=e^{\i\varphi}$ pro nìjaké~$\varphi$. +Proto $x^n = e^{\i\varphi n} = \cos{\varphi n} + \i\sin\varphi n = 1$. +Platí tedy $\varphi n = 2k\pi$ pro nìjaké $k\in{\bb Z}$. -\:Z~toho plyne: $\varphi = 2k\pi/n$ -\vglue-8pt -\qquad (pro $k=0,\ldots,n-1$ dostáváme rùzné $n$-té odmocniny). +\:Z~toho plyne: $\varphi = 2k\pi/n$ \\ +(pro $k=0,\ldots,n-1$ dostáváme rùzné $n$-té odmocniny). \:Obecné odmocòování: $\root n \of x = {\vert x\vert}^{1/n} \cdot e^{\i\varphi (x)/n} \cdot u$, kde $u=\root n\of 1$. \:Je-li $x$ odmocninou z 1, pak $\overline{x} = x^{-1}$ -- je toti¾ $1 = \vert -x\cdot - \overline{x}\vert = x\cdot \overline{x}$. - -\vglue0pt minus4pt % hazel underfull vboxy -\: $x$ je $k$-tá {\it primitivní} odmocnina z 1 $\equiv (\forall jTuto definici splòují napøíklad èísla $\omega = e^{2\pi \i / k}$ a $\overline\omega = e^{-2\pi\i/k}$. +Platí toti¾, ¾e $\omega^j = e^{2\pi\i j/k}$, co¾ je rovno~1 právì tehdy, +je-li $j$ násobkem~$k$ (jednotlivé mocniny èísla~$\omega$ postupnì obíhají +jednotkovou kru¾nici). Analogicky pro~$\overline\omega$. -} +\>Uka¾me si nìkolik pozorování fungujících pro libovolné èíslo~$\omega$, +které je primitivní $k$-tou odmocninou z~jednièky (nìkdy budeme potøebovat, +aby navíc $k$ bylo sudé): + +\itemize\ibull +\:Pro $0\leq j{\bf Konec intermezza} + +\h{Konec intermezza} % end komplex + \bigskip + Vra»me se nyní k algoritmu. Z poslední èásti komplexního intermezza se zdá, ¾e by nemusel být ¹patný nápad zkusit vyhodnocovat polynom v mocninách $n$-té primitivní odmocniny z~jedné (tedy za $x_0,x_1,\ldots,x_{n-1}$