用電腦和 AI 輔助數學學習

用電腦和 AI 輔助數學學習

人類使用工具或機器協助計算的歷史,從幾千年前的算盤,到今日的電腦,計算工具隨著科技文明而進步。

計算機或是電腦,在今日社會,已經是很普遍且不可或缺的工具。善用電腦輔助數學學習或計算,可以更方便也更有效率。然而,在台灣目前的中學數學升學考試裡,仍然不能使用計算機或電腦,數學考試限制只能用手算,於是,許多同學在學習的過程中較缺乏用電腦來計算的學習經驗。

徒手計算與用大腦做原始思考,在初學數學時,具有培養觀念,建立對數學的內觀的作用。然而,適度地引入電腦來輔助學習與計算,應是很務實的學習方法。若能善用電腦來處理單純「計算」的部份,也可把時間和腦力留給學習數學的其它概念和應用上,在解決真實問題時,也更有效率。

TED 演講:Teaching kids real math with computers

Conrad Wolfram 在這個主題為 "Teaching kids real math with computers" 的 TED 演講裡,介紹了如何善用數學軟體來幫助數學的教學。

在演講中,他提到了學習數學的四個步驟:

  1. 提出正確的問題:確定需要解決的問題。

  2. 將現實世界的問題轉換為數學問題。

  3. 計算:解決數學問題。

  4. 解釋結果並將其應用回現實世界。

講者認為當代的學校數學教學,花了很多時間在教學生做「計算」,也就是第 3 個步驟,有些學生因為複雜的計算而對數學感到卻步。然而,計算正是電腦的強項,若能使用電腦來輔助計算,學習者可以花更多時間思考如何提出適當問題,如何形成數學問題,以及如何應用數學來解決現實世界中的問題。這個影片的講者 Conrad Wolfram 是 Stephen Wolfram 的弟弟。Stephen 是英國數學家,也是數學符號運算軟體 Mathematica 的發明人,Mathematica 是商業軟體,需要付費購買才能使用。

在免費的自由軟體世界,也有功能強大的符號運算軟體,例如 Maxima,或它的圖形化界面版本 wxMaxima,這個軟體可以免費下載安裝,在微軟的 Windows 電腦,蘋果的 Mac 電腦,或是 Linux 系統的電腦,都可以安裝使用。其實,在中學或大學階段,使用這個免費軟體,就可以做許多數學計算了。

用 Python 程式做數學符號計算:以解一元 3 次方程式為例

如果要學習用電腦程式做數學運算,Python 程式語言裡也提供了科學運算的函式庫,例如做數值計算的 NumPy,做符號計算的 SymPy,和做高階科學計算的 SciPy。直接學習用 Python 的函式庫來做數學計算,也是不錯的入門方法,因為 Python 是目前很多人使用的程式語言,直接學習用 Python 語法來算數學,有利於讓程式與其它 Python 程式整合在一起。

這裡我們舉個實例,看如何用 Python 的 SymPy 來解一元 3 次方程式。

from sympy import *

# 定義變數
x = symbols('x')

# 一元三次方程式範例: x^3 + 2x^2 + 5x - 6 = 0
equation = Eq(x**3 + 2*x**2 + 5*x - 6, 0)

# 使用 sympy 解方程式
solveset(equation, x)

{2311911827+169593+11827+169593,11827+169593223+111811827+169593+i(1131811827+169593+311827+1695932),11827+169593223+111811827+169593+i(311827+16959321131811827+169593)}\displaystyle \left\{- \frac{2}{3} - \frac{11}{9 \sqrt[3]{\frac{118}{27} + \frac{\sqrt{1695}}{9}}} + \sqrt[3]{\frac{118}{27} + \frac{\sqrt{1695}}{9}}, - \frac{\sqrt[3]{\frac{118}{27} + \frac{\sqrt{1695}}{9}}}{2} - \frac{2}{3} + \frac{11}{18 \sqrt[3]{\frac{118}{27} + \frac{\sqrt{1695}}{9}}} + i \left(\frac{11 \sqrt{3}}{18 \sqrt[3]{\frac{118}{27} + \frac{\sqrt{1695}}{9}}} + \frac{\sqrt{3} \sqrt[3]{\frac{118}{27} + \frac{\sqrt{1695}}{9}}}{2}\right), - \frac{\sqrt[3]{\frac{118}{27} + \frac{\sqrt{1695}}{9}}}{2} - \frac{2}{3} + \frac{11}{18 \sqrt[3]{\frac{118}{27} + \frac{\sqrt{1695}}{9}}} + i \left(- \frac{\sqrt{3} \sqrt[3]{\frac{118}{27} + \frac{\sqrt{1695}}{9}}}{2} - \frac{11 \sqrt{3}}{18 \sqrt[3]{\frac{118}{27} + \frac{\sqrt{1695}}{9}}}\right)\right\}

我們看得到,電腦在不到一秒鐘的時間內,就計算出了這個方程式的 3 個公式解。其中 1 個解是實數,另外 2 個解是虛數。如果這個題目要用徒手計算,是非常花費時間且複雜的。由此可見電腦的計算能力。

如果要顯示上述方程式的數值解,可以用以下的指令:

solveset(equation, x).n()

{0.820372080030519,1.410186040015262.30762428534212i,1.41018604001526+2.30762428534212i}\displaystyle \left\{0.820372080030519, -1.41018604001526 - 2.30762428534212 i, -1.41018604001526 + 2.30762428534212 i\right\}

利用 ChatGPT 畫出函數圖形,並取得程式碼

接下來我們想畫出這個函數的圖形,當然用 Python 裡也可以畫出函數圖形,但是使用者必需輸入正確的程式碼,對初學的人來說,還是有一點門檻的。

所幸在 AI 時代,我們只要在 ChatGPT 下一行白話文指令:

請畫出 x^3 + 2x^2 + 5x - 6 的函數圖形。

就可以得到函數圖形:

png

由上圖可以看到,這個函數圖形跟 x 軸只有 1 個交點,在 0.8 附近,故這個方程式只有一個實數解 0.82037...。

其實 ChatGPT 就是用 Python 語言畫出這個函數圖形的,我們只要點開 ChatGPT 的回應行尾的 [>_] (View analysis),就可以看到它用來繪製上面函數圖形的程式碼內容。這裡我們把程式碼複製如下:

import numpy as np
import matplotlib.pyplot as plt

# Define the function
def f(x):
    return x**3 + 2*x**2 + 5*x - 6

# Generate x values
x = np.linspace(-4, 3, 400)

# Generate y values
y = f(x)

# Create the plot
plt.figure(figsize=(8, 6))
plt.plot(x, y, label=r'$f(x) = x^3 + 2x^2 + 5x - 6$', color='blue')
plt.title('Graph of $f(x) = x^3 + 2x^2 + 5x - 6$')
plt.xlabel('x')
plt.ylabel('f(x)')
plt.axhline(0, color='black',linewidth=0.5)
plt.axvline(0, color='black',linewidth=0.5)
plt.grid(True)
plt.legend()

# Show the plot
plt.show()

上面的例子,示範了如何用一行文字指令讓 ChatGPT 畫出函數圖形,並且取得 AI 自動生成的程式碼。我們若把這個程式碼複製並儲存下來,日後可以略做修改應用在類似的問題上,同時也可以模仿 AI 生成的程式碼的架構和寫法。

數學家陶哲軒演講:AI and Mathematics

著名的數學家陶哲軒 (Terence Tao) 教授在 2024 年高中生國際數學奧林匹亞競賽 (IMO) 大會演講,講題是 "AI and Mathematics"。

在這個演講裡,陶教授介紹了數學發展史上,人類使用工具計算的歷史,以及在電腦和 AI 時代,各種計算工具對數學發展的可能影響,其中他有提到如何用一個叫做 Lean 的程式,來輔助做數學的證明題。

陶哲軒博士是加州大學洛杉磯分校數學系教授,31歲時就獲得數學界的榮譽 -- 菲爾茲獎。他有一個專門分享數學文章的部落格。對於不是專門從事數學研究的一般讀者來說,這些文章應該不容易看得懂,但仍可以點閱看看,欣賞大師的風采。

這個網誌中的熱門文章

自然科學和數學參考書籍和線上課程的推薦

「成功燈塔行」引領成功學子航向理想的目的地

在 AI 的輔助下用數學軟體做計算