V minulých kapitolách jsme se setkali s rozličnými číselnými množinami, které měly různé zajímavé vlastnosti, ale všechny z nich byly buď konečné, nebo byly součástí reálných čísel. Až na samém konci minulého článku se objevila myšlenka, že bychom mohli skládat nové číselné množiny z již existujících čísel a třeba by mohl být výsledek nějak užitečný.
Napřed je však potřeba si ujasnit, proč bychom vůbec měli výtvorům, které uvidíme, říkat čísla. V předchozí kapitole bylo rigorózně definováno něco, čemu se v algebře říká lineárně uspořádané těleso. Ve zkratce se jedná o něco, co se chová víceméně jako klasické číselné množiny, např. racionální nebo reálná čísla. Je ovšem potřeba dodat, že tato definice není zdaleka ultimátní: je spousta dalších axiomů, které splňují racionální i reálná čísla, ale ne jiná tělesa (koneckonců díky tomu je můžeme vůbec odlišit), a naopak narazíme na věci, kterým bychom mohli říkat čísla, přestože některé axiomy tělesa nesplňují.
Co je tedy vícerozměrné číslo? Obecně se jedná o nějakou uspořádanou skupinu čísel, tedy třeba dvojici, trojici, čtveřici atd. (tomu se v algebře obvykle říká vektor, například množina všech dvojic reálných čísel se značí ℝ×ℝ nebo ℝ²). Tohle samotné ještě samozřejmě nestačí – potřebujeme definovat základní číselné operace.
Sčítání jde ještě lehce, dejme tomu (a, b) + (c, d) = (a + c, b + d). Z toho vyplývá, že −(a, b) = (−a, −b) a tedy nulový prvek musí být (0, 0). Takhle se chovají i vektory v kartézské soustavě souřadnic, které mají ještě navíc i vlastnost ve vztahu k násobení: k(a, b) = (ka, kb).
Co násobení? První nápad každého, kdo se s tímto setká, je určitě zkusit (a, b)⋅(c, d) = (ac, bd), z čehož vyplývá (a, b)/(c, d) = (a/c, b/d). Na takovéto definici v principu není nic špatného, používají ji třeba procesory pro zrychlení hromadných operací s čísly, ale matematikům se moc nehodí. První problém je ten, že dělení je problematické, ať je napravo nula kdekoliv, takže výsledek už není těleso. Druhý problém je trochu praktičtější – obě složky nemají už žádnou možnost, jak spolu interagovat, a výsledek tím pádem zůstane navěky jen seskupením dvou čísel, což matematiku nijak neobohatí.
Ne, musíme na to jít chytřeji. Můžeme se třeba inspirovat vektory, které umožňují ještě k(a, b), jenomže k je číslo, ne dvojice! Potřebujeme způsob, jak „povýšit“ nějaké reálné číslo do naší nové množiny, dejme tomu třeba jako (k, 0), a tedy chceme (k, 0)⋅(a, b) = (ka, kb). Z toho vyplývá, že (a, b)⋅(c, d) musí být ve tvaru (ac + d⋅něco, bc + d⋅něco) nebo (ac + b⋅něco, ad + b⋅něco), aby to pořád odpovídalo předchozímu případu, pokud by b nebo d bylo 0.
Vypadá to, že i tak máme spoustu možností, jak pokračovat, ale nepředbíhejme. Pokud se omezíme jen na součty násobků dvou proměnných v doplňovaných výrazech (to je rozumné omezení, protože by jinak neseděly jednotky, pokud by se nějaké používaly) a započítáme do toho klasické zákony násobení (komutativní, asociativní, distributivní), nakonec se celý výraz zredukuje jen na (ac + k⋅bd, ad + b(c + l⋅d)).
Vypadá to tedy, že možností, jak by mohlo fungovat násobení dvojrozměrných čísel, není zase tolik, stačí nám jen parametry k a l na jejich popsání. Pořád ale ten vzorec pro součin vypadá trochu složitě, nešlo by to nějak zjednodušit či vyjádřit intuitivněji? Šlo, ale potřebujeme na to malý algebraický trik.
Pokud potřebujeme pracovat s nějakou veličinou, ale neznáme její hodnotu, použijeme proměnnou, třeba x. Výraz a + bx je v mnoha ohledech podobný dvojici (a, b), protože obě entity jsou prvky nějakého vektorového prostoru. Zatímco však násobit vektory obecně nemusí jít, násobení výrazů jde: (a + bx)⋅(c + dx) = ac + (ad + bc)x + bdx². Na vyjádření tohoto výrazu však potřebujeme tři složky, jednu navíc pro x². Co kdybychom ale mohli x² vyjádřit jen pomocí dvou složek, tedy ve tvaru k + lx? Pokud si toto zkusíte do vzorce dosadit, vyjde přesně ten samý výraz, ke kterému jsme došli po zjednodušení násobení.
Tím jsme ukázali, že není potřeba pracovat s komplikovanými výrazy, protože ať se budeme snažit jakkoliv, násobení dvojrozměrných čísel bude vždy fungovat jako násobení výrazů (a platí to i pro vyšší rozměry), pokud se půjde zbavit x². Sice nám to teoreticky dává celou rovinu číselných systémů, ale matematika je někdy potvora: parametr l na strukturu množiny moc vliv nemá, ve skutečnosti jen způsobuje jakési zkosení celé roviny, takže ho řešit nemusíme. Parametr k určuje, jak moc se do první složky započítá složka druhá, ale ve skutečnosti je důležité opět jen jeho znaménko, protože to ostatní ovlivňuje jen zvětšení celé roviny.
Pro praktické zkoumání existují tedy jen 3 možnosti, čemu se bude rovnat x²: 0, 1 a −1. Zároveň se nám bude hodit ještě jedna nová operace a sice sdružené číslo (a, −b). Tato operace je užitečná, neboť společně s násobením nám umožní dostat z nějakého dvojrozměrného čísla zpět reálné číslo, které určuje jeho velikost, jako (a + bx)⋅(a − bx) = a² − b²x² (a odmocnina z této veličiny je absolutní hodnota).
Čísla duální
Dejme tomu, že x² = 0. Moment, ale pak platí x = 0, ne? Platilo by, kdybychom řešili rovnici v reálných číslech, ale my se snažíme reálná čísla rozšířit pomocí výrazů – x² = 0 je definice, ne rovnice, navíc samotný výraz x² je vlastně (0, 1)², ne (0, 0)² a x je jednotka, ne proměnná.
Takováto definice násobení znamená, že první složka takového čísla je naprosto nezávislá na druhé, ať je budeme sčítat nebo násobit, jak budeme chtít. I to má určité výhody, protože pokud druhou složku skryjeme, aritmetika může fungovat pořád stejně, ale můžeme si nechávat stranou užitečné informace. Zatím možná není patrné jaké, ale možná trochu napoví, že jednotka x se v tomto číselném systému značí ε.
Máme tedy ε² = 0 (a ε ≠ 0) a násobení (a + bε)⋅(c + dε) = ac + (ad + bc)ε. U ε se nám tedy hromadí násobky první složky s druhou, ale násobky čistě jen druhé složky už nejsou významné. Tento systém připomíná praxi známou ve fyzice, kde se často, pro zjednodušení, pracuje s nějakou velmi malou hodnotou ε, která je na hranici zanedbatelnosti, což ovšem znamená, že ε² je opravdu zanedbatelné. V tomto případě se náš systém chová podobně a můžeme to tedy chápat tak, že ε reprezentuje nějaké neznámé číslo, které ale bude vždy menší než to nejmenší, se kterým pracujeme.
Čísla duální se skládají ze dvou složek, standardní části a infinitesimální (nekonečně malé) části. Můžeme je hezky lineárně uspořádat, na což stačí klasické uspořádání s prioritami, tedy první složka má prioritu a pokud je stejná, pořadí určuje druhá. Okolo každého reálného čísla nám tím vzniká jakési nekonečně malé okolí duálních čísel se stejnou standardní částí, ale nenulovou infinitesimální částí. Tu můžeme odstranit jakýmsi „zaokrouhlením“, které vezme jen standardní část, nebo absolutní hodnotou, která pro duální čísla je prostě absolutní hodnota standardní části.
Tvoří duální čísla těleso? Bohužel netvoří, což je patrné třeba z faktu, že existuje více „nul“ než jen 0; jsou to všechny násobky ε (tzn. 1/ε apod. není definováno). Musíme být v tomto světě tedy obezřetní, protože se mohou vyskytnout další anomálie.
Jedna z anomálií je třeba spjata s faktem, že se nám ztrácí při násobení informace, takže odmocnina z ε² může být zároveň 0, ε i −ε. Navíc neexistuje ani odmocnina z žádného násobku ε (pokud by existovala, musela by mít nulovou standardní část, ale druhá mocnina každého takového čísla je 0). Na nulu si tady prostě musíme dávat velký pozor.
Mají duální čísla nějaké využití, přestože nejsou těleso? Ve skutečnosti mají, protože infinitesimální složka se dá chápat jako určitý sklon či směr v okolí standardní části. Proč? Zkusme vzít třeba (1 + ε)² = 1 + 2ε. Základ si můžeme představit jako okolí bodu (1, 1) na funkci y = x; umocněním na druhou nám vznikne x². Pro ni je výsledek sice pořád 1, ale v okolí toho bodu roste dvakrát více. Je to tedy derivace, která se u infinitesimální jednotky ukládá. Pomocí Taylorovy řady navíc můžeme vyjádřit (pro rozumné funkce) pro okolí libovolného bodu tvar té křivky jen pomocí součtů a součinů, takže tento trik funguje pro libovolnou funkci, kde dává smysl mluvit o derivaci.
I když to tak na první pohled možná není vidět, tímto způsobem se dá spočítat i druhá (a další) derivace, ovšem jejich počet musí být předem omezený. Stačí kromě ε přidat ještě třeba φ, tedy další infinitesimální jednotku, čímž se zvýší dimenze systému na 4 a koeficient εφ bude uchovávat druhou derivaci.
Duální čísla představují skvělý nástroj, pokud potřebujeme spočítat zároveň hodnotu funkce i její první derivace, pokud je to funkce složená z jiných funkcí, jejichž derivace známe, což se hodí jak při praktických výpočtech, tak v nějakém specializovaném softwaru, i když pokud je takových bodů víc, získat derivaci jako funkci přímo se možná vyplatí víc.
Čísla hyperbolická
Další možnost pro x² je 1. V takovém případě značíme jednotku j (opět to není 1) a vzniknou čísla známá pod různými názvy, v češtině nejlépe jako hyperbolická. Důvod tohoto označení je prostý: každé absolutní hodnotě odpovídá hyperbola, na níž mají všechna čísla stejnou absolutní hodnotu.
V extrémním případě nulové absolutní hodnoty tomu odpovídá hyperbola zdegenerovaná do dvou diagonálních přímek, které zároveň představují všechny nulové body. Z toho vyplývá, že hyperbolická čísla opět netvoří těleso. Absolutní hodnota má taky jeden problém, a sice že výraz a² − b² z důvodu záporných čísel (která odpovídají o 90 ° otočené hyperbole) nemá smysluplnou odmocninu a tím pádem je jeho použití trochu problematické (třeba musíme odmocninu ignorovat, ovšem pak už to nemá vlastnosti jiných absolutních hodnot).
Pro pohyb po hyperbole se používají takzvané hyperbolické funkce (obdoba goniometrických funkcí), které mají uplatnění i tady. Hyperbolické číslo se díky nim dá vyjádřit též pomocí polárních souřadnic, tedy jeho absolutní hodnoty a hyperbolického úhlu, což je další způsob, jak lze takové číslo zapisovat (a některé operace to může zjednodušovat). Kromě toho se též používá tzv. diagonální báze, kde se místo základních jednotek (1, 0) a (0, 1) používají jednotky (½, ½) a (½, −½) a nový souřadnicový systém používá jejich lineární kombinace (součet jejich násobků), což může být užitečné, neboť pak se obě hyperboly dají vyjádřit klasickou lineární lomenou funkcí.
Diagonální jednotky mají tu hezkou vlastnost, že jejich násobení je idempotentní, tedy že umocňování takové jednotky její hodnotu nijak nezmění, což se pro jednotku určitě hodí (a toto je taky jediný takový systém, kde se dají najít dvě takové jednotky). Ve skutečnosti tento systém aritmetiku s takovými čísly značně zjednoduší, protože násobení dvou hyperbolických čísel je prosté násobení po složkách, stejně jako sčítání, a z toho vyplývá, že i dělení funguje po složkách (všechny nulové body mají 0 v jedné ze souřadnic), stejně tak umocňování přirozenými čísly, a absolutní hodnota takového čísla je prostě součin jeho souřadnic.
To celé znamená, že tento systém je izomorfní s oněmi dvojicemi reálných čísel, které jsme zkusili na začátku, alespoň co se týče klasických operací. Můžeme převádět libovolně mezi oběma způsoby a vybrat si ten, který je lepší. Pokud potřebujeme zjistit hodnotu nějaké operace pro hyperbolické číslo, stačí jej převést do jeho „nezávislé“ diagonální podoby, kde spolu jeho složky nijak neinteragují a můžeme operace aplikovat nezávisle. Pokud potřebujeme řešit transformace nebo operovat s výrazy či neznámými, základní tvar se naopak může hodit více.
Jak jsem zmínil na začátku, samotné dvojice čísel nejsou tak užitečné, a přestože hyperbolická čísla přidávají najíc způsob, jak je algebraicky propojit, nemají zase tolik využití. Přesto však mají některé užitečné aplikace, které vycházejí z jejich schopnosti algebraicky reprezentovat rovinu způsobem, který obě osy staví na stejnou úroveň. Tato vlastnost totiž neplatí pro jejich kolegu z této skupiny čísel, kterým jsou mnohem známější...
Čísla komplexní
Po malém protahování jsme se dostali nakonec k tomu, co pro mnohé studenty představuje vrchol putování matematickým univerzem. Pokud jste doteď namítali, že uvedené číselné množiny jsou zbytečné, sice pravdu nemáte, ale ve srovnání s čísly komplexními opravdu blednou. Proč? Zde nazývaná imaginární jednotka je i a i² je −1. Rozdíl je už patrný: zatímco v předchozích případech nebyla nová jednotka jediným řešením své definice, pokud bychom ji chápali jako rovnici, v tomto případě potřebujeme i, pokud chceme mít záporné mocniny. Zatímco předtím nám nová jednotka umožňovala elegantně spojit více informací, zde nám umožní vůbec popsat něco, pro jehož popsání doposud neexistoval jazyk.
Máme odmocninu z −1, ovšem samozřejmě ne jednu – kromě i to taky splňuje i −i. Podobně jako u hyperbolických čísel tu je jakási symetrie, protože i a −i jsou v podstatě zaměnitelné. Jak si je vůbec může člověk představit? Samozřejmě se vyskytujeme pořád v rovině, ale zatímco hyperbolická čísla měla hyperbolu, hyperbolické funkce a e, komplexní čísla mají kružnici, goniometrické funkce a π, aniž bych to s tou paralelou musel přehánět.
Co zde tedy znamenají kružnice? Inu čísla 1, i, −1 a −i jako vektory samozřejmě leží na kružnici, ale zároveň představují posun po kružnici v nějakém (předem dohodnutém) směru, podobně jako hyperbolická čísla představují posun po hyperbole. Tento posun se ukrývá v násobení: násobení číslem 1 hodnotu nezmění (otočení o 0 °), násobení číslem −1 je otočení o 180 °, takže i a −i musí být otočení o 90 ° a −90 °. Teď už je jasné, proč tato a jen tato čísla jsou odmocninami z −1, z hlediska pohybu po kružnici jsou na půli cesty mezi 1 a −1, jsou jakýmsi jejich geometrickým průměrem.
Komplexní čísla jsou navíc (navzdory jejich názvu) trochu lépe uchopitelná než hyperbolická, především díky jejich jasnějšímu vztahu s geometrií a reálným světem. Pohyb po kružnici je přece jenom trochu jednodušší než po hyperbole, kde musíme dvakrát navštívit nekonečno, byť z hlediska numerického je lépe vyjádřitelný (hyperbolické funkce potřebují jen mocniny e, zatímco goniometrickým funkcím π nestačí).
Komplexní čísla mají mnoho využití v matematice i fyzice. V matematice jsou potřeba, pokud musíme rozložit na součin jinak nerozložitelné mnohočleny, např. x² + 1 = (x + i)⋅(x − i), což využívá algebra i analýza. Ve fyzice se hodí pro popis jakéhokoliv jevu, kde dochází k pohybu po kružnici nejenom fyzicky, ale i virtuálně v různých veličinách, např. při popisu oscilace a tedy třeba elektřiny.
Zbývá vyřešit poslední otázku: tvoří komplexní čísla těleso? Ano, protože nulovým prvkem je zde pouze a jedině 0. Ostatní čísla mají kladnou absolutní hodnotu a lze je vesele násobit i dělit. Komplexní čísla tedy představují ten nejlogičtější stupeň, který si zvolit, pokud si chceme zachovat co nejvíc vlasností.
Problém ovšem nastává u uspořádání. Asi je to jasné z logiky věci, ale narozdíl od reálných čísel zde pojmy „větší“ a „menší“ nedávají dobrý smysl, protože se už pohybujeme v mnoha dalších směrech než jen dvou. Ačkoliv dokážeme najít lineární uspořádání (třeba lexikograficky po složkách), nikdy z toho uspořádané těleso nebude (bude-li 0 ≤ i, neplatí 0 ≤ i²; bude-li 0 ≤ −i, neplatí 0 ≤ (−i)², ale právě jedno z toho platit musí, abychom tomu mohli říkat uspořádané těleso).
Díky dobrému algebraickému použití všech těchto čísel nám nic nebrání je zkombinovat, tedy vytvořit systém, kde bude libovolný počet infinitesimálních, hyperbolických i imaginárních jednotek, například tzv. bikomplexní čísla, kde se v principu nachází j a i, a samozřejmě ani nikde není stanoveno, že základem musí být čísla reálná. Ve všech těchto situacích jsme však museli něco obětovat, abychom se dostali dál – výsledek nikdy nebylo uspořádané těleso v žádném z těchto případů, a bohužel není obecně tak jednoduché takové těleso dostat. Tenhle problém v principu nemusí vadit, ale s každou ztracenou vlastností dostáváme něco, co je méně a méně „číselné“.
Budiž, dejme tomu, že jsme připraveni zahodit další vlastnosti. Můžeme jít výš? Samozřejmě, tam najdeme kvaterniony, které představují rozšíření komplexních čísel s jednotkami i, j, k. Nejen druhá mocnina každé z těchto jednotek je −1, ale i součin všech tří. Kvaterniony reprezentují podíl dvou prostorových vektorů a tedy se dají dobře použít např. k reprezentaci rotace v prostoru. Jejich algebraickou nevýhodou je ovšem to, že násobení není komutativní. Půjdeme-li ještě výše, narazíme na oktoniony, kde násobení už ani není asociativní, a ještě dále jsou 16rozměrné sedeniony, 32rozměrné trigintaduoniony a další a další systémy bez konce. Paralelně s tímto systémem můžeme místo −1 u některých jednotek vzít 1 a najdeme tak ještě další konstrukce.
Tak to vypadá, že nám zde vznikla nehorázná změť matematických objektů, s libovolným množstvím exotických jednotek na jedné straně a hierarchií poločíselných objektů na straně druhé, které se mohou libovolně kombinovat mezi sebou. Tím vzniká systém hyperčísel o nekonečném rozměru, který je ale zároveň nesmírně komplikovaný, aby se s ním dalo něco rozumného dělat. Neexistuje tu však něco, co se chová trochu pravidelněji, ale přesto by zahrnovalo jednotlivé systémy?
Matice
Matice (a obecně tenzory) jsou tabulky čísel. Sčítání funguje stejně jako u předchozích systémů, ale násobení mezi sebou kombinuje řádky jedné a sloupce druhé matice (pomocí skalárního součinu), čímž mezi sebou mohou interagovat.
S touto znalostí můžeme definovat 1 =
(),
ε =
(),
j =
(),
i =
(). Samozřejmě není možné používat všechny nové jednotky vedle sebe ve stejné matici 2×2; na to musíme její rozměry zdvojnásobovat. Koncept absolutní hodnoty též existuje i zde, kde jeho analogií je
determinant matice (a pro jednotky výše koresponduje s absolutní hodnotou jednotlivých systémů). Matice mají jistou symetrii vzhledem k hlavní diagonále, která se taky projevuje v chování jednotlivých jednotek.
Násobení matic obecně není komutativní (ale je distributivní), tím pádem matice netvoří těleso, a navíc ne všechny prvky mají převrácenou hodnotu (jen tzv. regulární, kde determinant není 0), tím pádem dělení matic není zrovna jednoduché. Přesto však můžeme s některými maticemi pracovat jako s čísly a pak spočítat třeba sinus matice. Postup je následující:
- Matici musíme diagonalizovat. Tato operace z ní vytáhne dvě další matice R a D, přičemž D má prvky pouze na hlavní diagonále a R je regulární. Původní matice se dá zapsat jako RDR−1. Toto lze provést jen u některých matic.
- Tento postup nám umožní spočítat libovolnou mocninu původní matice. Důvod je ten, že (RDR−1)⋅(RDR−1) = RDDR−1 atd., tedy stačí umocňovat jen prostřední matici D.
- Podobně jako u diagonální báze hyperbolických čísel je v tomto tvaru mocnina matice D velmi jednoduchá, protože stačí umocnit jednotlivé prvky diagonály.
- Taylorova řada pro danou funkci nám dá nekonečnou řadu přirozených mocnin celé matice. Díky distributivitě můžeme matice R a R−1 přenést mimo řadu a tím pádem stačí danou funkci aplikovat pouze na prvky diagonály, tedy vznikne Rf(D)R−1.
Pokud matice není diagonalizovatelná (třeba jako matice duálních čísel), tento postup aplikovat nelze, přesto však může existovat (analyticky rozšířená) funkce takové matice, pokud daná Taylorova řada konverguje.
Nyní již máme dobrou představu o tom, jaké různé objekty se dají zkonstruovat z již existujících čísel, a zároveň jsme mohli zabrouzdat trochu dále, do oblastí, kde už nám známé číselné zákony neplatí. Není jednoduché snažit se představit si nové číselné množiny ve světě, který jsem se doteď snažil vykreslit, přesto se však o to pokusím: každé reálné číslo, každý bod našeho vesmíru, se dotýká velmi malé dimenze, která jím proniká. V případě duálních čísel má taková dimenze tvar přímky, v případě hyperbolických čísel tvar hyperboly a v případě komplexních čísel tvar kružnice. Každý bod má svoji vlastní dimenzi, kromě posledních dvou případů (zde je ta dimenze sdílena mezi bodem a a jeho obrazem −a). Pokud se budeme snažit touto dimenzí projít, narazíme na samé identické kopie našeho vesmíru, až se nakonec vrátíme do toho, ze kterého jsme vyšli.
Toto však zdaleka není konec všech podivností, se kterými se setkáme. Uvidíte příště.