V BI-MA1 se budeme zabývat reálnými funkcemi s pouze jednou reálnou proměnnou. Reálným funkcím více proměnných se budeme věnovat v zimním semestru v navazujícím předmětu BI-MA2.
Zobrazení $f\colon D_f \to \R$, kde $D_f \subset \R$ je neprázdná množina reálných čísel, nazýváme reálnou funkcí reálné proměnné.
Reálná funkce reálné proměnné je často zadána tzv. explicitně. Tedy pomocí funkčního předpisu typu $f(x) = V(x)$, kde $V(x)$ je nějaký výraz v proměnné $x$ a bez explicitního udání definičního oboru. Např. „$f(x) = x^2 + 1$“. Tímto způsobem ovšem funkce není plně zadána. Jaký je její definiční obor? Buď musíme explicitně říci, jaký definiční obor uvažujeme, nebo konvenčně zvolíme největší možný definiční obor vzhledem k danému výrazu:
Pro připomenutí uvádíme Tabulku 3.1 s definičními obory několika známých funkcí. Podrobný přehled vlastností elementárních funkcí, včetně jejich definičních oborů, nalezne čtenář v dodatkové Kapitole 12.
Pod funkcí $f$ zadanou explicitně vzorcem $f(x) \ceq \sqrt{x + 1}$ si tedy představíme funkci $f\colon D_f \to \mathbb R$ určenou tímto předpisem na maximálním definičním oboru, kterým je množina $D_f$ takových $x \in \R$, že $\sqrt{x + 1}$ má smysl a dává reálné číslo. Z požadavku $x + 1 \geq 0$ pak hned dostáváme maximální definiční obor $D_f = \langle -1, +\infty)$.
Tato funkce $f$ je různá od funkce $g$ zadané předpisem $g(x) \ceq \sqrt{x + 1}$ s definičním oborem $D_g \ceq \langle 0, +\infty)$.
Uvažme předpis $f(x) = \frac{\sqrt{x}}{x-1}$. Přirozeným definičním oborem $f$ je množina
Podmínky na „smysluplnost“ daného výrazu jsou totiž v tomto případě nenulovost jmenovatele a nezápornost argumentu odmocniny. Konkrétně $x-1 \neq 0$ a $x \geq 0$.
funkce | parametr | podmínka popisující definiční obor |
---|---|---|
\(\frac{1}{x^k}\) | \(k\in\N\) | \(x \neq 0\) |
\(\sqrt[2k]{x}\) | \(k\in\N\) | \(x \geq 0\) |
\(\sqrt[2k+1]{x}\) | \(k\in\N_0\) | \(x \in \R\) |
\(\ee^x\) | \(x \in \R\) | |
\(\ln(x)\) | \(x > 0\) | |
\(\sin(x)\) | \(x \in \R\) | |
\(\cos(x)\) | \(x \in \R\) | |
\(\tg(x)\) | \(x \neq \frac{\pi}{2} + \pi k\) pro \(k\in\Z\) | |
\(\cotg(x)\) | \(x \neq k\pi\) pro \(k\in\Z\) | |
\(\arcsin(x)\) | \(-1 \leq x \leq 1\) | |
\(\arccos(x)\) | \(-1 \leq x \leq 1\) | |
\(\arctg(x)\) | \(x \in \R\) |
Tabulka 3.1: Maximální definiční obory některých elementárních funkcí.
Funkci $f\colon D_f \to \R$ si často můžeme také představit, respektive nakreslit, pomocí jejího grafu. Tím máme na mysli podmnožinu roviny $\R^2$ zadanou předpisem $\Gamma_f \ceq \{ (x,y) \mid y = f(x), \ \text{pro} \ x \in D_f \}$. Všimněte si, že graf funkce $f$, tj. množina $\Gamma_f$, představuje relaci ( BI-DML, Definice), která formálně tuto funkci (zobrazení) definuje. V našem konkrétním případě reálné funkce reálné proměnné ovšem lze tuto množinu velmi názorně vizualizovat v rovině.
Velké množství ukázek grafů různých funkcí může čtenář nalézt v dodatkové Kapitole 12. Dále zde na Obrázku 3.1 čtenářstvu nabízíme interaktivní ukázku grafu funkce a souvisejících pojmů.
Protože jsou funkce speciálními případy zobrazení, přenáší se na ně pojmy prostá (injektivní), na (surjektivní) a vzájemně jednoznačná (bijektivní) funkce. Také ihned po zobrazeních zdědíme operace zúžení zobrazení, skládání zobrazení a inverzní zobrazení, a koncept rovnosti zobrazení. Viz Kapitolu 11.
V případě inverze se ovšem s prostým podědění pojmu od zobrazení nespokojíme. Pro (nejen pouze) naše účely studia vlastností reálných funkcí reálné proměnné je přístup v BI-DML Definici 11.9 příliš striktní. Naše „funkce“ (Definice 3.3) chápeme jako zobrazení $A \to \R$, kde $A \subset \R$ je neprázdná množina a vždy zobrazujeme do $\R$. Například exponenciála, $\ee^x$, tak standardně není chápána jako surjektivní (na $\R$), není bijekcí a neměla by tak inverzi, i když je prostá. Zavádíme proto následující koncept inverzní funkce.
Je-li $f\colon D_f \to \R$ prostá funkce, pak inverzní funkcí $f^{-1}\colon H_f \to \R$ k zobrazení $f$ definujeme pro každé $x \in H_f = f(D_f)$ předpisem $f^{-1}(x) \ceq y$, kde $y$ je (za uvedených předpokladů nutně jednoznačně daný) prvek množiny $D_f$ splňující $x = f(y)$.
S touto definicí je skutečně $\ln: (0, +\infty) \to \R$ inverzní funkcí k $\ee^x: \R \to \R$. Obě funkce jsou prosté. Pouze $\ln$ je surjektivní.
Existuje funkce, pro kterou by platilo $f^{-1}(x) = \frac{1}{f(x)}$ pro všechna $x \in D_{f^{-1}}$?
Ano, například $f(1) = 1$, $D_f = \{1\}$. Vymyslíte méně triviální příklad?
Pro popis chování funkcí se nám ještě mohou hodit následující dva pojmy.
Funkci $f\colon D_f \to \R$ nazýváme omezenou, právě když existuje konstanta $K \geq 0$ taková, že pro všechna $x \in D_f$ platí nerovnost $|f(x)| \leq K$.
Alternativně, přesněji ekvivalentně, bychom mohli říci, že funkce $f$ je omezená, právě když její obor hodnot je omezená množina. Vzpomeňte si, že omezenost množiny $M \subset \R$ znamená existenci konstanty $K > 0$ takové, že $|x| \leq K$ pro všechna $x \in M$.
Udejte příklad dvou funkcí, jedné omezené a jedné neomezené. Své volby řádně zdůvodněte.
Funkce $\sin$ je omezená jedničkou, pro všechna reálná $x$ platí $|\sin(x)| \leq 1$. Funkce $x$ není omezená: každou hypotetickou mez $K \geq 0$ překonáme volbou $x = K + 1$.
Vedle omezenosti funkce zavedené v Definici 3.6 je pro popis funkcí užitečný i následující pojem.
Funkci $f\colon D_f \to \R$ nazýváme konstantní, právě když existuje konstanta $c \in \R$ taková, že pro všechna $x \in D_f$ platí $f(x) = c$.
Dala by se konstantnost funkce $f\colon D_f \to \R$ vyjádřit podmínkou nakladenou na její obor hodnot? Podobně jako jsme to výše udělali pro omezenost?
Ano, funkce $f$ je konstantní, právě když její obor hodnot je jednoprvková množina.
Vymyslete funkci zadanou předpisem, který na první pohled formálně závisí na nezávisle proměnné $x$, ale která je ve skutečnosti konstantní.
Například $f(x) = 0 \cdot x$, nebo méně triviálně $g(x) = \sin^2(x) + \cos^2(x)$.
Dále uvádíme pouze několik příkladů demonstrujících právě zmíněné pojmy v případě funkcí.
Určete, zda je následující funkce $f: \R \to \R$ prostá, na, případně bijektivní.
Funkce $f$ je prostá. Vskutku, předpokládejme, že existují $x_1 \neq x_2$ taková, že $f(x_1) = f(x_2)$. Protože $f(x)$ má dle definice výše vždy stejné znaménko jako $x$ (tj. $\sgn(x) = \sgn(f(x))$, platí i pro $x = 0$), tak musí mít $x_1$ stejné znaménko jako $x_2$ a zjevně též musí být obě nenulová (protože $x_1 \neq x_2$ a $f(x)$ je nulová pouze pro $x = 0$). Předpokládejme, že jsou obě kladná. Potom $1/x_1 = 1/x_2$ je ekvivalentní $x_2 = x_1$ a dostáváme spor s předpokladem $x_1 \neq x_2$. Analogicky postupujeme, pokud by byla obě záporná.
Funkce $f$ je také na. Pro $y = 0$ platí $f(0) = 0$ a pro $y \neq 0$ platí $f(1/y) = y$, tedy ke každému $y \in \R$ najdeme bod $x$ takový, že $f(x) = y$. Celkově je tedy $f$ bijektivní. Graf této funkce je znázorněn na Obrázku 3.2.
Uvažme funkce $f(x) = \sqrt{x}$ a $g(x) = \sqrt{|x|}$ jejichž maximálními definičními obory jsou $D_{f} = \langle 0,+\infty )$ a $D_{g} = \R$. Funkce $f$ je zúžením funkce $g$ na množinu $\langle 0,+\infty)$. Platí tedy $f = g \big|_{\langle 0, +\infty)}$.
Funkce $f$ je prostá a příslušná inverzní funkce $f^{-1}$ má definiční obor $D_{f^{-1}} = \langle 0,+\infty)$ a pro každé $x \geq 0$ platí $f^{-1}(x) = x^2$. Funkce $g$ prostá není, protože např. $g(-1) = g(1) = 1$.
Uvažujme funkce $f(x) = x^2$ a $g(x) = \sqrt{x}$. Maximálními definičními obory jsou $D_f = \mathbb R$ a $D_g = \langle 0,+\infty)$.
Složená funkce $g \circ f$ má definiční obor $D_{g\circ f} = f^{-1}\big(\langle 0,+\infty)\big) = \mathbb R$ a pro každé $x \in D_{g\circ f}$ platí $(g\circ f)(x) = g(f(x)) = \sqrt{x^2} = |x|$. Složená funkce $f \circ g$ má definiční obor $D_{f\circ g} = g^{-1}\big(\mathbb R\big) = \langle 0,+\infty)$ a pro každé $x \in D_{f\circ g}$ platí $(f\circ g)(x) = f(g(x)) = (\sqrt{x})^2 = x$. Je tedy zřejmé, že $f \circ g \neq g \circ f$. Pokud ale zúžíme $f$ na $\langle 0,+\infty)$, dostaneme už prostou funkci, ke které je funkce $g$ inverzní. Tj. $\big(f \big|_{\langle 0,+\infty)}\big)^{-1} = g$.
Funkce $f(x) = \sin^2(x) + \cos^2(x)$ je konstantní.
Skutečně, pro všechna $x \in D_f = \R$ platí známá trigonometrická rovnost $f(x) = 1$.
Funkce $g(x) = \frac{1}{x}$, $D_g = (1, +\infty)$ je omezená. Funkce $h(x) = \frac{1}{x}$ omezená není.
Mějme tři funkce $f$, $g$ a $h$ s definičními obory
dané předpisy
Které jsou si vzájemně rovny?
Platí $f \neq g$, $g = h$ a $f \neq h$.
Vedle známých vlastností funkcí (prostá, na, bijektivní) rozeznáváme několik typů monotonie funkcí. Tyto vlastnosti už využívají toho, že definiční obory i obory hodnot našich funkcí jsou podmnožiny reálných čísel, na kterých máme zavedené úplné uspořádání. Pro obecná zobrazení analog těchto pojmů nemáme.
Uvažme funkci $f\colon D_f \to \R$ a množinu $M \subset D_f$. Potom funkci $f$ nazýváme
rostoucí na množině $M$, právě když pro každé $x_1,x_2 \in M$ splňující $x_1 < x_2$ platí $f(x_1) \leq f(x_2)$,
klesající na množině $M$, právě když pro každé $x_1,x_2 \in M$ splňující $x_1 < x_2$ platí $f(x_1) \geq f(x_2)$,
ostře rostoucí na množině $M$, právě když pro každé $x_1,x_2 \in M$ splňující $x_1 < x_2$ platí $f(x_1) < f(x_2)$,
ostře klesající na množině $M$, právě když pro každé $x_1,x_2 \in M$ splňující $x_1 < x_2$ platí $f(x_1) > f(x_2)$.
Pokud některý z výše zmíněných pojmů použijeme bez reference na množinu $M$, pak za $M$ bereme celý definiční obor uvažované funkce. Následující příklady ilustrují zcela elementární použití výše uvedené definice. Později během semestru si ukážeme i sofistikovanější metody umožňující odhalit typ monotonie funkce pomocí derivace.
Například $f(x) = x^2$ pro $x\in D_f = \R$ je funkce rostoucí na $\langle 0,+\infty)$, ale nejedná se o rostoucí funkci.
Funkce $f$ jistě není rostoucí: její definiční obor je $\R$ a pro $x_1 = -2$ a $x_2 = 0$ splňující $x_1 < x_2$ platí $f(x_1) = 4 > 0 = f(x_2)$.
Bavíme-li se ovšem o intervalu $\langle 0,+\infty)$, pak jsou-li $x_1$ a $x_2$ dvě nezáporná čísla splňující $x_1 < x_2$ platí $f(x_1) = x_1^2 < x_1 x_2 < x_2^2 = f(x_2)$ (dvojnásobné násobení nerovnosti nezáporným číslem).
Funkce $g(x) = -x^3$, $x\in D_f = \R$, je ostře klesající.
Mějme $x_1,x_2 \in \R$ splňující $x_1 < x_2$. Rozmysleme si tři možné situace pokrývající všechny možnosti:
Pokud $x_1 < 0$ a $x_2 > 0$, pak $g(x_1) = -x_1^3 > 0 > -x_2^3 = g(x_2)$.
Pokud $0 \leq x_1 < x_2$, pak $x_1^3 < x_2^3$ a tedy $g(x_1) = - x_1^3 > -x_2^3 = g(x_2)$.
Pokud $x_1 < x_2 \leq 0$, pak $x_1^3 < x_2^3$ a tedy $g(x_1) = -x_1^3 > -x_2^3 = g(x_2)$.
Není těžké si rozmyslet, že každá ostře rostoucí (nebo ostře klesající) funkce je prostá. Opak ale neplatí, ne každá prostá funkce je ostře klesající (nebo ostře rostoucí). Skutečně, podívejte se na funkci z Příkladu 3.4.
Pokud pro nějaká $a,b\in\R$ platí $a< b$, plyne odtud i nerovnost $a\leq b$?
Ano. Dle definice $a\leq b$ platí právě tehdy, když $a=b$ nebo $a< b$.
Ve světě neexistuje celková shoda na terminologii zavedené v Definici 3.8. Je možné, ze střední školy jsou zvyklí na konvenci, ve které se rozlišují „rostoucí“ (naše ostře rostoucí) „neklesající“ (naše rostoucí), „klesající“ (naše ostře klesající) a „nerostoucí“ (naše klesající). Volba, kterou činíme zde, je rozšířenější v anglických materiálech a navíc, jak později uvidíme, lépe ladí se vztahem těchto typů monotonie a znaménka derivace.
Často chceme souhrnně mluvit o (ostře) rostoucích nebo klesajících funkcích. Proto zavádíme následující dva pojmy.
Funkci, která je rostoucí nebo klesající, nazýváme monotónní. Funkci, která je ostře rostoucí nebo ostře klesající, nazýváme ryze monotónní.
Existuje funkce, která je současně rostoucí i klesající?
Ano, například konstantní funkce.
Je každá ryze monotónní funkce i monotónní?
Ano, pokud platí $a < b$, pak platí i $a \leq b$.
Zřejmě pod vlivem definice typů monotonie pro posloupnosti (Definice 4.2) mají občas studenti tendenci komolit podmínky v Definici 3.8. Například vlastnost funkce být ostře rostoucí na intervalu $I$ by mylně vyjádřili požadavkem: pro každé $x$ z $I$ platí nerovnost $f(x) < f(x+1)$.
Tento požadavek jistě nelze splnit pro intervaly, jejichž pravý krajní bod není $+\infty$. Ale to není zásadní problém. Kvantifikaci přes dvě hodnoty $x_1$ a $x_2$ omezené pouze podmínkou $x_1 < x_2$ nelze nahradit volbou dvou bodů $x$ a $x+1$ posunutých o jedničku.
Názorně to lze ukázat například na následující funkci. Konkrétní předpis není tak zásadní, hlavní pointa je patrná z Obrázku 3.3. Uvažme funkci definovanou předpisem $f(x) = \lfloor x \rfloor + \lceil x \rceil - x$, $x \in D_f = \R$. Přímým dosazením pro libovolné $x \in \R$ dostáváme
Tj. tato funkce splňuje uvedenou mylnou podmínku. Porovnáme-li ale funkční hodnoty v bodech $1/4$ a $1/2$ pak dostaneme opačnou nerovnost,
tj. $f(1/4) > f(1/2)$. Názorně tuto situaci ilustruje Obrázek 3.3.
Dalšími užitečnými vlastnostmi funkcí je sudost a lichost. Tyto vlastnosti vyjadřují symetričnost grafu vůči zrcadlení vzhledem k ose $y$, resp. bodové symetrii vůči počátku souřadného systému. Mohou nám tedy z poloviny zjednodušit například problém kreslení grafu dané funkce. Ukázku sudé a liché funkce najde čtenář na Obrázku 3.4.
Mějme funkci $f\colon A \to \R$, jejíž definiční obor je symetrický vůči počátku, tedy pro každé $x \in D_f$ je i $-x \in D_f$. Funkci $f$ nazýváme
sudou, právě když pro každé $x\in D_f$ platí $f(-x) = f(x)$.
lichou, právě když pro každé $x\in D_f$ platí $f(-x) = -f(x)$.
Při určování sudosti, resp. lichosti, dané funkce bývá výhodné využít chování těchto vlastností vůči součtu a součinu funkcí. To je obsahem následujícího pozorování.
Platí následující dvě tvrzení, jejichž důkaz plyne velmi přímočaře přímo z definice14. V obou tvrzeních uvažujeme takové funkce, jejichž definiční obory mají neprázdný průnik.
Součet dvou sudých funkcí je sudá funkce. Součet dvou lichých funkcí je lichá funkce.
Součin dvou sudých, nebo lichých, funkcí je sudá funkce. Součin sudé a liché funkce je lichá funkce.
Jsou-li $f$ sudá funkce a $g$ lichá funkce definované na $\R$, jsou pak funkce
sudé nebo liché?
$F$ je lichá, $G$ je lichá, $H$ nemusí být ani sudá ani lichá.
Poslední zajímavou vlastností, kterou zde budeme občas potřebovat, je periodicita funkce.
Mějme funkci $f\colon A \to \R$, konstantu $T > 0$ a nechť pro každé $x\in A$ je i $x + T,\, x - T \in A$. Pokud pro každé $x \in A$ platí $f(x \pm T) = f(x)$, pak funkci $f$ nazýváme periodickou funkcí s periodou $T$.
Ukázku periodické funkce najde čtenář na Obrázku 3.5.
Pozor, periodická funkce nutně nemusí mít nejmenší periodu. Příkladem je libovolná konstantní funkce definovaná na $\R$ nebo tzv. Dirichletova funkce $D\colon \R \to \R$ definovaná předpisem
Zkuste se zamyslet nad tím, jak vypadá graf této funkce $D$. Je také dobré poznamenat, že pro každé strojové číslo $x$ platí $D(x) = 0$.
Mějme dvě neprázdné množiny $A$ a $B$. Relaci $f \subset A \times B$ splňující podmínku
nazýváme (totálním) zobrazením množiny $A$ do množiny $B$ a tento fakt zapisujeme symbolicky jako $f\colon A \to B$. Pokud $(x,y) \in f$, pak píšeme $y = f(x)$ a o $x$ mluvíme jako o vzoru prvku $y$ a o $y$ jako o obrazu prvku $x$ při zobrazení $f$. O množině $A$ dále mluvíme jako o definičním oboru zobrazení $f$ a značíme ji $D_f$. Množinu $H_f \ceq \{ y \in B \mid (\exists x \in D_f)(f(x) = y) \}$ nazýváme oborem hodnot zobrazení $f$.
Množinu reálných čísel $\R$ chápeme jako číselné těleso $(\R, +, \cdot)$, které je vybavené úplným uspořádáním $<$ a které splňuje axiom úplnosti.
Zobrazení $f\colon D_f \to \R$, kde $D_f \subset \R$ je neprázdná množina reálných čísel, nazýváme reálnou funkcí reálné proměnné.
Zobrazení $f\colon D_f \to \R$, kde $D_f \subset \R$ je neprázdná množina reálných čísel, nazýváme reálnou funkcí reálné proměnné.
Mějme dvě neprázdné množiny $A$ a $B$. Relaci $f \subset A \times B$ splňující podmínku
nazýváme (totálním) zobrazením množiny $A$ do množiny $B$ a tento fakt zapisujeme symbolicky jako $f\colon A \to B$. Pokud $(x,y) \in f$, pak píšeme $y = f(x)$ a o $x$ mluvíme jako o vzoru prvku $y$ a o $y$ jako o obrazu prvku $x$ při zobrazení $f$. O množině $A$ dále mluvíme jako o definičním oboru zobrazení $f$ a značíme ji $D_f$. Množinu $H_f \ceq \{ y \in B \mid (\exists x \in D_f)(f(x) = y) \}$ nazýváme oborem hodnot zobrazení $f$.
Zobrazení $f\colon A \to B$ je
prosté (injektivní), jestliže pro každou dvojici $x_1,x_2 \in A$ pro kterou platí rovnost $f(x_1) = f(x_2)$ platí i rovnost $x_1 = x_2$.
na (surjektivní), jestliže $f(A) = B$, to jest pro každé $y \in B$ existuje $x \in A$ splňující $f(x) = y$.
vzájemně jednoznačné (bijektivní), jestliže $f$ je prosté a na.
Buď $f\colon A \to B$ a $M \subset A$. Zobrazení $g\colon M \to B$ definované předpisem $g(x) \ceq f(x)$ pro každé $x\in M$ nazýváme zúžením zobrazení $f$ na množinu $M$. Zapisujeme $g = f \big|_M$.
Nechť $f\colon A \to B$ a $g\colon C \to D$ jsou zobrazení. Označíme-li $D_{f\circ g} = \{ x \in C \mid g(x) \in A \}$, pak je-li tato množina neprázdná definujeme složené zobrazení $f \circ g\colon D_{f\circ g} \to B$ předpisem
pro všechna $x \in D_{f\circ g}$.
Je-li $f\colon A \to B$ bijektivní zobrazení, pak inverzní zobrazení $f^{-1}\colon B \to A$ k zobrazení $f$ definujeme pro každé $x \in B = f(A)$ předpisem $f^{-1}(x) = y$, kde $y$ je (za uvedených předpokladů nutně jednoznačně daný) prvek $A$ splňující $x = f(y)$.
Máme-li dvě zobrazení $f\colon A \to C$ a $g\colon B \to C$ pak říkáme, že se rovnají a píšeme $f = g$, právě když $A = B$ a pro každé $x \in A = D_f = D_g$ platí $f(x) = g(x)$.
Zobrazení $f\colon A \to B$ je
prosté (injektivní), jestliže pro každou dvojici $x_1,x_2 \in A$ pro kterou platí rovnost $f(x_1) = f(x_2)$ platí i rovnost $x_1 = x_2$.
na (surjektivní), jestliže $f(A) = B$, to jest pro každé $y \in B$ existuje $x \in A$ splňující $f(x) = y$.
vzájemně jednoznačné (bijektivní), jestliže $f$ je prosté a na.
Zobrazení $f\colon D_f \to \R$, kde $D_f \subset \R$ je neprázdná množina reálných čísel, nazýváme reálnou funkcí reálné proměnné.
Zobrazení $f\colon D_f \to \R$, kde $D_f \subset \R$ je neprázdná množina reálných čísel, nazýváme reálnou funkcí reálné proměnné.
Zobrazení $f\colon A \to B$ je
prosté (injektivní), jestliže pro každou dvojici $x_1,x_2 \in A$ pro kterou platí rovnost $f(x_1) = f(x_2)$ platí i rovnost $x_1 = x_2$.
na (surjektivní), jestliže $f(A) = B$, to jest pro každé $y \in B$ existuje $x \in A$ splňující $f(x) = y$.
vzájemně jednoznačné (bijektivní), jestliže $f$ je prosté a na.
Zobrazení $f\colon D_f \to \R$, kde $D_f \subset \R$ je neprázdná množina reálných čísel, nazýváme reálnou funkcí reálné proměnné.
Zobrazení $f\colon D_f \to \R$, kde $D_f \subset \R$ je neprázdná množina reálných čísel, nazýváme reálnou funkcí reálné proměnné.
Uvažme funkci $f\colon D_f \to \R$ a množinu $M \subset D_f$. Potom funkci $f$ nazýváme
rostoucí na množině $M$, právě když pro každé $x_1,x_2 \in M$ splňující $x_1 < x_2$ platí $f(x_1) \leq f(x_2)$,
klesající na množině $M$, právě když pro každé $x_1,x_2 \in M$ splňující $x_1 < x_2$ platí $f(x_1) \geq f(x_2)$,
ostře rostoucí na množině $M$, právě když pro každé $x_1,x_2 \in M$ splňující $x_1 < x_2$ platí $f(x_1) < f(x_2)$,
ostře klesající na množině $M$, právě když pro každé $x_1,x_2 \in M$ splňující $x_1 < x_2$ platí $f(x_1) > f(x_2)$.
Uvažme funkci $f\colon D_f \to \R$ a množinu $M \subset D_f$. Potom funkci $f$ nazýváme
rostoucí na množině $M$, právě když pro každé $x_1,x_2 \in M$ splňující $x_1 < x_2$ platí $f(x_1) \leq f(x_2)$,
klesající na množině $M$, právě když pro každé $x_1,x_2 \in M$ splňující $x_1 < x_2$ platí $f(x_1) \geq f(x_2)$,
ostře rostoucí na množině $M$, právě když pro každé $x_1,x_2 \in M$ splňující $x_1 < x_2$ platí $f(x_1) < f(x_2)$,
ostře klesající na množině $M$, právě když pro každé $x_1,x_2 \in M$ splňující $x_1 < x_2$ platí $f(x_1) > f(x_2)$.
Zobrazení $f\colon D_f \to \R$, kde $D_f \subset \R$ je neprázdná množina reálných čísel, nazýváme reálnou funkcí reálné proměnné.
Zobrazení $f\colon D_f \to \R$, kde $D_f \subset \R$ je neprázdná množina reálných čísel, nazýváme reálnou funkcí reálné proměnné.
Nejpoužívanějším standardem pro práci s čísly s tzv. pohyblivou desetinnou čárkou je standard IEEE-754 (IEEE, 2008). Tento standard je zcela jistě historicky nejrozšířenější a nejpoužívanější. Díky jeho podpoře na úrovni hardware, jsou výpočty s těmito čísly velmi rychlé. Za rychlost je ale nutné zaplatit nepřesností ve výpočtech, které mohou mít fatální důsledky pro výpočty. Implementace „matematického algoritmu“ tak nemusí být zcela jednoduchá, protože akumulace numerických chyb může některé z těchto postupů učinit prakticky nepoužitelné.
Nejedná se ovšem o jediný možný způsob práce s aproximací reálných čísel na počítači. Existují i další přístupy jako například Unum (universal numbers) nebo intervalová aritmetika. Do těchto oblastí v tomto textu zabíhat nebudeme. Zvídavé čtenářstvo se může dozvědět více z uvedených odkazů.
Reálná čísla můžeme popsat v binárním ciferném tvaru, jehož část za „desetinnou“ tečkou může ovšem být nekonečná. V závislosti na hodnotě mantisy $m \in \Z$, exponentu $e \in \Z$ (maximálně $d$ bitů), znaménka $s \in \{0,1\}$ a typového parametru $b \in \Z$ postupujeme takto:
Pro $0 < e < 2^d - 1$ a $m$ klademe $x = (-1)^s \cdot (1.m_2)_2 \cdot 2^{e - b}$ (tzv. normalizované číslo).
Pro $e = 0$ a $m \neq 0$ klademe $x = (-1)^s \cdot (0.m_2)_2 \cdot 2^{1-b}$ (tzv. subnormální číslo).
Pro $e = 0$, $m = 0$ a $s = 0$ klademe $x = +0$ (pro $s = 1$ pak $x = -0$).
Pro $e = 2^d - 1$, $m = 0$ a $s = 0$ klademe $x = +\mathtt{Inf}$.
Pro $e = 2^d - 1$, $m = 0$ a $s = 1$ klademe $x = -\mathtt{Inf}$.
Pro $e = 2^d - 1$ a $m \neq 0$ klademe $x = \mathtt{NaN}$ (Not a Number).
Omezení těchto parametrů definovaná ve standardu IEEE-754 jsou uvedena v Tabulce 2.2.
přesnost | mantisa $m$ | $d =$ počet bitů $e$ | parametr $b$ |
---|---|---|---|
poloviční (binary16) | $10$ bitů | $5$ | $15$ |
jednoduchá (binary32) | $23$ bitů | $8$ | $127$ |
dvojitá (binary64) | $52$ bitů | $11$ | $1\,023$ |
čtyřnásobná (binary128) | $112$ bitů | $15$ | $16\,383$ |
Tabulka 2.2: Parametry různých strojově číselných datových typů. Ve všech případech ještě máme jeden bit pro znaménko, $s \in \{0,1\}$.
Podobně jako v Příkladu 2.8 se pojďme podívat, jak by mohla vypadat takováto čísla ve velmi extrémně malém, ale konkrétním, příkladě $5$ bitů. Těchto $5$ bitů rozdělme následujícím způsobem:
$1$ bit pro znaménko $s \in \{0,1\}$,
$2$ bity pro signifikand $m_0, m_1 \in \{0,1\}$, tj. $m\in\{0,1,2,3\}$,
$2$ bity pro exponent $e_0, e_1 \in \{0, 1\}$, tj. $e\in\{0,1,2,3\}$.
Parametr $b$ zvolíme analogicky (viz Tabulku 2.2) jako $1$. Dále v souladu se značením výše máme $d = 2$.
Řetězce $sm_0m_1e_0e_1 \in \{0,1\}^5$, kterých je celkem $2^5 = 32$ různých, pak dekódujeme podle popisu výše následujícím způsobem.
Speciální hodnota +Inf
, resp. -Inf
, odpovídá situaci $e = 3$, $m=0$ a $s=1$, resp. $s=0$, tj. řetězcům
Kladná, resp. záporná, nula odpovídá situaci $e = m = 0$ a $s = 0$, resp. $s = 1$, tedy
Následujících šest řetězců splňujících $e = 3$ a $m \neq 0$ nepředstavuje žádná čísla, jde o NaN
,
Pro normalizovaná čísla máme hodnoty $e=1,2$, $m$ a $s$ libovolné, dostáváme tak celkem $2 \cdot 4 \cdot 2 = 16$ normalizovaných čísel
Pro subnormální čísla máme hodnoty $e=0$, $m \neq 0$ a $s$ libovolné, dostáváme tak celkem $1 \cdot 3 \cdot 2 = 6$ subnormálních čísel
Shrňme si stručně výsledky tohoto příkladu. Hypotetický pěti bitový datový typ popsaný v tomto příkladě svých $32$ hodnot interpretuje jako
$2$ speciální hodnoty +Inf
a -Inf
,
$2$ nuly $+0$ a $-0$,
$6$ nečíselných hodnot NaN
,
$16$ normalizovaných čísel, zkráceně zapsaných jako
$6$ subnormálních čísel, zkráceně zapsaných jako
Grafickou ilustraci uvádíme na Obrázku 2.8.
Z výše uvedeného je patrné, že z množiny $\R$ jsme schopni popsat vždy jen velmi omezenou a konečnou množinu tzv. strojových čísel. Navíc každé takové číslo je racionální.
Dále standard definuje, jak se zaokrouhluje při provádění algebraických operací a při ukládání čísel, která nejsou exaktně vyjádřitelná ve zvolené přesnosti. Většina algebraických operací s takovýmito čísly je tudíž nutně zatížena chybou. V důsledku toho operace mezi strojovými čísly ztrácí řadu očekávaných vlastností (jako asociativita nebo distributivita). Dále se tato chyba může postupně kumulovat, nebo i zásadně projevit i jen při jedné operaci.
Výhodou strojových čísel je samozřejmě rychlost operací, které probíhají na úrovni hardware. Cena za to je dána výše zmíněnými problémy. Při implementaci „matematického algoritmu“ je proto nutné se zabývat i vlivem zaokrouhlovacích chyb. Některé algoritmy nejsou pro implementaci ve strojových číslech z těchto důvodů vhodné, například Gaussova eliminace. Těmito problémy se (mimo jiné) zabývá numerická matematika.
Zaokrouhlování, vedle podtečení a přetečení, není jedinou patologií strojových čísel. Rozložení těchto čísel po číselné ose je silně nerovnoměrné. Daleko od nuly jsou mezery mezi čísly poměrně velké! Graficky lze tento efekt vyjádřit pomoci histogramu uvedeného na Obrázku 2.9.
Všimněte si, že každé strojové číslo je nutně tvaru podílu celého čísla a nějaké mocniny dvou. Ne každé takové číslo ovšem je strojové.
Uvažme standardní 64 bitová strojová čísla.
Jaké je největší a druhé největší číslo (Inf
teď neuvažujeme) přesně reprezentovatelné v tomto datovém typu?
Jaká je mezi nimi mezera?
Zobrazit odpověď
Maximem je číslo $x = +(1.11\ldots11)_2\cdot 2^{2^{11} - 2 - 1023} = 2^{1024} - 2^{971}$. Druhým největším strojovým číslem je $y = +(1.11\ldots10)_2\cdot 2^{2^{11} - 2 - 1023} = 2^{1024} - 2^{972}$. Mezera mezi nimi je tedy velikosti $x - y = 2^{972} - 2^{971} = 2^{971}$.
Číslo $1$ je strojové číslo. V dvojité přesnosti určete nejmenší strojové číslo, které je větší než $1$. Tj. které „následuje“ hned za $1$.
Zobrazit odpověď
$1 + \frac{1}{2^{52}} = \frac{4503599627370497}{4503599627370496}$.