[教學] 使用 Sympy 做代數運算
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
05/08 13:57, 7F
→
05/08 13:58, , 8F
05/08 13:58, 8F
→
05/10 12:28, , 9F
05/10 12:28, 9F
→
05/13 12:22, , 10F
05/13 12:22, 10F
→
05/13 18:58, , 11F
05/13 18:58, 11F
→
05/16 13:05, , 12F
05/16 13:05, 12F
討論串 (同標題文章)
Python 近期熱門文章
PTT數位生活區 即時熱門文章