合成函數直覺理解:順序、函數值與定義域

假設一家外送服務每公里收 3 元,再加上 5 元的預約費。4 公里的行程,你要把 4 乘以 3,再加 5。你已經把一個規則的輸出,送進了另一個規則。這就是函數合成。
這個記號看起來可能比實際動作更難。如果 計算距離費用,而 加上預約費,那麼總額是 元。內層規則先執行。除非定價規則真的這樣規定,否則你不能先把預約費加到距離上,再去相乘。
由內往外讀順序
合成函數把一個函數放進另一個函數裡面:
讀作「 在 之後」。先求出 。然後用那個輸出作為 的輸入。這個小圓圈是合成的符號,不是乘法。OpenStax 的合成函數章節定義了這個運算,並明確說明了順序。
取 與 。要形成 ,把 中的輸入位置換成整個運算式 :
在 時,內層規則給出 ,外層規則給出 。運算式吻合:。把兩步驟的計算與合併後的運算式對照檢查,可以抓到放錯位置的括號。
函數記號是讓位置保持清楚可見的方法。如果 ,那麼 。用來代表位置的字母,不影響規則。我們的函數指南在把函數串接起來之前,先談了輸入、輸出與定義域。
把順序反過來比較
對同樣兩個函數, 改由 開始:
在 時, 而 。這不是 得到的 27。兩者都是有效的合成,但它們問的是不同的問題。你在做代數之前就能看出差別:一條鏈是先平方再加倍,另一條是先加倍再加一,然後平方。
某一個輸入處的巧合,並不會讓兩個合成函數相同。要確立它們作為函數相等,需要在共同的定義域上比較規則,並檢查它們的定義域一致。對於一般的習題,把兩個運算式都算出來並化簡。請記得 既不是 ,也不是乘積 。
一個實用的標註是 。在代入任何東西之前,先寫出第一個箭頭。當內層規則含有分數、根號或一張數值表時,這特別有用。
從表格或圖形求值
你不需要公式也能合成函數。假設一張表格給出:
| 1 | 2 | 3 | 4 | |
|---|---|---|---|---|
| 3 | 4 | 1 | 2 | |
| 8 | 6 | 9 | 7 |
要求 ,先從第一列讀出 。現在用 4 作為 的輸入:。答案是 7。若順序相反,,但表格沒有給出 的值。你無法從這張表格讀出 。如果完整的函數在別處有定義,它可能存在;但光憑所列出的值,無法確定它。
圖形的運作方式相同。在輸入 2 處,移到 的圖形上讀出它的高度,比方說是 4。然後再從 的圖形上輸入 4 的位置重新開始,讀出它的高度,比方說是 7。第一個高度成為第二個水平坐標。不要在 處同時讀出兩個高度再把它們組合。如果任一個圖形在所需的輸入處沒有點,合成函數在該處就沒有定義。
請注意「不在這張部分表格中」與「在定義域之外」的差別。一張簡短的表格可能漏掉一個實際存在的值。有明確空心圓或標明端點的圖形,則可以顯示某個值被排除。請說明你手上有什麼證據,而不是編造缺少的輸出。
化簡之前先檢查定義域
的定義域有兩道關卡。第一, 必須在 的定義域內。第二,所得的 必須在 的定義域內。OpenStax 正是以這種輸入與輸出的形式陳述這條規則。
要讓合成函數在某些輸入處存在,並不需要 的整個值域都落在 的定義域內。只保留兩個階段都行得通的輸入。例如,平方可以接受每一個實數,而之後的平方根只能接受非負的輸出;因為平方值是非負的,所以這樣的組合對每個實數輸入都成立。把內層規則改成減法,允許的集合就可能縮小。要檢查實際的交接,而不是只孤立地看兩個公式。
令 與 ,輸出取實數。內層規則接受每個實數,但外層的平方根只接受非負的輸入。因此:
把順序反過來。現在 先執行, 之後再減一:
這兩個運算式不同,它們的定義域也不同。在 時,第二個合成函數給出 ,而第一個在實數範圍內沒有定義。這比找出某一個它們的值不同的輸入,是更具決定性的比較。
分母會造成另一道關卡。假設 與 。那麼 ,但 仍然被禁止,因為內層規則在那裡沒有定義。
約分永遠不能修復原本被禁止的輸入。令 ,只在 時有定義,並令 。對允許的輸入,你可以把 化簡成 。合成運算式看起來像 ,但它的定義域仍然是 。在 時,原本的內層函數要求你除以零。一個在其他地方都與它一致的多項式,若不定義一個新的函數,是無法填補那個洞的。
把較大的規則拆成階段
合成也可以反過來讀,作為一個公式如何建構的描述。取 。一種選擇是先 ,再 。因此 。這種分解能快速揭示定義域:要求 ,所以 。
可能有不只一種有效的分解。你可以把內層的一次規則拆成「乘以 3」與「加 2」,再把平方根當作第三步。重要的是,所說明的順序對每個允許的輸入,都能重現原本的規則。
對於圖形的變換,比較 與 。變化發生在輸入的位置內,所以拋物線向右平移 2。對於 ,加法發生在 之後,所以圖形向上平移 2。這就是實際運作中的合成:「先減 2 再平方」不同於「先平方再加 2」。如果代入本身讓你覺得陌生,我們的代數指南可以幫上忙。
練習三種不同的檢查
1. 兩種順序。 令 與 。求出兩個合成函數。答案是 與 。在 時,它們分別給出 10 與 14。順序改變了加上的 4 在計算中進入的位置。
2. 一道定義域關卡。 令 與 。那麼 。要排除 與 ,因為兩者都會讓外層的分母為零。內層的多項式本身接受每個實數。
3. 查表。 用上面的表格,計算 。首先 。表格中沒有 的資料,所以給定的表格不夠。這就是一個完整的答案,不是失敗的計算。
每做完一道習題,大聲說出哪個規則先執行、它產生了什麼值,以及下一個規則是否接受那個值。然後用一個數值輸入,驗證你的代數。在 Math Zen 的函數練習中,合成與定義域和值域的題目並列,讓你可以把這個交接當成獨立的技能來練習。
反函數是一個特例,在適當的定義域上,一個規則會還原另一個規則。要計算一般的合成函數,你不需要反函數。對這篇指南來說,可靠的順序就夠了:內層輸出、外層輸入,然後檢查定義域。
常見問題
- 什麼是合成函數?
- 合成函數是把一個函數的輸出當成另一個函數的輸入。在 f(g(x)) 中,先計算 g,再把結果餵給 f。
- f(g(x)) 和 g(f(x)) 一樣嗎?
- 通常不一樣。改變順序,會改變哪一個規則先看到原本的輸入。請把兩種順序都算出來並檢查它們的定義域,不要假設它們相同。
- 我要怎麼求 f(g(x)) 的定義域?
- 只保留那些 g(x) 存在、而且其輸出被允許作為 f 的輸入的 x 值。即使代數因式之後被約掉,也要保留原本規則所帶來的排除條件。
- 我可以從表格或圖形求合成函數的值嗎?
- 可以。先讀內層函數,再把它的值當成外層的輸入。如果部分表格缺少需要的值,就需要更多資訊;輸入落在任一個所需的定義域之外時,合成函數在該處無定義。


