úterý 27. července 2021

O číslech, část 5: Čísla konstruovatelná, algebraická, spočitatelná, definovatelná a normální

V tomto článku si ukážeme několik číselných množin, které už jdou za hranice školních znalostí matematiky, ale přesto nejsou nijak obtížné a pomůžou nám rozšířit naše znalosti o podstatě čísel. Všechny číselné obory mají společnou vlastnost, že jsou podmnožinou reálných čísel a protínají iracionální čísla, tudíž si je můžeme představit jako různá další členění reálných čísel. Jelikož všechna tato čísla už existují (jsou reálná a ta už v našem pojetí existují), vyhneme se tentokrát zdlouhavému konstruování a postačíme si s popisem.

Čísla konstruovatelná

Tato podmnožina reálných čísel představuje drtivou většinu toho, s čím se v matematice běžně pracuje, neboť označuje množinu všech reálných čísel, která lze zkonstruovat pomocí nějakého konečného opakování operací, tedy je lze vyjádřit nějakým výrazem využívajícím určité povolené operace. Obvykle se pod tímto pojmem myslí jedna konkrétní podmnožina, ale určitě neškodí ukázat si napřed, co je tím myšleno, na jednodušších podmnožinách, které omezíme různými operacemi:

  • Konstruovatelná pomocí 0, 1 a operace sčítání: přirozená čísla.
  • Konstruovatelná pomocí 1 a operace odčítání: celá čísla.
  • Konstruovatelná pomocí výše uvedeného a operace dělení deseti (decimace): desetinná čísla, tedy racionální čísla, kde ve jmenovateli je pouze mocnina 10 (lze je zapsat pomocí konečného množství desetinných číslic).
  • Konstruovatelná pomocí 1, operace odčítání a operace převrácené hodnoty (1/n): racionální čísla.

První otázkou je, zdali by se pomocí vhodného výběru operací nedala pokrýt všechna reálná čísla. Bez dlouhých okolků prozradím, že to nejde – výrazů s takovými operacemi je mnohem méně než všech reálných čísel (je jich stejně jako přirozených čísel, např. stačí takový výraz převést na bajty v nějakém kódování a ty bajty pak interpretovat jako přirozené číslo). Tím pádem sice můžeme vymýšlet lepší a lepší operace, ale reálná čísla jimi nikdy celá nepokryjeme.

Standardní operace, které se u konstruovatelných čísel používají, umožňují definovat racionální čísla, ale ještě některá další iracionální. Jejich výběr je čistě historický: antičtí Řekové byli fascinováni geometrií a konstruovatelností geometrických útvarů, přičemž se všeho snažili dosáhnout pomocí pravítka a kružítka. Zasekli se však na několika problémech:

  • Kvadratura kruhu – sestrojení čtverce, který by měl stejný obsah jako nějaký kruh.
  • Zdvojení krychle – sestrojení krychle s dvojnásobným objemem ku jiné krychli (nezapomeňte, že zdvojnásobení délky hrany zvětší objem osmkrát).
  • Trisekce úhlu – sestrojení úhlu s třetinovou velikostí k jinému.

Z hlediska geometrické konstruovatelnosti jsou čísla, která vzniknou konstrukcí geometrických útvarů, prostě poměry různých délek ku nějaké předem dané jednotkové délce. Které operace navíc tedy musíme povolit, abychom dokázali popsat čísla geometricky konstruovatelná jen pomocí pravítka a kružítka? Pouze druhou odmocninu. Ta se dá geometricky sestrojit jednoduše jako přepona pravoúhlého trojúhelníku a to z jakéhokoliv čísla. Z toho už je patrné, proč antické geometrické problémy jsou nejen těžké, ale naprosto nemožné:

  • Kvadratura kruhu vyžaduje sestrojit čtverec o obsahu násobku π, tedy o straně √π. Pokud by ten kruh byl válec a my měli provázek, dokážeme sestrojit π, ale bez provázku ne.
  • Zdvojení krychle vyžaduje délku jako třetí odmocninu, ale my dokážeme sestrojit jen druhou. Oproti tomu třeba v origami lze sestrojit třetí odmocninu, takže tam je takový problém řešitelný.
  • Trisekce úhlu vyžaduje umět konstruovat různé úhly za předpokladu, že umíme konstruovat jejich trojnásobky. To lze obecně pomocí funkce kosinus, ale tu nemáme k dispozici, takže to obecně nejde (třeba úhel 20 ° nejde zkonstruovat). I tento problém je řešitelný s pomocí origami.

Kromě těchto problémů nejsou konstruovatelná čísla zase až tak zajímavá, ale pokud by bylo zapotřebí vytvořit nějakou přesnou strojovou matematickou reprezentaci nám užitečných čísel, bylo by to asi to nejpřirozenější, po čem sáhnout. Musel by se ale trochu rozšířit obor operací, například na libovolné mocniny (a tedy i odmocniny), logaritmus, goniometrické a cyklometrické funkce a konstanty π a e. Obvykle se takto rozšířeným číselným oborům říká analytická čísla.

Čísla algebraická

Zatímco u čísel konstruovatelných jsme začínali na několika konstantách a pomocí opakovaného používání operací jsme se snažili dostat k danému číslu, jde to i v opačném směru, tedy začít na testovaném čísle a snažit se ho transformovat na nějakou konstantu, třeba na nulu. Povolíme při tom pouze sčítání a násobení, dále budeme moci použít všechna celá čísla a navíc to testované číslo můžeme použít vícekrát. Ještě musíme zakázat operace, které by dokázaly na nulu dostat cokoliv, tedy násobení nulou nebo odečítání sebe sama.

Pro ilustraci mějme třeba pátou odmocninu ze dvou. Umocňování jsme sice jako operaci nepovolili, ale stačí takových pátych odmocnin ze dvou vedle sebe vynásobit 5 a dostaneme číslo 2, které už odečtením dvou dostaneme na nulu lehce.

Zatímco konstruovatelná čísla odpovídala nějakému výrazu, tato čísla odpovídají nějakému polynomu (mnohočlenu). Obvykle to testované číslo označíme jako x; máme povoleno ho umocnit na nějaké přirozené číslo (nejvyšší takové je řád polynomu) a tyto členy můžeme sčítat a odčítat, případně násobit konstantami.

Takový polynom může být například 7x³ + 2x² − 1. Chceme-li, aby výsledek byl 0, hledáme tím kořeny polynomu a řešení rovnice 7x³ + 2x² − 1 = 0.

Řád polynomu bývá zpravidla neomezený, ale opět může být zajímavé podívat se, co získáme, pokud ho omezíme:

  • Řád 1 umožňuje pouze lineární rovnice, tedy ve tvaru ax + b = 0. Tím lze reprezentovat všechna racionální čísla.
  • Řád 2 umožňuje klasické kvadratické rovnice ve tvaru ax² + bx + c = 0. Tím pokryjeme klasická konstruovatelná čísla s druhou odmocninou.
  • Řád 4 je nejvyšší řád, kde výsledek stále ještě lze vyjádřit pomocí (libovolné) odmocniny.

Zajímavé zjištění, které kombinuje poznatky několika matematických oborů, je fakt, že algebraická čísla vyšších řádů už někdy nejdou vyjádřit jen pomocí výrazu s odmocninami. V případě kvintických rovnic (řádu 5) je možno řešení vyjádřit pomocí jedné operace navíc („ultrakořene“ a, tedy jediného řešení rovnice x⁵ + x + a = 0) a pro některé vyšší řády existují ještě podobné metody, ale jsou stále složitější a složitější (a v mnoha případech je potřeba jít mimo reálná čísla).

Asi už není tak překvapivé, že algebraických čísel je stále stejně jako přirozených. Vyplývá to opět z faktu, že každý polynom je konečný, všechny se dají lehce seřadit a očíslovat, a tedy je pokrývají přirozená čísla.

Opět tedy existují reálná čísla, která nejsou algebraická. Těm se říká transcendentní a vyplňují zbytek reálných čísel, tedy jsou stejně monstrózní jako celá reálná čísla. Důkazy, jestli je dané číslo transcendentní nebo ne, jsou asi nejdůležitější a zároveň nejobtížnější poznatky matematiky; sice stav mnoha důležitých konstant už známe, ale některé nám stále unikají.

První objevené transcendetní číslo byla tzv. Liouvillova konstanta; číslo, které v desetinném zápisu mělo všude nuly až na pozice s hodnotami faktoriálů, kde byly jedničky. Trochu komprimovanější varianta je tzv. Fredholmova konstanta 0,1101000100000001..., kde jedničky jsou na pozicích mocnin 2. Ani jedno z těchto čísel nejde vyjádřit jako kořen polynomu, ale jejich důležitost je stejně omezená – tato čísla byla zkonstruována právě proto, aby byla dokázána existence transcendentních čísel.

Zajímavější je zjišťovat transcendentalitu už známých (a užitečných čísel). Tady v mnoha případech platí něco podobného, co jsme už u viděli: odmocnina přirozeného čísla je buď přirozená, nebo iracionální. V tomto případě jsme na tom podobně a do algebraických čísel se bohužel moc dalších funkcí mimo odmocniny netrefuje: až na triviální případy jsou transcendentní logaritmy, exponenciace i goniometrické funkce, pokud je argument algebraické číslo. Dále víme, že i důležité konstanty jako π i e jsou transcendentní (a taky eπ), ale pak je tu velké množství jejich kombinací, například e + π, eπ apod., u nichž si nejsme jistí (součet transcendentních čísel nemusí být nutně transcendentní taky, např. π a −π hovoří za vše), a dokonce existuje velké množství konstant, u nichž ani nevíme, zdali jsou iracionální (a možná to ani dokázat nejde).

Summa summarum jsou algebraická čísla asi podobně užitečná jako konstruovatelná – pomáhají nám klasifikovat záhadné konstanty a odhalovat jejich podstatu. To je důležité v situaci, kdy potřebujeme znát přesnou hodnotu takové konstanty na libovolný počet desetinných číslic, protože můžeme použít jeden z obecných (a zpravidla dobře optimalizovaných) algoritmů a netvořit nějaký speciální.

Další stupeň algebraických čísel jsou takzvaná elementární čísla, která kromě klasických operací povolují v rovnicích i exponenciaci a logaritmy, a samozřejmě bychom si mohli vymyslet i další evoluce s dalšími operacemi jako to bylo u čísel konstruovatelných.

Čísla spočitatelná

Zatímco v předchozích dvou případech jsme se do doposud neprobádaných vod jen trochu ponořili, v tomto případě je začneme vesele brázdit. Spočitatelná čísla jsou nám programátorům z těchto číselných množin asi nejmilejší, neboť mají docela přívětivou definici:

Spočitatelné číslo je každé reálné číslo, které lze vypočítat nějakým algoritmem za konečný čas v libovolné přesnosti. Alternativní definice takového algoritmu může být například program, který generuje desetinné číslice takového čísla tak dlouho, dokud ho uživatel nezastaví, a takový program se jinak nikdy nezasekne. Zároveň nejsou kladeny nároky na zdroje, které takový program bude potřebovat, například na paměť či čas pro nalezení další číslice (pokud by takové nároky byly přidány, může to výslednou množinu zúžit).

Ve skutečnosti v podstatě všechna pro nás užitečná čísla jsou spočitatelná. Patří mezi ně čísla konstruovatelná i algebraická i jejich rozšíření pomocí klasických funkcí, a dokonce i konstanty jako e a π. Vše, co stačí nalézt, je algoritmus, který bude spolehlivě vypisovat jejich číslice, a s použitím aproximačních metod se dá takový algoritmus najít i u jinak těžko uchopitelných konstant či funkcí.

Pokud by definice pomocí algoritmu přišla někomu příliš nejednoznačná, je potřeba dodat, že se jedná o algoritmus pro takzvaný Turingův stroj. To je výpočetní model, kterému odpovídá většina programovacích jazyků, zároveň to je momentálně to nejlepší, co dokážeme realizovat (když nepočítám kvantové počítače) a možná to je i to nejlepší, co jde v našem vesmíru. Klidně bych místo Turingova stroje mohl použít klasické programovací jazyky jako C# nebo Luu, nebo třeba lambda kalkulus, ale výsledek bude ekvivalentní a nikdo tak nebude moct nic namítnout.

Spočitatelná čísla jsou z určitého hlediska maximum, co dokážou počítače reprezentovat a s čím dokážou numericky pracovat, protože každé takové číslo je vlastně algoritmus. Cokoliv složitějšího by už muselo být reprezentováno jen symbolicky.

Už asi není tak velkým zklamáním, že spočitatelná čísla, byť v praxi téměř nahrazující reálná, jsou stále stejně velká jako přirozená, protože opět pro definici takového čísla stačí nějaký algoritmus a ten lze reprezentovat přirozeným číslem. Možná to něco vypovídá o zbytku reálných čísel: jejich existence je nutná, ale jejich užitečnost minimální.

Dokážeme najít nějaké nespočitatelné číslo? Ano! Ve skutečnosti nejdůležitější vlastností nějakého programu není jeho výsledek, ale informace, zdali se zastaví nebo poběží navěky (a pokud je pro nás důležitá jiná informace, můžeme ji zakódovat tak, že se nový program v nějakém případě zacyklí a v jiném ne). Taková informace u každého programu nesporně existuje, ale není možné ji nějak spočítat. Jedná se o takzvaný problém zastavení a ten je algoritmicky nerozhodnutelný, takže to nejlepší, co můžeme udělat, je spustit takový program a doufat, že se zastaví.

S touto znalostí můžeme vymyslet číslo, které nějak kóduje tuto informaci o všech programech. Už víme, že každý program má nějaké svoje vlastní přirozené číslo, takže je můžeme pomocí něj seřadit a informaci, jestli se takový program zastaví nebo ne, kódovat jako 0 nebo 1 v desetinném rozvoji našeho čísla.

Podobný přístup využívá tzv. Chaitinova konstanta, což je pravděpodobnost, že se náhodně zkonstruovaný program zastaví. Ani jedno z těchto čísel nelze spočítat, protože takový program by musel rozhodnout problém zastavení a to nejde. Můžeme ho jen změřit (byť to závisí na použitém kódování a jazyce) nebo doufat, že nám ho sdělí Bůh, a pokud bychom ho znali celé, dokázali bychom tím vyřešit v podstatě všechny existující výpočetní problémy.

Čísla definovatelná

Pokud se nemůžeme spolehnout na algoritmus, zbývá nám už jen logika, pomocí které můžeme definovat další čísla. Ve skutečnosti všechny předchozí množiny jsme vlastně pomocí logiky definovali taky, protože jsme stanovili různé termíny, určili kontext, ve kterém se pohybujeme, a našli entity, které vyplývají z nějakých axiomů. Jazyk výrazů nám umožnil definovat konstruovatelná čísla, jazyk polynomů umožnil definovat algebraická čísla a jazyk Turingových strojů umožnil definovat spočitatelná čísla.

Důležité je vždy stanovit, v logice jakého typu se pohybujeme a jaký jazyk používáme. V opačném případě bychom mohli totiž začít definovat věci jako „nejmenší číslo, které nelze definovat pomocí 60 znaků“ (Berryho paradox), protože jsme zaměnili jazyk a metajazyk.

Definovatelnost nějakého čísla se intuitivně dá vyjádřit nějakým pravidlem, kterému vyhovuje pouze to konkrétní reálné číslo a žádné jiné. To, jakou logiku použijeme, ovlivňuje zbytek.

Pokud použijeme logiku 1. řádu a jazyk Peanovy aritmetiky (to je v podstatě axiomatický způsob definování přirozených čísel s operacemi sčítání a násobení), můžeme tak definovat některá reálná čísla, když se nám podaří definovat množinu, na jejíž hranici leží. Těm se říká aritmetická (nebo aritmeticky definovatelná) čísla. Pokud použijeme logiku 2. řádu (ta nám umožní mluvit o množinách prvků jako entitách) a stejný jazyk, dostaneme analytická (či analyticky definovatelná) čísla.

Tento způsob definování ve skutečnosti tvoří hierarchie, podle složitosti kvantifikátorů použitých uvnitř formulí v daných logikách. Už nejnižší úrovně zahrnují vše, co jsme viděli doposud, a zbytek jsou stále složitější úrovně čísel definovaných pomocí stále složitějších úrovní logik konečných i nekonečných řádů, zasahující dál a dál do reálných čísel, ale přesto stále spočetných.

Znamená to, že nikdy nebudeme schopni definovat každé jednotlivé číslo? Z pohledu výše uvedené definice tomu možná tak je, ale pokud je každé reálné číslo jen množina, co takhle se ho pokusit definovat pomocí samotné teorie množin a jejího jazyka? Pokud se budeme pohybovat uvnitř teorie množin, už víme, že nemůžeme definovat všechny prvky nespočetné množiny pomocí spočetné množiny konečných formulí, ale co když se přesuneme mimo teorii množin?

Pokud tak učiníme, potřebujeme napřed určit, v jakém modelu teorie množin se pohybujeme, tedy potřebujeme nějak zkonstruovat interní entity dané teorie z objektů externího světa. A tady narazíme na Skolemův paradox, jeden z nejpozoruhodnějších závěrů teorie množin, který tvrdí, že existuje model teorie množin, který je spočetný. Když se na teorii množin díváme zvenčí, máme plné právo zvolit si, jaký model použijeme, a tedy můžeme použít nějaký spočetný. To ovšem znamená, že každá (interní) množina v takovém modelu má nějaké vlastní přirozené číslo a dá se pomocí něj (externě) identifikovat. Když si tedy sundáme brýle v barvě teorie množin, přes které jsme viděli reálná čísla jako prvky nějaké nespočetné množiny, najednou se z nich stanou pouze prvky jednoho spočetného univerza, dostanou vlastní přirozené číslo a budou definovatelné.

Tento závěr je možná matoucí, ale jen ilustruje, že otázka definovatelnosti není tak jednoduchá, jak by se mohlo zdát, a naznačuje určité neúplnosti, které se dotýkají samotné podstaty matematiky.

Čísla normální

Doposud jsme se snažili posunout hranice známých čísel směrem do ryze reálných, ale co to zkusit obráceně? Když už máme jednou reálná čísla, můžeme zkusit zjistit, co všechno v nich vlastně je?

Je spoustu způsobů, jak reálná čísla členit, ale nejzajímavější z nich je pomocí číslic. Už od doby, kdy šlo spočítat všechny číslice různých iracionálních čísel, si všimli lidé, že v mnoha z nich zdánlivě nejsou žádné vzory, žádné obrazce, a říká se, že třeba v číslicích π se vyskytuje jakákoliv konečná posloupnost číslic, kterou chceme (třeba vaše rodné číslo), ať má jakoukoliv délku (ovšem zatím se to opravdu pouze jen říká).

Normální čísla představují množinu čísel, která je charakterizována trochu silněji: pro jakýkoliv číselný základ platí, že desetinný rozvoj těchto čísel obsahuje každou konečnou posloupnost číslic se stejnou četností, tedy že žádná skupina číslic nepřevažuje nad jinou.

Kupříkladu číslo 0,1234567891011121314151617181920... (Champernownova konstanta), složené z posloupnosti všech přirozených čísel, je normální při základu 10, ale při jiných základech normální není a tedy není (absolutně) normální. Ve skutečnosti jsou normální čísla asi ta nejhorší, která se můžeme snažit najít – vyplňují téměř celá reálná čísla a to takovým způsobem, že nebude přehnané říct, že ostatních čísel je jen 0 % ze všech reálných, ale zároveň se nám ještě nepovedlo žádné zkonstruovat.

S jistotou víme, že racionální čísla nejsou normální. Jejich desetinný rozvoj je buď ukončený (a pak začnou prevažovat nuly), nebo periodický, a tím pádem tam některé posloupnosti nebudou vůbec. Dál už je ale naše neznalost obrovská: víme s jistotou, že existují transcendentální i nespočitatelná čísla, která normální nejsou (třeba Liouvillova konstanta nebo moje zakódování problému zastavení), ale to je tak všechno. Nevíme, zdali π a e jsou normální, i když se to tak jeví. Stejně tak to vypadá, že i všechna iracionální algebraická čísla jsou normální, ale ani v tomto případě zatím žádné důkazy neexistují. Je zajímavé, že u čísel, jichž dokážeme vygenerovat miliony číslic, jsme zatím nebyli schopni dokázat nic o jejich rozložení, zatímco Chaitinova konstanta, nespočitatelné a ve své podstatě nepoznatelné číslo, má číslice naprosto náhodné a je to jediné mě známé normální číslo.

To jsme tedy moc nepochodili ve své snaze zjistit něco víc o reálných číslech. Drtivou většinu tvoří naprosto náhodná a nepopsatelná čísla, která tam musí být, ale jejich exempláře se skoro nedají najít a nevíme ani, jestli něco z toho, co známe, mezi ně patří. Taková už je podstata kontinua.


Tímto přehledem definitivně opouštíme reálná čísla a vydáváme se jinými směry, za hledáním nových číselných oborů a nových způsobů počítání, i když většina z nich i tak bude obsahovat v nějaké formě reálná čísla nebo jejich části, a pokud nějaký z takových systémů bude obsahovat reálná čísla, občas i v něm bude platit rozdělení, které jsme si ukázali, a bude aplikovatelné na všechny prvky takového systému.

Číselný svět, který jsem doteď vytvářel, konečně nabyl finální podoby, protože všechny další jeho podoby budou vzájemně nekompatibilní. Původní les racionálních čísel, mezi nimiž jsme našli čísla reálná, má své hranice. Za nimi je pláž, která postupně přechází do moře. Tam začínají algebraická čísla, pak spočitatelná a nakonec definovatelná a všechny jejich hierarchie. A dál už je jen moře normálních čísel, nestálé a chaotické. Na některých místech je pláž strmá, ale příboj klidný, tam jsou ta spočitatelná čísla, která nejsou normální. Zbytek pobřeží pokrývá mlha, která nám znemožňuje určit, jestli je moře klidné nebo rozbouřené, tam jsou zatím nejistá iracionální algebraická čísla. A jen v dáli, kde už je voda docela hluboká, se houpe na vlnách jedna osamělá bójka: Chaitinova konstanta.

Jsme na ostrově. Ostrově obklopeném nekonečným oceánem chaotických a nepoznatelných čísel.

pondělí 19. července 2021

O číslech, část 4: Čísla reálná

Do tého chvíle jsme se snažili rozšiřovat číselné množiny z praktických důvodů, abychom se zbavili omezení, která s sebou nesly operace sčítání a násobení. Pro rekapitulaci:

  • Začali jsme množinou přirozených čísel, ℕ. Můžeme jim též říkat „počítací“ čísla, neboť je lze využít pro reprezentaci počtu nějakých objektů. Zahrnuli jsme do nich i číslo 0.
  • Ať už chceme použít přirozená čísla pro vyjádření počtu množiny nebo třeba pro pozici pixelu na obrazovce, bylo by užitečné umět vyjádřit i změnu v takové hodnotě či posun v pozici. V jednom směru to jde, v druhém musíme přidat čísla opačná ke kladným přirozeným. Vzniknou tak „znaménková“ čísla ℤ, obvykle známá jako čísla celá.
  • Absolutní změna se sice hodí, ale jakmile potřebujeme používat nějaké jednotky, potřebujeme i relativní změnu. Přidáním poměrů mezi celými čísly vznikají čísla „zlomková“ či racionální, ℚ.

Tohle by se mohlo zdát jako vše, co existuje a co je potřeba; a opravdu pro většinu počítání, vážení a měření nic jiného potřeba není a i kdyby se objevilo číslo, které do našeho systému nezapadá, přinejmenším místo něj v praxi můžeme použít nějaký zlomek. Někteří by mohli tvrdit, že nic dalšího už existovat nemůže; pojďme ale hledat dál...

Doposud jsem popisoval hlavně číselné operace, díky kterým bylo potřeba naše číselné univerzum rozšiřovat. Co ale relace? Porovnávání dvou čísel šlo už od začátku – u přirozených čísel to bylo prosté zjištění toho, ke kterému číslu se od počátku (0) dostaneme dřív. Celá a racionální čísla už takto popsat nejde, ale pořád je klasické porovnávání jediné možné: chceme, aby určité pravdy o operacích ve vztahu k porovnání zůstaly nezměněny, například aby přičtení jakéhokoliv čísla nemělo vliv na výsledek, stejně tak vynásobení kladným číslem (a vynásobením záporným číslem ho otočilo).

A tak, aniž bychom to zpozorovali, vyplnily nové číselné množiny „díry“, chybějící nezabraná místa v tom, co jsme měli do té doby. Neexistovalo nic menšího než 0, ale přidání záporných čísel to vyřešilo a díky tomu vždy najdeme větší i menší číslo k nějakému existujícímu. Neměli jsme záruku, že mezi dvěma danými čísly existuje nějaké jiné, ale racionální čísla nám to garantují (stačí sečíst čitatele a jmenovatele a vytvořit z toho nový zlomek, ten bude ležet někde mezi oběma původními).

Povšimněme si, že existence nových číselných množin uspokojila tvrzení ve stylu „pro každé číslo“ nebo „pro každé dvě čísla“ atd. To jsou tvrzení v takzvané logice 1. řádu (predikátové logice), která tvoří věty vztahující se na omezený počet (libovolných) proměnných. Logika 1. řádu však stačí jenom na dosažení racionálních čísel; na dosažení dalších množin potřebujeme něco silnějšího, potřebujeme umět spojovat (potenciálně nekonečné) množiny čísel.

Díky tomu rychle nalezneme díry tam, kde předtím nebyly. Zkusme třeba vzít dvě množiny racionálních čísel, z nichž všechny prvky v druhé jsou větší než všechny prvky v první. Podobně jako předtím u racionálních čísel se nyní zeptáme, jestli existuje číslo mezi nimi, tedy větší než vše z první množiny, ale menší než vše z druhé. Je jasné, že tohle nemusí vždy platit, třeba v jedné množině bude jen číslo 2 a v druhé vše větší než 2, tam nová čísla hledat nechceme. Chceme dvojice množin ve tvaru „všechna čísla menší než x“ a „všechna čísla větší než y“, tedy kde obě množiny jsou otevřené (umožňují nám libovolně se blížit k něčemu, co v nich ale neleží).

V situaci, kdy máme vedle sebe dvě množiny bez krajních bodů, intuitivně musí nastat dva možné případy: buď je mezi nimi nekonečně mnoho čísel (třeba „vše menší než 1“ a „vše větší než 2“) a nebo ten krajní bod sdílejí, tedy x = y a je mezi nimi tedy jen jedno racionální číslo. Je to vše, co může nastat? Není...

Vezměme množiny „všechna kladná racionální čísla, jejichž druhá mocnina je menší/větší než 2“. Takové množiny evidentně existují a nepřekrývají se, neboť druhá mocnina kladných čísel nijak nemění jejich pořadí. Když vezmeme nějaký exemplář z jedné z množin, vždy můžeme najít další, který se druhou mocninou blíží ke 2 ještě víc, obě množiny jsou tedy otevřené.

Asi není překvapivé, že pokud ona společná hranice obou množin existuje, musí to být číslo, jehož druhá mocnina je 2, tedy odmocnina ze 2. Existuje takové číslo? Zatím známe jen zlomky, musí to být tedy zlomek a určitě musí existovat v základním tvaru (tedy čitatel a jmenovatel nemají společného dělitele krom 1). Druhá mocnina takového zlomku musí být rovna 2, tedy čitatel musí být dvojnásobek jmenovatele. Dvojnásobek přirozeného čísla je evidentně sudé číslo a druhá mocnina podílu je podíl druhých mocnin, tedy pokud je odmocnina ze dvou zlomek, druhá mocnina čitatele je sudé číslo a tím pádem i čitatel musí být sudé číslo (druhá mocnina lichého čísla určitě sudá nebude). Pokud je čitatel takového zlomku sudé číslo, je dělitelný dvěma, ale pak jeho druhá mocnina musí být dělitelná čtyřmi. Druhá mocnina jmenovatele ale musí být polovina druhé mocniny čitatele, tedy když je čitatel dělitelný čtyřmi, musí být dělitelná aspoň dvěma. To znamená, že i druhá mocnina jmenovatele je sudé číslo a jmenovatel samotný musí být sudé číslo taky. To je ale v rozporu s úvodním předpokladem, že obě čísla jsou nesoudělná, protože když je čitatel i jmenovatel sudý, oba jsou dělitelné dvěma a zlomek by měl jít zkrátit. Právě jsme ale dokázali, že by takový zlomek měl jít zkrátit vždy, tedy neexistuje v základním tvaru a nemůže tím pádem existovat vůbec.

Proč jsme si ale museli projít touto exkurzí v hledání děr, když to stejně jen skončilo u podobného problému jako minule, a sice že neumíme odmocniny? Důvod je ten, že kromě odmocnin neumíme i logaritmy, siny a další operace, mnohé jejich výsledky nejsou racionální čísla, i když by dávalo smysl o nich mluvit. Sice se můžeme snažit použít stejný trik jako minule, ale ať přidáme kolik operací chceme (tím vzniknou tzv. konstruovatelná čísla), pořád to nebude stačit. Ačkoliv existují množiny, které tím přeskočíme, teď už si můžeme dovolit vyjádřit všechno a menší množiny už identifikovat jen jako části celku.

Chybějící čísla, tedy čísla iracionální, zkonstruujeme lehce – jsou to prostě ony díry a navíc stačí jen jedna z těch množin, pokud sahá až do nekonečna. Stejným způsobem můžeme vyjádřit i původní racionální čísla, a dohromady tak vzniknou reálná čísla, ℝ. Každé reálné číslo je vlastně vyjádřeno množinou všech menších zlomků a naopak, díky tomu i každá množina racionálních i reálných čísel má supremum (nejmenší horní ohraničení).

Z tohoto hlediska jsme vyplnili všechny díry v racionálních číslech a vytvořili spojitý nekonečný pás čísel: kontinuum. Numericky zde už máme opravdu vše, zde leží všechny zajímavé číselné konstanty i všechny nezajímavé, všechny výsledky různých výpočtů a vše mezi nimi.

Kolik toho vlastně všeho je? Po minulých zkušenostech se může zdát, že jsme se opět nikam neposunuli, protože stále nová čísla definujeme jako množiny čísel předchozích. Jedna věc nám ale přece jen může naznačit, že se něco změnilo: doposud se z každé množiny (třídy ekvivalence) mohl vybrat nějaký exemplář, prototyp, který ji dokáže zastupovat. To zde už neplatí; iracionální číslo nemůžeme vyjádřit jedním racionálním, ani dvěma, ani jakýmkoliv jiným konečným počtem zlomků – potřebujeme jich mít nekonečno a jen tak můžeme ohraničit reálné číslo.

Faktem je, že reálných čísel je mnohem, mnohem více než racionálních. Ačkoliv by to mohlo vypadat, že ta výplň, kterou jsme museli přidat, je jen pár chybějících míst, ve skutečnosti to je drtivá většina; skoro všechna reálná čísla jsou iracionální.

Pro rekapitulaci z minula, v případě nekonečných množin je nějaká množina větší, pokud neexistuje žádný způsob, jak ji pokrýt prvky jiné množiny, tedy nelze žádným způsobem přiřadit každý prvek oné množiny k prvkům té, která má být menší. Důkaz, že reálných čísel je víc než přirozených, není zase tak těžký: i kdybychom měli nějakou posloupnost reálných čísel (tedy zobrazení přirozených čísel na reálná) a tvrdili, že je pokrývá všechny, vždy půjde zkonstruovat z celé té posloupnosti nové reálné číslo, které v ní nutně nebude. Stačí zajistit, aby bylo odlišné od všech čísel v té posloupnosti, což půjde prostě tak, že n-tá desetinná číslice onoho čísla bude odlišná od n-té číslice čísla v posloupnosti na pozici n (stačí vybrat nějakou jinou). Reálné číslo je možné určit pomocí posloupnosti desetinných číslic a výsledek tím pádem existuje, ale byl v naší posloupnosti opomenut. Tak to půjde vždy, takže nikdy nebude stačit nějaké takové nové číslo prostě zahrnout do nové posloupnosti, protože ani ta nebude úplná.

Jedna nekonečná posloupnost na reálná čísla nestačí; je potřeba nekonečné množství takových posloupností. Shodou okolností to je i velikost množiny všech podmnožin (tzv. potenční množiny) přirozených čísel, taková množina musí být totiž vždy větší než množiny původní, což platí u konečných i nekonečných množin bez rozdílu. Existuje tím pádem i způsob, jak každé podmnožině přirozených čísel přiřadit nějaké reálné, ale už není tak důležité takový způsob ukazovat.

Reálná čísla tvoří v našem imaginárním světě prostor samotný, je to půda pod nohama i vzduch okolo nás. Nejsou ani tak zajímavá svojí velikosti jako spíš jemností a precizností; vyplňují prostor mezi všemi ostatními body. Každé reálné číslo se dá přičítáním nebo odčítáním 1 dostat do intervalu mezi 0 a 1, takže jenom jeho desetinné číslice jsou opravdu důležité. Stejně jako u racionálních čísel nemusíme kopírovat celou věž přirozených čísel ke každému dalšímu číslu, protože to její charakter v podstatě nezmění; je to stále jediný zdroj velikosti. Ani záporná reálná čísla nejsou tak zajímavá, jsou to stále jen odrazy kladných čísel. A nulou se stále nedá dělit.

Z numerického hlediska jsme se tak opravdu dostali k maximu, kde můžeme vykonávat všechny možné konečné i nekonečné výpočty. Zde také obvykle končí středoškolský výklad o číselných množinách, ale to neznamená, že nemůžeme najít další. Stále máme mnoho možností, jak postupovat:

  • Iracionální čísla představují stále obrovskou a do velké míry neprozkoumanou množinu (už existujících) čísel. Tímto postupem sice nenalezneme nic nového, ale objevení dalších číselných množin pod reálnými čísly nám pomůže lépe poznat svět okolo.
  • Axiomatická metoda. Už máme snad hodně exemplářů čísel, abychom dokázali odvodit nějaké vlastnosti, které by měla splňovat, tedy různé axiomy. Třeba nalezneme další systémy, které se chovají podobně, i když nemusejí být nutně rozšířením reálných čísel (nebo naopak).
  • Množinově teoretická metoda. Doposud jsme s množinami pracovali jako už s existujícími koncepty, ale i ty je potřeba nějak ukotvit a přesně popsat. Spousta dalších objektů, které se dají chápat jako čísla, závisí na takovémto popisu.
  • Konstrukční metoda. Matematika skýtá spoustu dalších objektů, které na první pohled nevypadají číselně, ale třeba by se s nimi tak dalo nakládat. Minimálně stačí, aby v nich byla nějak obsažena reálná čísla a byly zachovány víceméně stejné vlastnosti.
  • Algebraická metoda. Stále máme některé operace, které nejsou vždy možné. Můžeme se snažit chápat některé výrazy jako čísla, identifikovat nové objekty a dodefinovat, co pro ně znamenají doposud známé operace.

To vše jsou směry, kterými se vydáme příště. Je ještě mnoho objektů, které se dají nazývat čísly, i když z číslic už většina z nich nebude. To pro nás však nepředstavuje žádnou překážku; číslice jsou jen užitečná notace, a i když se pomocí nich dá definovat vše, co jsme si doposud ukázali, nepředstavují samotnou podstatu číselých množin, stejně jako znaménko + nepředstavuje samotnou podstatu sčítání.

Uvidíme tedy příště, kam nás vítr číselného univerza zavane.

úterý 6. července 2021

O číslech, část 3: Čísla racionální

V minulém článku jsme poprvé rozšířili přirozená čísla a dostali jsme čísla celá. Naše motivace i dnes bude doplnění toho, co máme, aby se s tím lépe pracovalo, a zároveň se tím přiblížíme našemu vnímání světa okolo nás. Napřed ale krátké shrnutí.

Máme celá čísla, dokážeme je sčítat, odčítat a násobit a vše z toho jsou operace. Sčítání a násobení je komutativní, asociativní a distributivní, jak by se asi dalo očekávat. Každé číslo má inverzní prvek vůči sčítání, to je číslo opačné. Inverzní prvek složen s prvkem původním dá prvek neutrální, tedy každé číslo sečtené s číslem opačným dá 0.

Asi je patrné, že vůči násobení zatím nemáme inverzní prvek. Řečeno slovy smrtelníků, neumíme dělit. To se na základních školách obvykle řeší tak, že se žáci napřed naučí dělení se zbytkem. Není to ideální, ale zpočátku to stačí, a proto by možná bylo zajímavé se tomu chvíli věnovat a třeba díky tomu narazíme i na něco zajímavého.

Dělení se zbytkem není operace, má totiž dva výstupy. Při běžném dělení přirozených čísel si můžeme všimnout, že i když výsledek zatím neexistuje, přesto o něm můžeme hovořit. Výsledek 7÷2 musí být evidentně číslo, které vynásobeno 2 dává 7 (to je asi jasné), ale ačkoliv zatím neexistuje, můžeme se mu přiblížit. Násobení nějakým číslem je totiž monotonní (násobení větším číslem dává větší výsledek), takže kdyby číslo 7÷2 existovalo, nutně musí být mezi 3 a 4. 3 je totiž málo (2×3 = 6) a 4 je už moc (2×4 = 8). Proto dává smysl vzít jedno z těchto čísel, uznat, že jsme se do výsledku netrefili, a spočíst chybu. Na výběr máme „2 zb. 1“ a „3 zb. −1“; v praxi by asi bylo nejlepší mít oba výsledky kladné (a nebo aspoň zbytek kladný, ale zde už panují neshody).

Co vlastně takovýto zápis označuje? Vynásobení normálním číslem odpovídá vynásobení podílu a přičtení zbytku, tedy musíme obě operace kombinovat. To je ale zároveň vše, co můžeme s tímto výsledkem dělat; přičtení nedává smysl a dokonce ani porovnání (7÷2 a 15÷7 dávají stejný výsledek, ale poměry jsou jiné). Je to slepá ulička, můžeme se z ní vydat pouze tím směrem, kterým jsme přišli (ale slouží to jako ilustrace, že ne každé doplnění je dokonalé). Důvod všech problémů je ten, že onen výsledek není úplný, protože zbytek nám o výsledku neřekne nic, pokud neznáme dělitel.

Ale i z tohoto systému vycházejí existující použitelné techniky. První je prosté celočíselné dělení, kdy zbytek jednoduše zahodíme. Evidentně to už není matematicky hezké, ale počítače to stále ještě používají a mnoho programovacích jazyků to umožňuje, protože to v mnoha případech stačí a je to rychlé.

Druhý systém je takzvaná modulární aritmetika, kde zbytek po dělení (modulus) je aplikován na výsledek každé operace a dělitel je pevný, například 8 je totéž co 2 (mod 6) a každý násobek 6 je vlastně 0 (mod 6). Tím se nám přirozená čísla zredukovala do konečné cyklické množiny, ale má to překvapivý důsledek: pokud je velikost takové množiny prvočíslo, můžeme dělit! Například 1÷3 je 5 (mod 7), protože 3×5 je vlastně 1 (mod 7). To nám sice nezapadá do plánu, protože se těžko může jednat o rozšíření celých čísel, ale někdy se k tomu ještě možná vrátíme.

Když tedy podíl se zbytkem není funkční, co zkusit stejnou taktiku jako minule? Z teď už celých čísel sestavíme dvojice a každá z nich bude ukazovat účinek násobení jiným číslem. Třeba (1, 2), (2, 4), (4, 8), (8, 16) atd. reprezentují účinek násobení 2 a budeme je považovat za rovné 2. Stačí dvojice otočit a voilà, máme ½ = (2, 1), (4, 2), (8, 4), ...

Dostáváme zlomky, dokonce jsou patrné přímo z toho zápisu: a/b = (b, a). Ale něco je přesto odminula jinak – ekvivalence mezi zlomky nejsou tak „velké“ jako u celých čísel. Každé záporné celé číslo bylo jen odrazem přirozeného čísla, bylo jednoduché je očíslovat, ale zde vznikají čísla, která nejsou odrazem, dokonce takových čísel je většina. Jenom zlomky ve tvaru 1/n jsou odrazem n, ale jakmile je začneme sčítat nebo násobit, otevře se nám celá košatá struktura racionálních čísel, ℚ.

Slovo „racionální“ pochází s latinského rationalis s významem „rozumný“, „rozumový“, ale i „poměrový“ (podle všeho společným rysem je něco pochopitelného, spočitatelného). Racionální čísla tedy reflektují poměry mezi celými čísly. V případě celých čísel jsme dokázali ke každé třídě ekvivalence najít přirozeného reprezentanta (dvojice, kde jednou složkou byla 0), zatímco zde je reprezentant dvojice nesoudělných čísel (čísel, která nemají společného kladného dělitele kromě 1). Zároveň můžeme vyžadovat, aby jmenovatel byl kladný, protože z nám známé aritmetiky stačí mít znaménko u čitatele.

Povšimněme si, že zatím se snažím vyhýbat definici pomocí jakékoliv notace, například pomocí desetinné čárky. Je to sice taky validní možnost, ale stejně jako u celých čísel je dobré znát podstatu a smysl každé nové číselné množiny, ne jen zápis. Na druhou stranu zlomky mají nevýhodu v tom, že jich je hodně ekvivalentních; můžeme je rozšiřovat a krátit bez změny hodnoty. Totéž platilo u ekvivalencí celých čísel, ale tam není potřeba mít dvojice. Násobení zlomků je stejně lehké jako sčítání celých čísel, ale sčítání zlomků už vyžaduje jisté přemýšlení.

Zároveň tu nastává první obtíž v naší cestě matematickým univerzem a sice situace, kdy ve jmenovateli je 0. Když pomineme všechny poučky o dělení nulou, může se to zpočátku zdát jako rozumné číslo a můžeme se pokusit ho analyzovat. Takové číslo jde evidentně rozšířit, takže čitatel může být cokoliv a hodnota se nezmění, všechny tyto zlomky můžeme tedy označovat třeba jako nekonečno, . Též evidentně + = a −∞ = . Dál však už následují jen anomálie: přičtení čehokoliv k dá opět , a tak nám vznikla černá díra, která pohlcuje vše, co se do ní přidá, bez možnosti návratu.

Stojíme tedy před dvěma možnostmi: buď připustíme nekonečno jako validní objekt, ale budeme si muset dávat pozor při každé operaci, aby se tam nevyskytlo, nebo preventivně zakážeme dělení nulou. Vyjadřovací síla obou možností je stejná, ale s tou druhou se lépe pracuje, a tak se matematici dohodli, že dělit nulou nebudou. A tak to zůstává doposud, i když se k tomu občas z různých směrů můžeme přiblížit.

Jaké jsou další vlastnosti racionálních čísel? Dají se výborně použít na vzdálenosti a jiné míry z reálného světa, kde se používají praktické jednotky. Pomocí celých čísel bychom dokázali uchopit jen celé násobky nějaké základní jednotky, ale racionální čísla nám umožňují vzít libovolně malý zlomek jednotky jako novou jednotku a s tou pracovat. Díky tomu se jedná o matematicky hustou množinu: mezi každými dvěma racionálními čísly lze vždy najít další (a tím pádem nekonečně mnoho) a jednomu číslu se můžeme blížit tak moc, jak jen chceme.

Kam bychom měli racionální čísla v našem světě umístit? Podle mě představují hustý les okolo naší věže. Mezi každými dvěma stromy najdeme další strom, keř, kapradinu či jen stéblo trávy, ale vždy tam něco bude. Přesto je ten les relativně rovný, protože racionální čísla nepřidávají žádný nový koncept mohutnosti navíc; vše již reprezentuje nekonečně vysoká věž uprostřed, a skutečně zajímavé jsou jen kladné zlomky mezi 0 a 1.

Kolik rostlin ale v našem lese roste? Může se zdát, že to musí být minimálně nekonečněkrát víc, než kolik bylo celých čísel, ale ve skutečnosti jsme se stále vůbec nepohnuli. Dvojic celých čísel (ℤ×ℤ) je překvapivě stále stejně jako přirozených čísel; můžeme je totiž uspořádat do tabulky (každý řádek odpovídá první složce a každý sloupec druhé složce, každá buňka je pak jedna dvojice) a projít celou tabulku z rohu po stále se zvětšujících úhlopříčkách. Už je jedno, že jen některé dvojice odpovídají prvkům z ℚ, ty nevyhovující prostě přeskočíme, ale tím se ta množina určitě nezvětší.

Kdybychom tedy chtěli, může každý článek naší věže ukazovat na jeden a právě jeden strom v okolním lese. Zdá se, že díky nekonečnu je možné všechno, a taky by se mohlo zdát, že racionální čísla nám bohatě stačí, když jsou přece všude, ne? Opak je však pravdou a příště si vysvětlíme, jak najít i v racionálních číslech díry.

Poznámka: Když připustíme, že výsledek dělení se zbytkem může být kterákoliv dvojice čísel splňující onen vztah, můžeme definovat i dělení nulou. Výsledkem takového dělení je cokoliv a zbytek je původní číslo. Podobně na tom nakonec je i zbytek po dělení nekonečnem, akorát tam je podíl 0.