SymPy-記号計算
記号計算とは、数式やその他の数学的対象を操作するためのアルゴリズムの開発を指します。記号計算は、数学とコンピュータサイエンスを統合して、数学記号を使用して数式を解きます。SymPyなどの数式処理システム(CAS)は、従来の手動による方法で使用されているのと同じ記号を使用して、代数式を正確に(概算ではなく)評価します。たとえば、Pythonの数学モジュールを使用して数値の平方根を次のように計算します-
>>> import math
>>> print (math.sqrt(25), math.sqrt(7))
上記のコードスニペットの出力は次のとおりです-
5.0 2.6457513110645907
ご覧のとおり、7の平方根はおおよそ計算されます。しかし、SymPyでは、完全な平方ではない数の平方根は、以下に示すように、デフォルトでは評価されないままになっています。
>>> import sympy
>>> print (sympy.sqrt(7))
上記のコードスニペットの出力は次のとおりです-
sqrt(7)
以下のコードスニペットを使用して、式の結果を簡略化してシンボリックに表示することができます。
>>> import math
>>> print (math.sqrt(12))
上記のコードスニペットの出力は次のとおりです-
3.4641016151377544
sympy −を使用して同じものを実行するには、以下のコードスニペットを使用する必要があります。
##sympy output
>>> print (sympy.sqrt(12))
そしてそのための出力は次のとおりです-
2*sqrt(3)
SymPyコードをJupyterノートブックで実行すると、MathJaxライブラリを使用して数学記号をLatEx形式でレンダリングします。以下のコードスニペットに示されています-
>>> from sympy import *
>>> x=Symbol ('x')
>>> expr = integrate(x**x, x)
>>> expr
上記のコマンドをPythonシェルで実行すると、次の出力が生成されます-
Integral(x**x, x)
これは
$ \ int \ mathrm {x} ^ {x} \、\ mathrm {d} x $
不完全な正方形の平方根は、従来の記号を使用して次のようにラテックスで表すことができます-
>>> from sympy import *
>>> x=7
>>> sqrt(x)
上記のコードスニペットの出力は次のとおりです-
$ \ sqrt7 $
SymPyなどの記号計算システムは、あらゆる種類の計算(導関数、積分、極限、方程式の解法、行列の操作など)を記号的に実行します。SymPyパッケージには、プロット、印刷(LATEXなど)、物理学、統計、組み合わせ論、数論、幾何学、論理などをサポートするさまざまなモジュールがあります。