SymPy を使ってみる
大学(理系)でよく使われるソフト
- Word/Excel/PowerPoint は(まぁ)あたりまえすぎ
- Mathematica
- 数式処理(微分・積分・行列、、、)
- Matlab
- データ処理・シミュレーション
- どれも有料です
無料のソフトもあります
- フリー・オープンソース
- OpenOffice.org
- オフィス(ワープロ・表計算)ソフト
- SymPy
- 数式処理
- SciPy
- 数値計算・データ処理
- Matplotlib (Pylab)
- データ表示
SymPy
- 数式処理
- 有理数計算
- 式の展開・因数分解・代入・方程式
- 微分・積分
- 行列・行列式 ... and more
展開・因数分解
>>> from sympy import * >>> x = Symbol('x') >>> y = Symbol('y') >>> (x + y)**2 (x + y)**2 >>> expand( (x + y)**2 ) 2*x*y + x**2 + y**2 >>> factor( 2*x*y + x**2 + y**2 ) (x + y)**2
方程式
>>> a, b, c = symbols('abc') >>> s = a*x**2 + b*x + c >>> s c + b*x + a*x**2 >>> solve(s, x) [(1/2)/a*(-b + (-4*a*c + b**2)**(1/2)), (1/2)/a*(-b - (-4*a*c + b**2)*(1/2))] >>> pprint(solve(s, x)) _____________ _____________ / 2 / 2 -b + \/ -4*a*c + b -b - \/ -4*a*c + b [---------------------, ---------------------] 2*a 2*a
微分・積分
>>> diff(sin(x)*cos(x), x) cos(x)**2 - sin(x)**2 >>> integrate(cos(x)**2, x) (1/2)*x + (1/2)*cos(x)*sin(x) >>> pprint(_) x cos(x)*sin(x) - + ------------- 2 2
インストール
- まずは Python
- Python Official Site
- 日本 Python ユーザグループ
- とりあえずは ここ に置いたので、 Python-2.5.2.msi をダウンロード
- 取ってきたファイルをダブルクリックでインストールが始まる(はず)
インストール(2)
- 続いて、SymPy の本体(Python が無いとインストールできない)
- sympy-0.6.0.win32.exe
- ダウンロードしたファイルをダブルクリックでインストールが始まる(はず)
- 次の2つは、とりあえず使用しないが、あると吉。
- ipython-0.8.4.win32-setup.exe
- pyreadline-1.5-win32-setup.exe
試してみる
- メニューから Python2.5 -> IDLE を起動する
- >>> というのが出ているが、これが Python のプロンプト(入力を促す印)。
- まずは、
from sympy import *を入力 - 続いて、
x, y, z = symbols("xyz") - これで、x, y, z を「変数」とする式の操作ができる
solve(x**2 -1, x)とか試してみる
記号について
- * (アスタリスク)1つは 掛け算 (3x はダメ、 3*x はヨシ)
- ** は べき乗 (x^3 という書き方ではない)
- / (スラッシュ)は割り算
- sqrt(x) は 2乗根, x**(Rational(1)/3) で 3乗根
あとは
- SymPy ホームページ
- SymPy Wiki
- から、いろいろ例題を探して、やってみるとよい
IPython を使った環境
- メニューから IPython -> IPython を探して、右クリックで「コピー」
- デスクトップ(など)に「貼り付け」
- プロパティを開いて、リンク先の最後の IPython を isympy に変更する
- 名前も isympy に変更する
- これをダブルクリックすると、SymPy Wiki などと同じ IPython 環境で実行できる