4.3 函數性質探索#
本節目標#
- 用程式驗證對稱性:奇函數 \(f(-x) = -f(x)\) 、偶函數 \(f(-x) = f(x)\)
- 用變號取樣探索單調性,並用
diff預告正式方法 - 用數值候選點預告極值求法(第 5 章
solve f' = 0) - 用
limit探索漸近線 - 動手實驗:完整分析 \(f(x) = \dfrac{x^2 - 1}{x^2 + 1}\)
用程式做數學實驗#
有了電腦,每一條性質都變成可執行的檢驗程式——性質不是背的,是「跑出來」的。本章先借用三個工具(後面章節正式介紹):simplify(化簡驗證)、diff(求導,第 5 章)、limit(極限,第 6 章)。
對稱性:奇函數與偶函數#
- 偶函數: \(f(-x) = f(x)\) ,對 \(y\) 軸對稱(如 \(x^2\) 、 \(\cos x\) )
- 奇函數: \(f(-x) = -f(x)\) ,對原點對稱(如 \(x^3\) 、 \(\sin x\) )
import sympy as sp
x = sp.Symbol('x')
def check_symmetry(f, var=x):
lhs_even = sp.simplify(f.subs(var, -var) - f) # f(-x) - f(x)
lhs_odd = sp.simplify(f.subs(var, -var) + f) # f(-x) + f(x)
if lhs_even == 0 and lhs_odd == 0:
return "both"
if lhs_even == 0:
return "even"
if lhs_odd == 0:
return "odd"
return "neither"
for name, f in {"x**2": x**2, "x**3": x**3, "sin(x)": sp.sin(x),
"cos(x)": sp.cos(x), "x + 1": x + 1}.items():
print(f"{name:>8} : {check_symmetry(f)}")
x**2 : even
x**3 : odd
sin(x) : odd
cos(x) : even
x + 1 : neither
\(x + 1\) 兩者皆非——平移會破壞對稱性。任意函數還能拆成奇部與偶部:
\[ f(x) = \frac{f(x) + f(-x)}{2} + \frac{f(x) - f(-x)}{2} \]
f = x**2 + x
print((f + f.subs(x, -x)) / 2) # x**2(偶部)
print((f - f.subs(x, -x)) / 2) # x(奇部)
單調性:變號觀察與 diff 預告#
遞增就是「 \(x\) 越大 \(f(x)\) 越大」。先數值取樣看差分正負:
import numpy as np
def monotonic_hint(expr, a, b, n=1000):
f = sp.lambdify(x, expr, 'numpy')
diffs = np.diff(f(np.linspace(a, b, n)))
if np.all(diffs >= -1e-12):
return "increasing"
if np.all(diffs <= 1e-12):
return "decreasing"
return "mixed"
f3 = x**3 - 3*x
print(monotonic_hint(f3, -5, 5)) # mixed
print(monotonic_hint(x**3, -5, 5)) # increasing
取樣只能猜,嚴格判定靠導數: \(f' > 0\) 遞增、 \(f' < 0\) 遞減。
print(sp.diff(f3, x)) # 3*x**2 - 3
print(sp.solve(sp.diff(f3, x), x)) # [-1, 1] ← 單調性在此改變
極值:數值候選與理論預告#
\(f(x) = x^3 - 3x\) 在 \(x = -1\) 有局部極大、 \(x = 1\) 有局部極小。先取樣找候選:
f_np = sp.lambdify(x, f3, 'numpy')
xs, vals = np.linspace(-3, 3, 601), None
vals = f_np(xs)
print(f"極大候選 x ≈ {xs[vals.argmax()]:.2f}") # -1.00
print(f"極小候選 x ≈ {xs[vals.argmin()]:.2f}") # 1.00
再與理論對照——臨界點满足 \(f'(x) = 0\) :
print(sp.solve(sp.Eq(sp.diff(f3, x), 0), x)) # [-1, 1] ← 完全吻合
閉區間上的最大最小值還要跟端點比:
def abs_extrema_on(expr, a, b):
cands = [a, b] + [c for c in sp.solve(sp.diff(expr, x), x)
if c.is_real and a <= c <= b]
vals = [expr.subs(x, c) for c in cands]
return max(vals), min(vals)
print(abs_extrema_on(f3, -2, 2)) # (2, -2)
print(abs_extrema_on(f3, 0, 3)) # (18, -2)
完整理論(一階、二階導數檢驗)留給第 5 章;工具你已備齊。
漸近線:用 limit 看無窮遠#
f = (2*x**2 + 1) / (x**2 - 1)
print(sp.limit(f, x, sp.oo)) # 2 ← 水平漸近線 y = 2
print(sp.limit(f, x, 1, dir='+')) # oo ← 垂直漸近線 x = 1
print(sp.limit(f, x, -1, dir='-')) # oo ← 垂直漸近線 x = -1
# 斜漸近線:f(x) - (mx + k) -> 0
g = (x**3 + x**2 + 1) / x**2
m = sp.limit(g/x, x, sp.oo) # 1
k = sp.limit(g - m*x, x, sp.oo) # 1 → y = x + 1
動手實驗#
**完整分析 \(f(x) = \dfrac{x^2 - 1}{x^2 + 1}\) **:分母恆正所以處處連續,是綜合演練好題材。
import sympy as sp
import numpy as np
import matplotlib.pyplot as plt
x = sp.Symbol('x')
f = (x**2 - 1) / (x**2 + 1)
# 1. 對稱性
print("偶函數" if sp.simplify(f.subs(x, -x) - f) == 0 else "非偶")
# 2. 零點與 y 截距
print("零點:", sp.solve(sp.Eq(f, 0), x), " f(0) =", f.subs(x, 0))
# 3. 單調性:導數與臨界點
fp = sp.diff(f, x)
print("f'(x) =", sp.simplify(fp)) # 4*x/(x**2 + 1)**2
print("臨界點:", sp.solve(sp.Eq(fp, 0), x)) # [0]
# x<0 遞減、x>0 遞增 → x=0 是極小點
# 4. 漸近線
print("水平漸近線:y =", sp.limit(f, x, sp.oo)) # y = 1
# 5. 畫圖驗證
xs = np.linspace(-5, 5, 400)
plt.plot(xs, sp.lambdify(x, f, 'numpy')(xs),
label="$f(x)=\\frac{x^2-1}{x^2+1}$")
plt.axhline(1, color="red", ls="--", label="$y=1$(漸近線)")
plt.plot([-1, 1], [0, 0], "go", label="零點")
plt.plot(0, -1, "rs", label="極小 (0,-1)")
plt.ylim(-1.5, 1.5); plt.grid(alpha=0.3); plt.legend(); plt.show()
分析總表:
| 性質 | 結論 |
|---|---|
| 對稱 | 偶函數,對 \(y\) 軸對稱 |
| 零點 | \(x = \pm 1\) |
| 單調 | \((-\infty, 0)\) 遞減、 \((0, \infty)\) 遞增 |
| 極值 | 極小值 \(f(0) = -1\) |
| 漸近線 | 水平漸近線 \(y = 1\) |
| 值域 | \([-1, 1)\) (由極值與漸近線推出) |
進一步挑戰:分析 \(f(x) = \dfrac{x}{x^2 + 1}\) (奇函數,極值在 \(x=\pm 1\) );求 \(f(x) = x + \frac{1}{x}\) 的垂直與斜漸近線;擴充 check_symmetry 偵測「對直線 \(x = c\) 對稱」。
小結與練習#
- 對稱性可用
f.subs(x, -x)+simplify機械驗證;任意函數 = 奇部 + 偶部 - 單調性先取樣猜測,嚴格判定靠 \(f'\) 正負(第 5 章)
- 極值候選 = \(f' = 0\) 的根 ∪ 端點,數值取樣可佐證
limit探索水平/斜漸近線( \(x \to \pm\infty\) )與垂直漸近線(發散)- 完整分析 = 對稱、零點、單調、極值、漸近線,最後畫圖收尾
練習:
- 分析 \(f(x) = x^4 - 4x^2\) 的對稱性、零點與極值並畫圖。
- 用程式化簡證明:偶函數乘偶函數是偶函數、奇函數乘偶函數是奇函數。
- 求 \(f(x) = \dfrac{x^2 + 2x}{x - 1}\) 的垂直與斜漸近線並疊畫。
- 驗證 \(f(x) = e^{-x^2}\) 是偶函數、漸近線 \(y = 0\) ,並求最大值位置。