3.3 Číselné množiny

V této části textu zúžíme naši pozornost na množiny tvořené čísly. Tyto množiny budou jedním z hlavních objektů našeho zájmu v BI-ZMA.

3.3.1 Přirozená čísla

Množinu přirozených čísel29 označujeme symbolem \(\N\), \begin{equation*} \N := \{1,2,3,\ldots\}.\end{equation*} Přirozená čísla abstrahují „počet“ objektů. Na obrázku 3.2 jsou uvedeny tři sady různých geometrických útvarů. Příklady (a), (b) i (c) mají tu vlastnost, že vždy obsahují tři útvary. Tento postřeh vyjadřujeme konstatováním, že útvary jsou tři a značíme arabskou číslicí \(3\).

Všimněme si, že množina přirozených čísel je uzavřená vůči násobení a sčítání. Přesněji, násobením a sčítáním dvou přirozených čísel dostaneme opět přirozené číslo: \begin{equation*} \begin{aligned} \text{pokud } a,b\in\N &\text{ potom } a+b\in\N, \\ \text{pokud } a,b\in\N &\text{ potom } a\cdot b\in\N. \end{aligned}\end{equation*}

Obrázek 3.2: Skupiny symbolů (a), (b) a (c) mají jistou společnou vlastnost, každá z uvedených skupin obsahuje \(3\) symboly.

K docenění pozičního zápisu čísel pomocí arabských30 cifer se zkuste zamyslet nad problémem provádění algebraických operací (sčítání, násobení, odčítání) pomocí římského číselného systému. Není to nic jednoduchého, že? Arabské číslice v Evropě propagoval Leonardo z Pisy (známý pod jménem Fibonacci) na začátku třináctého století. V roce 1202 vydal spis Liber abbaci („Kniha o počítání“), který významně napomohl rozvoji obchodu a vědy. Další zajímavosti o této „první výpočetní revoluci“ se může zvídavý čtenář dozvědět v poutavé knížce (Devlin, 2011).

3.3.2 Celá čísla

Množina \(\N\) však není uzavřená vůči odečítání dvou přirozených čísel. V případě sčítání můžeme tento fakt také formulovat tak, že rovnice

\begin{equation}\label{eq-uzavrenostZ}\tag{3.5} a = b + x\end{equation}
pro zadaná přirozená \(a,b\in\N\) nemusí mít přirozené řešení \(x\). Uvažme třeba \(a=4\) a \(b=5\). Jinak řečeno, pouze pomocí přirozených čísel nemůžeme vyjádřit koncept „dluhu“ (záporné číslo) a „prázdného počtu“ (nula).

K odstranění těchto nedostatků musíme k přirozeným číslům přidat nulu a záporná čísla. Dostáváme tak množinu celých čísel, \begin{equation*} \Z = \{\ldots,-3,-2,-1,0,1,2,3,\ldots\}.\end{equation*} V této množině už můžeme násobit, sčítat i odčítat, ale výsledek operace dělení už tuto množinu opustí. Tedy řešení rovnice

\begin{equation}\label{eq-rac}\tag{3.6} a = b \cdot x\end{equation}
pro zadaná celočíselná \(a\) a \(b\) nemusí být celočíselné. Tuto operaci opět můžeme motivovat potřebou rozdělovat jeden objekt na několik částí. Například při dělení jedné pizzy (\(a=1\)) na osm kousků (\(b=8\)) dostáváme osminy pizzy (\(x=\frac{1}{8}\)). Musíme přejít k racionálním31 číslům.

3.3.3 Racionální čísla

Množina racionálních čísel je tvořena řešeními rovnice (3.6) s nenulovým \(b\), která zapisujeme jako zlomky32

\begin{equation}\label{eq-Q}\tag{3.7} \Q = \Bigg\{ \frac{p}{q} \ \Bigg| \ p\in\Z,\, q\in\N \ \text{nesoudělná} \Bigg\}.\end{equation}
Operace sčítání a násobení je na zlomcích definována pomocí operací v \(\Z\) následovně33 \begin{equation*} \frac{p}{q} + \frac{r}{s} := \frac{ps+qr}{qs}, \quad \frac{p}{q} \cdot \frac{r}{s} := \frac{pr}{qs}, \quad \text{kde} \quad \frac{p}{q},\,\frac{r}{s}\in\Q.\end{equation*} Na pravých stranách těchto výrazů vždy můžeme zkrátit společné faktory a skutečně tak dostáváme prvek množiny (3.7). Celá čísla přirozeně patří do množiny racionálních čísel, tj. \(\mathbb{Z} \subset \mathbb{Q}\), jakožto zlomky \(\frac{p}{1}\), kde \(p \in \mathbb{Z}\), přičemž algebraické operace jsou zachovány.

Racionální čísla \(\Q\) spolu s operacemi sčítání \(+\) a násobení \(\cdot\) splňují veledůležité vztahy

\begin{equation}\label{eq-asoc}\tag{3.8} a + (b + c) = (a + b) + c, \quad a \cdot (b \cdot c) = (a \cdot b) \cdot c,\end{equation}
\begin{equation}\label{eq-distr}\tag{3.9} a \cdot (b + c) = (a \cdot b) + (a \cdot c)\end{equation}
platné pro libovolná racionální čísla \(a,b,c\). Rovnosti (3.8) se nazývají asociativní zákony pro sčítání, resp. násobení. Pouze díky jejich platnosti můžeme u opakovaného sčítání a násobení přestat psát závorky. Celkový výsledek totiž na uzávorkování nezáleží34. Rovnost (3.9) se nazývá distributivní zákon. Čtenář je s ním jistě intimně obeznámen, neboť díky němu lze provádět operaci „vytýkání před závorku“. Abychom nemuseli na pravé straně (3.9) psát závorky, zavádí se konvenční přednost operace násobení před sčítáním. Význačným prvkem množiny racionálních čísel je číslo \(0\), které splňuje \begin{equation*} 0 + a = a + 0 = a\end{equation*} pro libovolné racionální číslo \(a\). Ke každému racionálnímu číslu \(a\) existuje racionální číslo označované jako \(-a\) splňující \begin{equation*} a + (-a) = (-a) + a = 0.\end{equation*} Podobný význam jako číslo \(0\) pro operaci sčítání má číslo \(1\) pro operaci násobení, pro každé racionální číslo \(a\) platí \begin{equation*} 1 \cdot a = a \cdot 1 = a.\end{equation*} Konečně ke každému nenulovému racionálnímu číslu \(a\) existuje racionální číslo označované jako \(a^{-1}\) splňující \begin{equation*} a \cdot a^{-1} = a^{-1} \cdot a = 1.\end{equation*}

Předchozí odstavec lze shrnout do krátkého konstatování, že množina racionálních čísel \(\Q\) spolu s operacemi sčítání \(+\) a násobení \(\cdot\) tvoří těleso. Studiem číselných těles se zabývá35 oblast matematiky nazývaná obecná algebra. Konečná36 tělesa nacházejí široké uplatnění v moderních šifrovacích algoritmech a počítačové bezpečnosti vůbec.

V množině racionálních čísel lze tedy provádět tzv. algebraické operace sčítání, odčítání, násobení a dělení (nenulovými čísly). Toto „číselné prostředí“ plně dostačuje k provádění jednoduchých účetních a obchodních operací, které motivovaly vznik algebry ve středověku. Bohužel (nebo možná naštěstí) tato číselná množina je nedostatečná k popisu celé řady praktických problémů. Na druhou stranu, ani takto starý koncept jako jsou racionální čísla, nelze plně modelovat na moderních počítačích (nemáme k dispozici nekonečnou paměť). Při provádění algebraických operací v racionálních číslech ovšem nedochází k zaokrouhlovacím chybám.

3.3.4 Reálná čísla

Na začátku této kapitoly jsme si ukázali, že přirozených a celých čísel „není dost“. K uspokojení našich požadavků bylo vždy nutné další čísla přidat. Podobná situace nastává i v případě racionálních čísel. Tato množina je sice již uzavřená vůči binárním algebraickým operacím sčítání a násobení, ale tentokrát narazíme na potíže při analýze následujícího geometrického problému. Uvažujme čtverec o straně délky \(1\) (racionální číslo), viz obrázek 3.3.

Obrázek 3.3: Čtverec o straně délky \(1\) a jeho úhlopříčka o straně délky \(x\).

Ptáme se, jaká je délka jeho úhlopříčky. Tu lze zkonstruovat pomocí pravítka a kružítka. Na obrázku 3.3 je tato označena písmenem \(x\). Podle Pythagorovy věty platí

\begin{equation}\label{eq-sqrtpoly}\tag{3.10} 1^2 + 1^2 = x^2.\end{equation}
Tedy \(x^2 = 2\). Takovéto kladné číslo nazýváme odmocninou ze dvou a značíme \(x = \sqrt{2}\). Lze snadno ukázat, že toto číslo není racionální, jak jsme si již ukázali ve větě 2.5. Stojíme tedy před závažným problémem. Na obrázku 3.3 nelze délku červené úsečky vyjádřit racionálním číslem! Znamená to, že s konceptem úhlopříčky v tomto případě nemůžeme pracovat? Ne, jen to ukazuje na nedokonalost racionálních čísel, musíme přistoupit k reálným číslům.

Mezi významná iracionální čísla dále patří například Ludolfovo37 číslo (tradičně označované řeckým písmenkem \(\pi\)) či Eulerova38 konstanta (tradičně označované latinským písmenem \(\e\)). V jistém smyslu je iracionálních čísel podstatně více39 než racionálních, lze říci, že „typické“ reálné číslo je iracionální. Více si o vztahu těchto dvou množin povíme v BI-ZMA. Čtenáři je jistě známo, že čísla si můžeme představovat jako body ležící na přímce, tzv. číselné ose. Na přímce je zvolen význačný bod odpovídající nule a číslo \(a\) vynášíme na osu ve vzdálenosti \(|a|\) od bodu \(0\). Kladná čísla umisťujeme napravo a záporná čísla nalevo od \(0\).

Obrázek 3.4: Číselná osa

Pokud bychom na osu vynášeli pouze racionální čísla, výsledná přímka by byla „děravá“. Například ve vzdálenosti \(\sqrt{2}\) (napravo i nalevo) od bodu \(0\) by nebyl zanesen žádný bod. K zaplnění číselné osy je potřeba uvažovat i iracionální čísla. Požadavek na neděravost reálné osy přesněji vyjadřuje „axiom úplnosti“. Podrobněji se touto problematikou budeme zabývat v jedné z prvních přednášek BI-ZMA.

Poznamenejme pro zajímavost, že rozhodnout o racionálnosti či iracionálnosti čísla nemusí být jednoduché. Dokonce existují čísla, o kterých se doposud neví, do které množiny patří. Příkladem může být Euler-Mascheroniho konstanta definovaná vztahem40 \begin{equation*} \gamma := \lim_{n\to+\infty} \left(\sum_{k=1}^n \frac{1}{k} - \ln n \right) \approx 0.5772156649.\end{equation*} Více informací o tomto konkrétním problému lze nalézt v (Weisstein, b.r.).

Poznámka 3.8 (Strojová čísla)

Reálná čísla v plné obecnosti zdaleka nejde reprezentovat v počítači. Místo reálných čísel se používají tzv. čísla s plovoucí desetinnou čárkou, či strojová čísla (floating point numbers, familiárně floaty). Podle toho kolik bitů použijeme k jejich reprezentaci (v dnešní době typicky 64 bitů), takovou získáme maximální přesnost. Na tomto místě nebudeme příliš zabíhat do detailů, strojová čísla a práci s nimi přesně popisuje IEEE standard 754 (IEEE, 2008). Alespoň uveďme několik zásadních poznámek týkajících se strojových čísel:

  • každé strojové číslo má v binární soustavě konečný počet cifer,
  • množina strojových čísel je konečná a nerovnoměrně rozprostřená (nejvíce jich je u \(0\)),
  • množina strojových čísel je ve skutečnosti podmnožina racionálních čísel.
  • při provádění operací se strojovými čísly dochází k zaokrouhlovacím chybám v jejichž důsledku například neplatí asociativní zákony.
Pro zajímavost, v 64 bitové přesnosti platí: nejmenší kladné strojové číslo je \(5\cdot10^{-324}\), největší strojové číslo je \(1.7976931348623157\cdot 10^{308}\).

3.3.5 Komplexní čísla

Mohlo by se zdát, že po doplnění racionálních čísel iracionálními čísly již není nutné žádná další čísla přidávat. Všimněme si, že geometrickou úvahu z minulého odstavce lze prostě redukovat na požadavek (viz rovnici (3.10)), aby rovnice \begin{equation*} x^2 - 2 = 0\end{equation*} měla v dané číselné množině řešení (zde \(\pm\sqrt{2}\in\R\)). Ovšem už hned jednoduchá obměna této rovnice,

\begin{equation}\label{eq-imag}\tag{3.11} x^2 + 1 = 0,\end{equation}
nemá reálné řešení41. Tuto rovnici lze vyřešit zavedením imaginární jednotky (značíme \(\ii\)), jež splňuje rovnost \(\ii^2 = -1\) a řeší proto i rovnici (3.11). Číslo \(\ii\) nazýváme komplexní jednotkou. Toto nové číslo můžeme násobit a sčítat s libovolným reláným číslem. Získáváme tak komplexní čísla, \begin{equation*} \CC = \{ a + b \ii \mid a,b\in\R\}.\end{equation*} Je-li \(z = a + b \ii\) komplexní číslo, pak reálné číslo \(a\) nazýváme reálnou částí \(z\) a reálné číslo \(b\) imaginární částí \(z\). Dvě komplexní čísla se rovnají, právě když se rovnají jejich reálné a imaginární části. Reálnou část komplexního čísla \(z\) značíme \(\Re z\) a imaginární část značíme \(\Im z\). Reálná čísla jsou v množině komplexních čísel přirozeně obsažena ztotožníme-li reálné číslo \(a\) s komplexním číslem \(a + 0\ii\).

Algebraické operace na množině \(\CC\) jsou zavedeny následovně \begin{equation*} (a + b \ii) + (c + d \ii) := (a+c) + (b+d) \ii,\end{equation*}

\begin{equation}\label{eq-komplexni-nasobeni}\tag{3.12} (a + b \ii) \cdot (c + d \ii) := (ac - bd) + (ad + bc) \ii, \quad a + b \ii, \ c + d \ii \in \CC.\end{equation}
Všimněte si, že pokud \(d=b=0\) pak součet \(a+c\) a součin \(a\cdot c\) má stejný význam jako v reálných číslech. Množina \(\CC\) s takto zavedenými operacemi opět tvoří těleso.

Komplexní čísla si lze představit například jako body v komplexní rovině. Vodorovnou osu nazýváme reálnou osou a svislou osu nazýváme imaginární osou. Komplexnímu číslu \(a+\ii b\) pak odpovídá bod o souřadnicích \((a,b)\). Viz obrázek 3.5.

Obrázek 3.5: Komplexní rovina.

Zavádí se absolutní hodnota komplexního čísla \begin{equation*} |a + \ii b| := \sqrt{a^2 + b^2}, \quad a,b\in\R.\end{equation*} V komplexní rovině si lze absolutní hodnotu komplexního čísla \(a+ \ii b\) představit jako délku úsečky spojující body \(0\) a \(a+b\ii\). Číslo \(a - \ii b\) nazýváme komplexně sdruženým číslem k číslu \(a + \ii b\), \(a,b\in\R\). Komplexně sdružené číslo tak získáme zrcadlením vůči reálné ose.

Operaci sčítání komplexních čísel si lze představit jako sčítání vektorů (sčítá se „po složkách“). Operaci násobení komplexních čísel lze v komplexní rovině znázornit jako rotaci a škálování. To není zcela zřejmé tvrzení, lze ho však odvodit z definice operace násobení (3.12). Pro ilustraci uvádíme obrázek 3.6. Speciálně násobení imaginární jednotkou \(\ii\) si lze v komplexní rovině představovat jako rotaci o úhel \(\frac{\pi}{2}\) vzhledem k počátku souřadného systému, který odpovídá číslu \(0\), proti směru hodinových ručiček.

Obrázek 3.6: Geometrická interpretace operace sčítání a násobení komplexních čísel.

Důvod k zavedení komplexních čísel se může zdát uměle vykonstruovaný. Například se hned nabízí otázka, zda v případě, kdy budeme zkoumat řešení jiné polynomiální rovnice než (3.11), nebudeme potřebovat další komplexní jednotku. Odpověď na tuto otázku podal Gauss42 ve své slavné Fundamentální větě algebry: každý polynom s komplexními koeficienty stupně \(n\) má \(n\) komplexních kořenů43. K řešení polynomiálních rovnic tedy naprosto vystačíme s komplexními čísly.

Řada matematických metod aplikovaných v praxi je ve své podstatě komplexní. Například Fourierova transformace (resp. Fast Fourier Transform, FFT), využívaná k analýze signálu, je bez aparátu komplexních čísel jen nešikovně popsatelná. Bez komplexních čísel by šlo jen velmi těžko formulovat kvantovou fyziku, teorii, na které stojí řada moderních technologií a jež možná v blízké budoucnosti kompletně změní otázku bezpečnosti IT.

3.3.6 Kvaterniony

Na závěr této kapitolky poznamenejme, že komplexní čísla lze ještě dále rozšířit na (nekomutativní) těleso kvaternionů. V něm nemáme jen jednu komplexní jednotku, ale hned tři (\(\ii\), \(\mathrm{j}\) a \(\mathrm{k}\)). Celkem tedy dostáváme čtyři jednotky (jedna reálná \(1\) a tři „komplexní“), odtud název. Vztahy mezi těmito jednotkami jsou definovány pomocí rovnic

\begin{equation}\label{eq-kvaterniony}\tag{3.13} \mathrm{i}^2 = \mathrm{j}^2 = \mathrm{k}^2 = -1 \quad \text{a} \quad \mathrm{i}\mathrm{j}\mathrm{k} = -1.\end{equation}
Z těchto vztahů dokážete odvodit další součiny různých kombinací jednotek.

Otázka 6

Z definičních vztahů (3.13) odvoďte hodnotu součinů \begin{equation*} \mathrm{i}\mathrm{j} \quad \text{a} \quad \mathrm{j}\mathrm{i}\end{equation*}

Odpověď:

Z rovnosti \(\mathrm{i}\mathrm{j}\mathrm{k} = -1\) vynásobením \(\mathrm{k}\) zprava plyne \(-\mathrm{i}\mathrm{j} = -k\) a tedy \(\mathrm{i}\mathrm{j} = k\). Podobně z rovnosti \(\mathrm{i}\mathrm{j}\mathrm{k} = -1\) vynásobením postupně \(\mathrm{i}\) zleva a poté i \(\mathrm{j}\) zleva získáme \(-\mathrm{k} = \mathrm{j}\mathrm{i}\).

Množinu \begin{equation*} \mathbb{H} = \{a + b\mathrm{i} + c\mathrm{j} + d\mathrm{k} \mid a,b,c,d \in\R \},\end{equation*} s operacemi definovanými podobně jako v komplexních číslech, zavedl Hamilton. (Sir William Rowan Hamilton (4. srpna 1805 – 2. září 1865) byl irský fyzik a matematik. Poté, co objevil definiční vztahy (3.13), vyryl je do mostu v Dublinu.) Proč se tu o kvaternionech zmiňujeme? Pomocí kvaternionů lze totiž velmi výhodně (ve výpočetním slova smyslu) počítat například rotace vektorů v třírozměrném prostoru. Využívá jich řada algoritmů implementovaných v grafických kartách. Pro zajímavost viz např. (Confuted, b.r.).

Otázka 7

Zakreslete následující komplexní čísla do komplexní roviny. \begin{equation*} \begin{aligned} &\text{a)} \ z = (4+3\ii)(1-2\ii), & &\text{b)} \ z = (2-\ii)^2, \\ &\text{c)} \ z = \ii (1 + \ii), & &\text{d)} \ z = \frac{1}{2+\ii}. \end{aligned}\end{equation*}

Odpověď:

a) \(\Re z = 10\), \(\Im z = -5\), b) \(\Re z = 3\), \(\Im z = -4\), c) \(\Re z = -1\), \(\Im z = 1\), d) \(\Re z = \frac{2}{5}\), \(\Im z = - \frac{1}{5}\).