web-dev-qa-db-ja.com

SymPyとSageの違いは何ですか?

SymPySage a.k.a. SageMathの違いは何ですか?

31
Faouzi FJTech

(完全な開示:私はSymPyの主要開発者です)

最初に理解しておくべきことは、SymPyとSageはまったく同じではないということです。 SymPyは純粋なPythonライブラリであり、コンピュータ代数を実行します。Sageはオープンソースの数学ソフトウェアのコレクションです。Sageは、すべての主要なオープンソースの数学ソフトウェアをまとめて、それを1つの有用なシステム実際には、システムの1つとしてSageにはSymPyが含まれています。

以下に、それぞれの(偏った)事実の短いリストを示します(私は、それらを長所や短所とは呼びませんが、事実と呼びます)。

SymPy

  • SymPyは完全にスタンドアロンです。 Python以外の依存関係はありません。
  • スタンドアロンであるにもかかわらず、フル機能コンピュータ代数システムとしてです。数値を実行したい場合は、 scientific Python Ecosystem で他のライブラリを使用することをお勧めします。
  • SymPyはBSDライセンスです。多くの人にとって、これは問題ではありませんが、SymPyを他の何かに含めたい場合、コードを使用してほとんど何でもできることを知っておくと便利です。
  • SymPyはPythonの変更を試みません。 SymPyは、Pythonがうまく機能しているため、Pythonのように機能する必要があります。たとえば、指数の演算子は、そのまま**です。 Pythonでは、他の多くのシステムのように^ではありません。
  • SymPyはライブラリとして使用できます。 SymPyは単なるPython=モジュールであるため、Pythonを使用する任意の場所でインポートして使用できます。バックグラウンドでSymPyを使用する非常に優れたアプリやライブラリがたくさんあります。シンボリックを実行する(多くの場合、シンボリックが使用されていることに気付かないかもしれない場所で).

セージ

  • Sageには、オープンソースの世界から数学を実行する可能性のあるすべてのもの(SymPyを含む)が含まれています。これには、オクターブなどの数値に役立つ多くのライブラリが含まれます。
  • セージはGPLです。 FSFソフトウェア全体の自由が好きなら、もっと強力なものを。 GPLの下でアプリケーションのライセンスを取得しない限り、独自のアプリケーションでソースコードを再利用することもできません。
  • セージは図書館として使うのが難しい。一方、それは非常に素晴らしいノートブックインターフェイスを持っています。 SymPyで同じことをしたい場合は、IPythonノートブックを使用し、上部でfrom sympy import init_session; init_session()を実行することをお勧めします(印刷したいだけですべてをインポートしたくない場合は、init_sessioninit_printingに置き換えます)。
  • Sageには、Pythonの上に少しDSLが含まれています。たとえば、整数リテラルをラップせずに1/2を入力すると、有理数が返されます。 x^2Xor(x, 2)ではなく、xの2乗を計算します。デフォルトで変数が自動的に定義されるかどうかはわかりません。これは、インタラクティブなSageセッションで行うことは、Pythonスクリプトに直接変換されない可能性があることを意味します。一方、これはインタラクティブな使用に役立ちます(ところで、SymPyにはisympy -Iもあります。同様のことをいくつか行います)。

多分それはあなたが探していたものではありません。あなたはおそらくいくつかの実際の数学的な機能を望んでいました。しかし、先ほど述べたように、SageにはSymPyが含まれているため、定義上、SymPyのすべての機能がSageの機能になります。実際には、Sageは常にデフォルトでSymPyを使用するわけではないので(これの現在のステータスが実際に何であるかわからないため)、必ずしもそうであるとは限らないため、SymPyを手動で呼び出す必要がある場合があります。セージの中から。

48
asmeurer