平均变化率:直线的斜率放不进曲线里
直线的斜率处处不变,计算方式是升幅除以行程——即直线上任意两点之间,纵向变化量除以横向变化量。相比之下,曲线的斜率会随着点的位置不断变化——f(x) = x^2 的图像在 x = 0 附近较为平缓,而在远离原点处则变得陡峭,因此没有任何单一的斜率数值能够描述整条曲线。
函数在 a、b 两点之间的平均变化率,其计算方式与直线斜率相同:[f(b) − f(a)] / (b − a)。这个数值描述的是函数在整个区间内的平均变化幅度,但它无法说明函数在该区间内某个具体点上究竟有多陡——一条曲线完全可能在区间的一端变化很快、在另一端变化很慢,而整体的平均变化率却保持不变。
从割线到切线:导数的极限定义
过曲线上两点所作的直线称为割线,其斜率等于这两点之间的平均变化率,即 [f(x+h) − f(x)] / h,其中 h 是两点之间的横向距离。当第二个点不断向第一个点靠近——也就是 h 不断趋近于零——割线会随之转动,并逐渐逼近一个极限位置,这条极限直线称为切线,它只在曲线上的单一点与曲线相切,并在该点上与曲线方向一致。
f 在 x 处的导数被定义为这条切线的斜率,正式表达为割线斜率当 h 趋近于零时的极限:f'(x) = lim(h→0) [f(x+h) − f(x)] / h。这正是每一门标准微积分课程所教授的正式定义,它把瞬时变化率这一模糊概念,转化为一个可以求值或近似计算的精确极限。
数值微分与符号微分:两个不同的问题
符号微分把代数法则——幂法则、乘积法则、链式法则等——直接应用到函数的公式上,从而得到一个新的公式 f'(x),这个公式在原函数可导的每一点都成立。给定 f(x) = x^2,符号微分给出通用公式 f'(x) = 2x,之后可在任意一点代入求值:在 x = 3 处得到 6,在 x = 10 处得到 20,都无需再进行任何微积分运算。
数值微分回答的则是一个范围更窄的问题:在不推导出通用公式的前提下,函数在某一具体点 x0 处的导数值是多少?本网站的导数计算器采用五点中心差分,这是一种标准的数值分析技术,它在 x0 两侧非常靠近的若干点上计算 f 的值,并将这些值组合成对 x0 处斜率的高精度估计。这两种方法并非在为同一输出而竞争的替代方案——一种产生的是公式,另一种产生的是单一点上的单一数值——把两者混为一谈,是解读导数计算器结果时最常见的误解。
| 方法 | 得到的结果 | 以 f(x) = x² 为例 |
|---|---|---|
| 符号微分 | 适用于每一个 x 的通用公式 f'(x) | f'(x) = 2x |
| 数值微分(五点中心差分) | 在所选的某一点上,对 f'(x0) 的单一数值估计 | f'(3) ≈ 6 |
实例演算:x² 在 x = 3 处的导数
从符号角度看,由幂法则可知 f(x) = x^2 的导数为 f'(x) = 2x,因此 f'(3) = 2 × 3 = 6,这是精确值。从数值角度看,五点中心差分公式用较小的步长 h 估算 f'(x0) ≈ [−f(x0+2h) + 8f(x0+h) − 8f(x0−h) + f(x0−2h)] / (12h);取 h = 0.000001、x0 = 3,该数值公式求得约 6.000000001,与符号法的精确结果在小数点后八位内完全吻合。
这种一致性并非巧合,而是意料之中的结果:对于像 x^2 这样光滑的函数,中心差分法的误差会按 h^4 的比例缩小,因此当 h 取得足够小时,数值估计结果在通常显示的精度范围内,与精确的符号结果实际上无法区分。这两种方法——一种是代数运算、结果精确,另一种是数值近似、但对性质良好的函数而言极为精确——是通过两条不同的路径回答同一个根本的数学问题:x = 3 处切线的斜率。
为什么解读计算器结果时要区分这一点
包括本网站在内的数值导数计算器,永远不会输出像 2x 这样的公式——它只会输出一个数值,即在所输入的单一 x0 处估算出的斜率。要求出函数在另一点的导数值,就必须重新输入那个新的点并重新计算,因为在整个过程中并不会生成或保存任何关于 f'(x) 的通用表达式。
这一区别带来了一个实际后果:数值微分能够对那些难以或无法用封闭形式进行符号求导的函数求出导数——例如由数据、模拟或没有简单代数导数的表达式所构成的函数——因为它只需要在附近的点上对 f 求值,而不需要对其公式进行代数操作。其代价是,每一个结果都是单一点上的估计值,而不是可重复使用的通用公式。
常见问题
什么是导数?用简单的话来说。
导数是函数在某一具体点上的瞬时变化率,等价于函数图像在该点处切线的斜率。它的正式定义是:当定义割线的两个点无限靠近合并为一点时,平均变化率(即割线的斜率)的极限值。
导数的极限定义是什么?
f 在 x 处的导数定义为 f'(x) = lim(h→0) [f(x+h) − f(x)] / h,即当 h 趋近于零时,x 与 x+h 两点之间割线斜率的极限。这个极限把瞬时变化率这一非正式概念,转化为一个精确的数学定义。
数值微分与符号微分有什么区别?
符号微分把代数法则应用到函数的公式上,从而得到一个在每一点都成立的新通用公式 f'(x)。数值微分则借助附近点的函数值——例如五点中心差分——来估算函数在某一具体点上的导数值,而不会生成任何通用公式。
为什么数值导数计算器只给出一个数字,而不是一个公式?
因为数值微分的原理是:在所请求的那一点附近取若干非常接近的点计算函数值,再把这些值组合成斜率的估计值——它从不对函数的代数结构进行操作,因此也就无法给出适用于其他点的公式。要在别处求导数,就必须输入新的点并重新进行计算。
x² 在 x = 3 处的导数是多少?
恰好等于 6。从符号角度看,幂法则给出 f(x) = x² 的导数 f'(x) = 2x,因此 f'(3) = 6。从数值角度看,取较小步长的五点中心差分会得到小数点后多位都一致的结果,因为这两种方法计算的其实是同一个量——x = 3 处切线的斜率——只是走了不同的路径。
参考文献
- Stewart J. Calculus. Cengage Learning (the derivative as the limit of a difference quotient and the slope of the tangent line).
- Burden RL, Faires JD. Numerical Analysis. Cengage Learning (finite-difference approximations to derivatives).
- Spivak M. Calculus (4th ed). Publish or Perish, 2008 (rigorous treatment of limits and the derivative).
- NIST Digital Library of Mathematical Functions (DLMF), Chapter 3: Numerical Methods. dlmf.nist.gov.