Składanie funkcji
Kapitoly: Czym jest funkcja, Funkcja wielu zmiennych, Składanie funkcji, Wykres funkcji
Pojedyncza funkcja niewiele zdziała. Dlatego funkcje można ze sobą składać.
Motywacja
Weźmy dwie funkcje. Pierwsza niech oblicza, ile kilometrów przejedziemy na danej liczbie litrów benzyny. Załóżmy, że nasz samochód przejeżdża na jednym litrze benzyny 10 kilometrów. Tę funkcję oznaczymy f i zdefiniujemy jako f(x) = 10x, gdzie argument x oznacza, ile litrów benzyny mamy. Jeśli więc mamy w baku sześć litrów benzyny, samochód przejedzie jeszcze f(6) = 10 · 6 = 60 kilometrów.
Druga funkcja może obliczać, ile litrów benzyny kupimy za daną liczbę złotych. Załóżmy, że litr benzyny kosztuje 5 zł. Wtedy funkcja, oznaczmy ją g, wyglądałaby tak: g(x) = x / 5, gdzie x oznacza, za ile złotych chcemy kupić benzynę. Jeśli mamy 25 zł, kupimy g(25) = 25 / 5 = 5 litrów benzyny.
Teraz możemy zapytać: ile kilometrów jeszcze przejedziemy, jeśli kupimy benzynę za 125 zł?
Mamy już funkcje, które obliczają zawsze tylko część zadania – liczbę przejechanych kilometrów w zależności od liczby litrów i liczbę kupionych litrów benzyny w zależności od pieniędzy. Teraz potrzebujemy obie funkcje złożyć.
Jak to rozwiązać
Moglibyśmy to rozwiązać tak, że najpierw obliczymy, ile litrów benzyny kupimy, a potem, ile kilometrów na nich przejedziemy. Spróbujmy. Za 125 zł kupimy g(125) = 125 / 5 = 25 litrów benzyny. A na 25 litrach benzyny przejedziemy f(25) = 10 · 25 = 250 kilometrów.
Możemy to jednak rozwiązać też inaczej – składając funkcje. Zdefiniujemy nową funkcję h, która na wejściu dostanie kwotę pieniędzy, a na wyjściu zwróci liczbę przejechanych kilometrów. Funkcję h zdefiniujemy za pomocą funkcji f i g tak:
$$ h(x) = f(g(x)) $$
Tak zdefiniowana funkcja h robi właściwie to samo, co obliczyliśmy w pierwszym akapicie. Mówi nam, że gdy dostaniemy wartość x, czyli kwotę, to mamy najpierw obliczyć wartość g(x), czyli liczbę litrów, które za nie kupimy. Tę otrzymaną wartość g(x), w naszym przypadku g(125) = 25, mamy jeszcze wstawić do funkcji f, więc obliczamy jeszcze f(25) = 250.
Możemy też otrzymać bezpośredni wzór funkcji h. Weźmiemy funkcję f i każde wystąpienie argumentu x zastąpimy funkcją g. Funkcja f wygląda tak: f(x) = 10x, a my za argument x podstawimy funkcję x / 5. W ten sposób otrzymamy funkcję h:
$$ h(x) = 10\cdot\left(\frac{x}{5}\right) $$
Przekształcamy/skracamy:
$$ h(x) = 2x $$
Właśnie złożyliśmy funkcje f i g w nową funkcję h, która oblicza, ile kilometrów przejedziemy na benzynie kupionej za x złotych. Możemy to sprawdzić, wstawiając do funkcji stare dobre 125 zł:
$$ h(125) = 2\cdot 125 = 250. $$
Wynik zgadza się z naszymi wcześniejszymi obliczeniami.
Składanie bardziej skomplikowanych funkcji
Niech funkcje f i g będą zdefiniowane tak:
$$\begin{eqnarray} f(x) &=& \sin(x) \cdot x^2 - 4\\ g(x) &=& \frac{x+1}{x-1} + 5 \end{eqnarray}$$
Spróbujmy teraz złożyć funkcje w ten sposób: f(g(x)). Weźmiemy więc funkcję f i w miejsce każdego wystąpienia argumentu x wstawimy, dla pewności w nawiasach, funkcję g:
$$ f(g(x)) = \sin\left(\frac{x+1}{x-1} + 5\right) \cdot \left(\frac{x+1}{x-1} + 5\right)^2 - 4 $$
Gdybyśmy złożyli funkcje odwrotnie, otrzymalibyśmy:
$$ g(f(x))=\frac{(\sin(x) \cdot x^2 - 4)+1}{(\sin(x) \cdot x^2 - 4)-1} + 5 $$
Do zapisu składania funkcji używa się symbolu kółka: $f \circ g$. Kłopot w tym, że czasem ten zapis oznacza złożenie w kierunku f(g(x)), a kiedy indziej g(f(x)). Symbolika jest tu więc trochę niejednoznaczna, dlatego zawsze lepiej sprawdź, jak dany autor ją rozumie.