如前一篇文章介紹,我們可以用 sympy 這個套件的功能,來解一元方程式的根。這裡我們整理如何匯入所需的模組或函式庫,以方便求方程式的解,並美化輸出的數學式的格式。
在 Spyder 的左邊那欄,是編輯程式碼的畫面,我們可以在這裡寫程式碼,再點選 Run 或 按鍵盤上的 F5 鍵來執行程式。程式執行的情形,會在 Spyder 右下方的 IPython console 顯示執行情形。
如上圖,我們把求方程式的根和美化輸出所需匯入的模組或函式庫:
from sympy import solveset, S from sympy.abc import x from sympy import init_printing init_printing()
寫在左欄編輯器裡,然後存檔,取一個檔名,例如這裡用 findroot.py 做為檔名。
然後再點 Run 或按 F5 鍵,程式就會執行,將以上的指令在 IPython console 中執行。這時會看到 IPython 中出現一行執行 findroot.py 檔的指令。
In [1]: runfile('/home/david/Desktop/pyworking01/findroot.py', wdir='/home/david/Desktop/pyworking01')
接下來,我們在 IPython 視窗裡輸入求一元方程式的根的指令。這裡,我們求這個一元四次方程式的解。
In [2]: solveset(x ** 4 + x + 3, x) Out[2]: # 註:答案的數學式圖檔太長,請由此下載欣賞。
我們把 findroot.py 這個程式碼存檔下來,未來要解決類似的問題,我們就可以開啟這個檔案,直接執行,就可以迅速匯入所需要的模組或函式庫了。
比較:尚未美化的輸出
如果我們沒有用 init_printing() 的功能,同樣計算上面的一元四次方程式,在 Spyder 的 IPython 上會得到一串很長較不易閱讀的輸出,相比之下,就可以看出兩者的明顯差異。
In [2]: solveset(x ** 4 + x + 3, x) Out[2]: FiniteSet(-I*sqrt(2/(1/16 + sqrt(255)*I/16)**(1/3) - 2/sqrt(2/(1/16 + sqrt(255)*I/16)**(1/3) + 2*(1/16 + sqrt(255)*I/16)**(1/3)) + 2*(1/16 + sqrt(255)*I/16)**(1/3))/2 - sqrt(2/(1/16 + sqrt(255)*I/16)**(1/3) + 2*(1/16 + sqrt(255)*I/16)**(1/3))/2, -I*sqrt(2/(1/16 + sqrt(255)*I/16)**(1/3) + 2/sqrt(2/(1/16 + sqrt(255)*I/16)**(1/3) + 2*(1/16 + sqrt(255)*I/16)**(1/3)) + 2*(1/16 + sqrt(255)*I/16)**(1/3))/2 + sqrt(2/(1/16 + sqrt(255)*I/16)**(1/3) + 2*(1/16 + sqrt(255)*I/16)**(1/3))/2, -sqrt(2/(1/16 + sqrt(255)*I/16)**(1/3) + 2*(1/16 + sqrt(255)*I/16)**(1/3))/2 + I*sqrt(2/(1/16 + sqrt(255)*I/16)**(1/3) - 2/sqrt(2/(1/16 + sqrt(255)*I/16)**(1/3) + 2*(1/16 + sqrt(255)*I/16)**(1/3)) + 2*(1/16 + sqrt(255)*I/16)**(1/3))/2, sqrt(2/(1/16 + sqrt(255)*I/16)**(1/3) + 2*(1/16 + sqrt(255)*I/16)**(1/3))/2 + I*sqrt(2/(1/16 + sqrt(255)*I/16)**(1/3) + 2/sqrt(2/(1/16 + sqrt(255)*I/16)**(1/3) + 2*(1/16 + sqrt(255)*I/16)**(1/3)) + 2*(1/16 + sqrt(255)*I/16)**(1/3))/2)
另一個方法,使用 Jupyter Notebook 的 IPython
Jupyter Notebook 是另一個很方便的 Python 編輯和執行工具。特色是除了可以使用 IPython console,也可以同時插入文字和圖片註解,即所謂的 Markdown。
我試用了 Jupyter Notebook,它的數學式輸出非常地美觀,並且提供多種格式做選擇,在輸出的數學式上按滑鼠右鍵,還可以看到各種格式的選項,也可以把結果輸出成 TeX 或是 MathML code,方便與其它數學編輯或顯示程式交流。
下圖是 Jupyter Notebook 的輸出畫面,有興趣的朋友,可以安裝使用。
您也可以瀏覽從 Jupyter Notebook 下載匯出的 html 網頁,在數學式上點滑鼠右鍵嘗試各種格式選項。建議在電腦上用 firefox 瀏覽器,相容功能最完整。
你必須登入才能發表留言。