在数学中,尤其是在微积分中,没有任何其他概念比函数这个概念更基本。1673年,德国数学家和哲学家戈特弗里德·威廉·莱布尼茨(他独立于艾萨克·牛顿发明了微积分)在一封信中首次使用了这个词。从那时起,这个词的含义逐渐得到扩展。
在传统微积分中,函数被定义为两个变量之间的一种关系,它们之所以称为变量是因为它们的值是变化的。假设 x 和 y 为变量,如果 x 的每个值恰好都与 y 的一个值相关联,那么我们就说 y 是 x 的函数。习惯上,用 x 表示 自变量 (independent variable),用 y 表示 因变量 (dependent variable),因为 y 的值取决于 x 的值。
正如汤普森在第3章中所说明的那样,排在英文字母表最后的几个字母传统上用来表示变量,而英文字母表中的其他字母(通常是前几个字母,如 a , b , c ,…)用来表示常数。常数是方程中具有固定值的那些量。例如,在 y = ax + b 中,变量是 x 和 y ,而 a 和 b 是常数。如果 y =2 x +7,则常数为2和7。当 x 和 y 变化时,它们保持不变。
几何函数的一个简单例子是正方形的面积与边长的相关性。在这种情况下,函数称为一对一函数,因为它们之间的依赖关系是双向的。正方形的边长也是面积的函数。
正方形的面积等于边长乘以边长。要将正方形的面积表示为边长的函数,可设 y 为面积, x 为边长,于是就可以写出 y = x 2 。当然,假设 x 和 y 是正的。
正方形的边长与对角线之间的关系是一对一函数的一个稍微复杂一点的例子。正方形的对角线是一个等腰直角三角形的斜边。根据毕达哥拉斯定理
,直角三角形斜边的平方等于两条直角边的平方和。在这种情况下,两条直角边是相等的。要将正方形的对角线表示为其边长的函数,可设
y
为对角线,
x
为边长,然后写出
,或者更简单地写成
。要将边长表示为对角线的函数,可设
y
为边长,
x
为对角线,然后写出
,或者更简单地写成
。
最常见的表示函数的方法是将因变量 y 替换为 f ( x ),这里的 f 是“function”(函数)的首字母。因此, y = f ( x )= x 2 就意味着因变量 y 等于自变量 x 的平方。比如,对于 y =2 x -7,我们现在将其改写成 y = f ( x )=2 x -7。这意味着 y 是 x 的函数,它的值因表达式2 x -7中 x 的值而定。该表达式的这种形式称为 x 的 显 (explicit)函数。如果表达式具有2 x - y -7=0这一等价形式,则它称为 x 的 隐 (implicit)函数,因为这个等式隐含了它的显函数形式。通过重新排列该等式中的各项,可以很容易地从该式中得出显函数形式。除了 f ( x )这个符号之外,我们经常也会使用其他符号。
如果我们希望给定 y = f ( x )=2 x -7这个例子中 x 和 y 的值,则可以将 x 替换为任意值,比如6,于是写出 y = f (6)=2×6-7,从而得出因变量 y 的值为5。
如果因变量是单个自变量的函数,那么这个函数就称为一元函数。我们熟悉的例子(都是一对一函数)有:一个圆的周长或面积与半径的关系、一个球的表面积或体积与半径的关系、一个数的对数与该数的关系。
正弦、余弦、正切和正割称为三角函数。对数给出对数函数。指数函数是指自变量 x 在一个等式中充当指数的函数,如 y =2 x 。当然,还有无数其他已经被命名的更复杂的一元函数。
函数可以依赖多个变量,这就是所谓的多元函数,其中的元数是指自变量的个数。同样,例子不胜枚举。直角三角形的斜边随它的两条直角边而定,这两条直角边不一定相等。(这个函数当然涉及三个变量,但它称为二元函数,因为它有两个自变量。)如果
z
是斜边,
x
和
y
是两条直角边,那么根据毕达哥拉斯定理,我们知道
。注意,这不是一个一对一函数。如果已知
x
和
y
,那么
z
的值就是唯一的,但如果已知
z
,那么
x
和
y
的值并不是唯一的。
二元函数还有另外两个熟悉的例子,其中一个是三角形的面积是其底边和高的函数,另一个是圆柱的表面积是其半径和高的函数,它们都不是一对一函数。
一元函数和二元函数在物理学中无处不在。摆锤的周期是摆长的函数。落石所经过的距离和速度都是下落时间的(一元)函数。大气压是海拔高度的(一元)函数。子弹的动能是一个取决于其质量和速度的二元函数。导线的电阻是一个取决于其长度和圆形横截面直径的二元函数。
函数可以有任意多个自变量。三元函数的一个简单例子是长方体形状的房间的容积,它取决于房间的长、宽和高。四维超长方形的超体积是一个四元函数。
初学微积分的学生必须熟悉如何用笛卡儿坐标系中的一条曲线为一个具有两个变量的等式建立模型。(这个坐标系是以发明它的法国数学家、哲学家勒内·笛卡儿的姓氏命名的。)自变量的值用水平的 x 轴上的点表示,因变量的值用竖直的 y 轴上的点表示。平面上的点表示 x 和 y 构成的有序数对。如果一个函数是线性的,即它的形式为 y = ax + b ,那么表示这些有序数对的图像就是一条直线。如果函数不具有 y = ax + b 形式,那么它的图像就不是一条直线。
图Ⅰ是 y = x 2 在笛卡儿坐标系中的图像,它是一条抛物线。每条坐标轴上的点表示实数(有理数和无理数), x 轴为右正左负, y 轴为上正下负。坐标系的原点(两条坐标轴相交的位置)给出有序数对(0,0)。如果 x 是一个正方形的边长,那么我们假设它既不是零也不是负数,因此相关的曲线就只是该抛物线的右半边。假设这个正方形的边长为3,有一个点从 x 轴上的3所对应的位置竖直向上移动到该曲线上,然后水平向左移动到 y 轴上,你就会发现3的平方是9。(我向读者致歉,因为这些都是老掉牙的知识。)
图Ⅰ y = x 2 或 f ( x )= x 2 (注意两条坐标轴上的刻度是不同的)
如果一个函数涉及三个自变量
,那么它在坐标系中的图像就必须扩展到一个具有
x
轴、
y
轴和
z
轴的三维空间中。我曾经听说过一位教授(我已经不记得他的名字了)喜欢用一种夸张的方式向学生展示这个空间,他一边沿左右方向来回奔跑一边大喊“这是
x
轴”,然后一边在中间的过道上沿前后方向来回奔跑一边大喊“这是
y
轴”,最后一边向上跳跃一边大喊“这是
z
轴”。具有三个以上变量的函数需要一个具有三条以上坐标轴的笛卡儿坐标系。不幸的是,这位教授不能通过奔跑和跳跃来夸张地展示超过三维的坐标系。
注意图Ⅰ中标注的“定义域”(domain)和“值域”(range)。近几十年来,使函数的定义一般化已经成为一种时尚。自变量的取值范围称为函数的定义域,因变量的取值范围称为函数的 值域 。在笛卡儿坐标系中,定义域由横轴( x 轴)上的数组成,值域由纵轴( y 轴)上的数组成。
定义域和值域可以是无限集,比如实数集或整数集;或者其中任意一个可以是有限集,比如实数的一部分。例如,温度计上的数表示实数的一个有限区间。如果用温度计测量水温,那么相应的读数位于水结冰的温度和沸腾的温度之间的那个区间。在这里,水银柱的高度相对于水温是一个单自变量的一对一函数。
在现代集合论中,我们不是用方程,而是用一组规则来描述函数。定义函数的这种方法可以推广到完全任意的数集。指定这些规则的最简单的方法是用一张一览表来表示。例如,在图Ⅱ中,左边的8个数构成了某函数的定义域,而与其对应的右边的4个数构成了值域,支配此函数的规则由箭头表示。这些箭头表明了定义域中的每个数都与值域中的单个数相对应。正如你所看到的,左边的多个数可以指向右边的同一个数,反之则不然。这种函数的另一个例子及其图像如图Ⅲ所示,它的定义域由平面上的6个孤立点组成。
图Ⅱ 用集合和映射定义的函数
图Ⅲ 一个整数离散变量函数和它的图像
因为左边的每个数都恰好指向右边的一个数,所以我们可以说右边的这些数是左边的这些数的函数。可以将右边的这些数称为左边的这些数的“像”。这些箭头称为从定义域到值域的一个“映射”。也可以说这些箭头定义了函数的“对应规则”。
对于在微积分中遇到的大多数函数,其定义域由单个实数区间组成。定义域可能是整个
x
轴,比如函数
y
=
x
2
所表明的情况;也可能是一个有界的区间,比如
y
=arcsin
x
的定义域由所有满足-1≤
x
≤1的
x
值组成;还可能在一侧有界,而在另一侧无界,比如
的定义域包含了所有满足
x
≥0的
x
值。如果可以在不从纸上提起笔的情况下画出函数的图像,那么我们将这样的函数称为“连续的”,否则就称其为“不连续的”。(对于具有更复杂的定义域的函数,连续性的完整定义也是完全适用的,但这超出了本书的范围。)
例如,刚才提到的三个函数都是连续的。图Ⅳ给出了一个不连续函数的例子,它的定义域由所有实数组成,但它的图像由无穷多段彼此不相连的部分构成。在本书中,我们将几乎只关注连续函数。
图Ⅳ 这个函数称为取整函数,因为它将( x 轴上的)每个实数映射到 y 轴上等于或小于该实数的最大整数
注意,如果垂直于 x 轴的一条直线多次与一条曲线相交,那么这条曲线就不能表示一个函数,因为它将 x 轴上的一个数映射到 y 轴上的多个数。图Ⅴ中的曲线显然不是一个函数的图像,因为垂直于 x 轴的虚线与它相交于三个点。(应该注意的是,汤普森并没有使用“函数”这一现代定义。例如,第11章的图30中的曲线未能通过这样的检验,但汤普森仍认为它是一个函数的图像。)
图Ⅴ 一个例子:图中的曲线不代表函数
在函数的这种一般化的定义中,一个一元函数就是任意有序数对的一个集合,它使一个集合中的每一个数 x 都恰好与另一个集合中的一个数 y 配对。换言之,在这些有序数对中, x 的取值不能重复,但 y 的取值可以重复。
从这个广义的角度来看待函数,保险箱的组合密码或打开一扇门所需按下的按钮序列都是自然数的函数。要打开一个保险箱,必须把旋钮来回转动到一组随机整数。比如,如果保险箱的组合密码是2-19-3-2-19,那么这些数就是1,2,3,4,5的一个函数。它们代表为了打开保险箱必须按顺序输入的数。类似地,一把开启弹子锁的钥匙上的那些小小的“峰”的高度是这把钥匙长度方向上的位置的一个函数。
近年来,数学家进一步拓宽了函数的概念,使其包括了那些非数的东西。事实上,它们完全可以是任何东西,只要这些东西是一个集合中的元素。函数只不过是一个集合中的每个元素与另一个集合中的一个元素的相关性。这导致“函数”这个词产生了各种各样看起来很荒谬的用法。如果史密斯的头发是红色的,琼斯的头发是黑色的,而鲁宾逊的头发是白色的,那么头发的颜色就是这三个人的函数。各个城镇在地图上的位置是它们在地球上的位置的函数。在一个正常的家庭中,脚趾的总数是家庭成员数的函数。不同的人可以有同一个母亲,但没有一个人会有一个以上的母亲,这使得人们可以说母亲是人的一个函数。正如一位数学家最近所说的,函数已经被推广到了“上天入地”的程度。
有一种方法可以帮助我们理解以这种一般化的方式定义的函数,那就是想象一个有输入口和输出口的黑匣子。一个定义域中的任何元素,无论它是数还是其他东西,都会被放入这个黑匣子。输出口将出现值域中的单个元素。这个黑匣子里的机械装置通过使用控制函数的任何对应规则,神奇地提供了相关性。在微积分中,输入和输出几乎总是实数,而黑匣子中的机械装置则根据等式提供的规则运行。
由于函数的这种一般化的定义会导致一些怪诞的极端情况,现今的许多教育工作者,尤其是那些具有工程背景的教育工作者,都认为向初学微积分的学生介绍如此宽泛的函数定义既会造成困惑,也没有必要。然而,越来越多的现代微积分教科书在用大量篇幅介绍这种一般化的定义。这些教科书的作者认为,将函数定义为从一个任意集合到另一个任意集合的映射是一个强大的、统一的概念,应该教给所有学习微积分的学生。
反对这种做法的那些人则认为微积分不应该涉及脚趾、城镇和母亲。它的定义域和值域应该一如既往地局限于实数,而其函数描述了连续的变化。
一个值得庆幸而令人惊讶的事实是,变幻莫测的奇妙宇宙的各条基本定律都建立在一些相对简单的方程之上。如果不是这样的话,我们对宇宙运作方式的了解肯定会比现在少,牛顿和莱布尼茨可能永远不会发明(或发现?)微积分。