如果说数、式与变量让我们学会表示数量关系,那么集合、关系、映射与函数则进一步让我们学会描述对象范围、对应规则和输入输出结构。

集合用来描述“对象属于哪里”,关系用来描述“对象之间有没有联系”,映射和函数则用来描述“输入如何唯一对应到输出”。其中,函数更强调输入、规则与输出之间的确定关系。

一、集合的基本思想

1、元素与集合

集合(Set)是由一些确定的、可判定是否属于其中的对象组成的整体。集合中的每个对象称为元素(Element)。

例如,可以把几个数字放在一个集合中:

这里,A 是集合,1、2、3、4 是 A 中的元素。如果某个元素属于集合 A,可以写成:

如果某个元素不属于集合 A,可以写成:

集合关注的是“哪些对象在里面”,而不是这些对象按什么顺序排列。因此:

在集合中,元素通常也不重复计算。例如:

也就是说,集合更关心“成员是什么”,而不是“出现了几次”或“排在什么位置”。

2、有限集与无限集

如果一个集合中元素的个数有限,称为有限集(Finite Set)。例如:

这个集合有 4 个元素。

如果一个集合中元素无限多,称为无限集(Infinite Set)。例如,自然数集合可以写成:

实数集合通常记作:

它包含数轴上所有实数。

有限集容易逐个列举元素,无限集不能用有限长度全部列完,通常需要借助规则、符号或条件描述。

例如,所有大于 0 的实数可以写成:

0\} \end{aligned} $$" helvetica neue", "pingfang sc", "hiragino sans gb", "microsoft yahei ui", yahei", arial, sans-serif;font-size: 16px;line-height: 1.75;max-width: 100%;overflow-x: auto;padding: 0.5em 0px;text-align: center;color: rgb(51, 51, 51);margin-top: 0px !important;margin-bottom: 0px;">

这个式子的意思是:所有属于实数集合,并且满足 x > 0 的 x。

3、子集、交集、并集与补集

如果集合 A 中的每个元素也都属于集合 B,就称 A 是 B 的子集(Subset),记作:

例如:

则:

两个集合共有的元素组成交集(Intersection):

例如:

则:

两个集合合在一起组成并集(Union):

对于上面的 A 和 B,有:

如果先规定一个全集 U,那么不属于 A 的元素组成 A 的补集(Complement):

例如:

则:

打开网易新闻 查看精彩图片

图 1:子集、交集、并集与补集的关系

集合运算的意义在于:它可以清楚表达对象之间的包含、重叠、合并和排除关系。

4、集合语言为什么是现代数学的基础

集合语言可以统一描述许多数学对象。

数可以组成集合,点可以组成集合,函数的输入也可以来自集合。比如:

表示 x 是一个实数。

如果写:

则表示 x 只能取 0 或 1。

集合让数学表达更加精确。它不只是在列对象,更是在规定:哪些对象允许出现,哪些对象不在讨论范围内。

5、笛卡尔积:从元素到有序组合

前面讨论集合时,主要关注“哪些元素属于某个集合”。

例如:

它说明 1、2、3 属于集合 A。

但在很多数学问题中,只知道单个元素还不够,还需要把多个元素按顺序组合起来。

例如,平面上的一个点不能只用一个数表示。点的位置通常需要两个数:

这里,x 表示横坐标,y 表示纵坐标。这个二元组合不是简单地把两个数放在一起,而是强调“第一个数有第一个位置的含义,第二个数有第二个位置的含义”。

例如:

因为前者表示横坐标为 2、纵坐标为 5;后者表示横坐标为 5、纵坐标为 2。两个数相同,但顺序不同,表示的位置也不同。

这种按顺序排列的组合,称为有序对(Ordered Pair)。

如果有两个集合 A 和 B,从 A 中取一个元素 a,从 B 中取一个元素 b,组成有序对:

所有这样的有序对组成的集合,称为 A 与 B 的笛卡尔积(Cartesian Product),记作:

可以写成:

这个式子的意思是:A × B 中的每个元素,都是一个有序对;有序对的第一个位置来自 A,第二个位置来自 B。

打开网易新闻 查看精彩图片

图 2:笛卡尔积与有序对

例如:

那么:

可以看到,A 中的每个元素都要分别和 B 中的每个元素组合一次。

如果反过来计算:

则得到:

一般情况下:

因为有序对中的位置不同,含义也不同。

笛卡尔积最重要的直觉,是把“单个元素”扩展为“有序组合”。

例如,实数集合为:

那么:

表示所有由两个实数组成的有序对:

这个集合也常写成:

它可以理解为整个二维平面。也就是说,平面上的每一个点,都可以看成:

从函数角度看,函数图像也可以用笛卡尔积来理解。

如果函数为:

那么每一个输入 x 和对应输出 f(x),可以组成一个有序对:

函数图像就是所有这类有序对组成的集合:

其中,D 表示函数的定义域。

这个式子的意思是:只要 x 是允许输入,就把 x 和它对应的输出 f(x) 配成一个点。所有这样的点放在坐标平面中,就形成函数图像。

在数据分析和机器学习中,笛卡尔积也有非常基础的意义。

一个样本往往不是只有一个数,而是由多个特征组成。例如,一个房屋样本可以写成:

面 积 房 龄 楼 层

这也是一种有序组合。第一个位置表示面积,第二个位置表示房龄,第三个位置表示楼层。顺序不同,含义也会改变。

如果把三个特征分别记为:

那么一个样本可以写成:

更一般地,n 个特征可以组成:

这就是后面学习向量和特征空间时会不断遇到的形式。

因此,笛卡尔积并不是一个孤立的集合运算。它把集合中的元素组织成有序组合,使我们能够描述坐标点、函数图像、输入输出对以及多特征样本。理解笛卡尔积,有助于把“一个数”自然过渡到“一个点”“一个样本”和“一个输入向量”。

二、关系、映射与函数

关系(Relation)描述对象之间是否存在某种联系。

例如,一个学生可以选择某门课程,一个用户可以购买某件商品,一个样本可以属于某个类别。这些都可以看成对象之间的关系。

如果有两个集合 A 和 B,那么从 A 到 B 的关系,可以看成笛卡尔积 A × B 的一个子集。

例如:

小 明 小 红

数 学 英 语

如果小明选择数学,小红选择英语,可以写成关系集合:

小 明 数 学 小 红 英 语

这里,每一个有序对都表示一种对应关系。

关系比函数更宽泛。它只说明对象之间存在某种联系,不一定要求每个对象都有对应结果,也不一定要求对应结果唯一。

1、从关系到映射

映射(Mapping)描述一个集合中的对象如何对应到另一个集合中的对象。

在严格数学语境中,映射通常要求:定义域中的每个元素都有且只有一个对应输出。因此,映射与函数在很多教材中基本同义。

假设有两个集合:

如果规定:

这就是从 A 到 B 的一种映射。可以把它理解为:A 中的每个输入对象,按照某种规则,对应到 B 中的一个输出对象。

2、输入与输出

映射的核心是输入与输出。

如果输入是 x,输出是 y,可以写成:

例如,规则“乘以 2”可以写成:

当 x = 3 时:

当 x = 5 时:

映射强调的是:按照某种规则,把输入对象唯一地对应到输出对象。

3、一对一与多对一

在通常意义上的函数中,每个输入只能对应一个输出。但不同输入之间,可以有不同的对应形态。

一对一表示不同输入对应不同输出。例如:

这里,每个输入不同,输出也不同。严格地说,这种“不同输入对应不同输出”的函数称为单射(Injective Function)。

多对一表示多个不同输入可以对应同一个输出。例如:

这类似于平方关系:

因为 -2 和 2 的平方都等于 4。

多对一仍然可以是函数。原因是:虽然不同输入可以得到相同输出,但每个具体输入仍然只有一个确定输出。

打开网易新闻 查看精彩图片

图 3:一对一、多对一与一对多的对应关系

4、一对多为什么通常不是函数

一对多表示一个输入对应多个输出。

例如:

这类似于“求平方根”的关系。因为 2 和 -2 的平方都等于 4,所以 4 的平方根可以是 2,也可以是 -2。

但是,通常意义上的函数要求每个输入只能有一个确定输出。如果同一个输入对应多个输出,就不能直接看作函数。

如果只取非负平方根,可以写成函数:

此时:

输出唯一。

如果要表示负平方根,也可以另设一个函数:

此时:

这样,每个函数内部都保持“一个输入对应一个输出”。

5、关系、映射与函数的区别

关系、映射和函数都可以描述对象之间的对应,但严格程度不同。

关系最宽泛。它只说明对象之间存在某种联系,可以不覆盖所有输入,也可以允许一个输入对应多个输出。

映射通常要求定义域中的每个元素都有唯一对应输出。在很多数学语境中,映射与函数基本同义。

在本文的基础学习语境中,可以把函数理解为一种强调输入、输出和计算规则的映射,尤其常用于数值变量、函数图像、模型预测和优化问题。

因此,可以这样理解:

关系回答的是:对象之间有没有联系。

映射回答的是:定义域中的对象如何唯一对应到另一个集合中的对象。

函数侧重强调:输入经过确定规则产生唯一输出。

在后续学习中,机器学习模型通常可以理解为函数:输入数据,输出预测结果。训练模型的过程,就是根据数据调整这个函数中的参数,使输入输出关系更加符合目标。

三、函数的基本概念

1、函数是确定的输入输出规则

函数(Function)可以理解为满足“每个输入都有唯一输出”的对应规则。它把定义域中的每个输入,按照确定规则,对应到唯一输出。可以写成:

这表示函数 f 把集合 A 中的元素映射到集合 B 中。如果 x 属于 A,那么 f(x) 是它对应的输出:

例如:

当 x = 3 时:

这里,3 是输入,7 是输出。

2、定义域

定义域(Domain)是函数允许输入的集合。

例如:

如果只在实数范围内讨论,x 不能小于 0。因此,定义域可以写成:

定义域非常重要。因为同一个公式,如果定义域不同,表示的函数也可能不同。

例如:

如果定义域是全体实数,它不是一对一的;如果定义域限制为 x ≥ 0,它就变成一对一。

3、陪域与值域

在函数:

中,A 是定义域,B 称为陪域(Codomain),表示函数输出被规定落入的集合。

值域(Range)是函数实际能够输出的值组成的集合。值域一定是陪域的子集,但不一定等于陪域。

打开网易新闻 查看精彩图片

图 4:定义域、陪域与值域的关系

例如:

表示函数从实数到实数。但如果:

那么它的实际输出只覆盖非负实数。因此,它的值域是:

这个例子说明:函数被规定输出到实数集合中,但实际输出并没有覆盖所有实数。

4、函数值

函数值(Function Value)是函数在某个输入处的输出。

例如:

当 x = 4 时:

这里,f 是函数,f(4) 是函数值。

函数本身是一条规则,函数值是这条规则在某个输入处得到的结果。把 f 和 f(4) 区分开,是理解后续模型、损失函数和优化问题的重要基础。

四、函数记号与输入输出关系

1、y = f(x) 的含义

函数关系常写成:

这表示:输出 y 由输入 x 经过规则 f 得到。

函数记号的意义在于:它把“输入”“规则”和“输出”清楚地区分开来。

2、x、f、y 分别表示什么

在 y = f(x) 中,x、f、y 扮演不同角色。

x是输入变量,表示可以代入函数的对象。

f是函数规则,说明输入如何被处理。

y是输出变量,表示经过函数规则后得到的结果。

例如:

也可以写成:

这里,x 是输入,规则是“乘以 2 再加 1”,y 或 f(x) 是输出。

需要特别注意,f 不是一个具体数值,而是完整的规则;f(x) 才是规则作用在输入 x 上得到的结果;y 通常用来表示这个输出结果。

3、函数图像中的对应关系

函数图像可以把输入输出关系画出来。

对于函数:

每一个输入 x 都对应一个输出 y。

例如:

这些输入输出对可以写成点:

把这些点放在坐标系中,就能看到函数图像。

打开网易新闻 查看精彩图片

图 5:函数图像中的输入与输出对应关系

从集合角度看,函数图像就是所有输入输出有序对组成的集合。

五、函数的基本性质

1、单调性

单调性(Monotonicity)描述函数值随着输入增加而如何变化。

打开网易新闻 查看精彩图片

图 6:函数的单调性

如果 x 增大时,函数值也随之增大,就称函数具有递增趋势。

例如:

当 x 增大时,f(x) 也增大。这个函数是递增的。

更准确地说,单调性通常在某个区间上讨论。

如果在区间 I 内,对任意 x₁、x₂ ∈ I,当 x₁ < x₂ 时,总有 f(x₁) ≤ f(x₂),就称函数在区间 I 上单调不减,也常称为广义的单调递增。

写成公式就是:

如果进一步总有 f(x₁) < f(x₂),则称函数在区间 I 上严格递增:

二者的区别在于:单调不减允许函数值保持不变,严格递增则要求函数值必须变大。

相反,如果 x 增大时,函数值减小,就称函数具有递减趋势。

例如:

当 x 从 1 增加到 2 时:

输出反而变小。

单调性帮助我们理解函数图像的整体方向:是向上走、向下走,还是有时上升、有时下降。

2、奇偶性

奇偶性(Parity)描述函数图像的对称性。

打开网易新闻 查看精彩图片

图 7:函数的奇偶性

如果函数满足:

就称它是偶函数(Even Function)。

例如:

因为:

所以 x² 是偶函数。偶函数的图像关于 y 轴对称。

如果函数满足:

就称它是奇函数(Odd Function)。

例如:

因为:

所以 x³ 是奇函数。奇函数的图像关于原点对称。

需要注意,不是所有函数都有奇偶性。例如:

一般既不是奇函数,也不是偶函数。

讨论奇偶性时,通常要求函数的定义域关于 0 对称。否则,比较 f(x) 和 f(-x) 就可能没有意义。

奇偶性让我们从“计算函数值”进一步看到函数图像的结构之美:有些函数虽然输入正负不同,但输出表现出清晰的对称规律。

3、反函数初步

反函数(Inverse Function)描述“能否从输出反过来找回输入”。

打开网易新闻 查看精彩图片

图 8:反函数与关于 y = x 的对称关系

若函数 f 在定义域 D 与值域 V 之间形成一一对应,那么可以定义反函数:

它把原函数的输出重新对应回原来的输入。

例如:

如果知道:

想从 y 反推 x,可以移项:

所以:

这说明,对于函数 f(x) = 2x + 1,如果输出是 y,那么原来的输入是:

因此,它的反函数可以写成:

有时也写成:

这里的 x 只是反函数中的输入变量。

需要注意:

表示反函数,不表示:

二者含义完全不同。

并不是所有函数在原定义域上都有反函数。只有当输出能够唯一确定输入时,才可以在相应范围内定义反函数。

例如:

如果输出是 4,输入可能是 2,也可能是 -2。因此,在全体实数范围内,x² 没有通常意义上的反函数。

但如果把定义域限制为 x ≥ 0,那么:

就可以反过来得到:

这说明,反函数与定义域密切相关。

4、复合函数初步

复合函数(Composite Function)描述“一个函数的输出作为另一个函数的输入”。

假设有两个函数:

如果先用 g 处理 x,再把结果交给 f,就得到 f(g(x))。

先计算:

再代入 f:

这就是一个复合函数。

打开网易新闻 查看精彩图片

图 9:简单复合函数示意

复合函数的顺序很重要。如果反过来,先计算 f(x),再交给 g,就得到:

一般来说:

例如,当 x = 2 时:

而:

二者结果不同。

复合函数很重要。因为许多复杂模型都可以理解为多个简单函数逐层组合起来的结果。输入先经过第一层规则,再经过第二层规则,最后得到输出。

从这个角度看,复合函数是理解计算图、神经网络和多层模型的重要基础。

六、多变量函数初步

1、一个输出可以依赖多个输入

前面看到的函数通常只有一个输入 y = f(x)。但在很多问题中,一个输出会同时依赖多个输入。

例如,一个房屋价格可能同时与面积、地段、楼层、房龄有关。

如果只考虑面积 x₁ 和房龄 x₂,可以写成:

这里,输出 y 由两个输入共同决定。

2、从 y = f(x) 到 z = f(x, y)

单变量函数可以写成:

其中,一个输入对应一个输出。

多变量函数可以写成:

这里,x 和 y 是两个输入变量,z 是输出变量。

例如:

当 x = 1,y = 2 时:

多变量函数把“一个输入影响一个输出”扩展为“多个输入共同影响一个输出”。

3、多变量函数的图像直觉

单变量函数 y = f(x) 的图像通常是一条曲线。多变量函数 z = f(x, y) 的图像可以理解为一个曲面。

例如:

当 x 和 y 离原点越远时,z 越大。这个函数的图像像一个向上打开的碗。

打开网易新闻 查看精彩图片

图 10:多变量函数 z = x² + y² 的曲面直觉

多变量函数不一定都容易画出来。输入变量越多,就越难直接可视化,但它仍然表示输入与输出之间的规则。

4、多变量函数在数据分析中的基础地位

多变量函数是数据分析和机器学习中的基本形式。一个样本通常由多个特征组成:

模型可以看成把这些输入特征映射为预测结果的函数:

打开网易新闻 查看精彩图片

图 11:多变量函数从多个输入到一个输出

这说明,多变量函数把“多个因素共同决定一个结果”的关系形式化,是理解特征空间、回归模型和神经网络输入结构的基础。

七、Python 示例:用函数表示输入输出关系

1、定义简单函数

在 Python 中,可以用 def 定义函数。

下面定义一个简单函数:

    

它对应数学函数:

这里,x 是输入,return 后面的表达式给出输出。

2、计算函数值

调用函数时,需要给它一个具体输入。

输出为:

5

对应数学计算:

函数本身是 f,函数值是 f(0)、f(1)、f(2)。

3、绘制输入与输出的对应关系

下面用 Python 绘制函数:

这段代码体现了一个基本过程:先给定输入 x,再按照函数规则计算 y,最后把输入输出关系画出来。

这正是函数思想在程序中的直接体现。

4、观察简单复合函数的输入输出变化

下面用 Python 观察复合函数的计算过程。

先定义两个函数:

    

如果先计算 g(x),再计算 f(g(x)),可以写成:

    

可以计算几个输入对应的输出:

    

这段代码的含义是:每个 x 先经过 g,得到 x²;再经过 f,得到 2x² + 1。

也可以比较函数复合顺序的影响:

    

它们的计算顺序不同,结果通常也不同。

这说明,复合函数不仅关心“有哪些函数”,还关心“函数按照什么顺序连接起来”。

八、常见误解

1、把函数只理解成简单公式

函数不一定必须写成简单公式。它可以由公式、表格、程序、算法或复杂规则给出。

关键不在于形式是否简单,而在于:每个允许输入是否有唯一确定的输出。

例如,天气预测函数、图像识别函数、推荐系统评分函数,可能没有简洁表达式,但仍可以从函数角度理解:输入某些信息,输出某个结果。

2、把函数值和函数本身混淆

函数本身是规则,函数值是结果。

例如:

表示一条完整规则。

而:

只是这个规则在 x = 2 时得到的结果。不能把 f 和 f(2) 当成同一类对象。

3、不理解定义域的重要性

定义域决定了哪些输入是允许的。

例如:

在实数范围内,x 不能取 0。

如果忽视定义域,就可能把没有意义的输入代入函数。因此,理解函数时不能只看公式,还要看定义域。

4、把一对多关系误认为函数

判断一个对应关系是不是通常意义上的函数,关键要看:每个允许输入是否只有一个确定输出。

“4 对应 2 和 -2”属于平方根关系,不是函数;如果规定只取非负平方根,就得到函数 f(x) = √x。

小结

集合规定对象范围,笛卡尔积形成有序组合,关系描述对象联系,映射与函数描述唯一对应。理解定义域、值域、函数性质与复合思想,是学习模型预测和输入输出映射的基础。

“点赞有美意,赞赏是鼓励”