函數與映射:把輸入對應到輸出,數學最核心的物件
從一台果汁機的直覺出發,理解定義域、值域、單射滿射雙射、合成與反函數,直到集合論與 AI 的地基
一台果汁機,藏著數學最深的祕密
把蘋果放進去,按下開關,出來的是蘋果汁;放進柳橙,出來的是柳橙汁。這台果汁機有一個你可能沒注意到的「規矩」:同一種水果放進去,每次都得到同一種果汁。如果某天放蘋果卻流出番茄汁,你大概會把它送修——因為它「壞掉了」,不再是一台可靠的機器。
這個再平凡不過的直覺,正是數學裡最核心的物件:函數(function)。函數不是公式、不是圖形,它本質上是一條把「輸入」對應到「輸出」的規則,而且這條規則必須穩定可靠:同樣的輸入,永遠給出同樣的輸出。從國中的 $y = 2x + 1$,到微積分裡的 $\int_a^b f(x)\,dx$,再到機器學習裡那個吃進一張照片、吐出「貓」或「狗」的神經網路——它們全都是函數。理解了函數,你就握住了整個數學大廈的鑰匙。

函數到底是什麼:三個缺一不可的零件
我們常把函數寫成 $f(x) = x^2$,但這只是函數的「公式外衣」。一個函數真正的定義由三個零件組成:
$$f : A \to B$$
- 定義域(domain) $A$:所有合法輸入的集合。
- 對應域(codomain) $B$:輸出「可能落在」的集合。
- 對應規則 $f$:告訴你每個 $a \in A$ 該配到哪個 $b \in B$。
關鍵的「函數性條件」只有一句話:
每一個輸入 $a \in A$,恰好對應到一個輸出 $f(a) \in B$。
注意「恰好一個」這四個字。它排除了兩種情況:一個輸入沒有輸出(果汁機卡住了),或一個輸入同時跑出兩個輸出(蘋果有時變蘋果汁、有時變番茄汁)。這就是為什麼 $y^2 = x$ 不是一個以 $x$ 為輸入的函數——因為 $x = 4$ 會同時對應到 $y = 2$ 和 $y = -2$。
值得強調的是:函數不必反過來也唯一。允許「兩個不同輸入給出同一個輸出」,例如 $f(x) = x^2$ 中 $f(2) = f(-2) = 4$,這完全合法。函數管的是「輸入端不分岔」,不管「輸出端會不會重合」。
看一個例子:定義域決定一切
考慮 $f(x) = \dfrac{1}{x-3}$。它的公式看起來人畜無害,但 $x = 3$ 會讓分母為零,這個輸入「非法」。所以它的定義域是
$$A = \{x \in \mathbb{R} : x \neq 3\} = \mathbb{R} \setminus \{3\}.$$
再看 $g(x) = \sqrt{x}$(取實數值)。負數沒有實數平方根,所以定義域是 $[0, \infty)$。
這帶出一個常被忽略的觀念:同一個公式,配上不同的定義域,就是不同的函數。$h_1(x) = x^2$ 定義在 $\mathbb{R}$ 上,與 $h_2(x) = x^2$ 定義在 $[0, \infty)$ 上,雖然公式一樣,性質卻天差地別——後者可以「倒回去」(有反函數),前者不行。我們稍後會看到原因。
像、值域與映射:換個角度看輸出
當輸入 $a$ 經由 $f$ 變成輸出 $b = f(a)$,我們說 $b$ 是 $a$ 的像(image)。把定義域裡所有元素的像收集起來,得到值域(range,或稱 image of $f$):
$$\operatorname{ran}(f) = \{ f(a) : a \in A \}.$$
請務必區分對應域與值域:對應域是你「事先宣告」輸出可能落腳的範圍,值域是「實際上」真的被打到的部分。值域永遠是對應域的子集,但不一定相等。
舉例:$f : \mathbb{R} \to \mathbb{R}$,$f(x) = x^2$。對應域是整個 $\mathbb{R}$,但值域只有 $[0, \infty)$——因為平方永遠非負,負數從來沒被任何輸入打到。
「映射(mapping)」一詞在多數情況下與「函數」同義,但在進階數學裡,當我們強調的是「把一個結構搬到另一個結構」時,更愛用「映射」。例如把平面上每個點 $(x, y)$ 旋轉 $90^\circ$,這個幾何變換就是一個映射
$$T(x, y) = (-y, x).$$
三種關鍵的函數:單射、滿射、雙射
理解了輸入輸出的對應後,我們可以依「對應的緊密程度」把函數分成三類。這套分類是高等數學的通用語言。
單射(injective,一對一):不同的輸入給出不同的輸出。形式化地說,
$$f(a_1) = f(a_2) \implies a_1 = a_2.$$
直覺上,單射函數「不會把兩個東西壓成同一個」,所以資訊不會遺失。$f(x) = 2x + 1$ 是單射;$f(x) = x^2$(定義在 $\mathbb{R}$ 上)不是,因為 $f(2) = f(-2)$。
滿射(surjective,映成):對應域裡每個元素都有「來源」,也就是值域填滿了整個對應域:$\operatorname{ran}(f) = B$。$f : \mathbb{R} \to \mathbb{R}$,$f(x) = x^3$ 是滿射(每個實數都開得了立方根);但 $f(x) = x^2$ 不是滿射(沒有輸入能打到 $-1$)。
雙射(bijective):同時是單射又是滿射。雙射是最「完美」的對應——輸入與輸出一一配對、不多不少。只有雙射函數才有真正的反函數。
動手試試:判斷下面這個函數
設 $f : \mathbb{R} \to \mathbb{R}$,$f(x) = 2x - 5$。它是哪一類?
單射檢驗:假設 $f(a_1) = f(a_2)$,即 $2a_1 - 5 = 2a_2 - 5$。兩邊加 $5$ 再除以 $2$,得 $a_1 = a_2$。✓ 是單射。
滿射檢驗:任取一個目標 $y \in \mathbb{R}$,問「有沒有 $x$ 使 $f(x) = y$?」解 $2x - 5 = y$,得 $x = \dfrac{y+5}{2}$,這永遠是個實數。✓ 是滿射。
兩者都成立,所以 $f$ 是雙射。既然如此,它有反函數,而且我們剛剛已經把它算出來了:
$$f^{-1}(y) = \frac{y + 5}{2}.$$
驗算:$f(f^{-1}(y)) = 2 \cdot \dfrac{y+5}{2} - 5 = (y + 5) - 5 = y$。✓ 確實還原。
合成函數:把機器串接起來
如果你有兩台果汁機,第一台把水果變果汁,第二台把果汁變冰沙,串起來就得到「水果 → 冰沙」的新機器。這在數學裡叫合成(composition),記作 $g \circ f$,讀作「先 $f$ 再 $g$」:
$$(g \circ f)(x) = g(f(x)).$$
順序至關重要——先做的寫在右邊。注意定義域的銜接:$f$ 的輸出必須落在 $g$ 的定義域裡,串接才合法。
計算範例:設 $f(x) = x + 3$,$g(x) = x^2$。
$$(g \circ f)(x) = g(x + 3) = (x + 3)^2 = x^2 + 6x + 9.$$
$$(f \circ g)(x) = f(x^2) = x^2 + 3.$$
兩者明顯不同。這說明合成不滿足交換律:$g \circ f \neq f \circ g$。這跟「先穿襪子再穿鞋」和「先穿鞋再穿襪子」結果不同是同一個道理。
合成與反函數有個漂亮的關係:若 $f$ 是雙射,則 $f^{-1} \circ f = \operatorname{id}$(恆等函數,輸入什麼還什麼),$f \circ f^{-1} = \operatorname{id}$。反函數就是「把合成消掉」的那台逆向機器。
函數的不同面貌:表格、圖形、規則
同一個函數可以用許多方式呈現,初學者常誤以為它們是不同東西:
- 代數式:$f(x) = 3x - 1$。
- 圖形:把所有 $(x, f(x))$ 的點畫在平面上。這也帶出一個實用的判別法——垂直線檢驗(vertical line test):若任何一條鉛直線與圖形最多交於一點,它就是函數(因為一個 $x$ 只配一個 $y$)。
- 表格:列出有限筆輸入輸出。
- 離散對應:在離散數學裡,函數可能就是一張「誰配誰」的對照表,例如把學號對應到座位號。
它們是同一個抽象物件的不同「外衣」。能在這些表徵間自由切換,是函數素養的核心。
重點回顧
- 函數的本質是一條穩定的對應規則 $f : A \to B$,核心條件是「每個輸入恰好對應一個輸出」——輸入端不准分岔,但輸出端允許重合。
- 三個零件缺一不可:定義域 $A$、對應域 $B$、對應規則。同一個公式配上不同定義域,就是不同的函數。
- 對應域 ≠ 值域:對應域是事先宣告的可能範圍,值域是實際被打到的部分,後者是前者的子集。
- 三種關鍵分類:單射(不同輸入給不同輸出)、滿射(對應域被填滿)、雙射(兩者皆是)。只有雙射才有反函數。
- 合成不可交換:$g \circ f \neq f \circ g$,順序決定一切;反函數則是把合成「消回恆等」的逆向操作。
深入探討(研究所視角)
把函數看作「公式」會在高等數學裡撞牆。研究所階段的觀點是:函數是集合論裡的一個特殊關係。
形式上,從 $A$ 到 $B$ 的一個關係就是笛卡兒積 $A \times B$ 的某個子集 $R \subseteq A \times B$。當這個子集滿足「對每個 $a \in A$,恰好存在一個 $b$ 使 $(a, b) \in R$」時,這個關係就升格為函數。換言之,函數就是它的圖形(graph)本身——這個視角徹底拋棄了「規則」「公式」的含糊感,把函數還原成一個確定的點集。所有關於函數的性質(單射、滿射、合成)都能純粹用集合運算重述,這正是數學追求嚴格化的成果。
這個抽象觀帶來巨大威力。在範疇論(category theory)裡,數學家不再關心函數「內部怎麼運作」,只關心物件之間的「箭頭(morphism)」如何合成。雙射在這個框架下被推廣為同構(isomorphism):兩個結構之間若存在保持結構的雙射,它們在範疇論意義下「本質相同」。群論裡的群同態、線性代數裡的線性變換、拓樸學裡的連續映射,全都是「帶結構的函數」這個主旋律的變奏。
基數(cardinality)是另一個震撼的應用。Cantor 的洞見是:判斷兩個集合「一樣大」的唯一嚴格方法,就是看它們之間能否建立雙射。這套方法揭示了無窮的層級——整數與有理數之間存在雙射(都是「可數無窮」 $\aleph_0$),但實數與整數之間不可能有雙射(對角線論證證明實數是「不可數」的)。一個看似樸素的「一一配對」概念,竟成了丈量無窮的尺。
跨領域來看,函數是現代計算與 AI 的地基。一個神經網路本質上是一個高維函數 $f_\theta : \mathbb{R}^n \to \mathbb{R}^m$,其中 $\theta$ 是上億個參數;訓練就是在巨大的函數族裡尋找最逼近資料的那一個。通用近似定理(universal approximation theorem)保證:只要隱藏層夠寬,前饋網路能以任意精度逼近任何連續函數——這正是深度學習可行的數學承諾。再往物理走,量子力學的態是 Hilbert 空間裡的函數,演化由作用在函數上的算子(也就是「函數的函數」,稱為泛函(functional)或算子(operator))描述。而泛函分析(functional analysis)整個學門,研究的就是「以函數為點」的無窮維空間——微積分裡的 $\int_a^b f(x)\,dx$ 在這裡被看成一個吃進函數、吐出實數的泛函 $L[f]$。
當你下次寫下 $f(x)$ 時,不妨記得:這個小小的符號,連接著從集合論的地基、無窮的丈量,一路通往人工智慧與量子世界的廣闊地圖。