1.非正式定义
我们在初中阶段就有接触过“函数”的概念,不妨回顾一下初二教科书的定义:
一般地,在一个变化过程中,如果有两个变量\(x\)与\(y\),并且对于\(x\)的每一个确定的值,\(y\)都有唯一确定的值与之对应,那么我们说\(x\)是自变量,\(y\)是\(x\)的函数。如果当\(x=a\)时\(y=b\),那么\(b\)叫做当自变量的值为\(a\)时的函数值。
那么这样的定义是否是严谨的呢?或者说,是否是正确的?我们来思考这样一个函数:
\[y=\frac{1}{x} \]根据上述定义,我们不妨令\(x=0\),则\(y=\frac{1}{0}\),这样的结果显然是未定义的,不满足 对于\(x\)的每一个确定的值,\(y\)都有唯一确定的值与之对应。
因此,我们便得出,\(y=\frac{1}{x}\)不是一个函数。
不过显然,这样的结论是完全错误的。我们在初中阶段也了解过,上述函数是一个反比例函数。那么看来,我们需要对 每一个确定的值 进行更严谨的定义。
2.另一种定义
考虑到上述定义的不严谨,微积分创始人牛顿、莱布尼茨给出了另一种定义。
从集合\(X\)到集合\(Y\)的函数\(f\)是一种对应关系,它将\(X\)中的每一个元素与\(Y\)中的一个元素相匹配。集合\(X\)被称为函数\(f\)的定义域,而集合\(Y\)被称为函数的陪域。
如果函数\(f\)将集合\(Y\)中的元素\(y\)与集合\(X\)中的元素\(x\)相匹配,我们说函数\(f\)把\(x\)映射到\(y\),通常记作\(y=f(x)\)。
通常,函数\(f\)、定义域\(X\)与陪域\(Y\)通常用如下记号表示:\(f:X \to Y\)。
我们还是以\(y=\frac{1}{x}\)为例来理解定义。我们知道,为了使\(\frac{1}{x}\)存在,必须满足\(x \neq 0\)。也就是说,对于任意\(x \neq 0\),都能使其存在。\(x\)可以是\(114514\),\(1919810\),0x3f3f3f3f
,\(10^9 + 7\),……。我们将所有能使其存在的数放在一个集合里,这样的一个集合就是函数\(y=\frac{1}{x}\)的定义域。
至于陪域,它是一个集合,满足一定包含所有的函数值。一般来说,陪域是我们自己定义的,用于限定函数的输出范围,同时也能决定我们定义的关系是否是一个函数。比如考虑到关系\(f(x) = \pm \sqrt{x}\),如果我们的陪域是实数集\(\mathbb{R}\),那么它就不是一个函数,因为对于任意\(x \in X\),都能在陪域中找到两个\(y\)与之对应。比如\(f(9) = 3\)或\(f(9) = -3\)。但是如果我们定义陪域为非负实数集\(\mathbb{R}_{\geq 0}\),那么它就是一个函数。
最后说一下\(f\),它的功能类似C++
中的哈希。我们任意输入一个定义域中的数,它都能在陪域中找到一个唯一的值。此处的\(f\)可以随意替换,但尽量避免与常见的函数冲突。
3. (进阶) 函数的公理化表达
我们刚才的定义并没有说明什么是匹配,函数的第一个严谨定义是基于集合论的,提出于19世纪末。
一个函数由三个集合组成,定义域\(X\),陪域\(Y\)和图\(R\),它们满足以下条件:
- \({\displaystyle R\subseteq \{(x,y)\mid x\in X,y\in Y\}}\)
- \({\displaystyle \forall x\in X,\exists y\in Y,\left(x,y\right)\in R\qquad }\)
- \({\displaystyle (x,y)\in R\land (x,z)\in R\implies y=z\qquad }\)
资料来源:
- 高等数学(第八版,同济大学数学科学院)
- Thomas' Calculus (Fourteenth Edition in Si Units)
- Wikipedia: Function (mathematics)