数学 / 函数 · 从概念到零点与增长速度 / 图象变换:平移、伸缩与对称 待审核 2 / 12
transform · f(x − a) · A f(ωx) · |f(x)|

图象变换:平移、伸缩与对称

已知一条曲线,把它整体挪动、拉伸或翻折,所得的新曲线与原曲线共享全部形状信息,只是位置与比例不同。这类操作都可归入两组:作用在自变量 xx 上的横向变换,与作用在函数值 f(x)f(x) 上的纵向变换。区分二者只需看参数写在括号内还是括号外,而两组变换的方向规则恰好相反。

1 · 平移量的符号与方向

y = f(x − a) · y = f(x) + b

y=f(xa)y = f(x - a) 的图象,是把 y=f(x)y = f(x) 向右平移 aa 个单位。符号与方向相反这一点常被记反,根源在于变换作用的对象是自变量:新图象在 x0+ax_0 + a 处取的值等于原图象在 x0x_0 处的值,整条曲线便向右挪了 aa。纵向平移没有这重转折,y=f(x)+by = f(x) + b 就是向上平移 bb,符号与方向一致。

2 · 伸缩系数的作用方向

y=Af(x)y = A f(x) 把每个纵坐标乘以 AAA>1|A| > 1 为纵向拉伸,0<A<10 < |A| < 1 为纵向压缩。y=f(ωx)y = f(\omega x) 把每个横坐标除以 ω\omegaω>1\omega > 1 时图象横向压缩到原来的 1/ω1 / \omega。同样是「乘一个大于 1 的数」,纵向的结果是拉伸而横向的结果是压缩,差别仍然来自「横向的乘法落在自变量上」。

伸缩与平移不可交换。y=f(2(x1))y = f(2(x - 1))y=f(2x1)y = f(2x - 1) 是两条不同的曲线:前者把 y=f(2x)y = f(2x) 右移 1,后者只右移 1/21/2,因为 2x1=2(x1/2)2x - 1 = 2(x - 1/2)。本页的 lab 固定采用「先按 ω\omega 伸缩、再右移 hh」这一种次序,合成结果写作 y=Af(ω(xh))+ky = A f(\omega(x - h)) + k;换成另一种次序,平移量须折算成 h/ωh / \omega 才等价。

图 2-1 · 灰虚线是原图象 y = f(x),实线是变换后的图象。可调平移量 h 与 k、伸缩系数 A 与 ω,并切换三个对称开关,读数栏给出合成后的解析式。

3 · 对称与绝对值

y=f(x)y = f(-x) 把图象关于 y 轴翻折,y=f(x)y = -f(x) 关于 x 轴翻折,两者复合成的 y=f(x)y = -f(-x) 关于原点中心对称。这三条与奇偶性是同一件事的两种说法:偶函数正是翻折后与自身重合的那一类。

y=f(x)y = |f(x)| 不是把整条曲线翻折,而是只把 x 轴下方的部分翻上去、上方的原样保留,所得图象不会落到 x 轴以下。绝对值排在平移之后还是之前,结果不同:f(x)+k|f(x)| + k 先翻折再上移,可能落到 x 轴下方;f(x)+k|f(x) + k| 先上移再翻折,不可能。

把变换参数回显成表达式时踩过一处:ω\omega 与「关于 y 轴翻折」同时开启,早先的实现直接把系数拼在 x-x 前面,输出 f(2-x)。这个字符串读作 f(2x)f(2 - x),与它要表达的 f(2(x))f(2 \cdot (-x)) 不是同一个函数。改法是按 ω(x)=ωx\omega \cdot (-x) = -\omega x 展开成 f(-2x)functions/core/analysis.test.ts 里留了这条用例。只有 h0h \ne 0 时才需要括号,此时输出形如 f(2(-x - 1))

4 · 参考文献

  1. Transformation (function). Wikipedia. 平移、伸缩与反射对图象的作用。https://en.wikipedia.org/wiki/Transformation_(function)
  2. Translation (geometry). Wikipedia. 横向平移的符号与方向为何相反。https://en.wikipedia.org/wiki/Translation_(geometry)
  3. Function composition. Wikipedia. 变换复合不可交换,以及次序对平移量的折算。https://en.wikipedia.org/wiki/Function_composition