数学 / 函数 · 从概念到零点与增长速度 / 奇偶性:图象关于 y 轴还是原点对称 待审核 4 / 12
parity · f(−x)=f(x)f(-x) = f(x) 或 f(−x)=−f(x)f(-x) = -f(x)

奇偶性:图象关于 y 轴还是原点对称

奇偶性描述函数图象的对称性。它与单调性一样是整体性质,判定要对定义域内每一个 xx 成立;但它多一道前置条件,这道条件常被跳过。

1 · 前提与定义

even · odd · 定义域对称

定义 1.1(奇函数与偶函数) 设函数 ff 的定义域 DD 关于原点对称,即 x∈Dx \in D 时必有 −x∈D-x \in D。若对每个 x∈Dx \in D 都有 f(−x)=f(x)f(-x) = f(x),称 ff 为偶函数;若都有 f(−x)=−f(x)f(-x) = -f(x),称 ff 为奇函数。

定义域关于原点对称这一条是前提而非结论:不满足它,f(−x)f(-x) 就可能没有定义,两个等式都无从谈起。f(x)=xf(x) = \sqrt{x} 的定义域是 [0,+∞)[0, +\infty),取 x=1x = 1 时 f(−1)f(-1) 不存在,所以它既不是奇函数也不是偶函数,而理由与函数值无关,只与定义域有关。判定奇偶性的第一步因此永远是查定义域。

两个等式在几何上对应两种对称:偶函数的图象关于 yy 轴对称,因为 (x,f(x))(x, f(x)) 与 (−x,f(x))(-x, f(x)) 等高;奇函数的图象关于原点中心对称,因为 (x,f(x))(x, f(x)) 与 (−x,−f(x))(-x, -f(x)) 的连线过原点且被原点平分。

图 1-1 · 点 (x,f(x))(x, f(x)) 与横坐标取相反数得到的点,以及读数栏对 f(−x)f(-x)、f(x)f(x)、−f(x)-f(x) 三者的逐项对比。可拖动 xx 并切换函数,观察两点是等高、关于原点对称,还是二者皆非。

2 · 由定义直接推出的结论

corollaries · f(0)=0f(0) = 0

定理 2.1 若 ff 是奇函数且 00 在其定义域内,则 f(0)=0f(0) = 0。

证明 在 f(−x)=−f(x)f(-x) = -f(x) 中取 x=0x = 0,得 f(0)=−f(0)f(0) = -f(0),即 2f(0)=02f(0) = 0,故 f(0)=0f(0) = 0。∎

这条推论有实际用处:奇函数的图象若与 yy 轴相交,交点只能是原点。反过来它也是一条快速的排除判据,f(x)=x3+1f(x) = x^3 + 1 在 00 处取值 1≠01 \ne 0,不必验算就知道它不是奇函数。前提「00 在定义域内」不可省,f(x)=1/xf(x) = 1/x 是奇函数而 f(0)f(0) 无定义。

第二条结论是奇偶性并非二分:大多数函数两条等式都不满足,f(x)=x2+xf(x) = x^2 + x 即是。第三条是恒等于零的函数(定义域关于原点对称)同时满足两条定义,它是唯一既奇又偶的一类,因为 f(x)=−f(x)f(x) = -f(x) 迫使 ff 处处为零。

3 · 浮点下的对称性

float · 符号对称是精确的

原以为奇对称在双精度下会像对数换底那样出现末位偏差,实测并没有。对 x3−xx^3 - x、x/(1+x2)x/(1 + x^2)、sin⁡x\sin x、tan⁡x\tan x、sinh⁡x\sinh x 五个奇函数各取 200000200000 个点逐一比较 f(−x)f(-x) 与 −f(x)-f(x),不相等的点数是 00,最大偏差是精确的 00(node v26.6.0)。原因是 IEEE 754 的四则运算与这些库函数都在符号上严格对称:符号位单独存放,取相反数只翻一位,不参与尾数的舍入。

警示 · 唯一的例外在原点,而且它只影响判等的写法。取 f(x)=x3−xf(x) = x^3 - x,f(−0)f(-0) 算出 00 而 −f(0)-f(0) 算出 −0-0:用 === 比较为真,因为 -0 === 0;用 Object.is 比较为假。这不是精度问题,是 ±0\pm 0 这两个不同位模式表示同一个实数所致。判定奇偶性时用 === 或带容差的比较即可,改用 Object.is 会在原点处误报。

4 · 参考文献

  1. Even and odd functions. Wikipedia. 定义、图象对称与常见性质。https://en.wikipedia.org/wiki/Even_and_odd_functions
  2. Signed zero. Wikipedia. IEEE 754 里 +0+0 与 −0-0 的区别及其判等后果。https://en.wikipedia.org/wiki/Signed_zero