程式設計師用SymPy
程式設計師用SymPy
為什麼要用SymPy?
數學公式化簡、推理、因式分解。作為程式設計師還可以挖掘一下它啟發式推理的潛力。
怎樣安裝?
sympy只有一個依賴項就是mpmath,安裝命令如下,建議在python3環境下安裝。
pip3 install mpmath
pip3 install sympy
如果會用docker的話就更簡單了,只需要執行下面一條命令,然後根據日誌提示的token訪問本機的8888埠,IDE和執行環境就都好了。當然了下面這種方式如果您一點開發經驗都沒有,還是需要折騰一段時間的,要理解docker、python、jupyter等等。
docker run --name NB_Demo -d -p 8888:8888 jupyter/demo
怎樣使用?
一、列印數學公式
- 列印為點陣圖方式
from sympy import *
x= symbols('x')
init_printing(use_unicode=True)
integrate(exp(x)*sin(x) + exp(x)*cos(x), x)
e x s i n ( x ) e^{x} sin(x) exsin(x)
- 列印為ASCII碼
pprint(Integral(sqrt(1/x), x), use_unicode=False)
/
|
| ___
| / 1
| / - dx
| \/ x
|
/
- 列印為LaTeX
print(latex(Integral(sqrt(1/x), x)))
\int \sqrt{\frac{1}{x}}\, dx
二、因式合併與展開
- 因式展開
from sympy import *
x, y, z = symbols('x y z')
init_printing(use_unicode=True)
expand((x+1)**2)
x 2 + 2 x + 1 x^{2} + 2 x + 1 x2+2x+1
- 因式合併
factor(x**2*z + 4*x*y*z + 4*y**2*z)
z ( x + 2 y ) 2 z (x + 2 y)^{2} z(x+2y)2
- 三角函式、矩陣都可以
# 展開三角函式
expand((cos(x) + sin(x))**2)
s i n 2 ( x ) + 2 s i n ( x ) c o s ( x ) + c o s 2 ( x ) sin^{2}{(x)} + 2sin{(x)} cos{(x)} + cos^{2}{(x)} sin2(x)+2sin(x)cos(x)+cos2(x)
# 因式合併三角函式
factor(cos(x)**2 + 2*cos(x)*sin(x) + sin(x)**2)
( s i n ( x ) + c o s ( x ) ) 2 ({sin(x)} +cos{(x)})^{2} (sin(x)+cos(x))2
三、求解
solveset(Eq(x**2, 1), x)
x 2 = 1 ( x = 1 , x = − 1 ) x^{2}=1 (x=1, x=-1) x2=1(x=1,x=−1)
四、矩陣運算
由於顯示不出來效果這裡略過
總結
非常感興趣SymPy符號推理的部分,看官方文件說用的啟發式演算法。有機會深究一下其實現機理。
相關文章
- 程式設計師專用食品程式設計師
- 程式設計師程式設計的10個實用技巧程式設計師
- 程式設計師何苦為難程式設計師?程式設計師
- 程式設計師的“非程式設計師”之路程式設計師
- 程式設計師何必難為程式設計師程式設計師
- 用什麼心態對待水平糟糕的程式設計師[不靠譜的程式設計師、思路紊亂的程式設計師程式設計師
- 好程式設計師:Java程式設計師面試秘籍程式設計師Java面試
- 程式設計師必看的書-Ruby程式設計師程式設計師
- 國外程式設計師 VS 中國程式設計師程式設計師
- 《程式設計師的春天:EOM與程式設計師》程式設計師
- 中國程式設計師和外國程式設計師程式設計師
- Lisp程式設計師眼中的其他程式設計師Lisp程式設計師
- 程式設計師歌曲《程式設計師偏頭痛》程式設計師
- 程式設計師程式設計師
- 《程式設計師程式設計藝術》程式設計師
- 程式設計師OR非程式設計師,有些程式設計的事需要知道程式設計師
- 以前的程式設計師,現在的程式設計師程式設計師
- 程式設計師常有,優秀程式設計師不常有程式設計師
- 程式設計師必看的書之Java程式設計師程式設計師Java
- 程式設計師漫畫系列(1):程式設計師人生程式設計師
- Web程式設計師最實用資源Web程式設計師
- 用程式語言解密京東雲女程式設計師解密程式設計師
- 美女程式設計師觀點:程式設計師最重要的非程式設計技巧程式設計師
- 世界級大牛對程式設計師超實用的程式設計箴言(上)程式設計師箴言
- 世界級大牛對程式設計師超實用的程式設計箴言(下)程式設計師箴言
- 程式設計師程式設計10大原則程式設計師
- 盲人程式設計師的程式設計生涯程式設計師
- 程式設計將死,程式設計師永存程式設計師
- 程式設計師,請你不要在坑程式設計師了?程式設計師
- 漫談程式設計師系列:程式設計師零門檻?程式設計師
- 程式設計師快速睡眠攻略 失眠程式設計師的福音程式設計師
- 《程式設計師健康指南》:給程式設計師的健康書程式設計師
- 愛偷懶的程式設計師是好程式設計師程式設計師
- 程式設計師啊,程式設計師,究竟是咋的程式設計師
- 程式設計師生活智慧集——卓越程式設計師密碼程式設計師密碼
- 普通程式設計師和厲害程式設計師的差距!程式設計師
- 韭菜程式設計師程式設計師
- 你好,程式設計師程式設計師