作者:謝其磐
email: hsiehcp@protonmail.com
2025年12月
(這本書所介紹的的計算指令,都有在 wxMaxima 24.02.2 環境下測試成功。如有發現排版或打字錯誤,或對內容有建議,歡迎各位先進朋友 email 給我指正和建議,感謝。)
電腦代數系統(Computer Algebra System, CAS) 是一類專門用來處理「符號運算」與「代數計算」的軟體。它不是單純做數值運算的計算機,而是能用代數規則操作「符號」,並產生精確的數學結果。
它能處理「整個數學式」,可以用代數式顯示計算結果,也可以用數值來呈現。
這是 CAS 最核心的能力。
CAS 可以像人類做代數一樣操作:
CAS 可以解:
而且能給出符號解,而不是只是近似數值。
CAS 的強項還包括:
對正在學微積分的學生尤其有用。
CAS 通常內建:
比手算快、比一般計算機強大。
包括 2D 與 3D:
圖形能幫助你直觀理解數學。
以下是常見的 CAS:
Maxima / wxMaxima
開源、免費,功能完整,適合學生、教育與研究者。 wxMaxima 為 Maxima 的圖形化介面,特別好用,也是本書要使用的軟體。
SageMath
整合多個開源數學套件的大型系統,適合進階使用者。
Mathematica (Wolfram)
功能極強,但商業軟體,需付費。
Maple
工程科系常用,也是商業授權。
1. 提升數學理解,而不是取代人
CAS 幫你處理繁雜計算,你可以專注於:
它是輔助學習的好工具
2. 讓學習更迅速
CAS 可以快速驗算、模擬與視覺化概念。 對自學者與需要做大量計算的人尤其重要。
3. 與未來技術接軌:AI + 數學的基礎
CAS 本質上是「讓電腦理解數學」的技術,而這與:
都是未來的重要方向。
會 CAS 就像會電腦的語言一樣,是未來的必備技能。
電腦代數系統不是用來取代數學教育,而是讓你:
它是現代學習數學與科學的一項必備技能。
wxMaxima 源自是一個歷史非常悠久的 CAS —— Maxima 之上。 Maxima 的前身是麻省理工學院(MIT)於 1960 年代開始的 MACSYMA 計畫,是全球最早的符號計算系統之一,在當時屬於頂尖的科學研究工具。
後來 MACSYMA 的部分版本在 2000 年由 MIT 以 GPL 開源授權公開,形成今日的 Maxima 專案。wxMaxima 是 Maxima 的圖形化介面。
想要讓數學學習更有效率,更有趣嗎?wxMaxima 是一款免費、開源,而且功能強大的電腦代數系統(CAS),非常適合作為你的數學學習輔助工具。以下是值得學習的理由:
免費又跨平台 wxMaxima 完全免費,支援 Windows、macOS 與 Linux,下載即可使用,不需要花錢買昂貴軟體。
符號運算強、計算能力紮實 不管是解方程式、化簡、展開,還是微積分、矩陣運算,wxMaxima 都能給出精確的「符號解」,比單純的計算機更能幫你理解數學本質。
介面友善,容易上手 透過圖形化介面、輸入框與按鈕設計,方便操作,顯示美觀,輕鬆完成從代數到微積分的各類計算。
能畫圖、看得更懂 wxMaxima 支援 2D 與 3D 繪圖。想了解函數長什麼樣?想視覺化微分與積分?它可以幫助你把抽象概念變得具體。
學習過程可記錄、可重複使用 計算步驟與結果都會保留在單一檔案中,類似可執行的「數學筆記本」,方便複習、修改或與同學分享。
幫助你專注於理解,而不是卡在繁瑣計算 CAS 的目的不是偷懶,而是讓你把時間花在「數學概念」上,而不是被冗長的計算步驟拖累,更適合作為學習與驗算工具。
.dmg 檔案。Linux 內含 wxMaxima 套件,可在終端機輸入指令安裝:
本書介紹的數學計算,是在 wxMaxima 24.02.2 版本操作。啟動 wxMaxima 之後,可以看到整體分成幾個主要區域:

主畫面的大區塊,用來顯示你的輸入(input)與輸出(output)。
每次計算會以「輸入區塊(input cell)」的形式呈現。
你可以在預設的 Maths 格式區塊中輸入 Maxima 語法,例如:
也可以輸入文字說明的區塊,只要把區塊的格式選擇 Text 即可。這樣子搭配文字說明和計算的區塊,就可以製作筆記本,儲存下來。
按 Shift + Enter 執行。
用於顯示計算結果,例如上面的例子會輸出:2。
包含常用功能按鈕,例如:
包括「檔案、編輯、繪圖、計算、代數、微積分」等項目,可以快速使用常見功能。選單的語言種類,可以在 [Edit] -> [Configure] -> [Options] 裡設定。
;Maxima 的每個指令結尾都要用分號結束,例如:
Shift + Enter 執行Enter:換行Shift + Enter:執行指令%i1、%o1例如:
之後你可以輸入:
得到 8。
也可以用 % 表示最後一次輸出的結果。
使用:
.wxmx此格式可完整保存你的輸入與輸出(含圖形)。
任一繪圖可:
這對於寫報告非常方便。
你已經準備好開始使用 wxMaxima,進入正式的 CAS 學習旅程。
本章將介紹使用 wxMaxima 進行最基本的計算方式,包括變數、指派、基本運算、常見指令,以及錯誤訊息的辨識。完成本章後,你能將 wxMaxima 當作一個比「計算機」更強大的數學工具。
wxMaxima 使用「輸入區塊(Input Cell)」撰寫指令。每次執行後會產生一個輸出結果。
範例:
執行後會顯示:
3
變數是 CAS 中的重要概念,你可以將數字或表達式「存」進變數。
指派變數的語法是:
輸出:
3
8
:(指派)與 =(方程式)的差別x:3; 表示「把 3 放進 x 裡」。x = 3; 表示「x 等於 3」,這是方程式,可以拿去用 solve() 指令來解方程式。範例:
Maxima 支援完整的代數運算。
輸出:
(%o5) 8
(%o6) 5
(%o7) 24
(%o8) 1/7
(%o9) 0.1428571428571428
可以用 float() 這個指令,指定用浮點數計算,如:
(%o10) 0.1428571428571428
輸出:
(%o11) 32
(%o12) 2
(%o13) 1/8
(%o14) x^3
sqrt()(%o26) sqrt(2)
(%o27) 1.414213562373095
可以用 sin(), cos(),和 tan() 等三角函數計算。需要注意的是,這裡需要用弳度 (radian) 來輸入角度,180度 (degree) 等於 \(\pi\) (radian),30度等於 \(\pi\)/6。在 wxMaxima 裡,以 %pi 來表示圓周率。 \(\pi\) = 3.141592653589793。
(%o28) 1/2
對數函數可以使用 log() 來計算,注意這裡指的是自然對數,也就是以自然底數 \(e\) 為底的對數。在 wxMaxima 裡,以%e 來表示自然底數。 \(e\) = 2.718281828459045。
(%o32) 1
(%o33) log(10)
(%o34) 2.302585092994046
若要計算以 10 為底的對數,可以使用對數的運算關係: \[ \log_{10}(x) = {log_{e}(x) \over log_{e}(10)} \]
wxMaxima 裡虛數以 %i 表示。
輸出:
-1
雖然後面章節會詳述,這裡先介紹最常使用的基本代數功能。
expand(%o10) x^2+x-6
factor(%o11) (x-2)*(x+3)
ratsimp(%o12) x+2
subst(%o14) 18
a 指派為 7,計算 2*a + 3。(x+1)^3 並因式分解還原。使用 ratsimp 化簡
\[ \frac{x^2 - 9}{x - 3} \]
你已經學會:
x:3;)expand、factor、ratsimp接下來的章節會進入更系統的代數、方程式與函數操作。
本章將介紹代數式的展開、化簡、因式分解與分式處理。
這些操作在高中數學中非常常見,而 wxMaxima 提供快速又可靠的工具,幫助你檢查手算結果或進行複雜計算。
展開多項式是最基本的代數技巧,wxMaxima 使用 expand 指令完成。
結果:
x^2 - 2*x - 15
(%o16) x^3-6*x^2+12*x-8
合併同類項常用 ratsimp 或 expand 自動整理式子。
結果:
4*x + 5
因式分解是高中最常見的 CAS 操作之一。
Maxima 的 factor 指令可以將式子自動化簡成乘法形式。
結果:
(x - 2)*(x - 3)
Maxima 會自動分解成:
(x - 1)*(x + 1)*(x^2 + 1)
分式化簡是 ratsimp 的強項。
Maxima 會先因式分解,再約分:
x + 2
(%o18) x^2+x+1
部分分式在積分與分式化簡中很重要,Maxima 的 partfrac 可以分解有理式。
(%o19) 8/(x-1)-5/x
高中常見型態如:
CAS 可以快速驗證學生是否展開或還原正確。
(%o20) (x+3)^2
請使用 wxMaxima 完成以下練習:
展開下列多項式
\[ (x - 1)(x^2 + 3x + 5) \]
因式分解
\[ x^3 - 8 \]
化簡分式
\[ \frac{x^2 - 4x + 4}{x - 2} \]
嘗試用 CAS 觀察下列公式是否正確:
\[ (x + y)^3 = x^3 + 3x^2y + 3xy^2 + y^3 \]
提示:使用 expand((x + y)^3);
你已經學會:
expand 展開多項式ratsimp 合併同類項並化簡分式factor 進行因式分解partfrac 進行部分分式分解(選修)下一章將進入「方程式」的世界,學習如何用 CAS 解線性方程、二次方程與聯立方程。
本章將介紹如何使用 wxMaxima 解一元一次方程、一元二次方程,以及二元一次聯立方程。本章內容完全對應高中數學最核心的方程式操作,並示範如何使用 CAS 協助檢查答案與處理較複雜的情況。
一元一次方程的標準形式為:
\[ ax + b = 0 \]
wxMaxima 使用 solve 指令解方程式:
解:
\[ 2x - 5 = 7 \]
結果為:
[x = 6]
一元二次方程一般形式:
\[ ax^2 + bx + c = 0 \]
使用 solve 即可直接求根:
解:
\[ x^2 - 5x + 6 = 0 \]
結果:
[x = 2, x = 3]
判別式決定根的型態:
可以自訂一個判別式函數:
測試:
得到:
1
你也可以請 CAS 解一般式:
CAS 會輸出:
\[ x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a} \]
這可用來驗證教科書公式。
當方程式很複雜(如五次以上),solve 不一定能給解析式。
可改用以下方法求數值解:
allroots(方程式):只能用在多項式方程式,求所有數值近似根find_root(方程式, x, 區間起點, 區間終點):用二分法求指定區間的單一根,區間起點和區間終點必須跨過根。mnewton(方程式, x, 估計值):用牛頓法求數值解,不限於多項式方程式,其它非線性方程式也適用。求 \(x^5 - x + 1 = 0\) 的根。
先嘗試用 solve(),只得到原式,沒有得到解析解。。
(%o1) [0=x^5-x+1]
用以下指令得到數值解:
(%o3) [x=0.3524715460317262*%i+0.7648844336005848,x=0.7648844336005848-0.3524715460317262*%i,x=1.08395410131771*%i-0.1812324444698754,x=-(1.08395410131771*%i)-0.1812324444698754,x=-1.167303978261418]
可以看到這個多項式方程式只有 1 個實數解,另外 4 個是虛數解。
若要使用 find_root,先畫出這個函數的圖形,可以看到在 -1 到 -1.5 之間有一個實數解。

(%o8) -1.167303978261418
要使用牛頓法 mnewton 求數值解,初次使用必需先 load(mnewton) 這個套件。
(%o10) [[x=-1.167303978261418]]
解聯立方程的語法:
解:
\[ \begin{cases} 2x + y = 7 \\ x - y = 1 \end{cases} \]
結果為:
(%o15) [[x=8/3,y=5/3]]
也可以用牛頓法求聯立方程式的數值解:
(%o16) [[x=2.666666666666666,y=1.666666666666666]]
某班男生 20 人,女生 15 人。若每位男生繳 50 元、女生繳 30 元,總金額為:
\[ 20 \cdot 50 + 15 \cdot 30 \]
但如果有變數(例如人數未知),可用 CAS 建模。
「班上共有 36 人,男生比女生多 8 人,分別有多少男生與女生?」
設:
方程組:
\[ \begin{cases} x + y = 36 \\ x - y = 8 \end{cases} \]
解:
求判別式並判斷下列方程的根的型態:
\[
2x^2 - 4x + 2 = 0
\]
使用 allroots 求
\[
x^4 - 3x + 1 = 0
\]
解聯立方程: \[ \begin{cases} 3x + 2y = 12 \\ x - 4y = -6 \end{cases} \]
本章你學會:
solve 解一元一次、一元二次方程allroots,find_root 與 mnewton 求數值解下一章將介紹不等式與絕對值方程,讓你利用 CAS 處理更多高中常見的問題。
本章介紹如何使用 wxMaxima 處理一元不等式、不等式組、絕對值不等式與區間表示法。
不等式是高中數學常見題型,而 CAS 尤其擅長在複雜的不等式推導中協助檢查與驗證。
一元一次不等式的形式為:
\[ ax + b > 0,\quad ax + b < 0 \]
單變數的多項式和有理不等式,可以使用 solve_rat_ineq 來解,初次使用需先載入:
\[ 3x - 5 > 7 \]
結果:
[[x>4]]
高中常見型態:
\[ ax^2 + bx + c > 0 \]
解法通常需先找根,再判斷圖形開口方向。
CAS 可直接求解:
解:
\[ x^2 - 5x + 6 < 0 \]
結果:
[[x>2,x<3]]
有理不等式,即分式形式的不等式。
\[ {{2\,x-1}\over{x+4}} \le {3} \]
結果:
[[x<=-13],[x>-4]]
解:
\[ {{1}\over{x+3}}+{{x+2}\over{x-1}} > 0 \]
結果:
[[x<-5],[x>-3,x<-1],[x>1]]
單變數或多變數的線性不等式組,可以用 fourier_elim 這個指令來解。初次使用需載入套件:
解:
\[ \begin{cases} x + 1 > 0 \\ 2x - 5 < 3 \end{cases} \]
結果:
[-1<x,x<4]
fourier_elim 也可以解 2 個變數的線性不等式組:
\[ \begin{cases} x + y > 0 \\ 2x - y < 3 \end{cases} \]
結果:
[-y<x,x<y/2+3/2,-1<y]
從圖形上來看,由於這兩條直線的交點是 (1, -1),滿足不等式組的區域就會是這 2 條線圍成的上方區域。

這裡考慮另一個例子,把上面的例子改成“大於等於”。
\[ \begin{cases} x + y \ge 0 \\ 2x - y < 3 \end{cases} \]
結果就會包含一部份直線本身,和 2 條線圍成的上方區域。
輸出:
[x=-y,-1<y] or [-y<x,x<y/2+3/2,-1<y]
也就是:
\[ \left[ x=-y , -1<y \right] \lor \left[ -y<x , x<{{y}\over{2}}+{{3}\over{2}} , -1<y \right] \]
絕對值不等式是高中常見題型,CAS 可直接求解。
\[ |x| < 3 \]
在 wxMaxima:
結果:
[-3<x,x<3]
例:
\[ |x - 2| > 5 \]
得到:
[x<-3] or [7<x]
wxMaxima 能用 wxplot2d 繪製函數圖形,以視覺方式理解不等式的解集。

解:
\[ -2 < x < 2 \]
結果:
[[x>-2,x<2]]
請使用 wxMaxima 解下列不等式:
解下列不等式組:
\[ \begin{cases} 2x - 1 > 0 \\ x + 5 < 10 \end{cases} \]
先畫圖,再解:
\[ x^2 + x - 6 < 0 \]
本章你學會:
wxplot2d 觀察不等式的圖形判斷下一章將開始數列、級數與遞迴的世界,並學習如何用 CAS 生成數列與求和。
本章介紹如何使用 wxMaxima 處理高中數學中的數列、等差級數、等比級數、遞迴數列與求和運算。
CAS 在數列主題中特別好用,因為它能快速計算大量項目、檢查規律,並協助學生建立數列直觀。
wxMaxima 中沒有專門的「數列物件」,但可以使用 list(列表) 表示有限數列。
生成前 n 項可用:
定義數列
\[
a_n = n^2
\]
輸出:
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
等差數列定義為:
\[ a_n = a_1 + (n-1)d \]
結果:
3
2
[3,5,7,9,11,13,15,17,19,21]
等差級數公式:
\[ S_n = \frac{n(a_1 + a_n)}{2} \]
CAS 可直接使用 sum:
結果:
120
等比數列:
\[ a_n = a_1 r^{n-1} \]
結果:
2
3
[2,6,18,54,162,486,1458,4374]
等比級數公式:
\[ S_n = a_1 \frac{r^n - 1}{r - 1} \]
CAS 也能自動求和:
結果:
6560
數列也可用遞迴定義:
\[ a_1 = 1,\quad a_{n+1} = 2a_n + 1 \]
Maxima 沒有遞迴數列內建函數,但我們可以使用程式語法生成遞迴:
for 生成遞迴數列在 wxMaxima 指令行尾若是用 $,代表不要顯示這行指令的結果。
結果:
[1,3,7,15,31,63,127,255,511,1023,2047]
對數列
\[
a_n = \frac{n}{n+1}
\] 求 n 趨近無限大時的極限:
結果:
1
可從結果看到其逐漸趨近 1。
[1/2,2/3,3/4,4/5,5/6,6/7,7/8,8/9,9/10,10/11]
CAS 的 sum 可以處理:
求:
\[ \sum_{n=1}^{20} n^2 \]
結果:
2870
求無窮幾何級數:
\[ \sum_{n=0}^{\infty} ar^n \]
條件:公比 \(|r| < 1\)
在 wxMaxima:
上面加上 simpsum=true 是為了要簡化輸出,結果:
a/(1-r)
即得到,當公比的絕對值小於 1 時,無窮等比級數的和。
請使用 wxMaxima 完成:
使用遞迴式,生成數列的前 10 項。 \[ a_1 = 2,\quad a_{n+1} = 3a_n - 1 \]
求和:
\[
\sum_{n=1}^{50} (3n - 1)
\]
你已經學會:
makelist 生成數列sum 求級數for 定義遞迴數列下一章將進入函數與圖形的世界,學習如何用 wxMaxima 進行繪圖與函數分析。
本章將介紹如何在 wxMaxima 中定義函數、計算函數值、繪製圖形,並探索函數的重要性質,例如定義域、值域、奇偶性與對稱性。本章奠定後續所有函數章節(平移、反函數、複合函數、微分、積分)的基礎。
定義函數的語法為:
即得到函數的值:
0
0.75
繪圖語法:

反應在視窗中的即是拋物線圖形。
可以一次繪製多個函數,來比較圖形。

上面的指令,也可以用視窗選單的 [Plot] -> [Plot 2d] 來做。
若是在選單中的 [Options] 裡 選擇 set size ratio 1; set zeroaxis;,並且把 x, y 的區間設成相同,就可以畫出 x 軸和 y 軸以 1 : 1 顯示的圖形。

wxMaxima 不會自動給出值域,但可透過圖形判讀。
例如:
\[ f(x) = \sqrt{x - 1} \]

由圖可看出:
奇函數(odd function):
\[ f(-x) = -f(x) \]
偶函數(even function):
\[ f(-x) = f(x) \]
可透過 CAS 做代換檢查:
由結果可知此函數為奇函數:
f(x):=x^3-x
0
2*x-2*x^3

奇函數會顯示原點對稱。
Maxima 可用 if 定義分段函數。
\[ f(x) = \begin{cases} -x & \text{if } x < 0 \\ x & \text{if } x \geq 0 \end{cases} \]
圖形:

\[ g(x) = \begin{cases} 0 & \text{if } x < 0 \\ x & \text{if } 0 \leq x < 2 \\ 2 & \text{if } x \geq 2 \end{cases} \]
圖形:

例:判斷函數
\[ f(x) = \frac{x^2 - 4}{x - 2} \]
是否可化成簡單形式。
ratsimp 是常用指令,可將代數式化成「有理式」的最簡形式(rational simplification)。
結果:
x + 2
提醒:原式在 \(x = 2\) 不存在。
trigsimp 可以化解三角函數,如:
得到:
1
化簡後:
cos(x)^2+1
使用 logcontract 的例子
例:
得到:
log(x^2*y)
另一例:
得到:
a*log(x^(2*n))
用 logexpand 展開式子的例子:
結果:
2*log(b)+log(a)
請使用 wxMaxima 完成以下練習:
定義分段函數,並繪圖: \[ f(x) = \begin{cases} x^2, & x \le 0 \\ x, & x > 0 \end{cases} \]
利用 ratsimp 檢查: \[
\frac{x^3 - x}{x} = x^2 - 1
\]
本章你學會:
wxplot2d 繪製多種函數圖形下一章將介紹函數平移、伸縮、翻轉等變換,幫助學生全面理解函數圖形的變化。
本章介紹如何利用 wxMaxima 觀察與理解函數的各種變換,包括水平與垂直平移、伸縮、反射與疊圖比較。
這些內容是高中數學中函數圖形的重要核心能力,亦是學生視覺化理解函數的最佳機會。
垂直平移代表整個圖形向上或向下移動 k 單位。

圖形會呈現兩個拋物線,一個在上方,一個在下方。
水平平移是將圖形向左或向右移動 h 單位。






變換可組合使用,例如:
\[ y = -2f(x - 1) + 3 \]
代表:

本章你已學會:
下一章將介紹反函數與複合函數,深入探討函數之間的關係與變換。
本章介紹反函數、單調性判斷、水平線測試、反函數求法,以及複合函數的概念與在 wxMaxima 中的實作。
高中數學強調「函數之間的關係」與「操作與圖形的連結」,本章正好是銜接的核心。
如果一個函數 \(f\) 將 \(x\) 對應到 \(y\):
\[ y = f(x) \]
那反函數 \(f^{-1}\) 則反過來:
\[ x = f^{-1}(y) \]
要有反函數,函數必須是可逆的,也就是通過「水平線測試」:
反函數的求法就是「把 x 與 y 交換,再解 x」。
在 wxMaxima:
\[ f(x) = x^2,\quad x \ge 0 \]
得到:
[x=-sqrt(y),x=sqrt(y)]
但是因為有限制 \(x \ge 0\),所以只取:
x = sqrt(y)
若要寫成反函數:
\[ f^{-1}(x) = \sqrt{x} \]
(反函數存在的理由是限制在 \(x \ge 0\) 的區間。)
若:
\[ f(x) = ax + b,\quad a \neq 0 \]
反函數為:
\[ f^{-1}(x) = \frac{x - b}{a} \]
CAS 驗算:
得到:
[x=(y-b)/a]
指數與對數天然互為反函數:
\[ f(x) = e^x,\quad f^{-1}(x) = \ln(x) \]
驗算:
x = log(y)
反函數圖形會以直線 \(y = x\) 對稱。
wxplot2d([exp(x), log(x), x], [x,-10,10], [y,-10,10],
[gnuplot_postamble, "set size ratio 1; set zeroaxis;"])$
你會看到兩條對稱的曲線。
複合函數定義:
\[ (f \circ g)(x) = f(g(x)) \]
在 wxMaxima:
\[ f(x) = x^2,\quad g(x) = x + 1 \]
輸出:
(x + 1)^2
疊圖能清楚看出複合函數的效果。
wxplot2d([f(x), g(x), h(x)], [x,-5,5], [y,-5,5],
[gnuplot_postamble, "set size ratio 1; set zeroaxis;"])$
能觀察到:
若 \(f\) 可逆:
\[ f(f^{-1}(x)) = x \] \[ f^{-1}(f(x)) = x \]
CAS 驗證:
自訂 f(x) 和 finv(x):
得到:
f(x):=x^2
finv(x):=sqrt(x)
x
x
本章你學會:
solve 求反函數下一章將正式進入微積分的世界:極限與導數。
本章將介紹極限的概念、數值觀察、圖形判斷,以及 wxMaxima 的 limit 指令。
高中數學的微積分強調「直觀理解」而非純符號推導,因此本章以視覺與數值為主,搭配 CAS 檢查極限。
極限表示「當 x 趨近某個值時,函數值的趨近行為」。
例:
\[ \lim_{x\rightarrow 2}{x^2-1} \]
意義是「看 x 靠近 2 時,\(x^2 - 1\) 靠近什麼數」。
極限的直覺可用數列表觀察。
觀察 \[\lim_{x\rightarrow 2} (x^2 - 1)\]
[1.25,1.56,1.89,2.240000000000001,2.610000000000001,3.000000000000001,3.410000000000002,3.840000000000002,4.290000000000004,4.760000000000004,5.250000000000004]
此輸出顯示 x 靠近 2 時,值靠近 3。
wxMaxima 中:
結果:
3
語法:
\[ \lim_{x\rightarrow 0^-} \frac{|x|}{x} \]
結果顯示:
高中數學重點型態如下:
\[ \lim_{x\rightarrow 0} \frac{\sin x}{x} = 1 \]
指令:
CAS 能自動化簡代數式再取極限。
\[ \lim_{x\rightarrow 2} \frac{x^2 - 4}{x - 2} \]
結果:
4
同時也可先簡化:
得到:
x + 2
例:
\[ \lim_{x\rightarrow \infty} \frac{3x^2 + 1}{x^2 - 2} \]
結果:
3
若:
\[ \lim_{x\rightarrow \infty} f(x) = L \]
則 \(y = L\) 為水平漸近線。
CAS 可快速判斷此性質。
繪圖可以直觀判斷極限。

圖形顯示:當 \(x\) 向正方向或負方向越來越大時, \(f(x)\) 趨近於漸近線 \(y = 3\) 。
ratsimp 化簡後再取極限:
本章你學會:
limit 求極限與單側極限ratsimp 化簡困難的極限下一章將介紹正式的微分操作:導數、微分法則與切線問題。
本章將介紹導數的概念、微分法則、在 wxMaxima 中使用 diff 指令求導,以及應用到切線、速度、極值與遞增遞減分析。
這是高中數學微積分單元的核心章節,CAS 能協助學生快速檢查與視覺化理解。
導數描述「瞬間變化率」或「切線斜率」,也就是在這個點做微分。
例如:在物理上,瞬間速度就是位移對時間的微分。瞬間加速度就是速度對時間的微分。
若:
\[ f(x) = x^2 \]
那 \(x=1\) 附近的變化率,可用割線斜率近似:
\[ m = \frac{f(1+h) - f(1)}{h} \]
讓 \(h\) 越來越小,即得到導數。
對一個函數 \(f(x)\),若在某點 \(x=a\) 附近定義良好,導數 \(f'(a)\) 定義為:
\[ f'(a)=\lim_{h\to 0}\frac{f(a+h)-f(a)}{h} \]
若此極限存在,則稱函數在 \(x=a\) 可微分(differentiable),而極限的值就是該點的導數。
導數可以表示為:
\[ f'(x) = {{d \, f(x)} \over {d x}} \]
diff 求導數基本語法:
結果:
3*x^2 - 3
若函數 \(f(x)\) 在某點可微,且其導數 \(f'(x)\) 也可微,則二階導數定義為:
\[ f''(x)=\frac{d}{dx} \left( f'(x) \right) = \frac{d^2 f(x)}{dx^2} \]
也就是說: 二階導數 = 一階導數的變化率。
語法:
就是對函數連續做 2 次微分。
結果:
4*x^3
12*x^2
wxMaxima 會自動處理:
結果:
6*x*cos(3*x^2+1)
define()在 wxMaxima 裡,可以用 define(f(x), 表達式)定義函數。define() 會先計算右邊的表達式,然後再建立函數。
得到:
f(x):=x^3-3*x^2+1
f1(x):=3*x^2-6*x
計算 \(x=2\) 時導函數的值:
0
ev()另一種求值的表示方法,可以用 ev()
結果:
f(x):=x^3-3*x^2+1
3*x^2-6*x
0
此時,若是輸入
會得到錯誤訊息,因為 wxMaxima 把它視為: diff(f(2), 2) ← invalid (2 is not a variable)
``(...)雙引號 ``(...) 會強制 Maxima 立即對該表達式求值,而不是等到函數被定義之後。
就可以得到我們要計算的導函數的值:
f(x):=x^3-3*x^2+1
f1(x):=3*x^2-6*x
0
若函數 \(f(x)\) 在 \(x=a\) 可微分,其切線斜率:
\[ m = f'(a) \]
切線方程式:
\[ y = f(a) + f'(a)(x - a) \]
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);結果:
(%o1) f(x):=x^2-3*x+2
(f1) 2*x-3
(a) 1
(b) 0
(m) -1
(%o6) tangent(x):=b+m*(x-a)
(%o7) 1-x
結果:
f(x):=x^3-3*x^2+2
[x=0,x=2]
由 \(f(x)\) 的圖形,可以看出在 \(x = 0\) 有局部極大值,在 \(x = 2\) 有局部極小值。

二階導數為
6x
把原式和二階導數畫在一起。可以看到當二階導數為正值時,原函數凹向上;當二階導數為正值時,原函數凹向下。

範例:

觀察:
若自由落體運動位置對時間的關係為:
\[ s(t) = {{g\,t^2}\over{2}} \]
其中 g 為重力加速度 \(9.8 \, m/s^2\) 則:
CAS:
即:
\[ s(t) = {{g\,t^2}\over{2}} \]
\[ v(t) = g\,t \]
\[ a(t) = g \]

可以觀察到,等加速度運動,位移對時間是一元二次函數,速度以直線遞增,加速度則為一固定值。
求切線方程式:
\[
y = x^2 + 1,\quad x = 3
\]
找出下列函數的極值點:
\[
f(x) = x^3 - 6x^2 + 9x + 2
\]
判斷下列函數的凹向上/凹向下區間:
\[
f(x) = x^4 - x^2
\]
速度與加速度:求:\(v(t), a(t)\) \[ s(t) = 2t^3 - 4t \]
本章你已學會:
diff 求導下一章將介紹積分:不定積分、定積分與面積計算。
本章將介紹不定積分、定積分、面積計算,以及 wxMaxima 中 integrate 指令與數值積分方法。
高中數學中強調直觀與應用,積分可以想成是微分的相反,就是已經知道導函數,求回原函數。但有些函數的積分不一定有解析式。 本章也包含圖形理解與 CAS 協助檢查手算結果。
不定積分表示「求原函數」,記為:
\[ \int f(x)\,dx = F(x) + C \]
其中 \(F'(x) = f(x)\)。
integrate 求不定積分基本語法:
結果:
x^2
wxMaxima 能自動處理:
得到:
x^4/4-x^2+x
CAS 不需要手動代換,但能用來檢查手算答案是否正確。
\[ \int (2x+3)(x^2+3x+1)^5 dx \]
CAS:
得到:
\[ {{\left(x^2+3\,x+1\right)^6}\over{6}} \]
結果可與手算代換 \(u = x^2 + 3x + 1\) 比對。
語法與一般積分相同。
\[ \int x e^x dx \]
得到:
\[ \left(x-1\right)\,e^{x} \]
定積分表示從 a 到 b 的累積量:
\[ \int_a^b f(x)\,dx \]
wxMaxima:
\[ \int_0^2 (x^2 - 1)\,dx \]
得到:
14/3
積分的結果,可視為 x 從 0 到 2 之間,函數曲線下的面積等於 14/3。

得到:
-(3/2)
用 wxplot2d 可以視覺化:

積分的結果是 x 軸上方的積分(正值),加上 x 軸下方的積分(負值)。
可以觀察:
quad_qags當積分無法得到解析式,可使用數值積分。
結果:
[0.7468241328124271,8.291413475940727*10^-15,21,0]
各項數字的意義:
0.7468241328124271 → 近似的積分值
8.291413475940727*10^-15 → 誤差估計
21 → 被積分函數評估的次數
0 → 狀態碼(0 = 成功)
若:
\[ \int |x-1| dx \]
需分段:
\[ |x-1| = \begin{cases} 1-x, & x<1 \\ x-1, & x\ge 1 \end{cases} \]
得到:
26
圖形為左右兩個三角形的面積的和。

wxMaxima 雖然能直接給答案,但學習時保持分段觀念更好。
quad_qags)你已學會:
integrate 求不定積分與定積分下一章將介紹向量與幾何,進入空間觀念與圖形分析的世界。
本章介紹高中數學中的向量與座標幾何核心概念:向量的表示、運算、內積、夾角、投影、與直線方程式。
wxMaxima 雖不是專為幾何設計,但能作為計算工具協助檢查代數推導。
平面向量可寫成:
\[ \vec{v} = \langle a, b \rangle \]
\[ \vec{w} = \langle c, d \rangle \]
wxMaxima 使用 list(列表)代表向量:
\[ \vec{v} + \vec{w} = \langle a+c,\ b+d \rangle \]
CAS:
結果:
(v) [1,3]
(w) [2,-1]
(%o10) [3,2]
\[ k\vec{v} = \langle ka,\ kb \rangle \]
[2,6]
向量長度:
\[ |\vec{v}| = \sqrt{a^2 + b^2} \]
向量內積公式:
\[ \vec{v}\cdot\vec{w} = a c + b d \]
wxMaxima 的內積是用英文的句點 . 代表乘號:
得到:
(v) [1,3]
(w) [2,-1]
(%o40) -1
向量的長度也可以把向量對自己內積,再開根號:
得到:
sqrt(5)
向量間夾角滿足:
\[ \cos \theta = \frac{\vec{v}\cdot\vec{w}}{|\vec{v}||\vec{w}|} \]
CAS:
上面的 numer 這個參數,是要指定 wxMaxima 以小數表示結果:
(v) [1,2]
(w) [3,1]
(%o3) 0.7071067811865475
向量 v 在 w 上的投影:
\[ \operatorname{proj}_w v = \frac{\vec{v}\cdot\vec{w}}{|\vec{w}|^2} \vec{w} \]
CAS:
計算 v 在 w 上的投影,結果仍是一個向量:
(v) [1,2]
(w) [3,1]
(%o17) [3/2,1/2]
兩點 A(x1,y1)、B(x2,y2) 的距離:
\[ AB = \sqrt{(x_2-x_1)^2 + (y_2-y_1)^2} \]
\[ y = mx + b \]
\[ y - y_1 = \frac{y_2-y_1}{x_2-x_1}(x - x_1) \]
CAS 可用 solve 找斜率:
解聯立方程即可:
用 is() 來判斷條件的真或假。若為真,傳回 true。若為假,傳回 false:
或直接代入數值計算。
本章你已學會:
下一章將進入空間向量與立體幾何,延伸至 3D 的向量運算與空間關係。
本章將向你介紹三維向量(3D 向量)、空間中的距離、向量運算、平面與直線的關係。
雖然高中數學對空間座標內容較為精簡,但向量觀念在物理與微積分中十分重要,透過 CAS 可以更有效檢查與運算。
空間向量可表示為:
\[ \vec{v} = \langle a, b, c \rangle \]
wxMaxima 一樣使用列表表示:
\[ \langle a,b,c \rangle + \langle x,y,z \rangle = \langle a+x, b+y, c+z \rangle \]
\[ |\vec{v}| = \sqrt{a^2 + b^2 + c^2} \]
CAS:
或是
定義:
\[ \vec{v}\cdot\vec{w} = ax + by + cz \]
例:
結果:
(u) [a,b,c]
(w) [x,y,z]
(%o38) c*z+b*y+a*x
公式:
\[ \cos\theta = \frac{\vec{v}\cdot\vec{w}}{|\vec{v}|\,|\vec{w}|} \]
CAS:
結果:
(v) [1,2,3]
(w) [3,1,1]
(%o50) 0.6446583712203042
外積結果是另一個向量,且與 v、w 垂直。
公式:
\[ \vec{v} \times \vec{w} = \begin{vmatrix} \mathbf{i} & \mathbf{j} & \mathbf{k} \\ a & b & c \\ x & y & z \end{vmatrix} \]
wxMaxima 計算外積,需先 load(vect),再以 v~w 代表外積。
結果:
(v) [1,2,3]
(w) [3,1,1]
(%o4) [1,2,3]~[3,1,1]
(%o5) [-1,8,-5]
點 A(x1,y1,z1)、B(x2,y2,z2) 的距離:
\[ AB = \sqrt{(x_2-x_1)^2 + (y_2-y_1)^2 + (z_2-z_1)^2} \]
CAS:
若直線通過點 \(P_0(x_0,y_0,z_0)\),方向向量 \(\vec{d} = (a,b,c)\),
則直線參數式為:
\[ \ell:\ \begin{cases} x = x_0 + at \\ y = y_0 + bt \\ z = z_0 + ct \end{cases} \]
CAS 可用擴展符號表示:
結果:
(x0) 1
(y0) 2
(z0) -3
(d) [-2,-1,3]
(%o24) [1-2*t,2-t,3*t-3]
在3D 座標用參數式畫出這條直線,需先 load(draw):
load(draw)$
wxdraw3d(
parametric(1 - 2*t, 2 - t, 3*t - 3, t, -10, 10),
xlabel = "x",
ylabel = "y",
zlabel = "z")$
若平面法向量為 \(\vec{n} = (A,B,C)\),平面方程為:
\[ Ax + By + Cz + D = 0 \]
若給平面上一點 P(x0,y0,z0):
\[ D = -(Ax_0 + By_0 + Cz_0) \]
CAS:
結果:
(A) 1
(B) 2
(C) -1
(x0) 2
(y0) 1
(z0) 0
(D) -4
(%o8) -z+2*y+x-4
圖形:

CAS:
求兩點距離:
A(1,2,3)、B(4,6,8)
判斷直線是否與平面相交 直線:\(x=1+2t,\ y=3-t,\ z=2+t\)
平面:\(x - y + z - 4 = 0\)
本章你已學會:
下一章將進入統計與資料分析,使用 CAS 處理排列組合、機率與統計量!
本章介紹高中數學中常見的排列、組合、基本機率概念與 wxMaxima 的計算方法。本章著重「計算與理解並重」,並提供 CAS 作為工具輔助學生檢查答案。
階乘定義:
\[ n! = n (n-1) (n-2) \cdots 1 \]
wxMaxima 使用 ! 或 factorial(n):
結果:
(%o4) 120
(%o5) 720
排列定義:
\[ P(n,k) = \frac{n!}{(n-k)!} \]
CAS:
組合定義:
\[ C(n,k) = \frac{n!}{k!(n-k)!} \]
CAS:
結果:
120
wxMaxima 不會自動判斷情境,但可輔助計算。
圓排列:
\[ (n-1)! \]
CAS:
若所有結果等可能:
\[ P(A) = \frac{\text{有利結果數}}{\text{所有結果數}} \]
CAS 可用來計算:
擲兩顆骰子,點數和為 7 的機率是多少?
方法一
為了清楚起見,以下列出每一步驟的輸出結果。
makelist(i+j, i, 1, 6); /* 列出 i 從 1 到 6 和 j 搭配 */
s_nested: makelist(makelist(i+j, i, 1, 6), j, 1, 6); /* 生成所有可能點數和的列表 */
s: flatten(s_nested); /* 將二維列表展平為一維列表,包含 36 個元素 */
sublist(s, lambda([x], x=7));
favorable_outcomes: length(sublist(s, lambda([x], x=7))); /* 計算點數和為 7 的情況數 */
/* 計算所有可能結果的次數 */
total_outcomes: length(s);
/* 計算機率 (有利結果數 / 總結果數) */
probability: favorable_outcomes / total_outcomes;其中 lambda([x], x = 7) 是判斷函數,若 x = 7 傳回 true; 其餘情況,傳回 false。
結果:
(%o12) [j+1,j+2,j+3,j+4,j+5,j+6]
(s_nested) [[2,3,4,5,6,7],[3,4,5,6,7,8],[4,5,6,7,8,9],[5,6,7,8,9,10],[6,7,8,9,10,11],[7,8,9,10,11,12]]
(s) [2,3,4,5,6,7,3,4,5,6,7,8,4,5,6,7,8,9,5,6,7,8,9,10,6,7,8,9,10,11,7,8,9,10,11,12]
(%o15) [7,7,7,7,7,7]
(favorable_outcomes) 6
(total_outcomes) 36
(probability) 1/6
方法二
上面的步驟可以簡化為:
s : create_list(i + j, i, 1, 6, j, 1, 6);
prob : length(sublist(s, lambda([x], x = 7))) / length(s);結果:
(s) [2,3,4,5,6,7,3,4,5,6,7,8,4,5,6,7,8,9,5,6,7,8,9,10,6,7,8,9,10,11,7,8,9,10,11,12]
(prob) 1/6
\[ P(A \cup B) = P(A)+P(B)-P(A\cap B) \]
獨立事件:
\[ P(A\cap B)=P(A)P(B) \]
獨立事件的計算例子:
\[ P(A|B) = \frac{P(A\cap B)}{P(B)} \]
例題: 把一顆骰子連續擲2次, 事件B: 已知第1次擲得偶數 事件A: 兩次點數的和是 5 請問條件機率 \(P(A|B)\)?
1. 事件定義
1. 求 \(P(B)\)
第 1 次必須是偶數(2,4,6 共 3 種),第 2 次可為 1–6 共 6 種:
\[ |B| = 3 \times 6 = 18,\quad P(B) = \frac{18}{36} = \frac{1}{2} \]
3. 求 \(P(A \cap B)\)
\[ (1,4),(2,3),(3,2),(4,1) \]
其中要同時滿足「第 1 次是偶數」,只留下:
\[ A \cap B = {(2,3),(4,1)} \]
所以:
\[ |A \cap B| = 2,\quad P(A \cap B) = \frac{2}{36} = \frac{1}{18} \]
4. 用條件機率公式
\[ P(A \mid B) = \frac{P(A \cap B)}{P(B)} = \frac{\frac{1}{18}}{\frac{1}{2}} = \frac{1}{18} \times 2 = \frac{2}{18} = \frac{1}{9} \]
用wxMaxima模擬
(%i49) /* 所有樣本點 */
S : create_list([i, j], i, 1, 6, j, 1, 6);
/* 事件 B:第 1 次偶數 */
B : sublist(S, lambda([x], evenp(x[1])));
/* 事件 A∩B:第 1 次偶數且和為 5 */
AB : sublist(S, lambda([x],
evenp(x[1]) and x[1] + x[2] = 5));
/* P(A|B) */
P_A_given_B : length(AB) / length(B), ratsimp;其中 evenp() 是 Maxima 的內建判斷函數,用來測試某個整數是否為「偶數 (even)」。
輸出結果:
(S) [[1,1],[1,2],[1,3],[1,4],[1,5],[1,6],[2,1],[2,2],[2,3],[2,4],[2,5],[2,6],[3,1],[3,2],[3,3],[3,4],[3,5],[3,6],[4,1],[4,2],[4,3],[4,4],[4,5],[4,6],[5,1],[5,2],[5,3],[5,4],[5,5],[5,6],[6,1],[6,2],[6,3],[6,4],[6,5],
[6,6]]
(B) [[2,1],[2,2],[2,3],[2,4],[2,5],[2,6],[4,1],[4,2],[4,3],[4,4],[4,5],[4,6],[6,1],[6,2],[6,3],[6,4],[6,5],[6,6]]
(AB) [[2,3],[4,1]]
(P_A_given_B) 1/9
貝氏定理 (Bayes’ Theorem) 描述了兩個條件機率之間的關係。
\[ P(A|B) = \frac{P(B|A) \times P(A)}{P(B)} \]
範例
求某醫學檢驗呈陽性時,病人得病的機率。
A: 病人得病 B: 檢驗呈陽性
某疾病的盛行率為:
\[ P(A)=0.01 \]
在病人得病情況下,檢驗呈陽性的機率: \[ P(B \mid A)=0.9 \]
在未得病的人,檢驗呈陽性的機率: \[ P(B \mid A^c)=0.05 \]
求檢驗呈陽性時,病人得病的機率。:
\[ P(A \mid B) = ? \]
(%i112) /* 先驗機率 P(A) */
PA : 0.01;
/* 在 A 下觀察到 B 的機率: P(B|A) */
PBgivenA : 0.9;
/* 在不是 A 時觀察到 B 的機率: P(B|A^c) */
PBgivenAc : 0.05;
/* 事件 A 的補集的機率 */
PAc : 1 - PA;
/* 總證據機率 P(B) = P(B|A)*P(A) + P(B|A^c)*P(A^c) */
PB : PBgivenA*PA + PBgivenAc*PAc;
/* 貝氏定理:P(A|B) */
PAgivenB : (PBgivenA * PA) / PB;結果:
(PA) 0.01
(PBgivenA) 0.9
(PBgivenAc) 0.05
(PAc) 0.99
(PB) 0.0585
(PAgivenB) 0.1538461538461538
\[ P(A \mid B) = 0.15 \]
二項式分布:
\[ P(X=k)=C(n,k)p^k(1-p)^{n-k} \]
例題:
假設:
求: \[ P(X = 4) \]
依二項式分布公式: \[ P(X=k)=\binom{n}{k}p^k(1-p)^{n-k} \]
代入 \(n=10, k=4, p=0.3\):
\[ P(X=4)=\binom{10}{4} (0.3)^4 (0.7)^6 \]
CAS 計算:
結果:
(n) 10
(p) 0.3
(k) 4
(%o53) 0.2001209489999998
10 本書排成一排,3 本指定書必須相鄰,有幾種排法?
從 A、B、C、D、E 中選 3 個人組隊,有幾種方式?
本章你學會:
下一章將進入資料分析與統計量包含平均數、中位數、變異數、標準差等計算。
本章介紹高中數學的重要統計內容:
平均數、中位數、眾數、變異數、標準差、加權平均、資料表處理等。
wxMaxima 雖不是專用統計軟體,但提供足夠的資料處理能力,能協助學生快速檢查答案。
wxMaxima 使用 list 來存放資料:
平均數定義:
\[ \bar{x} = \frac{1}{n}\sum_{i=1}^{n} x_i \]
CAS 使用:
平均值:
19/3
加上 numer,以小數表示:
6.333333333333333
平均數也可用定義,把總和除以項數:
結果:
19/3
中位數為排序後的中間值。
CAS:
因為這筆資料有 6 項,這裡傳會中間 2 個數的平均。
6
最常出現的數值。
wxMaxima 沒有直接代表眾數的指令。
可以用其它方法觀察:
需先 load(descriptive),使用discrete_freq(list) 傳回 [值, 出現次數]。
load(descriptive)$
data1 : [3, 5, 2, 3, 3, 2, 5, 4, 3, 5, 7];
df1 : discrete_freq(data1);
val : df1[1];
freq : df1[2];
index_max : sublist_indices(freq, lambda([x], x = lmax(freq))); /* 找出最大的 freq 的 index 位置 */
modes : makelist(val[i], i, index_max)$ /* 眾數的定義,傳回出現最多次數的值 */
modes;結果:
(data1) [3,5,2,3,3,2,5,4,3,5,7]
(df1) [[2,3,4,5,7],[2,4,1,3,1]]
(val) [2,3,4,5,7]
(freq) [2,4,1,3,1]
(index_max) [2]
(%o16) [3]
在此例中,可以看到 3 出現 4 次,所以眾數是 3。
定義一個求眾數的自訂函數
把上面的方法延伸,直接定義一個求眾數的函數。
mode(list) := block(
[df, val, freq, idx],
/* 離散型資料的值與頻數 */
df : discrete_freq(list),
val : df[1],
freq : df[2],
/* 最大頻數的索引位置 */
idx : sublist_indices(freq, lambda([x], x = lmax(freq))),
/* 傳回所有眾數 */
makelist(val[i], i, idx)
)$接著,只要輸入:
就可以得到眾數。
[3,5,2,3,3,2,5,4,3,5,7]
[3]
對於資料 \(x_1, x_2, \dots, x_n\):
變異數:
\[ \sigma^2 = \frac{1}{n}\sum (x_i - \bar{x})^2 \]
標準差:
\[ \sigma = \sqrt{\sigma^2} \]
計算:
得到:
(data) [3,5,2,3,3,2,5,4,3,5,7]
(%o5) 2.148760330578513
(%o6) 1.465865045145191
適用於有限個樣本數的變異數和標準差,此時分母是用 \(n - 1\)。
\[ s^2 = \frac{1}{n-1}\sum (x_i - \bar{x})^2 \]
計算
需先 load(descriptive),再使用 var1 和 std1。
加權平均:
\[ \bar{x} = \frac{\sum w_i x_i}{\sum w_i} \]
假設:
得到加權平均:
83
若資料分組(例如統計表),需要用組中點計算:
組中點:
\[ m_i = \frac{\text{下限}+\text{上限}}{2} \]
平均數:
\[ \bar{x} = \frac{\sum m_i f_i}{\sum f_i} \]
CAS:
mid : [(0+10)/2, (10+20)/2, (20+30)/2];
freq : [5, 12, 8];
sum(mid[i]*freq[i], i,1,3) / sum(freq[i], i,1,3), numer;得到:
(mid) [5,15,25]
(freq) [5,12,8]
(%o26) 16.2
得:
(data) [3,5,2,3,3,2,5,4,3,5,7]
(%o35) [2,2,3,3,3,3,4,5,5,5,7]
(%o36) 7
(%o37) 2
CAS:
data : [3,5,2,3,3,2,5,4,3,5,7];
quantile(data, 0.25);
quantile(data, 0.50); /* 中位數 */
quantile(data, 0.75);(%o7) 3.0
(%o8) 3
(%o9) 5.0
計算下列資料的平均數、中位數、眾數:
\([6, 8, 6, 10, 5, 7, 6]\)
求變異數與標準差:
\([3, 4, 5, 6, 7]\)
對分組資料:
| 區間 | 人數 | |——|——| | 0–10 | 4 | | 10–20| 6 | | 20–30| 5 |
求估計平均數。
計算資料的最大、最小、排序與四分位數:
\([2,9,1,4,7,6]\)
本章你已學會:
下一章將進入本書的最後主題:wxMaxima 的應用策略。
本章是全書收尾,介紹如何實際在高中數學題目中運用 wxMaxima 這個電腦代數系統 (CAS),作為「檢查工具」、「探索工具」與「解題策略輔助」。
善用 CAS 來驗證、觀察與發現規律,可以使學習更有效率。
高中數學強調「理解」、「推理」、「應用」,而非機械計算。
CAS 在此扮演以下三種角色:
例如:
(%o26) x^2+x+1
(%o27) x^2+x-6
(%o28) (x-2)*(x+3)
考題:
\[ 2x - 5 = 7 \]
手算後,CAS 可用來檢查:
(%o29) [x=6]
(%o30) [x=1,x=2]
(%o31) [[x=8/3,y=5/3]]
例:
\[ x^2 - 4 < 0 \]
得到:
[[x>-2,x<2]]

可透過兩種結果交叉確認。
例:
\[ a_n = n^2 - 3n + 2 \]
(%o32) [0,0,2,6,12,20,30,42,56,72]
(%o35) [1,3,7,15,31,63,127,255,511,1023]
例:比較
\[ y = x^2,\ y = x^2 - 4x + 3 \]

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

複合:
(%o61) 2
(%o62) 2*x*cos(x^2)
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);(%o69) f(x):=x^2-3*x+2
(f1) 2*x-3
(a) 1
(b) 0
(m) -1
(%o75) 1-x
(%o76) -(32/3)
(%o79) 1/6
(data) [5,7,3,9,10,4]
(%o86) 6.333333333333333
(%o87) 2.560381915956202
考慮平面拋射體運動,當一顆棒球在地面上被擲出,初速度大小為 \(v\),初速度與水平線夾角為 \(\theta\),考慮水平方向的位移
\[ x(t) = v \, {\cos\theta} \,t \]
垂直方向的位移
\[ y(t) = v \, {\sin\theta}\,t- {{g\,t^2}\over{2}} \]
我們要求這個拋射體運動的軌跡方程式,也就是 \(y\) 和 \(x\) 的關係。
得到: 


很興奮地,我們得到了拋射體的軌跡方程式。
接著,我們要求水平射程,也就是 \(y = 0\) 時的 \(x\) 值。


即得到水平射程的式子。
以拋射角 60 度為例,代入式子,
得到 \(x = 0\) 和 \(x = 8.84\) 時,\(y = 0\),也就是水平射程是 8.84 公尺。
(%o11) [x=8.83699391616774,x=0.0]
畫出軌跡方程式的圖:

很開心呢!
solve 解:
makelist 找出前 12 項:
恭喜你完成本書!
你已經學會如何:
希望這本書能讓你在學習中更加得心應手,也希望透過 wxMaxima 這個電腦代數系統來協助計算,並更理解數學。
祝您學習愉快!