Skip to content

映射与函数

在上一章中,我们详细探讨了二元关系。关系描述了集合元素之间可能存在的各种联系。在本章中,我们将聚焦于一种极为特殊且在数学中无处不在的关系:函数。函数不仅是分析学、代数学的基础,更是集合论中刻画集合规模(基数)的核心工具。

我们从集合论的观点来看,函数其实是一种特殊的二元关系。它将定义域中的每一个元素都唯一地关联到陪域中的一个元素。这种唯一性是函数区别于一般关系的关键所在。通过函数,我们可以描述变化、映射、变换以及各种对应规律。

1. 函数的定义

1.1 从关系到函数

在直觉上,函数被看作一个“黑箱”,输入一个值,产生一个唯一的输出值。在集合论的严谨框架下,我们将其定义为满足特定条件的二元关系。这种处理方式将函数这种动态的过程转化为了静态的集合结构,使得我们可以利用集合论的各种公理对其进行处理。

回忆一下,集合 AABB 的一个二元关系 RR 是笛卡儿积 A×BA \times B 的子集。如果我们对这个子集加上一些限制,使其能够模拟“每个输入产生唯一输出”的特性,我们就得到了函数。

定义 函数(Function)或 映射(Mapping):设 AABB 是两个集合。若 fA×Bf \subseteq A \times B 满足以下两个条件:

  1. 存在性:对于每一个 aAa \in A,都存在 bBb \in B,使得 (a,b)f(a,\, b) \in f
  2. 唯一性:如果 (a,b1)f(a,\, b_1) \in f(a,b2)f(a,\, b_2) \in f,那么 b1=b2b_1 = b_2; 则称 ff 为从 AABB 的一个 函数

通常记作 f:ABf: A \to B。若 (a,b)f(a,\, b) \in f,我们也记作 f(a)=bf(a) = b。这里的 aa 称为自变量,而 bb 称为 aaff 下的 。我们也常用符号 af(a)a \mapsto f(a) 表示这种对应关系。

这个定义包含了三个不可或缺的要素:

  1. 定义域(Domain):所有的输入来源集合 AA
  2. 陪域(Codomain):潜在输出所在的集合 BB
  3. 对应法则:具体的指派规则 fA×Bf \subseteq A \times B

NOTE

两个函数 ffgg 被认为是相等的,当且仅当它们的定义域相同、陪域相同,且对于定义域中的每一个元素,它们的函数值都相等。如果其中任何一个要素不同,即使计算公式看起来一样,它们也是不同的函数。

例 1.1 考虑集合 A={1,2,3}A = \left\{1,\, 2,\, 3\right\}B={x,y}B = \left\{x,\, y\right\}

  1. 关系 f={(1,x),(2,y),(3,x)}f = \left\{(1,\, x),\, (2,\, y),\, (3,\, x)\right\} 是一个函数。
  2. 关系 g={(1,x),(2,y)}g = \left\{(1,\, x),\, (2,\, y)\right\} 不是从 AABB 的函数,因为 3A3 \in A 没有对应的输出(违反了存在性)。
  3. 关系 h={(1,x),(1,y),(2,x),(3,y)}h = \left\{(1,\, x),\, (1,\, y),\, (2,\, x),\, (3,\, y)\right\} 也不是函数,因为 1A1 \in A 对应了两个输出 xxyy(违反了唯一性)。

1.2 基本概念

在学习函数的过程中,我们需要清晰地定义几个相关的集合概念。这些概念描述了函数在不同视角下的“作用范围”。

定义 定义域(Domain):函数 f:ABf: A \to B 的所有第一个坐标构成的集合,记作 dom(f)=A\mathrm{dom}(f) = A。这是函数能够接收的所有有效输入的集合。

定义 陪域(Codomain):函数 f:ABf: A \to B 的目标集合 BB。它规定了函数值可能落入的范围,但不要求其中的每一个元素都被取到。

定义 值域(Range / Image):函数所有实际取到的值的集合,记作 ran(f)\mathrm{ran}(f)f(A)f(A)

ran(f)={f(a)aA}B\mathrm{ran}(f) = \left\{f(a) \mid a \in A\right\} \subseteq B

注意区分陪域和值域。陪域是你声明函数“输出在哪里”的集合,而值域是函数“实际上能输出什么”的集合。

例 1.2 考虑平方函数 f:RRf: \mathbb{R} \to \mathbb{R} 定义为 f(x)=x2f(x) = x^2。 其定义域是实数集 R\mathbb{R},陪域也是 R\mathbb{R}。但由于任何实数的平方都不可能为负数,其值域 ran(f)\mathrm{ran}(f) 实际上是 [0,)[0,\, \infty)

定义 集合 SAS \subseteq Aff 下的 (Image):指 SS 中所有元素对应函数值的集合:

f(S)={f(x)xS}={yBxS,f(x)=y}f(S) = \left\{f(x) \mid x \in S\right\} = \left\{y \in B \mid \exists x \in S, \, f(x) = y\right\}

定义 集合 TBT \subseteq Bff 下的 原像(Preimage):指 AA 中所有映射到 TT 中的元素的集合:

f1(T)={xAf(x)T}f^{-1}(T) = \left\{x \in A \mid f(x) \in T\right\}

注意,这里的 f1f^{-1} 只是一个记号,并不代表 ff 一定存在逆函数。原像集总是存在的,即使 ff 不是可逆的。如果 TT 是一个单点集 {b}\left\{b\right\},我们通常简写 f1({b})f^{-1}(\left\{b\right\})f1(b)f^{-1}(b)

1.3 函数相等

正如我们在集合相等的定义中所看到的,两个数学对象是否“同一个”取决于它们的内在结构。

两个函数 ffgg 相等,记作 f=gf = g,当且仅当满足以下三个条件:

  1. dom(f)=dom(g)\mathrm{dom}(f) = \mathrm{dom}(g)
  2. 陪域相同(通常在语境中预设,若明确指出则需一致)
  3. 对于定义域中的每一个元素 xx,都有 f(x)=g(x)f(x) = g(x)

例 1.3 函数 f:RR,f(x)=x+1f: \mathbb{R} \to \mathbb{R},\, f(x) = x + 1g:ZR,g(x)=x+1g: \mathbb{Z} \to \mathbb{R},\, g(x) = x + 1 不相等,因为它们的定义域不同。这意味着它们作为 A×BA \times B 的子集,其包含的点集是完全不同的。

2. 函数的分类

在研究函数时,我们经常关心它是否“打得准”(没有两个输入落到同一个输出上)以及它是否“打得全”(覆盖了所有的输出)。这些性质直接决定了集合之间是否可以建立一一对应的关系。

2.1 单射、满射、双射

定义 单射(Injection / One-to-one):若对于 AA 中任意不同的元素 a1a_1a2a_2,它们的像也不同,则称 f:ABf: A \to B 为单射。数学表述为:

f(a1)=f(a2)a1=a2f(a_1) = f(a_2) \Rightarrow a_1 = a_2

这意味着单射函数不会将不同的输入“混淆”在同一个输出点上。在坐标图上,如果一个水平线与函数图像最多只有一个交点,那么它就是单射。

定义 满射(Surjection / Onto):若值域等于陪域,即对于 BB 中的每一个元素 bb,在 AA 中至少存在一个元素 aa 使得 f(a)=bf(a) = b,则称 f:ABf: A \to B 为满射。即:

bB,aA,f(a)=b\forall b \in B, \quad \exists a \in A, \quad f(a) = b

满射保证了目标集合中的每一个元素都有它的出处。通过调整陪域的大小,我们有时可以将一个非满射函数变成满射。

定义 双射(Bijection / One-to-one Correspondence):若 ff 既是单射又是满射,则称 ff 为双射。

这意味着 AABB 的元素之间建立了一一对应的完美匹配。每一个 AA 中的元素都有唯一的像,且每一个 BB 中的元素都有唯一的原像。

例 2.1

  1. f:RR,f(x)=exf: \mathbb{R} \to \mathbb{R},\, f(x) = e^x。它是单射(指数函数是严格单调的),但不是满射(因为负数没有原像,值域是 (0,)(0,\, \infty))。
  2. g:R[0,),g(x)=x2g: \mathbb{R} \to [0,\, \infty),\, g(x) = x^2。它是满射(每个非负数都有平方根),但不是单射(例如 g(1)=g(1)=1g(1) = g(-1) = 1)。
  3. h:RR,h(x)=2x+3h: \mathbb{R} \to \mathbb{R},\, h(x) = 2x + 3。它是双射。
  4. k:ZZ,k(n)=2nk: \mathbb{Z} \to \mathbb{Z},\, k(n) = 2n。它是单射,但不是满射(奇数没有原像)。

我们还可以用图示来直观感受这三者的区别:

  • 单射:每个箭头的终点各不相同,没有两个箭头发射到同一个点上。
  • 满射:终点集合(陪域)中的每一个点都被至少一个箭头射中。
  • 双射:每个点都恰好被射中一次,像是一场完美的联谊。

2.2 有限集的计数

对于有限集合 AABB,函数性质与集合的大小(势)之间有深刻的联系。这种联系是有限数学和组合数学的基础。

  1. 如果存在单射 f:ABf: A \to B,那么 BB 必须有足够的空间容纳 AA 的所有不同输出,因此 AB|A| \leqslant |B|
  2. 如果存在满射 f:ABf: A \to B,那么 AA 必须有足够的元素去覆盖 BB 的每一个角落,因此 AB|A| \geqslant |B|
  3. 如果存在双射 f:ABf: A \to B,那么 A=B|A| = |B|

这个观察非常基础,但它构成了康托尔(Cantor)研究无穷集大小的基础。即便对于无穷集合,我们也说两个集合的基数相等,当且仅当它们之间存在一个双射。

@theorem-1 鸽巢原理(Pigeonhole Principle):若 AABB 是有限集,且 A>B|A| > |B|,则任何函数 f:ABf: A \to B 都不是单射。

证明:直观上,如果你要把 n+1n + 1 只鸽子放进 nn 个笼子里,至少有一个笼子会有两只或更多的鸽子。 在集合论语言中,如果 A=m|A| = mB=n|B| = n,且 m>nm > n,假设 ff 是单射,那么根据单射的定义,ff 的值域的大小 f(A)|f(A)| 应该等于它的定义域的大小 mm。 但由于 f(A)Bf(A) \subseteq B,根据子集的性质,其大小必然满足 f(A)B=n|f(A)| \leqslant |B| = n。 结合以上两点,我们得到 mnm \leqslant n,这与我们的假设 m>nm > n 产生矛盾。 因此,假设不成立,函数 ff 绝对不可能是单射。

3. 函数的运算

3.1 函数的复合

当一个函数的输出可以作为另一个函数的输入时,我们可以将它们连接起来。复合是构造新函数最基本的方法之一。

定义 复合函数(Composition):设 f:ABf: A \to Bg:BCg: B \to C 是两个函数。它们的复合函数记作 gfg \circ f,是一个从 AACC 的函数,定义为:

(gf)(a)=g(f(a))对于所有 aA(g \circ f)(a) = g(f(a)) \quad \text{对于所有 } a \in A

注意顺序:gfg \circ f 表示先作用 ff,再作用 gg。这种从右往左的阅读习惯有时会让初学者感到困惑,但它在代数学中是非常标准的形式,因为它符合 g(f(x))g(f(x)) 的嵌套写法。

@theorem-2 复合的结合律:设 f:ABf: A \to Bg:BCg: B \to Ch:CDh: C \to D,则:

h(gf)=(hg)fh \circ (g \circ f) = (h \circ g) \circ f

证明:我们要证明两个函数相等,首先我们要确认它们的定义域和陪域。 对于 h(gf)h \circ (g \circ f),内层函数 gfg \circ f 的定义域是 AA,陪域是 CC。然后 hh 作用于 CC 的结果,所以其整体定义域是 AA,陪域是 DD。 同理,(hg)f(h \circ g) \circ f 的定义域也是 AA,陪域是 DD

现在验证对应法则。对于任意 aAa \in A: 左式作用于 aa

[h(gf)](a)=h((gf)(a))=h(g(f(a)))[h \circ (g \circ f)](a) = h((g \circ f)(a)) = h(g(f(a)))

右式作用于 aa

[(hg)f](a)=(hg)(f(a))=h(g(f(a)))[(h \circ g) \circ f](a) = (h \circ g)(f(a)) = h(g(f(a)))

由于对于定义域中的所有 aAa \in A,两者的函数值都完全相等,根据函数相等的定义,有 h(gf)=(hg)fh \circ (g \circ f) = (h \circ g) \circ f

TIP

复合运算通常不满足交换律。即使 fgf \circ ggfg \circ f 都有定义,它们的结果往往也不同。例如 f(x)=x2f(x) = x^2g(x)=x+1g(x) = x + 1,则 (fg)(x)=(x+1)2=x2+2x+1(f \circ g)(x) = (x+1)^2 = x^2 + 2x + 1,而 (gf)(x)=x2+1(g \circ f)(x) = x^2 + 1

关于复合函数的性质,有以下重要结论:

  1. ffgg 都是单射,则 gfg \circ f 是单射。
  2. ffgg 都是满射,则 gfg \circ f 是满射。
  3. ffgg 都是双射,则 gfg \circ f 是双射。

证明思路(单射情况):设 (gf)(a1)=(gf)(a2)(g \circ f)(a_1) = (g \circ f)(a_2)。这意味着 g(f(a1))=g(f(a2))g(f(a_1)) = g(f(a_2))。 由于 gg 是单射,根据定义,我们必然有 f(a1)=f(a2)f(a_1) = f(a_2)。 接着,由于 ff 也是单射,再次根据定义,我们得到 a1=a2a_1 = a_2。 这证明了对于任意 a1,a2Aa_1, \, a_2 \in A,如果它们的复合像相等,则它们本身相等。故 gfg \circ f 是单射。

3.2 恒等函数

在函数的世界里,有一些函数起着特殊的作用,比如什么都不改变的函数。

定义 恒等函数(Identity Function):对于任何集合 AA,定义在 AA 上的恒等函数 idA:AA\mathrm{id}_A: A \to A 为:

idA(a)=a对于所有 aA\mathrm{id}_A(a) = a \quad \text{对于所有 } a \in A

恒等函数在复合运算中扮演了类似乘法中数字 1 的角色。它是复合运算的单位元: 对于任何函数 f:ABf: A \to B,有 fidA=ff \circ \mathrm{id}_A = fidBf=f\mathrm{id}_B \circ f = f

3.3 逆函数

如果函数描述了一个过程,那么逆函数就描述了如何“撤销”这个过程。

定义 逆函数(Inverse Function):若 f:ABf: A \to B 是一个函数,如果存在函数 g:BAg: B \to A 使得:

  1. gf=idAg \circ f = \mathrm{id}_A
  2. fg=idBf \circ g = \mathrm{id}_B 则称 ff 是可逆的,并称 ggff 的逆函数,记作 f1f^{-1}

@theorem-3 函数 f:ABf: A \to B 具有逆函数当且仅当它是双射。

证明: (\Rightarrow) 假设 ff 具有逆函数 gg

  • 证明单射性:若 f(a1)=f(a2)f(a_1) = f(a_2),我们在等式两边同时作用 gg,得到 g(f(a1))=g(f(a2))g(f(a_1)) = g(f(a_2))。由于 ggff 的左逆,即 g(f(a))=ag(f(a)) = a,所以得到 a1=a2a_1 = a_2。故 ff 是单射。
  • 证明满射性:对于任意 bBb \in B,由于 g:BAg: B \to A,我们可以找到 a=g(b)Aa = g(b) \in A。将 ff 作用于这个 aa,得到 f(a)=f(g(b))f(a) = f(g(b))。由于 gg 也是 ff 的右逆,即 f(g(b))=bf(g(b)) = b,所以得到 f(a)=bf(a) = b。这说明 BB 中每个元素都有原像。故 ff 是满射。 综上所述,ff 是双射。

(\Leftarrow) 假设 ff 是双射。 我们要构造一个函数 g:BAg: B \to A。由于 ff 是满射,对每个 bBb \in B,在 AA 中至少存在一个元素 aa 使得 f(a)=bf(a) = b。 由于 ff 也是单射,对于给定的 bb,这样的 aaAA 中是唯一的(如果有两个,它们必然相等)。 于是我们可以合法地定义一个对应规则 g(b)=ag(b) = a。 此时,对于任意 aAa \in A,令 b=f(a)b = f(a),则根据 gg 的定义有 g(b)=ag(b) = a,即 g(f(a))=ag(f(a)) = a,故 gf=idAg \circ f = \mathrm{id}_A。 对于任意 bBb \in B,令 a=g(b)a = g(b),则根据 gg 的定义有 f(a)=bf(a) = b,即 f(g(b))=bf(g(b)) = b,故 fg=idBf \circ g = \mathrm{id}_B。 因此,构造出的 gg 确实是 ff 的逆函数。

@theorem-4f:ABf: A \to Bg:BCg: B \to C 都是双射,则 gfg \circ f 也是双射,且其逆函数为:

(gf)1=f1g1(g \circ f)^{-1} = f^{-1} \circ g^{-1}

这被称为“穿衣脱衣原理”:先穿袜子(ff)再穿鞋子(gg),脱掉时的顺序必须是先脱鞋子(g1g^{-1})再脱袜子(f1f^{-1})。

例 3.1 函数 f:R(0,),f(x)=exf: \mathbb{R} \to (0,\, \infty),\, f(x) = e^x 是双射,其逆函数为 f1:(0,)R,f1(y)=lnyf^{-1}: (0,\, \infty) \to \mathbb{R},\, f^{-1}(y) = \ln y

4. 函数的限制与延拓

有时候我们只需要研究函数在定义域的一个子集上的行为,或者希望将函数的规则扩大到更大的范围。

定义 限制(Restriction):设 f:ABf: A \to B 是一个函数,SAS \subseteq AffSS 上的限制记作 fSf|_S,是一个从 SSBB 的函数,定义为:

fS(x)=f(x)对于所有 xSf|_S(x) = f(x) \quad \text{对于所有 } x \in S

限制运算经常用于处理非单射函数。例如 f(x)=x2f(x) = x^2 在整个实数集 R\mathbb{R} 上不是单射,但如果我们将其限制在非负实数集 S=[0,)S = [0,\, \infty) 上,它就变成了一个单射函数。

定义 延拓(Extension):设 f:ABf: A \to BAAA \subseteq A'。若函数 g:ABg: A' \to B 满足 gA=fg|_A = f,则称 ggff 的一个延拓。

延拓通常不唯一,因为我们可以自由定义 gg 在新增加的定义域部分 AAA' \setminus A 上的取值。在数学分析中,如何“平滑地”延拓一个函数是一个非常核心的问题。

例 4.1 函数 f:[0,)R,f(x)=xf: [0,\, \infty) \to \mathbb{R},\, f(x) = x 是恒等函数在非负实数集上的限制。我们可以将其延拓到整个 R\mathbb{R}。一种方式是定义 g(x)=xg(x) = |x|(即对于负数部分取绝对值),另一种简单的延拓是定义 h(x)=xh(x) = x 对于整个实数集。显然 gghh 是不同的延拓。

5. 特征函数与函数集

5.1 特征函数

特征函数是将集合运算转化为数值运算的桥梁。通过它,我们可以利用算术运算来处理集合的并、交、补等关系。

定义 特征函数(Characteristic Function):设 UU 是全集,SUS \subseteq U。集合 SS 的特征函数 χS:U{0,1}\chi_S: U \to \left\{0,\, 1\right\} 定义为:

χS(x)={1,xS0,xS\chi_S(x) = \begin{cases} 1, & x \in S \\ 0, & x \notin S \end{cases}

特征函数具有非常优美的代数性质,它允许我们用代数恒等式来证明复杂的集合恒等式:

  1. 交运算χAB(x)=χA(x)χB(x)\chi_{A \cap B}(x) = \chi_A(x) \cdot \chi_B(x)
  2. 并运算χAB(x)=χA(x)+χB(x)χA(x)χB(x)\chi_{A \cup B}(x) = \chi_A(x) + \chi_B(x) - \chi_A(x) \cdot \chi_B(x)
  3. 补运算χAc(x)=1χA(x)\chi_{A^c}(x) = 1 - \chi_A(x)
  4. 差运算χAB(x)=χA(x)(1χB(x))\chi_{A \setminus B}(x) = \chi_A(x) \cdot (1 - \chi_B(x))

这些性质在概率论中非常有用,我们可以通过计算指示变量(特征函数的另一种说法)的期望来证明某些集合公式。

5.2 函数集

我们要不仅研究单个函数,还要研究“所有函数组成的集合”。

定义 函数集:设 AABB 是两个集合,从 AABB 的所有函数构成的集合记作 BAB^A。有时也记作 Map(A,B)\mathrm{Map}(A,\, B)F(A,B)F(A, \, B)

BA={ff:AB}B^A = \left\{f \mid f: A \to B\right\}

这种指数记法是由有限集的情况启发而来的。如果我们记 A=n|A| = nB=m|B| = m,那么 BA=mn|B^A| = m^n。这是因为对于 AA 中的每一个元素,我们都有 mm 种独立的选择,总共有 nn 次选择的机会。

一个极其重要的观察是:集合 AA 的幂集 P(A)\mathcal{P}(A) 与函数集 {0,1}A\left\{0,\, 1\right\}^A 之间存在自然的“同构”关系。

@theorem-5 对于任何集合 AA,有 P(A){0,1}A\mathcal{P}(A) \cong \left\{0,\, 1\right\}^A

这里的 \cong 表示存在一个双射。具体的映射 F:P(A){0,1}AF: \mathcal{P}(A) \to \left\{0,\, 1\right\}^A 定义为 F(S)=χSF(S) = \chi_S。这个双射告诉我们,子集的个数与特征函数的个数是一样的。 在有限集合的情况下,这解释了为什么幂集的势是 2n2^n(因为陪域有两个元素 {0,1}\{0, 1\})。 这为以后定义无穷集合的基数奠定了基础。如果我们定义 A=κ|A| = \kappa,那么我们就定义 2κ2^\kappa 为其幂集的势。

6. 函数族与选择函数

6.1 索引族

在处理多个集合时,我们不仅需要集合本身,还需要一种方式来有条理地引用它们。

定义 索引族(Indexed Family):设 II 是一个集合(称为索引集)。如果对于每个 iIi \in I,都有一个对应的集合 AiA_i,那么我们称 {Ai}iI\left\{A_i\right\}_{i \in I} 为一个集合族。 本质上,这是一个定义在 II 上的函数 ff,其取值 f(i)=Aif(i) = A_i 是一些集合。这里的 iIAi\bigcup_{i \in I} A_i 构成了这些集合中所有元素的“宇宙”。

我们可以通过索引族来定义更加一般的并集和交集运算。这种推广允许我们处理无限个集合的交并:

iIAi={xiI,xAi}\bigcup_{i \in I} A_i = \left\{x \mid \exists i \in I, \, x \in A_i\right\}

iIAi={xiI,xAi}\bigcap_{i \in I} A_i = \left\{x \mid \forall i \in I, \, x \in A_i\right\}

6.2 选择函数

最后,我们来看一个在现代数学基础中极具争议但又不可或缺的概念。

定义 选择函数(Choice Function):对于一个由非空集合构成的族 F\mathcal{F},一个选择函数 ss 是一个定义在 F\mathcal{F} 上的函数,使得对于每一个集合 XFX \in \mathcal{F},都有 s(X)Xs(X) \in X

通俗地说,选择函数从每一个非空集合中“挑选”出一个代表元素。在有限的情况下,这种挑选是显而易见的,我们可以一个一个列出来。但当我们要同时从无穷多个集合中各挑选出一个元素,而又没有统一的挑选规则时,直觉开始变得模糊。

是否存在这样的选择函数?这就是著名的 选择公理(Axiom of Choice, AC)所断言的内容。选择公理虽然看起来很平凡,但它却是 ZFC 集合论体系的核心组成部分,保证了许多重要数学定理(如每一个非零向量空间都有基)的成立。

结语

本章我们从关系出发,严谨地定义了函数,并探讨了它们的分类、运算以及一些特殊类型的函数。函数不仅是连接不同集合的桥梁,更是我们刻画集合内部结构的精妙工具。通过对单射、满射和双射的研究,我们实际上已经迈出了衡量“无限”的第一步。在接下来的章节中,我们将正式利用双射的概念来定义集合的“势”,从而真正进入康托尔发现的那个奇妙的无限世界。