sympy - 純粋なPythonで書かれたコンピュータ代数システム

(A computer algebra system written in pure Python)

Created at: 2010-05-01 04:37:14
Language: Python
License: NOASSERTION

シンピー

ピピバージョン https://gitter.im/sympy/sympy でチャットに参加する ゼノドバッジ ダウンロード GitHub の問題 Git チュートリアル によって供給 ナンフォーカス 前回のリリース以降のコミット

シンピーバナー

著者のリストについては、AUTHORS ファイルを参照してください。

そして、さらに多くの人々がSymPyメーリングリストで助け、バグを報告しました、 SymPyのGoogle Summer of Codeへの参加を組織するのを助けました。 Google High Open Participation Contest, Google Code-In, Write, and Writeing, and シンピーについてブログに...

ライセンス: 新しいBSDライセンス(詳細はLICENSEファイルを参照)はすべてをカバーします 特に明記されていない限り、Sympyリポジトリ内のファイル。

私たちのメーリングリストは https://groups.google.com/forum/?fromgroups#!forum/sympy にあります。

Gitterでコミュニティチャットをしています。感じる そこでは何でも自由に聞いてください。私たちは非常に歓迎し、親切です コミュニティ。

ダウンロード

推奨されるインストール方法は、アナコンダを使用することです https://www.anaconda.com/products/distribution

SymPyの最新バージョンを https://pypi.python.org/pypi/sympy/ から入手することもできます

gitバージョンを取得するには、

$ git clone https://github.com/sympy/sympy.git

その他のオプション (tarball や deb など) については、https://docs.sympy.org/dev/install.html を参照してください。

ドキュメントと使用法

インストールとビルドの詳細な手順については、 ドキュメントについては、SymPyドキュメントスタイルガイドを参照してください。

すべてが次の場所にあります。

https://docs.sympy.org/

上記のサイトですべてをローカルコピーで生成できます シンピー:

$ cd doc
$ make html

その後、ドキュメントは_build / htmlになります。もし あなたはそれを読みたくない、ここに短い使用法があります:

このディレクトリから Python を起動し、次の操作を行います。

>>> from sympy import Symbol, cos
>>> x = Symbol('x')
>>> e = 1/cos(x)
>>> print(e.series(x, 0, 10))
1 + x**2/2 + 5*x**4/24 + 61*x**6/720 + 277*x**8/8064 + O(x**10)

SymPyには、 SymPyをロードする古典的なPythonコンソール(または利用可能な場合はIPython) 名前空間を指定し、いくつかの一般的なコマンドを実行します。

開始するには、次のコマンドを発行します。

$ bin/isympy

このディレクトリから、SymPyがインストールされていない場合、または単に:

$ isympy

SymPyがインストールされている場合。

取り付け

SymPy は mpmath ライブラリに強く依存しています (バージョン >= 0.19)。最初にインストールする必要がありますので、 MPMATHインストールガイド:

https://github.com/fredrik-johansson/mpmath#1-download--installation

PyPI を使用して SymPy をインストールするには、次のコマンドを実行します。

$ pip install sympy

Anaconda を使用して SymPy をインストールするには、次のコマンドを実行します。

$ conda install -c anaconda sympy

GitHub ソースから SymPy をインストールするには、まず以下を使用して SymPy のクローンを作成します。

git

$ git clone https://github.com/sympy/sympy.git

次に、クローンしたリポジトリで、次のコマンドを実行します。

sympy

$ python setup.py install

詳細については、https://docs.sympy.org/dev/install.html を参照してください。

貢献

オープンするのが初めての場合でも、誰からの貢献も歓迎します 源。貢献の紹介ページとSymPyドキュメントスタイルガイドをお読みください。もしあなたが 新しく、貢献する方法を探しているので、始めるのに良い場所は をクリックして、修正が簡単 とタグ付けされた問題を確認します。

このプロジェクトのすべての参加者は従うことが期待されていることに注意してください 私たちの行動規範。このプロジェクトに参加することにより、あなたは従うことに同意します その条件によって。CODE_OF_CONDUCT.mdを参照してください。

テスト

すべてのテストを実行するには、次のコマンドを実行します。

$./setup.py test

現在のディレクトリにあります。

テストまたはドキュメントテストをよりきめ細かく実行するには、それぞれ または を使用します。マスターブランチは自動的にテストされます GitHub Actionsによる。

bin/test
bin/doctest

プルリクエストをテストするには、sympy-botを使用します。

実験的なLaTeXパーサー/レクサーを再生成する

パーサーとレクサーは、ANTLR4 ツールチェーンを使用して生成され、リポジトリにチェックインされました。 現在、ほとんどのユーザーはこれらのファイルを再生成する必要はありませんが、 この機能を使用する場合は、コマンドラインツールが必要です(そして、それが . それを取得する<>つの方法は次のとおりです。

sympy/parsing/latex/_antlr
antlr4
PATH

$ conda install -c conda-forge antlr=4.11.1

または、ANTLRのWebサイトの指示に従ってダウンロードしてください ザ。次に、指示に従ってエクスポートします エイリアスとして作成する代わりに、実行可能ファイルにします を次の内容にします。

antlr-4.11.1-complete.jar
CLASSPATH
antlr4

#!/bin/bash
java -jar /usr/local/lib/antlr-4.11.1-complete.jar "$@"

に変更を加えた後、次のコマンドを実行します。

sympy/parsing/latex/LaTeX.g4

$ ./setup.py antlr

綺麗

すべてをクリーンアップするには(したがって、リポジトリと同じツリーを取得します):

$ git clean -Xdf

によって無視されたすべてがクリアされ、 と:

.gitignore

$ git clean -df

追跡されていないファイルをすべてクリアします。で最新の変更を元に戻すことができます git with:

$ git reset --hard

警告:上記のコマンドは、あなたが行ったかもしれないすべての変更をクリアします、 そして、あなたはそれらを永遠に失うでしょう。、、および で物事を確認してください それらの。

git status
git diff
git clean -Xn
git clean -n

バグ

私たちの問題トラッカーは https://github.com/sympy/sympy/issues にあります。お願いします 見つけたバグを報告してください。または、さらに良いことに、リポジトリをフォークします GitHub にアクセスし、プル要求を作成します。大小を問わず、すべての変更を歓迎します。 また、gitを初めて使用する場合は、プルリクエストを作成するのを手伝います( メーリングリストまたはGitterチャンネルでお問い合わせください)。さらに質問がある場合は、回答を見つけることができます シンピータグを使用したスタックオーバーフローで。

略史

SymPyは2005年にOndřej Čertíkによって始められ、彼はいくつかのコードを書いた 夏、それから彼は2006年の夏にいくつかのコードを書きました。2007月に 5年、ファビアン・ペドレゴサがプロジェクトに参加し、多くの修正を支援しました。 ドキュメントを提供し、それを再び生き生きとさせました。2007人の学生(マテウシュ) パプロッキ、ブライアン・ヨルゲンセン、ジェイソン・ゲッジ、ロバート・シュワルツ、クリス・ウー) Googleの一部として2007年の夏にSymPyを信じられないほど改善しました コードの夏。ピアー・ピーターソンが夏に開発に参加 10年、彼はコアを書き直すことでSymPyの競争力を大幅に高めました ゼロから、100倍から<>倍速くなりました。ユルジェンN.E.ボス きれいな印刷やその他のパッチを提供しました。フレドリック・ヨハンソンは MPMmathを書き、多くのパッチを提供しました。

SymPyは、2007年以来、すべてのGoogle Summer of Codeに参加しています。あなたが https://github.com/sympy/sympy/wiki#google-summer-of-code を見ることができます 完全な詳細。毎年、SymPyは限界ごとに改善されています。シンピーのほとんど 開発はGoogle Summer of Codeの学生から来ました。

2011年、オンドレイ・チェルティークはアーロンとともにリード開発者を辞任しました。 Meurerは、GoogleのSummer of Codeの学生としてもスタートし、 場所。オンドレイ・チェルティークはまだコミュニティで活動していますが、忙しすぎます 仕事と家族が主導的な開発の役割を果たします。

それ以来、より多くの人々が開発に参加し、一部の人々が 人々も去りました。あなたはで完全なリストを見ることができます doc/src/aboutus.rst、 またはオンラインで:

https://docs.sympy.org/dev/aboutus.html#sympy-development-team

gitの歴史は、開発がsvnからhgに移行した2007年にさかのぼります。 その時点より前の履歴を確認するには、https://github.com/sympy/sympy-old を参照してください。

gitを使用して、最大の開発者を確認できます。コマンド:

$ git shortlog -ns

プロジェクトへのコミットでソートされた各開発者が表示されます。コマンド:

$ git shortlog -ns --since="1 year"

昨年のトップ開発者を表示します。

引用

出版物でSymPyを引用するには、

マウラーA、スミスCP、パプロッキM、チェルティークO、キルピチェフSB、ロックリンM、 クマールA、イワノフS、ムーアJK、シンS、ラトナヤケT、ヴィグS、グレンジャーBE、 ミュラー RP, ボナッツィ F, グプタ H, ヴァッツ S, ヨハンソン F, ペドレゴサ F, カレー MJ, テレル AR, ロウチュカ Š, サブー A, フェルナンド I, クラル S, シムマン R, Scopatz A. (2017) SymPy: Python でのシンボリックコンピューティング。ピアJコンピュータ サイエンス3:e103 https://doi.org/10.7717/peerj-cs.103

LaTeXユーザー向けのBibTeXエントリは

@article{10.7717/peerj-cs.103,
 title = {SymPy: symbolic computing in Python},
 author = {Meurer, Aaron and Smith, Christopher P. and Paprocki, Mateusz and \v{C}ert\'{i}k, Ond\v{r}ej and Kirpichev, Sergey B. and Rocklin, Matthew and Kumar, Amit and Ivanov, Sergiu and Moore, Jason K. and Singh, Sartaj and Rathnayake, Thilina and Vig, Sean and Granger, Brian E. and Muller, Richard P. and Bonazzi, Francesco and Gupta, Harsh and Vats, Shivam and Johansson, Fredrik and Pedregosa, Fabian and Curry, Matthew J. and Terrel, Andy R. and Rou\v{c}ka, \v{S}t\v{e}p\'{a}n and Saboo, Ashutosh and Fernando, Isuru and Kulal, Sumith and Cimrman, Robert and Scopatz, Anthony},
 year = 2017,
 month = Jan,
 keywords = {Python, Computer algebra system, Symbolics},
 abstract = {
            SymPy is an open-source computer algebra system written in pure Python. It is built with a focus on extensibility and ease of use, through both interactive and programmatic applications. These characteristics have led SymPy to become a popular symbolic library for the scientific Python ecosystem. This paper presents the architecture of SymPy, a description of its features, and a discussion of select submodules. The supplementary material provides additional examples and further outlines details of the architecture and features of SymPy.
         },
 volume = 3,
 pages = {e103},
 journal = {PeerJ Computer Science},
 issn = {2376-5992},
 url = {https://doi.org/10.7717/peerj-cs.103},
 doi = {10.7717/peerj-cs.103}
}

SymPyはBSDライセンスなので、好きなように自由に使用できます。 それは学術的、商業的、フォークまたは派生物を作成する限り、 BSD ステートメントを再配布する場合は、それをコピーします ( LICENSE ファイルを参照してください。 詳細)。とは言うものの、SymPyライセンスでは要求されていませんが、 あなたにとって便利です、あなたの仕事でそれを使用するときSymPyを引用してください、そして また、すべての変更を元に戻すことを検討してください。 それを組み込むと、私たち全員が最終的に利益を得るでしょう。