[教學] 使用 Sympy 做代數運算

看板Python作者 (生の直感、死の予感)時間16年前 (2009/05/08 00:54), 編輯推噓4(408)
留言12則, 8人參與, 最新討論串1/3 (看更多)
http://code.google.com/p/sympy/ Sympy 是一個Python上好用的代數運算函數庫,目前相當活躍, 並且其上還有一個叫Sage 的一個很大的open source mathethic software 計畫在上面,未來應該會有更多持續的發展。 Sage 目標同時整合Magma, Maple, Mathematica, Matlab 的功能在python 平台!! http://www.sagemath.org/ http://docs.sympy.org/tutorial.html#algebra Sympy 很強的部份是代數運算 範例部份如下 首先先定義使用到的變數 >>> from sympy import * >>> x = Symbol('x') # 定義名為x的變數 >>> y = Symbol('y') # 定義名為y的變數 之後就可以做代數的運算: >>> x+y+x-y 2*x >>> (x+y)**2 (x+y)**2 可以展開 expand, 代數替換 Substitude, 通分等多項式會需要的運算 另外很不錯的是有支援微分與積分的功能 常用的微分積分功式都有納入 >>> from sympy import * >>> x = Symbol('x') >>> diff(sin(x), x) cos(x) >>> diff(sin(2*x), x) 2*cos(2*x) >>> diff(tan(x), x) cos(x)**(-2) >>> integrate(6*x**5, x) x**6 >>> integrate(sin(x), x) -cos(x) >>> integrate(log(x), x) x*log(x) - x >>> integrate(2*x + sinh(x), x) x**2 + cosh(x) 我目前是用他矩陣的功能來導連續旋轉公式、相當好用 >>> x = Symbol('x') >>> y = Symbol('y') >>> A = Matrix([[1,x], [y,1]]) >>> A #doctest: +NORMALIZE_WHITESPACE [1 x] [y 1] >>> A**2 #doctest: +NORMALIZE_WHITESPACE [1+x*y 2*x] [2*y 1+x*y] -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 154.20.36.163

05/08 01:41, , 1F
讚~雖然目前沒用到 但需要用時實在很方便而強大 感謝教學:)
05/08 01:41, 1F

05/08 10:50, , 2F
好棒 我也剛好需要算旋轉矩陣之類的 手算都很煩
05/08 10:50, 2F

05/08 10:50, , 3F
想說這些東西不是應該交給電腦算嗎= =
05/08 10:50, 3F

05/08 10:54, , 4F
不過一直找不到好用的工具
05/08 10:54, 4F

05/08 13:19, , 5F
推推推~
05/08 13:19, 5F

05/08 13:54, , 6F
推 真的好強大@@~
05/08 13:54, 6F

05/08 13:57, , 7F
代數運算東西是 mathmatica 的強項,
05/08 13:57, 7F

05/08 13:58, , 8F
Python 有支援,當然要好好用 :)
05/08 13:58, 8F

05/10 12:28, , 9F
代數運算是matlab的強項
05/10 12:28, 9F

05/13 12:22, , 10F
跟 mathematica 相比 matlab 強項是在於數值運算
05/13 12:22, 10F

05/13 18:58, , 11F
代數運算是人腦的強項 Orz
05/13 18:58, 11F

05/16 13:05, , 12F
哇,基隆男,好久不見了 ^____^
05/16 13:05, 12F
文章代碼(AID): #1A0n8h4N (Python)
文章代碼(AID): #1A0n8h4N (Python)