第 7 章 函數的平移、伸縮與變化¶
(適用:台灣高中~大一;目標:用參數化與疊圖建立直覺,並能把圖形變化翻譯回解析式)
7.1 本章核心:看懂「y = a f(b(x-h)) + k」¶
高中最重要的圖形變換公式之一:
$ y = a\,f\big(b(x-h)\big) + k $
- 水平平移:$x\to x-h$(往右 h;往左就是 h<0)
- 垂直平移:$+k$(往上 k;往下就是 k<0)
- 垂直伸縮/翻轉:乘上 a(|a|>1 拉長,0<|a|<1 壓扁,a<0 上下翻轉)
- 水平伸縮/翻轉:把 x 乘上 b(|b|>1 水平壓縮,0<|b|<1 水平拉伸,b<0 左右翻轉)
本章要做的事:
用 SageMath 的「參數掃描 + 疊圖」讓你一次看懂整族圖形。
7.2 疊圖基本模板(你會一直用)¶
在 Sage 裡可以用 plot(...) + plot(...) 疊圖。
如果想一次疊很多張,可以用 sum([plot(...) for ...])。
下面先用最基本函數 $f(x)=x^2$ 做示範。
var('x')
base = x^2
plot(base, (x, -4, 4))
var('x')
plots = sum([plot((x-h)^2, (x, -5, 5)) for h in [-2, -1, 0, 1, 2]])
plots
var('x')
plots = sum([plot(x^2 + k, (x, -4, 4)) for k in [-3, -1, 0, 2]])
plots
var('x')
plots = sum([plot(a*x^2, (x, -4, 4), ymin=-6, ymax=6) for a in [2, 1, 1/2, -1]])
plots
var('x')
plots = sum([plot(sin(b*x), (x, -2*pi, 2*pi)) for b in [1/2, 1, 2, -1]])
plots
觀察:
- b=2:週期變短(更密)→ 水平壓縮
- b=1/2:週期變長(更稀)→ 水平拉伸
- b=-1:左右翻轉(其實 sin 是奇函數,會看到對稱效果)
7.6 綜合變換:y = a f(b(x-h)) + k¶
我們用 $f(x)=\sin x$,一次看四個參數的影響。
例:固定 a=2, b=3, h=1, k=-1: $ y = 2\sin(3(x-1)) - 1 $
var('x')
y = 2*sin(3*(x-1)) - 1
plot(y, (x, -2, 4))
你可以逐個改參數做實驗:
- 改 a:振幅
- 改 b:週期
- 改 h:水平平移
- 改 k:垂直平移
下面用「固定三個、掃描一個」的方式看得更清楚。
var('x')
# 固定 b=2,h=0,k=0,掃描 a
plots = sum([plot(a*sin(2*x), (x, -2*pi, 2*pi)) for a in [1/2, 1, 2, -1]])
plots
var('x')
# 固定 a=1,h=0,k=0,掃描 b
plots = sum([plot(sin(b*x), (x, -2*pi, 2*pi)) for b in [1/2, 1, 2, 3]])
plots
var('x')
# 固定 a=1,b=1,k=0,掃描 h(水平平移)
plots = sum([plot(sin(x-h), (x, -2*pi, 2*pi)) for h in [-pi/2, 0, pi/2, pi]])
plots
var('x')
# 固定 a=1,b=1,h=0,掃描 k(垂直平移)
plots = sum([plot(sin(x) + k, (x, -2*pi, 2*pi)) for k in [-2, -1, 0, 1]])
plots
var('x')
plot((x-3)^2 - 2, (x, -1, 7), ymin=-4, ymax=10) + point((3, -2), size=40)
任務 B:已知零點(根)與開口方向(或縮放)¶
若二次函數有根 r1, r2,且開口向上/下,可寫成: $ y=a(x-r_1)(x-r_2) $ 再用任一點代入求 a。
例:圖形過 (0,3),且根為 1 與 3,開口向上。 $ y=a(x-1)(x-3),\ y(0)=3 \Rightarrow 3=a(-1)(-3)=3a\Rightarrow a=1 $ 所以 $y=(x-1)(x-3)$。
用 Sage 驗算。
var('x')
y = (x-1)*(x-3)
y(0), factor(y)
plot(y, (x, -1, 5)) + point((0, 3), size=40)
任務 C:週期、振幅、平移(sin/cos)¶
一般形式: $ y=a\sin(b(x-h))+k $
- 振幅 = |a|
- 週期 = $ \frac{2\pi}{|b|} $
- 中線(midline)= y=k
- 水平位移 = h
你可以用圖形讀出「中線與最高/最低」來猜 a,k;再用週期猜 b;最後用特徵點猜 h。
下面做一個例子:
假設你觀察到:最高 3、最低 -1 → 中線 1、振幅 2
週期是 $ \pi $ → $ \frac{2\pi}{|b|}=\pi \Rightarrow |b|=2 $
所以先猜:$y=2\sin(2(x-h))+1$
再用某個已知點(例如在 x=0 時 y=1 且斜率向上)推 h。
我們用 h=0 當作示範,畫出來看看形狀。
var('x')
plot(2*sin(2*x) + 1, (x, -2*pi, 2*pi), ymin=-3, ymax=5)
var('x')
plots = plot(abs(x), (x, -5, 5)) + plot(abs(x-2), (x, -5, 5)) + plot(abs(x+1)-1, (x, -5, 5))
plots
(B) y = |f(x)| 與 y = f(|x|)¶
- $y=|f(x)|$:把在 x 軸下方的部分「翻上去」
- $y=f(|x|)$:把右半邊(x≥0)的圖形「複製到左邊」(y 軸對稱)
例:用 $f(x)=x-1$ 觀察。
var('x')
f = x - 1
p1 = plot(abs(f), (x, -4, 4), ymin=-3, ymax=3)
p2 = plot((abs(x) - 1), (x, -4, 4), ymin=-3, ymax=3)
p1 + p2
7.9 參數掃描的進階:做「圖形小動畫」(用滑桿的概念)¶
在某些 Sage/Jupyter 環境可以用互動滑桿(互動功能視環境而定)。
本書先用「列出多張疊圖」替代互動:一樣能建立直覺。
例:觀察 $y=(x-h)^2$ 隨 h 變化的「頂點軌跡」。
var('x')
Hs = [-3, -2, -1, 0, 1, 2, 3]
plots = sum([plot((x-h)^2, (x, -6, 6), ymin=-1, ymax=20) for h in Hs])
vertex_points = sum([point((h, 0), size=30) for h in Hs])
plots + vertex_points
7.10 本章小結:一看到式子就能說出圖形怎麼變¶
你現在應該能:
- 把 $y=a f(b(x-h))+k$ 的每個參數對應到圖形變化
- 用疊圖與參數掃描快速建立直覺
- 從圖形特徵(頂點、根、振幅、週期、中線)回推解析式
- 理解
|f(x)|、f(|x|)的幾何意義
練習題(附提示)¶
平移:把 $y=x^2$ 向右 2、向上 3,寫出新函數並畫圖驗證。
提示:$y=(x-2)^2+3$。伸縮:把 $y=\sqrt{x}$
(a) 垂直拉長 2 倍
(b) 水平拉伸 3 倍
寫出新函數並畫圖。
提示:垂直:$2\sqrt{x}$;水平拉伸 3 倍:$\sqrt{x/3}$。
綜合:寫出 $y=-\frac12 (x+1)^2 + 4$ 的圖形特徵:
頂點、開口方向、左右/上下平移、垂直伸縮倍率。絕對值變換:畫 $y=|x^2-4|$,並說明它和 $y=x^2-4$ 的差別。
提示:x 軸下方翻上去。
5.(挑戰)由圖回推:
若某二次函數頂點在 (1,-3),且通過 (0,-1),求其解析式。
提示:先寫 $y=a(x-1)^2-3$,代入 (0,-1) 解 a。
下一章(第 8 章)我們會處理「反函數與複合函數」:
你會用第 7 章的變換直覺,快速判斷反函數圖形與複合後的形狀。