4.6 Polynomy (mnohočleny)

Čtenáři je jistě dobře známo, jak definovat celočíselnou mocninu reálného čísla \(a\). Na tomto místě si ji připomeneme. Pro přirozené \(n\) klademe

\begin{equation}\label{eq-exp1}\tag{4.10} a^n := \underbrace{a \cdot a \cdots a}_{n\,\text{členů}}\end{equation}
a pro \(n=0\) pak \(a^0 := 1\) (i v případě \(a=0\)). Pro záporná celá čísla \(n\) a nenulová \(a\) dále definujeme \(a^n := \frac{1}{a^{-n}}\). Číslo \(-n\) je pak kladné celé a ve jmenovateli tak můžeme použít (4.10). Například platí proto \begin{equation*} \pi^0 = 1, \quad 2^4 = 2\cdot 2\cdot 2 \cdot 2 = 16, \quad 3^{-2} = \frac{1}{9}, \quad 0^0 = 1.\end{equation*}

Dle této definice mocniny je zřejmé, že pro každá reálná nenulová \(a\) a celá \(k\) a \(n\) platí důležité vztahy (rozmyslete!)

\begin{equation}\label{eq-exp2}\tag{4.11} a^k \cdot a^n = a^{k+n} \quad \text{a} \quad \big(a^k\big)^n = a^{kn}.\end{equation}
Operaci „mocnění“ s \(a>0\) lze definovat nejen pro celočíselné koeficienty. V tento okamžik není jasné, jak definovat (natož pak vypočíst) hodnotu výrazu \(3^\pi\) či \(1.2^{2.8}\). Podrobněji se touto otázkou budeme zabývat v BI-ZMA.

Zobecněním lineárních a kvadratických funkcí jsou polynomy. Polynomem nazýváme každou funkci tvaru \begin{equation*} f(x) = \sum_{k=0}^n a_k x^k, \quad x\in D_f = \mathbb{R}.\end{equation*} Pokud \(a_n \neq 0\), pak \(n\) nazýváme stupněm polynomu \(f\). Reálné konstanty \(a_0, a_1, \ldots, a_n\) určují funkci \(f\) stejně jako v předchozích případech konstanty \(a,b,c\) u lineární, resp. kvadratické, funkce. K zdůraznění oboru v jakém se pohybujeme občas o funkcích zavedených výše mluvíme jako o reálných polynomech. Tyto konstanty často nazýváme koeficienty polynomu. V české literatuře se také o polynomech občas mluví jako o mnohočlenech.

Mezi polynomiální funkce patří samozřejmě jak lineární, tak kvadratické funkce. Společným rysem polynomů je, že pro výpočet jejich funkčních hodnot vystačíme pouze s operacemi sčítání a násobení. V tomto smyslu se tedy skutečně jedná o jedny z nejjednodušších (elementárních) funkcí. Tyto operace lze navíc levně počítat na CPU, resp. FPU, a proto i vyhodnocování funkčních hodnot polynomů je snadné.

Definičním oborem libovolného polynomu je celá reálná osa, \(D_f = \R\). Pokud je stupeň polynomu lichý, pak je jeho oborem hodnot také celé \(\R\). Pokud však je stupeň polynomu sudý, pak je oborem hodnot pouze část reálné osy (konkrétně jistá polopřímka nebo bod v případě konstantního polynomu).

Hledání kořenů polynomů je obecně komplikovaná úloha. Explicitní vzorečky, jako například (4.9), jsou známé pouze pro polynomy stupně \(1\), \(2\), \(3\) a \(4\). Pro polynomy vyššího stupně nejen že nejsou známy vzorce pro kořeny, ale je dokázáno, že takovéto vzorce neexistují. Zdůrazněme tento fakt ještě jednou. Je-li zadán polynom stupně alespoň pět, pak vzorec udávající přímo jeho kořeny neexistuje a ani nikdy existovat nebude. Při hledání kořenů se pak musíme uchýlit k numerickým metodám49.

Otázka 19

Která z následujících funkcí je polynomem?

  1. \(f(x) = x^2 + 2x + 3 + \frac{4}{x}\),
  2. \(f(x) = x\sin(2)-x^3\),
  3. \(f(x) = e^{2\ln (1+x^2)}\),
  4. \(f(x) = \frac{x^3 + x}{x^2+1}\)

Odpověď:

1. ne, 2. ano, 3. ano, 4. ano.

Jediná středoškolská „metoda“ pro hledání kořenů polynomu \(P(x)\) stupně většího než dva50 spočívá v opakování následujících kroků

  1. uhodni jeden kořen, označme si ho \(\lambda\),
  2. vytkni (například pomocí algoritmu dělení polynomu polynomem) příslušný kořenový činitel, tj. \(P(x) = (x - \lambda) Q(x)\), kde polynom \(Q(x)\) má o jedničku menší stupeň než polynom \(P(x)\),
  3. vrať se do prvního bodu, ale hádej kořen polynomu \(Q(x)\).
Tento proces se opakuje tak dlouho, dokud se nedostaneme k polynomu stupně dva, jehož kořeny již umíme nalézt pomocí vzorce (4.9).

Je vhodné si uvědomit, že tento postup skutečně není algoritmem řešícím úlohu najít kořeny zadaného polynomu. Prvním úkolem je esoterický krok opírající se o náhodu. Zkuste tento postup například aplikovat na následující polynom (stále dost malého stupně): \begin{equation*} 12 \, x^{6} - x^{5} + 57 \, x^{4} - 10 \, x^{3} - 9738 \, x^{2} + 759 \, x + 47817.\end{equation*}

Na tomto místě je vhodné čtenáři doporučit zopakovat si algoritmus dělení polynomu polynomem. Tento algoritmus nalezne využití nejen v úloze na hledání kořenů polynomů, ale nachází i velmi důležité aplikace v počítačové bezpečnosti a šifrování.

Otázka 20

Nalezněte kořeny následujících polynomů.

  1. \(x^2 + x - 12\),
  2. \(x^3 - 2x^2 - 5x + 6\),
  3. \(x^3 + 2x^2 - 4x - 8\).

Odpověď:

1. \(3\) a \(-4\), 2. \(1\), \(-2\) a \(3\), 3. \(-2\) a \(2\).