首先我们来回忆下高中时候函数的定义. 设 A, B 是两个非空数集, 若按照某种确定
的对应关系 f, 使对集合 A 中的任意一个数 x, 在集合 B 中都有唯一确定的数 f(x) 和它
对应, 那么称 f : A → B 为从集合 A 到集合 B 的一个函数, 并记作
y = f(x), x ∈ A.
我们把 x 叫做自变量, y 的取值范围 A 叫做函数的定义域, 和 x 值对应的 y 值叫做函数值,
函数值的集合 {f(x)|x ∈ A} ⊆ B 叫做函数的值域.
(1) 根据上述关于函数的定义, 我们发现“按照某种确定的对应关系”的表述似乎很模
糊, 那准确的定义是什么呢?
(2) 上述函数的定义, 事先要求 A, B 都是数集, 那对一般的两个集合可否类似的定义
“函数”呢?
带着这些问题我们来讲一般“函数”的定义.
假设 C 和 D 是两个给定的集合.
(1) 一个赋值法则 (rule of assignment) R 是指满足条件
(c, d) ∈ R 和 (c, d′) ∈ R ⇒ d = d′
的 C × D 的子集.
(2) 假设 R 是一个赋值法则. 令其定义域 (domain) 和像域 (image set) 如下
Dom(R) ≡ R 的定义域 := {c ∈ C|存在 d ∈ D 使得 (c, d) ∈ R},
Im(R) ≡ R 的像域 := {d ∈ D|存在 c ∈ C 使得 (c, d) ∈ R}.
一个映射 (mapping) f 是指一个二元对 (R, B), 其中 R 是一个赋值法则, B 是一个集
合 (称为 f 的值域 (range)), 满足 Im(R) ⊆ B.
(1) f 的定义域 ≡ Dom(f) := Dom(R).
(2) f 的像域 ≡ Im(f) := Im(R).
(3) 我们引入记号 (事实上, 这个记号是Euler在 1734 年引入的):
f : A → B, a → f(a),
这里 A 是 f 的定义域, B 是 f 的值域(从而 Im(f) ⊆ B), f(a) 是 B 中满足条件
(a, f(a)) ∈ R 的唯一元素.
(4) f 的图 (graph) 定义为
graph(f) := {(a, b) ∈ A × B|b = f(a)} = {(a, f(a))|a ∈ A} ⊆ A × B.
按照上面的定义, 映射 f 的像域就是高中数学中函数的“值域”, 而这里的值域就是
本小节一开头提到的“集合 B”. 那为什么要引入值域和像域呢?
(1) 高中时候的函数基本上都是可以显示写出来的, 即可以写成 y = f(x) 这样的形式.
(2) 但不是每个函数都可以显示写出来的, 比如 y e^y = x, 这里 x 是自变量而 y 是函数值.
如果 x 的范围是 (−1/4, ∞), 则这个函数关系所确立的函数值 y 肯定落在 R (从而
我们可以把值域取成 R), 这是因为 e^y > 0 对任意实数 y 都成立. 因此值域可以理解
为函数值 y 的一个“粗糙”范围, 而像域则是函数值 y 的“精准”范围. 事实上可以
证明函数关系 y e^y = x, x > −1/4, 所确立的函数值范围是 (−∞, a_1) ∪ (a_2, ∞), 这
里 −∞ < a_1 < −1 < a_2 < 0. 比如当 y = −1 时, x = −1/e < −1/4, 所以 −1 肯定不
在函数值 y 的范围内, 即不在像域内. 实际上, 利用导数性质可以证明对任何 y ∈ R
都有 y e^y ≥ −1/e, 且等号取到当且仅当 y = −1.
(3) 上面这个例子表明, 虽然有时候函数的显示表达式比较难求, 从而导致像域也很难
求, 但是值域有些时候还是比较容易看出来的.
考虑两个映射 f : A → B 和 g : B → C.
(1) 对任意给定的 A 的子集 A0, 定义f 在 A_0 上的限制 ( restriction) 为映射
f|A_0 = f : A_0 → B.
(2) f 和 g 的复合 (composition):
g ◦ f : A → C, a → c,
这里 f(a) = b 和 g(b) = c 对某个 b ∈ B 成立.
显然 g ◦ f 仅当 Im(f) ⊆ Dom(g) 时有定义. 注意到 f ◦ g 和 g ◦ f 一般是不相等, 比如,
f, g : R −→ R, f(x) := 3x^2 2, g(x) := 5x.
则 (f ◦ g)(x) = 75x^2 2 和 (g ◦ f)(x) = 15x^2 10.
给定映射 f : A → B.
(1) f 是单射 (injective) 如果
f(a) = f(a′ ) ⇒ a = a′.
(2) f 是满射 (surjective) 如果
任意 b ∈ B 存在 a ∈ A 满足 f(a) = b.
根据定义, 我们马上可知此时 f 的像域就等于值域 B. 注意到, 上面的 a 可能不唯
一; 比如, 考察满映射 f : R → [0, ∞), x 7→ f(x) = x2, 此时存在两个数 1 和 −1 同
时满足 f(1) = f(−1) = 1.
(3) f 是双射 (bijective) 如果 f 既是单的又是满的. 双射的一个典型例子是 f : N → N∗,
x → f(x) := x 1, 这里 N = {0, 1, 2, · · · } 是全体自然数, 而 N∗ = N \ {0} =
{1, 2, 3 · · · , } 是全体正整数. 乍一看, 我们把自然数集放到了它的真子集中, 感觉有
点不可思议! 这就是有限和无限的区别, 因为我们不肯能找到一个双射从 {0, 1, 2, 3}
到 {1, 2, 3}!
(4) 若 f 是双射, 我们定义其逆映射 (inverse) f ^{−1}: B → A 如下
f ^{−1}(b) = a ⇐⇒ f(a) = b.
我们来详细说明下. 首先因为 f 是满射, 所以对任何 b ∈ B 存在 a ∈ A 满足 f(a) = b.
其次因为 f 是单射, 我们来证明这样的 a 必是唯一的: 否则存在另一个 a′ ∈ A 满足
f(a′ ) = b; 单射条件告诉我们 f(a) = b = f(a′) 必推出 a = a′. 既然 a 是唯一的, 那
么我们定义 f ^{−1}(b) := a. 作为简单练习, 可以验证 f ◦ f ^{−1} = 1_B 和 f ^{-1} ◦ f = 1_A, 对
任何双射 f : A → B 都成立.
(5) 给定映射 f : A → B. 如果存在映射 g : B → A 使得 g ◦ f = 1_A, 即 g(f(a)) = a 对
任何 a ∈ A, 成立, 则 f 必是单射. 事实上, 假如 f(a) = f(a′), 则根据假设条件得到
a = g(f(a)) = g(f(a′ )) = a′.
(6) 给定映射 f : A → B. 如果存在映射 h : B → A 使得 f ◦ h = 1_B, 即 f(h(b)) = b 对
任何 b ∈ B, 成立, 则 f 必是满射. 事实上, 在满射定义中, 我们可以取 a = h(b).
(7) 讲单射、满射或双射, 一定要明确定义域和值域, 即, 一定要明确给出映射 f : A → B
中的三要素: f, A 以及 B. 就算 f 给定, 不同的 A 和 B 会给出不同的结果, 比如
给定映射 f : A → B 和子集 A_0 ⊆ A, B_0 ⊆ B.
(1) A0 在 f 下的像集 (image) ≡ f(A_0) := {f(a)|a ∈ A_0}. 显然 f(A_0) ⊆ B.
(2) B0 在 f 下的原像集 (preimage) ≡ f ^{−1}(B_0) := {a|f(a) ∈ B_0}. 显然 f ^{−1}(B_0) ⊆ A.
特别地, 如果 B = {b}, 则符号 f ^{−1}(b) := f ^{−1}({b}) 一般情形下不再是一个单元素
集; 如果 f 本身是双射, 此时符号 f ^{−1}(b) 与之前的定义一样. 比如考虑映射
f : R → R, x → f(x) = sin x,
则 f ^{−1} (1) = {x ∈ R|sin x = 1} = {x = 2kπ π/2|k ∈ Z}.
(3) 下列包含关系显然成立:
A_0 ⊆ f ^{−1}(f(A_0)), B_0 ⊇ f(f ^{−1}(B_0)).
我们可以找到例子来说明上述包含关系可以严格取到, 即等号不一定成立:
f : R → R, x → 3x2 2
和 A_0 = [0, 1], B_0 = [0, 5]; 则得到
f ^{−1}(f(A_0)) = [−1, 1] ⊋ A_0, f(f ^{−1}(B_0)) = [2, 5] ⊊ B_0.
如果在映射定义中 B 是一个数域, 那么我们把映射称为函数 (function).
,