Python library for symbolic computation
SymPy は、 オープンソースの Python ライブラリで、 記号計算 に使用されます 。スタンドアロンアプリケーション、他のアプリケーション用のライブラリ、あるいはSymPy Live [2] やSymPy Gamma [3] としてWeb上でライブで提供されるなど、様々な形式でコンピュータ代数機能を提供します。SymPyはPythonのみで記述されており、依存関係も少ないため、インストールや操作が簡単です。 [4] [5] [6] この容易なアクセス性と、広く知られた言語で書かれたシンプルで拡張性の高いコードベースが相まって、SymPyは 比較的導入しやすい
コンピュータ代数システムとなっています。
SymPyは、基本的な記号演算 から 微積分 、 代数 、 離散数学 、 量子物理学 に至るまで幅広い機能を備えています 。計算結果を LaTeX コードとしてフォーマットすることも可能です。 [4] [5]
SymPyは フリーソフトウェア であり、 三条項BSD ライセンスの下で提供されています。主導的な開発者はOndřej ČertíkとAaron Meurerです。2005年にOndřej Čertíkによって開発が開始されました。 [7]
特徴
SymPy ライブラリは、多くのオプション モジュールを含むコアに分割されています。
現在、SymPyのコアには約26万行のコード [8] が含まれています(包括的なセルフテストセットも含まれています:バージョン0.7.5の時点で350のファイルに10万行以上)。その機能には以下が含まれます: [4] [5] [9] [10] [11]
コア機能
多項式
微積分
方程式を解く
離散数学
行列
幾何学
プロット
注意: プロットには外部の Matplotlib または Pyglet モジュールが必要です。
座標モデル
幾何学的エンティティのプロット
2Dと3D
インタラクティブインターフェース
色
アニメーション
物理
統計
組合せ論
印刷
SageMath : Mathematica 、 Maple 、 MATLAB 、 Magma のオープンソース代替品 (SymPy は Sage に含まれています)
SymEngine: SymPyのコア部分をC++ で書き直し、パフォーマンスを向上させたもの。現在、 SymEngineをSageの基盤エンジンにも採用する 作業が進行中 ( ? ) 。 [14]
mpmath:任意精度 浮動小数点演算 用のPythonライブラリ [15]
SympyCore: 別のPythonコンピュータ代数システム [16]
SfePy: 1次元、2次元、3次元の有限要素法によって連立偏微分方程式(PDE)を解くソフトウェア。 [17]
GAlgebra: 幾何代数 モジュール(旧称sympy.galgebra)。 [18]
Quameon: Pythonによる 量子モンテカルロ [19]
Lcapy: 線形回路解析を 教えるための実験的なPythonパッケージ。 [20]
LaTeX Expressionプロジェクト:自動置換と結果計算を備えた記号形式の代数式を簡単にLaTeXでタイプセットする。 [21]
シンボリック統計モデリング:複雑な物理モデルに統計演算を追加する。 [22]
Diofant: Sergey B Kirpichev によって始められた SymPy のフォーク [23]
依存関係
バージョン 1.0 以降、SymPy には mpmath パッケージが依存関係として含まれています。
機能を強化できるオプションの依存関係がいくつかあります。
gmpy: gmpy がインストールされている場合、SymPy の多項式モジュールは、より高速な基底型のために自動的に gmpy を使用します。これにより、特定の演算のパフォーマンスが数倍向上する可能性があります。
matplotlib : matplotlib がインストールされている場合、SymPy はそれをプロットに使用できます。
Pyglet : 代替プロット パッケージ。
参照
参考文献
^ 「リリース - sympy/sympy」 。 2025年 5月14日 閲覧 – GitHub 経由。
^ “SymPy Live”. live.sympy.org . 2021年8月25日 閲覧。
^ “SymPy Gamma”. www.sympygamma.com . 2021年8月25日 閲覧。
^ abc 「SymPyホームページ」 。 2014年10月13日 閲覧 。
^ abc Joyner, David; Čertík, Ondřej; Meurer, Aaron; Granger, Brian E. (2012). 「オープンソースのコンピュータ代数システム:SymPy」. ACM Communications in Computer Algebra . 45 (3/4): 225– 234. doi :10.1145/2110170.2110185. S2CID 44862851.
^ アーロン、ミューラー;スミス、クリストファー P.パプロッキ、マテウシュ。チェルティク、オンドジェイ。キルピチェフ、セルゲイB。ロックリン、マシュー。クマール、アミット。イワノフ、セルジュ。ムーア、ジェイソン K. (2017-01-02)。 「SymPy: Python のシンボリック コンピューティング」 (PDF) 。 PeerJ コンピュータ サイエンス 。 3 :e103。 ドイ : 10.7717/peerj-cs.103 。 ISSN 2376-5992。
^ 「SymPy vs. Mathematica · sympy/Sympy Wiki」 。GitHub 。
^ 「Open HUBにおけるSympyプロジェクトの統計」 。 2014年10月13日 閲覧 。
^ Gede, Gilbert; Peterson, Dale L.; Nanjangud, Angadh; Moore, Jason K.; Hubbard, Mont (2013). Pythonによる制約付きマルチボディダイナミクス:記号方程式の生成から出版まで . ASME 2013 International Design Engineering Technical Conferences and Computers and Information in Engineering Conference. American Society of Mechanical Engineers. pp. V07BT10A051. doi :10.1115/DETC2013-13470. ISBN
978-0-7918-5597-3 。
^ Rocklin, Matthew; Terrel, Andy (2012). 「Symbolic Statistics with SymPy」. Computing in Science & Engineering . 14 (3): 88– 93. Bibcode :2012CSE....14c..88R. doi :10.1109/MCSE.2012.56. S2CID 18307629.
^ Asif, Mushtaq; Olaussen, Kåre (2014). 「高階積分器のための自動コード生成器」. Computer Physics Communications . 185 (5): 1461– 1472. arXiv : 1310.2111 . Bibcode :2014CoPhC.185.1461M. doi :10.1016/j.cpc.2014.01.012. S2CID 42041635.
^ 「Assumptions Module — SymPy 1.4 ドキュメント」. docs.sympy.org . 2019年7月5日 閲覧 。
^ 「連続体力学 — SymPy 1.4ドキュメント」. docs.sympy.org . 2019年7月5日 閲覧 。
^ “GitHub - symengine/symengine: SymEngineはC++で書かれた高速なシンボリック操作ライブラリです”. GitHub . 2021年8月25日 閲覧。
^ 「mpmath - 任意精度浮動小数点演算用のPythonライブラリ」 mpmath.org . 2021年8月25日 閲覧 。
^ “GitHub - pearu/sympycore: code.google.com/p/sympycore から自動的にエクスポートされました”. GitHub . 2021年1月. 2021年8月25日 閲覧 。
^ 開発者、SfePy。「SfePy: Pythonでのシンプルな有限要素法 — SfePyバージョン: 2021.2+git.13ca95f1ドキュメント」 sfepy.org 。 2021年8月25日 閲覧 。
^ 「GitHub - pygae/galgebra: SymPy用記号幾何学代数/計算パッケージ」 GitHub . 2021年8月25日 閲覧 。
^ 「Quameon - Pythonでの量子モンテカルロ」. quameon.sourceforge.net . 2021年8月25日 閲覧 。
^ “Lcapyのドキュメントへようこそ! — Lcapy 0.76ドキュメント”. 2021年1月16日. 2021年1月16日時点のオリジナルよりアーカイブ。 2021年8月25日 閲覧 。
^ 「LaTeX Expressionプロジェクトドキュメント — LaTeX Expression 0.3.devドキュメント」 mech.fsv.cvut.cz. 2021年8月25日 閲覧 。
^ 「Symbolic Statistics with SymPy」. ResearchGate . 2021年8月25日 閲覧。
^ 「Diofantのドキュメント — Diofant 0.13.0a4.dev13+g8c5685115 ドキュメント」。diofant.readthedocs.io 。 2021年8月25日 閲覧 。
外部リンク
公式サイト
プラネット・シンピ
SymPyチュートリアルコレクション
GitHubのコードリポジトリ
サポートと開発フォーラム
Gitterチャットルーム