SymPy

SymPy
Sympyのロゴ
最新版 1.13.3[1] ウィキデータを編集 - 2024年9月18日 (55日前) [±]
リポジトリ ウィキデータを編集
プログラミング
言語
Python
対応OS クロスプラットフォーム
種別 計算機代数
ライセンス New BSD license
公式サイト www.sympy.org ウィキデータを編集
テンプレートを表示

SymPy は、プログラミング言語Python記号計算を行うためのオープンソースのライブラリである(Python用の離散事象シミュレーションライブラリ SimPy英語版と混同しやすい名前だが別ものである)。プロジェクトの目的は、完全な機能を持つ計算機代数システム (CAS; Computer Algebra System) を完備すること、さらに、拡張性を損なわないようにソースコードを可能な限り簡素に保つこと、とされている。SymPyはすべてPythonで書かれており、オプション機能であるプロット機能以外では、他の第三者製ライブラリに依存しない。

SymPyは、BSDライセンスを採用しているフリーソフトウェアである。Ondřej ČertíkとAaron Meurerを中心に開発が進められている。

特徴

[編集]

コア機能

[編集]
  • 基本演算 *, /, +, -, **
  • 式の簡約化 (a*b*b + 2*b*a*b3*a*b**2 など)
  • 式の展開 ((a+b)**2a**2 + 2*a*b + b**2 など)
  • 数学関数(三角法、双曲線、指数対数、根、絶対値、階乗、ガンマ関数、ゼータ関数、多項式、球面調和関数、特殊関数、など)
  • 複素数 (exp(I*x).expand(complex=True)cos(x)+I*sin(x) など)
  • 記号の置換 (xln(x), or sincosなど)
  • 任意桁数の整数有理数、任意精度の浮動小数点実数
  • 非可換な演算
  • パターンマッチング

多項式

[編集]

微積分

[編集]

方程式

[編集]
  • 多項方程式
  • 代数方程式
  • 微分方程式
  • 差分方程式
  • 方程式系(連立方程式)

組み合わせ論

[編集]

離散数学

[編集]

行列

[編集]

幾何

[編集]

プロット

[編集]

Pygletモジュールが必要。

  • 座標系
  • 幾何のプロット
  • 2Dおよび3Dのポート
  • 対話的インタフェース

物理学

[編集]

統計学

[編集]

出力

[編集]
  • pritty-printing: ASCIIアートによる式の出力、LaTeX出力
  • コード生成: Python, C, FORTRAN

関連するプロジェクト

[編集]
  • Sage: MathematicaMapleMATLABMagma をあわせた機能を持つ環境を構築することを目的として開発が進められている、オープンソースソフトウェア (Sageの内部でSymPyが利用されている)
  • mpmath: 任意精度の浮動小数点演算を行うためのPythonライブラリ (SymPy の内部で利用している)
  • SympyCore: SymPyとは別の、PythonによるCASの実装
  • symbide: SymPyが使っているGUIでPyGTKで書かれている
  • SymFE: Pythonで書かれた、有限要素法を記号計算で行うソフトウェア

[編集]

微分:

>>> from sympy import *
>>> x,y = symbols('x y')
>>> f = x**2 / y + 2 * x - ln(y)
>>> diff(f,x)
2 + 2*x/y
>>> diff(f,y)
-1/y - x**2*y**(-2)
>>> diff(diff(f,x),y)
-2*x*y**(-2)

プロット:

>>> from sympy import *
>>> Plot(cos(x*3)*cos(y*5)-y)
[0]: -y + cos(3*x)*cos(5*y), 'mode=cartesian'

脚注

[編集]
  1. ^ "Release 1.13.3"; 閲覧日: 2024年9月26日; 出版日: 2024年9月18日.

関連項目

[編集]

外部リンク

[編集]