質問する
17788 次
1 に答える
80
(完全な開示: 私は SymPy の主任開発者です)
最初に理解しておくべきことは、SymPy と Sage はまったく同じものではないということです。SymPy は、コンピュータ代数を行う純粋な Python ライブラリです。Sage は、オープン ソースの数学ソフトウェアのコレクションです。Sage は、すべての主要なオープン ソースの数学ソフトウェアを集めて、それらを組み合わせて有用なシステムにしようとしています。実際、 Sage にはそのシステムの 1 つとしてSymPy が含まれています。
以下に、それぞれの (偏った) 事実の短いリストを示します (私はそれらを長所や短所とは呼びません。単に事実と呼びます)。
SymPy
- SymPy は完全にスタンドアロンです。Python 以外の依存関係はありません。
- スタンドアロンでありながら、コンピュータ代数システムとしての機能をフルに備えています。数値計算を行いたい場合は、科学 Python エコシステムの他のライブラリを使用することをお勧めします。
- SymPy は BSD ライセンスです。多くの人にとって、これは問題ではありませんが、SymPy を何か他のものに含めたい場合は、コードでほとんど何でもできることを知っておくと便利です。
- SymPy は Python を変更しようとしません。SymPy は、Python がうまく機能しているという哲学を取り入れているため、Python のやり方で物事を行う必要があります。たとえば、累乗の演算子は、他の多くのシステムとは
**
異なり、Python と同じです。^
- SymPy はライブラリとして使用できます。SymPy は単なる Python モジュールであるため、インポートするだけで、Python を使用する任意の場所で使用できます。バックグラウンドで SymPy を使用してシンボリックを実行する、非常に優れたアプリやライブラリが数多くあります (多くの場合、シンボリックが使用されていることに気付かないような場所で)。
セージ
- Sage には、オープン ソースの世界から数学を実行したいと思うかもしれないすべて (SymPy を含む) が含まれています。これには、オクターブなど、数値に役立つ多くのライブラリが含まれます。
- セージは GPL です。FSF ソフトウェアの自由なシェル全体が気に入った場合は、より多くの機能を利用できます。GPL の下でアプリケーションのライセンスを取得しない限り、独自のアプリケーションでソース コードを再利用することはできません。
- Sage はライブラリとして使いにくいです。一方、非常に優れたノートブック インターフェイスを備えています。SymPy で同じことを行いたい場合は、IPython ノートブックを使用して上部で実行することをお勧めします(すべてをインポートせずに印刷するだけの場合は に
from sympy import init_session; init_session()
置き換えます)。init_session
init_printing
- Sage には、Python の上に少しの DSL が含まれています。たとえば
1/2
、整数リテラルをラップせずに入力すると、有理数が返されます。x^2
ではなく、x の 2 乗を返しXor(x, 2)
ます。デフォルトで変数が自動的に定義されるかどうかはわかりません。つまり、インタラクティブな Sage セッションで行うことは、Python スクリプトに直接変換されない可能性があります。一方、これはインタラクティブな使用に役立ちます (ところで、SymPy にもisympy -I
同様のことがいくつかあります)。
多分それはあなたが探していたものではありません。おそらく実際の数学的機能が必要だったでしょう。しかし、私が言ったように、Sage には SymPy が含まれているため、定義上、SymPy のすべての機能は Sage の機能になります。実際には、Sage は常にデフォルトで SymPy を使用するとは限らないため (現在の状況が実際にどうなのかはわかりません)、これを使用する場合は SymPy を手動で呼び出す必要がある場合があります。セージの中から。
于 2013-07-25T17:47:03.417 に答える