2012年9月21日

Python で記号計算をするためのライブラリ Sympy

概要

「記号計算」とは、代数式のように「x」を利用したり、「cos」などの三角関数、「log」等、「記号」を利用する種類の計算のこと。
Sympy は Python で記号計算をするためのライブラリ。

インストール

インストールは pip 等で行なう。

pip install sympy

ドキュメント

詳細なマニュアルが「SymPy documentation」に存在する。
日本語で概要が説明されている文書が、「2.3. Sympy : Python での記号計算 — Scipy lecture notes」に存在しているので、英語が苦手な人はこちらを読んだ方がわかりやすい。

使ってみる

動作を確認するには分数が簡単。
サンプルは「from sympy import *」が利用されいている場合が多いが、以下のサンプルでは自分の好みで「from sympy import Rational」としている。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import unittest


class TestSymPy(unittest.TestCase):

    def test_rational(self):
        from sympy import Rational
        self.assertEqual(
            '「1 / 2」を Python2 で計算すると「0」になるが、'
            'Sympy の Rational を利用すると「1/2」になる',
            '「1 / 2」を Python2 で計算すると「{elm}」になるが、'
            'Sympy の Rational を利用すると「{rat}」になる'
            .format(elm=1 / 2, rat=Rational(1, 2)))

if __name__ == '__main__':
    unittest.main()

isympy

インタラクティブに計算を実施する場合は、「isympy」コマンドで起動すると良い。ipython をラッピングしたコマンドで、計算結果の出力も工夫される。

LaTex出力

Sympy には LaTeX 数式を出力する機能がある。「latex」メソッドを利用する。

latex(Rational(1, 2))
\frac{1}{2}

まとめ

Sympy は機能が非常に多い。ここで、全機能を解説する時間はないので、マニュアルを読んで必要な機能を自分で探してみると良い。

blog comments powered by Disqus