哑字母:求和里的 k 与积分里的 t
这两个式子的值相同:
$$\sum_{k=1}^{4}k^2=1+4+9+16=30,\qquad\sum_{j=1}^{4}j^2=1+4+9+16=30.$$把 $k$ 换成 $j$,什么也没变。字母在那里只是为了标出计算经过的地方;求和一结束,它就消失了。这样的字母叫作哑字母,或约束字母。它们是未知数的反面:未知数保存一个重要的值;哑字母在运算结束后不保存任何值。
自由与约束
再比较:
$$\sum_{k=1}^{n}k=\frac{n(n+1)}{2}.$$这里有两种性质不同的字母。$k$ 被求和约束:它只存在于 $\Sigma$ 和式子结尾之间,可以换成任何别的字母。$n$ 是自由的:结果依赖于它。把 $n$ 换成 $m$,就成了另一个关于另一个数的论断。
积分里也一样:
$$\int_0^x t\,dt=\frac{x^2}{2}.$$$t$ 被积分约束,$dt$ 标出它的辖域,像一个右括号。$x$ 是自由的:面积取决于积分到哪里。在逻辑的量词里也是这样:
$$\forall x\,(x+0=x)$$$x$ 被 $\forall$ 约束,整句话不依赖任何值:它就是真的。
| 运算符 | 约束字母 | 辖域 |
|---|---|---|
| $\displaystyle\sum_{k=1}^{n}$ | $k$ | 后面的那一项 |
| $\displaystyle\int_a^b\cdots\,dt$ | $t$ | $\int$ 与 $dt$ 之间 |
| $\forall x,\ \exists x$ | $x$ | 后面的公式 |
| $\lim\limits_{h\to0}$ | $h$ | 极限号下的表达式 |
| $\{x\mid x>2\}$ | $x$ | 花括号之内 |
| $x\mapsto x^2$ | $x$ | 函数的规则 |
捕获字母的错误
因为哑字母可以替换,就有一种危险的诱惑:用同一个字母表示两样东西。公式
$$\int_0^x x\,dx$$是一个陷阱。上限的 $x$ 是自由的;积分里面的 $x$ 是约束的。这个式子好像在说“把 $x$ 从 $0$ 积到 $x$”,但分不清哪个 $x$ 是哪个。正确的写法把字母分开:$\int_0^x t\,dt=\frac{x^2}2$。在逻辑和编程中,这个错误有个名字,叫变量捕获,编程语言的编译器会自动给变量改名来避免它。
练习:自由还是约束?
在 $\displaystyle\sum_{k=1}^{m}(k+a)$ 中,哪些字母是自由的?$k$ 被求和约束。$m$ 和 $a$ 是自由的。的确,结果只依赖于它们:$\sum_{k=1}^{m}(k+a)=\frac{m(m+1)}2+ma$。把 $k$ 换成 $j$ 不改变值;把 $a$ 换成 $b$ 则会改变。
练习:改正这个积分
一个学生写了 $\displaystyle F(x)=\int_0^x 3x^2\,dx$。用分开的字母重写并计算。正确的写法是 $F(x)=\int_0^x3t^2\,dt=x^3$。按学生的写法,有人可能因为“外面”的 $x$ 是固定的,就把 $3x^2$ 当成常数,得到 $3x^2\cdot x=3x^3$,这是错的。