函数是一台机器
函数是一条规则:你给它一个输入,它就准确地还给你一个输出。想象一台自动售货机:你按下某个数量的按钮,出来的就是对应的价格。日常版本随处可见——你的话费是用了多少流量的函数,抛出的球的高度是松手后经过了多少时间的函数。每一种情况里,一个输入都对应一个确定的输出,绝不会同时给出两个答案。
我们给函数起个名字(通常是 f),并写作 f(x),读作「f 在 x 处的值」,表示输入为 x 时的输出。微积分的核心问题,就是当你滑动输入时这个输出如何移动——这正是变化率所度量的东西。所以现在把函数弄熟绝不是绕远路,而是其余一切赖以站立的地面。
什么能进、什么会出:定义域与值域
每台机器对你能投喂什么都有规矩。定义域是函数允许接受的全部输入;值域是它实际产出的全部输出。这并非吹毛求疵的记账——它要紧,是因为有些运算根本不被允许。你不能除以零,也不能对负数开平方(在实数范围内),所以定义域会悄悄排除掉任何会逼出这两种情况的输入。
现实含义往往把定义域压缩得比代数还窄。n 个苹果的花费公式也许对任何数都讲得通,但只有从 0 开始往上的整数才是现实中的输入——你不会买 -3 个苹果。看图能让你一眼把这两个集合都看清:定义域是曲线投到水平轴上的影子,值域是它投到竖直轴上的影子。
f(x) = 1 / (x - 2) domain: all x except x = 2 g(x) = sqrt(x) domain: x >= 0, range: y >= 0 h(t) = -5*t^2 + 20*t height of a ball; sensible domain 0 <= t <= 4
你会反复遇见的几类函数
你现在还不必精通每一类——只要认得它们的形状就好,因为微积分接下来会问每一类是怎么变化的。这里有几类几乎页页都会碰到:
- 线性函数——f(x) = m*x + b,一条斜率恒为 m 的直线。匀速变化:每件 3 元,毫无意外。
- 多项式——幂的求和,例如 f(x) = x^2 - 4 或 x^3;会弯曲的光滑曲线。上面那条球高规则就是一例。
- 指数函数——f(x) = 2^x 或 e^x;成倍增长的量,比如复利或流传开来的传闻。它们增长得惊人地快。
- 三角函数——sin(x)、cos(x);永远重复的波。任何循环往复的东西——潮汐、声音、秋千——都说这门语言。
两个操作:复合与求逆
把函数串联起来时,它们最有威力。复合函数把一台机器的输出直接喂进另一台:(f o g)(x) 意思是「先做 g,再把结果交给 f」,写作 f(g(x))。次序要紧——先穿袜子再穿鞋,和先穿鞋再穿袜子并不一样。这种嵌套太常见了,以至于微积分专门有一个工具来对它求导(链式法则),这正是我们现在要先和复合交朋友的原因。
另一个操作是「撤销」。反函数记作 f^{-1},它让机器倒着跑:若 f 把摄氏度变成华氏度,f^{-1} 就把华氏度变回摄氏度,于是 f^{-1}(f(x)) = x。反函数只有在原函数从不重复使用某个输出时才存在——每个输出都必须能唯一地追溯回一个输入。在图上,反函数是关于直线 y = x 的镜像。
g(x) = x + 1 f(u) = u^2 (f o g)(x) = f(g(x)) = (x + 1)^2 # compose: do g, then f C_to_F(c) = (9/5)*c + 32 F_to_C(f) = (5/9)*(f - 32) # the inverse undoes it