圆、椭圆和双曲线的切线公式里,有一个很容易观察到的规律:把平方项中的一个变量换成切点的坐标,二次方程就变成了切线方程。但为什么这样换恰好有效?抛物线里还有一次项,一般二次曲线里还有交叉项,它们又该怎么处理?我想从圆开始,一步步把这个规律推出来。

一、从圆的切线开始

设点 $P=(x_0,y_0)$ 在圆

$$ x^2+y^2=r^2,\qquad r>0 $$

上。圆在该点的切线方程是

$$ \boxed{x_0x+y_0y=r^2}. $$

这个结论可以用向量证明。设圆心为原点 $O$,切线上任取一点 $Q=(x,y)$。半径 $OP$ 垂直于切线,因此

$$ \overrightarrow{OP}\cdot\overrightarrow{PQ}=0. $$

展开便是

$$ x_0(x-x_0)+y_0(y-y_0)=0. $$

又因为切点在圆上,所以

$$ x_0x+y_0y=x_0^2+y_0^2=r^2. $$

反过来,这个方程表示一条经过切点、垂直于半径的直线,正是所求的切线。

从形式上看,我们似乎只是把 $x^2$ 换成了 $x_0x$,把 $y^2$ 换成了 $y_0y$。

二、换成椭圆,怎样验证这个猜想?

考虑椭圆

$$ \frac{x^2}{a^2}+\frac{y^2}{b^2}=1,\qquad a,b>0. $$

如果 $P=(x_0,y_0)$ 在椭圆上,模仿圆的写法,可以猜测切线是

$$ \boxed{\frac{x_0x}{a^2}+\frac{y_0y}{b^2}=1}. $$

这条直线经过切点是显然的。接下来只需证明:它的方向与椭圆在该点的切线方向相同。

椭圆的中心到切点的连线通常不垂直于切线,因此圆中直接使用半径的论证不能原样照搬。也可以先把椭圆伸缩成圆,不过这次我想从方程本身看清替换的原因。

直接把椭圆写成一个显函数再求导,会引入平方根和正负分支。我们可以保持原方程的对称形式,先考察邻近两点的坐标差。

设另一个点 $(x_0+\Delta x,y_0+\Delta y)$ 也在椭圆上,则

$$ \frac{(x_0+\Delta x)^2}{a^2} +\frac{(y_0+\Delta y)^2}{b^2}=1. $$

减去切点满足的方程,得到精确等式

$$ \begin{aligned} \frac{2x_0}{a^2}\Delta x+\frac{2y_0}{b^2}\Delta y &=-\frac{(\Delta x)^2}{a^2} -\frac{(\Delta y)^2}{b^2}. \end{aligned} $$

直观上,右边的二次项比位移更快地趋于零,因此切线方向由左边的一阶项决定。但这里不能直接把二次项删掉,然后仍把所得等式当作有限坐标差满足的精确等式。

为了看清极限,令位移长度为

$$ \rho=\sqrt{(\Delta x)^2+(\Delta y)^2}. $$

将两边除以非零的位移长度:

$$ \begin{aligned} \frac{2x_0}{a^2}\frac{\Delta x}{\rho} +\frac{2y_0}{b^2}\frac{\Delta y}{\rho} &=-\frac{1}{\rho}\left( \frac{(\Delta x)^2}{a^2} +\frac{(\Delta y)^2}{b^2}\right). \end{aligned} $$

括号内的量不超过 $\max(a^{-2},b^{-2})\rho^2$,因此右边的绝对值不超过 $\max(a^{-2},b^{-2})\rho$,确实趋于零。

左边的 $\Delta x/\rho$ 和 $\Delta y/\rho$ 是割线单位方向的两个分量。若它们沿趋近方向分别趋于 $u$ 和 $v$,就得到

$$ \frac{2x_0}{a^2}u+\frac{2y_0}{b^2}v=0. $$

椭圆是光滑的,而且这两个系数不会同时为零,所以这个条件确定了切线的方向。

使用微分记号,同一方向条件可写为

$$ \frac{2x_0}{a^2}\,dx+\frac{2y_0}{b^2}\,dy=0. $$

这里的 $dx$、$dy$ 表示切向的一阶变化,与前面的有限坐标差作区分。微分提取的是一阶部分,例如

$$ \Delta(x^2)=2x\Delta x+(\Delta x)^2, \qquad d(x^2)=2x\,dx. $$

再看猜测的直线。它的方向条件是

$$ \frac{x_0}{a^2}\,dx+\frac{y_0}{b^2}\,dy=0. $$

把这个等式整体乘以二,就得到椭圆的切线方向条件。两者的方向相同,又经过同一个点,所以猜测成立。

这里没有除以 $dx$,因此竖直切线也包括在内。例如,在 $(a,0)$ 处,方向条件给出 $dx=0$,切线方程则直接给出 $x=a$。谈“切线方向相同”,比一概说“导数相同”更完整。

三、微分同时减半,为什么方向不变?

上面的两个关系相同,不是巧合。

固定切点,在 $x=x_0$ 处比较原来的平方项与替换后的一次项:

$$ \left.d(x^2)\right|_{x=x_0}=2x_0\,dx, \qquad d(x_0x)=x_0\,dx. $$

它们在切点处的值相同,而后一项的微分是前一项的一半。纵坐标方向完全一样:

$$ \left.d(y^2)\right|_{y=y_0}=2y_0\,dy, \qquad d(y_0y)=y_0\,dy. $$

因此,在切点处,原来的关系

$$ \frac{d(x^2)}{a^2}=-\frac{d(y^2)}{b^2} $$

等价于

$$ \frac{d(x_0x)}{a^2}=-\frac{d(y_0y)}{b^2}. $$

关键是:这里始终使用同一组 $dx$ 和 $dy$,改变的是它们前面的系数。 不是先把自变量的变化量减半,再计算比值;而是整个一阶零等式乘上了同一个非零常数,所以满足等式的方向不变。

这样,替换同时完成了三件事:保持切点处的值,把二次式降成一次式,让切线方向不变。

四、双曲线同理,抛物线的一次项怎么办?

对于双曲线

$$ \frac{x^2}{a^2}-\frac{y^2}{b^2}=1,\qquad a,b>0, $$

负号不会影响“整个微分同时减半”的论证。因此,它在曲线上一点 $(x_0,y_0)$ 处的切线是

$$ \boxed{\frac{x_0x}{a^2}-\frac{y_0y}{b^2}=1}. $$

但抛物线

$$ y^2=2px,\qquad p\ne0 $$

右边没有平方项,应该怎么换?

沿用刚才的思路,先把左边的 $y^2$ 换成 $y_0y$。在切点处,左边的微分减半了。右边就需要换成一个一次函数 $h(x)$,同时满足

$$ h(x_0)=2px_0, \qquad h'(x_0)=p. $$

第二个条件让微分减半,第一个条件让切点处的值不变。由于一次函数的斜率已经确定,只需补上适当的常数:

$$ h(x)=px+px_0=p(x+x_0). $$

于是切线方程就是

$$ \boxed{y_0y=p(x+x_0)}. $$

代入切点,等式成立;比较一阶方向条件,又有

$$ 2y_0\,dy=2p\,dx \quad\Longleftrightarrow\quad y_0\,dy=p\,dx. $$

两条要求都满足了。

一次项怎样配合二次项?

把一次项 $x$ 换成

$$ \lambda x+(1-\lambda)x_0 $$

后,它在切点处的值仍然是 $x_0$,微分则变成原来的 $\lambda$ 倍。取 $\lambda=1/2$,就得到

$$ x\longmapsto\frac{x+x_0}{2}. $$

这解释了抛物线中常数补偿项的来源:为了配合平方项的替换,一次项也要把微分减半,同时保持切点处的值。

不过,这是一种简洁的选择,并不是唯一可能的降次方法。我最初尝试

$$ nx^2+(1-n)x_0x $$

时,发现只有取 $n=0$ 才能消去二次项。但这个结论只针对这一种构造,不能说明所有降次方法都必须让微分减半。例如

$$ x^2\longmapsto 2x_0x-x_0^2 $$

也保持切点处的值,而且保留了原来的微分。选择 $x_0x$ 的好处,是表达式更简洁,并且各项可以统一按“微分减半”的规则处理。

五、一般二次曲线中的交叉项

现在考虑一般方程

$$ Ax^2+By^2+Cxy+Dx+Ey+F=0. $$

这里的各项系数都是常数,切点 $P=(x_0,y_0)$ 在曲线上。先前的经验已经告诉我们怎样处理平方项和一次项:

$$ \begin{aligned} x^2&\longmapsto x_0x, & y^2&\longmapsto y_0y,\\ x&\longmapsto\frac{x+x_0}{2}, & y&\longmapsto\frac{y+y_0}{2}. \end{aligned} $$

常数项 $F$ 应当保留。它的微分虽然为零,但它影响方程在切点处的值;求微分时没有贡献,不等于构造新方程时可以删掉。

剩下的就是交叉项 $Cxy$。

乘积的完整增量是

$$ \Delta(xy)=x\Delta y+y\Delta x+\Delta x\Delta y. $$

提取一阶部分,得到乘积的微分:

$$ d(Cxy)=C(x\,dy+y\,dx). $$

在切点处,它变成

$$ \left.d(Cxy)\right|_P=C(x_0\,dy+y_0\,dx). $$

这提示我们尝试一次式

$$ Cx_0y+Cy_0x. $$

它的微分与原交叉项在切点处的微分相同,但在切点处的值是原来的两倍。因此,把整个表达式除以二,就同时满足了我们的要求:

$$ Cxy\longmapsto\frac C2(x_0y+y_0x). $$

新表达式在切点处的值仍是 $Cx_0y_0$,微分则是原来的一半。交叉项也成功降次了。

六、统一的切线公式

把全部规则放在一起:

$$ \begin{aligned} x^2&\longmapsto x_0x,\\ y^2&\longmapsto y_0y,\\ xy&\longmapsto\frac{x_0y+y_0x}{2},\\ x&\longmapsto\frac{x+x_0}{2},\\ y&\longmapsto\frac{y+y_0}{2},\\ F&\longmapsto F. \end{aligned} $$

原方程就变成

$$ \begin{aligned} &Ax_0x+By_0y+\frac C2(x_0y+y_0x)\\ &\quad+\frac D2(x+x_0)+\frac E2(y+y_0)+F=0. \end{aligned} $$

两边乘以二,再按横、纵坐标整理:

$$ \boxed{ \begin{aligned} &(2Ax_0+Cy_0+D)x\\ &\quad +(2By_0+Cx_0+E)y\\ &\quad +Dx_0+Ey_0+2F=0. \end{aligned} } $$

这就是所求的通式。它适用于曲线上的正则点,也就是两个一阶系数不同时为零的点:

$$ (2Ax_0+Cy_0+D,\;2By_0+Cx_0+E)\ne(0,0). $$

普通的非退化圆、椭圆、双曲线和抛物线在曲线上每一点都满足这个条件。若允许任意二次方程,就需要明确这一点。例如,两条相交直线在交点处可能让全部一阶项都消失,此时不能用零微分确定唯一切线。

七、用一个原则串起所有替换

记原方程左边为 $f(x,y)$,替换后、尚未整体乘以二的左边为 $g(x,y)$。上面的构造满足

$$ f(P)=g(P)=0, \qquad dg_P=\frac12\,df_P. $$

第一条保证新直线经过切点,第二条保证两个一阶零等式描述同一个方向。再加上原微分不为零、新表达式为一次式,就确定了切线。

更一般地,只要把全部微分乘以同一个非零常数,方向条件就不变。这就是这些替换能奏效的原因。

回头看,从圆中观察到的“把平方项里的一个变量换成切点坐标”,逐渐发展成了一个统一的构造方法:保持点处的值,把曲线方程的一阶信息保留下来,再用一条直线表达它。 有了这条主线,抛物线中的常数补偿、一般方程中的交叉项,以及必须保留的常数项,都能顺着推出来。