第 16 章 電腦代數系統的應用策略¶

本章是全書收尾,介紹如何實際在高中數學題目中運用 wxMaxima 這個電腦代數系統 (CAS),作為「檢查工具」、「探索工具」與「解題策略輔助」。

善用 CAS 來驗證、觀察與發現規律,可以使學習更有效率。


16.1 CAS 不是替代手算,而是補充工具¶

高中數學強調「理解」、「推理」、「應用」,而非機械計算。

CAS 在此扮演以下三種角色:

  1. 檢查(verify)

  2. 探索(explore)

  3. 視覺化(visualize)

例如:

  • 展開與因式分解快速檢查

  • 方程式答案是否正確

  • 數列規律是否合理

  • 圖形是否符合推論


16.2 多項式與代數題的策略¶

▶ 檢查代數化簡是否正確¶

In [1]:
ratsimp((x^3 - 1)/(x - 1));
Out[1]:
\[\tag{${\it \%o}_{0}$}x^2+x+1\]

▶ 展開與因式分解確認¶

In [2]:
expand((x-2)*(x+3));
factor(x^2 + x - 6);
Out[2]:
\[\tag{${\it \%o}_{1}$}x^2+x-6\]
Out[2]:
\[\tag{${\it \%o}_{2}$}\left(x-2\right)\,\left(x+3\right)\]

16.3 方程式題型:使用 solve 檢查¶

考題:

$$ 2x - 5 = 7 $$

手算後,CAS 可用來檢查:

In [3]:
solve(2*x - 5 = 7, x);
Out[3]:
\[\tag{${\it \%o}_{3}$}\left[ x=6 \right] \]

▶ 二次方程、聯立方程¶

In [4]:
solve(x^2 - 3*x + 2 = 0, x);
solve([2*x + y = 7, x - y = 1], [x,y]);
Out[4]:
\[\tag{${\it \%o}_{4}$}\left[ x=1 , x=2 \right] \]
Out[4]:
\[\tag{${\it \%o}_{5}$}\left[ \left[ x=\frac{8}{3} , y=\frac{5}{3} \right] \right] \]

16.4 不等式題型:使用 solve 搭配圖形¶

例:

$$ x^2 - 4 < 0 $$

In [29]:
load(solve_rat_ineq);
solve_rat_ineq(x^2 - 4 < 0);
plot2d(x^2 - 4, [x, -3, 3])$
Out[29]:
\[\tag{${\it \%o}_{15}$}\mbox{ /home/hcp2/maxima/share/maxima/5.47.0/share/solve\_rat\_ineq/solve\_rat\_ineq.mac }\]
Out[29]:
\[\tag{${\it \%o}_{16}$}\left[ \left[ x>-2 , x<2 \right] \right] \]
No description has been provided for this image

可透過兩種結果交叉確認。


16.5 數列題型:使用 makelist 觀察規律¶

例:

$$ a_n = n^2 - 3n + 2 $$

In [7]:
makelist(n^2 - 3*n + 2, n, 1, 10);
Out[7]:
\[\tag{${\it \%o}_{10}$}\left[ 0 , 0 , 2 , 6 , 12 , 20 , 30 , 42 , 56 , 72 \right] \]

▶ 檢查遞迴是否正確¶

In [8]:
a[1]:1$
for n:1 thru 10 do a[n+1]:2*a[n]+1$
makelist(a[n], n,1,10);
Out[8]:
\[\tag{${\it \%o}_{13}$}\left[ 1 , 3 , 7 , 15 , 31 , 63 , 127 , 255 , 511 , 1023 \right] \]

16.6 函數與圖形題型:以 wxplot2d 輔助¶

例:比較

$$ y = x^2,\ y = x^2 - 4x + 3 $$

In [31]:
plot2d([x^2, x^2 - 4*x + 3], [x, -2, 6])$
No description has been provided for this image

圖形可清楚顯示平移與最小值位置。


16.7 反函數與複合函數題型¶

反函數:

In [10]:
solve(y = x^3 + 1, x);
Out[10]:
\[\tag{${\it \%o}_{15}$}\left[ x=\frac{\left(\sqrt{3}\,i-1\right)\,\left(y-1\right)^{\frac{1}{3}}}{2} , x=-\left(\frac{\left(\sqrt{3}\,i+1\right)\,\left(y-1\right)^{\frac{1}{3}}}{2}\right) , x=\left(y-1\right)^{\frac{1}{3}} \right] \]

複合:

In [11]:
f(x):=x^2;
g(x):=x+1;
h(x):=f(g(x));
Out[11]:
\[\tag{${\it \%o}_{16}$}f\left(x\right):=x^2\]
Out[11]:
\[\tag{${\it \%o}_{17}$}g\left(x\right):=x+1\]
Out[11]:
\[\tag{${\it \%o}_{18}$}h\left(x\right):=f\left(g\left(x\right)\right)\]

16.8 微積分題型的策略¶

▶ 極限:¶

In [12]:
limit((x^2 - 1)/(x - 1), x, 1);
Out[12]:
\[\tag{${\it \%o}_{19}$}2\]

▶ 導數:¶

In [13]:
diff(sin(x^2), x);
Out[13]:
\[\tag{${\it \%o}_{20}$}2\,x\,\cos x^2\]

▶ 切線:¶

In [14]:
f(x) := x^2 - 3*x + 2;
f1 : diff(f(x), x);
a: 1;
b: f(a);    /* x = a 這點的 f(x) 值 */
m: ev(f1, x = a);    /* x = a 這點的導數,即切線斜率 */
tangent(x) := b + m*(x - a)$   /* 自訂切線函數  */
tangent(x);
Out[14]:
\[\tag{${\it \%o}_{21}$}f\left(x\right):=x^2-3\,x+2\]
Out[14]:
\[\tag{${\it \%o}_{22}$}2\,x-3\]
Out[14]:
\[\tag{${\it \%o}_{23}$}1\]
Out[14]:
\[\tag{${\it \%o}_{24}$}0\]
Out[14]:
\[\tag{${\it \%o}_{25}$}-1\]
Out[14]:
\[\tag{${\it \%o}_{27}$}1-x\]

▶ 定積分與面積:¶

In [15]:
integrate(x^2 - 4, x, -2, 2);
Out[15]:
\[\tag{${\it \%o}_{28}$}-\left(\frac{32}{3}\right)\]

16.9 機率題:模擬與列舉¶

▶ 兩顆骰子點數和為 7 的機率¶

In [16]:
s:create_list(i+j, i,1,6, j,1,6)$
length(sublist(s, lambda([x], x=7))) / length(s);
Out[16]:
\[\tag{${\it \%o}_{30}$}\frac{1}{6}\]

16.10 統計題:快速求平均數與標準差¶

In [17]:
load(descriptive);
data:[5,7,3,9,10,4];
mean(data), numer;
std(data), numer;
Out[17]:
\[\tag{${\it \%o}_{31}$}\mbox{ /home/hcp2/maxima/share/maxima/5.47.0/share/descriptive/descriptive.mac }\]
Out[17]:
\[\tag{${\it \%o}_{32}$}\left[ 5 , 7 , 3 , 9 , 10 , 4 \right] \]
Out[17]:
\[\tag{${\it \%o}_{33}$}6.333333333333333\]
Out[17]:
\[\tag{${\it \%o}_{34}$}2.5603819159562025\]
In [18]:
kill(all);
Out[18]:
\[\tag{${\it \%o}_{35}$}\mathbf{done}\]

16.11 在物理學學習的應用 ¶

考慮平面拋射體運動,當一顆棒球在地面上被擲出,初速度大小為 $v$ ,初速度與水平線夾角為 $\theta$,考慮水平方向的位移 $$ x(t) = v \, {\cos\theta} \,t $$ 垂直方向的位移 $$ y(t) = v \, {\sin\theta}\,t- {{g\,t^2}\over{2}} $$

In [19]:
v1 : v*cos(θ);   /* 初速度的水平分量 */
v2 : v*sin(θ);     /* 初速度的垂直分量 */
Out[19]:
\[\tag{${\it \%o}_{0}$}v\,\cos θ\]
Out[19]:
\[\tag{${\it \%o}_{1}$}v\,\sin θ\]
In [20]:
/* 用 eliminate() 來消去時間 t */
eliminate([x - v1 * t, y - v2 * t + (1/2) * g * t^2], [t]);
Out[20]:
\[\tag{${\it \%o}_{2}$}\left[ -\left(2\,v^2\,x\,\cos θ\,\sin θ\right)+2\,v^2\,y\,\cos ^2θ+g\,x^2 \right] \]
In [21]:
/* 解上面的式子,以 y 為未知數 */
solve(%o2 , y);
Out[21]:
\[\tag{${\it \%o}_{3}$}\left[ y=\frac{2\,v^2\,x\,\cos θ\,\sin θ-g\,x^2}{2\,v^2\,\cos ^2θ} \right] \]
In [22]:
expand(%o3);   /* 整理式子 */
Out[22]:
\[\tag{${\it \%o}_{4}$}\left[ y=\frac{x\,\sin θ}{\cos θ}-\frac{g\,x^2}{2\,v^2\,\cos ^2θ} \right] \]

很興奮地,我們得到了拋射體的軌跡方程式。

接著,我們要求水平射程,也就是 $y = 0$ 時的 $x$ 值。

In [23]:
E1 : rhs(%o4[1]);  /* 取得軌跡方程式的右邊項 */
Out[23]:
\[\tag{${\it \%o}_{5}$}\frac{x\,\sin θ}{\cos θ}-\frac{g\,x^2}{2\,v^2\,\cos ^2θ}\]
In [24]:
E2 : solve(E1 = 0, x);
Out[24]:
\[\tag{${\it \%o}_{6}$}\left[ x=\frac{2\,v^2\,\cos θ\,\sin θ}{g} , x=0 \right] \]

即得到水平射程的式子。

以拋射角 60 度為例,代入式子,

In [25]:
θ:(%pi/3)$   /* 以 60 度為拋射角 */
g:9.8$   /*  重力加速度 */
v:10$    /* 初速度大小 */
In [26]:
float(ev(E2, numer));
Out[26]:
\[\tag{${\it \%o}_{10}$}\left[ x=8.83699391616774 , x=0.0 \right] \]

得到 $x = 0$ 和 $x = 8.84$ 時,$y = 0$,也就是水平射程是 8.84 公尺。

畫出軌跡方程式的圖:

In [33]:
plot2d([(x*sin(θ))/cos(θ)-(g*x^2)/(2*v^2*cos(θ)^2)], [x,0,8.84])$
No description has been provided for this image

是不是覺得很開心呢。