發表文章

利用 CoCalc 網站的 ChatGPT 對話窗來算數學

圖片
CoCalc 網站 提供了線上計算的平台環境,作者致力於發展用電腦做數學運算,開發了 SageMath 這種數學計算程式。 在 CoCalc 網站中,除了提供 SageMath 的計算,也提供了 Python, R 等等計算環境。 登入 CoCalc 網站後,在首頁會有 Extensive ChatGPT Integration 的對話視窗,整合了 ChatGPT 與網站數學運算的功能。 我們也可以利用這個 ChatGPT 視窗,輸入文字提示指令來得到如何做數學計算。 例如輸入: “用 Python 畫出 y = x^2 + 3x + 1 = 0 的函數圖形。” 網站就會生成 Python 程式碼: import numpy as np import matplotlib . pyplot as plt x = np . linspace ( - 10 , 10 , 100 ) # Generate 100 points between -10 and 10 y = x ** 2 + 3 * x + 1 # Calculate y values plt . plot ( x , y ) plt . xlabel ( 'x' ) plt . ylabel ( 'y' ) plt . title ( 'Graph of y = x^2 + 3x + 1' ) plt . grid ( True ) plt . show ( ) SageMath 本身也是一個功能強大的數學計算軟體。我們來使用看看。在 CoCalc 的 ChatGPT 對話窗輸入: “用 SageMath 畫出 y = x^2 + 3x + 1 的函數圖形,並且求 x^2 + 3x + 1 = 0 的解。” 得到 SageMath 的程式碼,並且執行它: # Plot the graph of y = x^2 + 3x + 1 f ( x ) = x ^ 2 + 3 * x + 1 plot ( f , - 5 , 5 , ymin = - 5 , ymax = 20 , color = 'blue' ) # Solve the equati

在 Colab 筆記本裡呈現更美觀的數學式

在 SymPy 做數學符號運算時,輸出的數學式預設是以文字或符號來表示。 例如,我們輸出以下的式子: from sympy import * # Define the variable x = Symbol ( "x" ) print ( sqrt ( x ** 2 - 5 ) / 3 ) sqrt(x**2 - 5)/3 在上面的輸出,Python 是以 sqrt() 代表平方根。 如果要以較直觀的數學式來呈現,可以用以下的方法,先將文字的數學式轉換成 LaTeX 格式,再以 Math() 產生較美觀的式子。 from sympy import * from IPython . display import Math , display # Define the variable x = Symbol ( "x" ) result = sqrt ( x ** 2 - 5 ) / 3 # 將文字數學式轉換為 LaTeX 格式 result_latex = latex ( result ) # 再以較美觀的數學式呈現 display ( Math ( result_latex ) ) \(\displaystyle \frac{\sqrt{x^{2} - 5}}{3}\) 我們也可以把它應用在用 solve() 計算的方程式的答案。 from sympy import * from IPython . display import Math , display # Define the variable x = Symbol ( "x" ) # Create the equation equation = Eq ( x ** 2 - 5 * x + 8 , 0 ) # Solve the equation solution = solve ( equation , x ) print ( solution ) [5/2 - sqrt(7)*I/2, 5/2 + sqrt(7)*I/2] 原本的解是用文字表示,我們可以把它用更美觀的格式呈現。 # 將解轉換為

用 Colab AI 生成程式碼解數學方程式

AI 時代的電腦變得更人性化了。我們只要用適當的文字提示來問 AI 問題,就可以快速地得到程式碼,節省時間,也讓初學者可以更專注在要解決的計算問題上,而不用花太多時間一行一行寫程式。 Google Colab 的筆記本,搭配了 Colab AI 的對話窗。以下我們舉一個例子,說明如何用 Colab AI 自動生成 Python 程式碼。 問題: 求這個一元二次方程式的解: \(x^2 - 5x + 6 = 0\)。 我們可以在 Colab AI 的對話窗裡,輸入以下文字提示: “用 SymPy 求這個方程式的解:x**2 - 5*x + 6 = 0” Colab AI 就自動生成了程式碼,用滑鼠點程式碼右上角的小圖示「新增程式碼儲存格」,就會自動把程式碼複製到筆記本中。產生的程式碼如下: import sympy # Define the variable x = sympy . Symbol ( "x" ) # Create the equation equation = sympy . Eq ( x ** 2 - 5 * x + 6 , 0 ) # Solve the equation result = sympy . solve ( equation , x ) # Print the solutions print ( "The solutions are:" , result ) The solutions are: [2, 3] 上面的程式用了 sympy 裡的 solve() 函數來解方程式。透過 import sympy 匯入模組,在程式中要使用 sympy 中的函數時,都要在函數前面加上 sympy. ,這樣的好處是在程式中清楚指明了某個函數是用哪一個模組。避免同名函數的混淆。例如,在 sympy 模組裡有 sin() 函數,在 math 模組裡也有 sin() 函數。在 sympy 中有圓周率 pi ,在 math 中也有圓周率 pi 。分別計算如下: import sympy import math print ( sympy . sin ( pi / 6 ) ) print ( math . sin ( math . pi

用 SymPy 的數學函數來做計算

SymPy 模組是 Python 程式裡一個功能很強大的數學計算模組,可以做符號運算得到公式解,也可以做數值運算得到數值解。從基本的數學計算,到求方程式的解,算微積分,都可以用 SymPy 內的函數來計算。 在使用 SymPy 時,必需在程式的開頭引入 sympy 模組: from sympy import * 接下來,就可以使用 SymPy 的函數了。 SymPy 中常用的數學函數 分類 函數 描述 例子 基礎運算 simplify(expr) 簡化表達式 simplify(sin(x)**2 + cos(x)**2) → 1 expand(expr) 展開表達式 expand((x + 1)**2) → x**2 + 2*x + 1 factor(expr) 因式分解表達式 factor(x**2 - 2*x - 8) → (x - 4)*(x + 2) 代數 solveset(equation, var) 解方程式 solveset(x**2 - 4, x) → {-2, 2} 微積分 diff(expr, var) 對表達式進行微分 diff(sin(x), x) → cos(x) integrate(expr, var) 對表達式進行積分 integrate(exp(x), x) → exp(x) limit(expr, var, point) 計算表達式的極限 limit(sin(x)/x, x, 0) → 1 三角函數 sin(x), cos(x), tan(x) 三角函數 sin(pi / 2) → 1 asin(x), acos(x), atan(x) 反三角函數 asin(1) → π/2 指數對數 exp(x) 指數函數 exp(1) → E log(x, base) 對數函數, base 默認為 e log(e) → 1 在 SymPy 裡,圓周率 π 在 SymPy 裡是以 pi 來表示。自然對數的底數 e 是以 E 來表示。 在這裡,我們先介紹如何用 SymPy 內的函數來做三角函數,指數,和對數的計算。 例如,要計算 sin(30°),

Python 常用的數學函數

Python 常用的數學函數列表 函數 描述 範例 math.sqrt(x) 開平方根 math.sqrt(16) → 4.0 math.pow(x, y) (x) 的 (y) 次方 math.pow(2, 3) → 8.0 math.sin(x) 正弦函數 math.sin(math.pi / 2) → 1.0 math.cos(x) 餘弦函數 math.cos(math.pi) → -1.0 math.tan(x) 正切函數 math.tan(math.pi / 4) → 1.0 math.asin(x) 反正弦函數 math.asin(1) → π/2 math.acos(x) 反餘弦函數 math.acos(1) → 0.0 math.atan(x) 反正切函數 math.atan(1) → π/4 math.exp(x) (e) 的 (x) 次方 math.exp(1) → 2.71828... math.log(x) 自然對數(以 (e) 為底) math.log(math.e) → 1.0 math.log10(x) 以 10 為底的對數 math.log10(100) → 2.0 math.factorial(x) (x) 的階乘 math.factorial(5) → 120 請注意,使用這些函數之前,需要在 Python 程式中引入 math 模組,即在程式的開頭加入 import math 。 import math 之後就可以使用這些函數。例如,要計算 2 的 4 次方: math . pow ( 2 , 4 ) 16.0 圓周率 π 在這裡是用 math.pi 表示: math . pi 3.141592653589793 自然對數的底數 e 是用 math.e 表示: math . e 2.718281828459045 三角函數的計算時,要注意角度是要用 弧度 (radian, rad ) 計算,不是用 度 (degree)。弧度的數學定義是:一個圓心角的弧度數等於該角所截取圓弧的長度與圓的半徑的比值。 一個半徑為 r 的圓形,

用線上的 Google Colab 的 Python 筆記本做計算

Google Colab 是個線上編寫和執行 Python 程式的環境,並且有 Colab AI 可以協助程式碼的生成。用您個人的 Google 帳號登入 Colab 後,新增筆記本,命名檔案。檔案的名稱是 *.ipynb 的格式。若是在自己的電腦上,可以用 JupyterLab 來編輯這種筆記本檔案。 現在試著在 Colab 筆記本輸入簡單的四則運算,輸入完後,按 Shift + Enter,就會執行這個格子內的程式碼或算式。 例如: 1 + 2 3 7 * 3 21 30 / 7 4.285714285714286 20 - 8 12 現在,您也可以試著在 Colab 的筆記本練習輸入程式碼了。 在 Colab 筆記本裡,也可以新增編輯文字用的格子,文字編輯是用 Markdown 格式,並且有設定常用格式的工具列,和即時預覽視窗,非常方便。