【Python】微分や素因数分解が簡単にできるSymPyのインストール

【Python】微分や素因数分解が簡単にできるSymPyのインストール プログラミング

Pythonで複雑な計算を行う場合、SymPyの利用を考えましょう。
自分でゴリゴリとコーディングするのは、ある意味楽しいです。

でも、それは時間の無駄になる可能性があります。
車輪の再発明は、できる限りで避けましょう。

そのためにも、SymPyの利用をおススメします。

本記事の内容

  • SymPyとは?
  • SymPyのシステム要件
  • SymPyのインストール
  • SymPyの動作確認

それでは、上記に沿って解説していきます。

SymPyとは?

SymPyとは、代数計算のためのPythonライブラリです。
そして、SymPyの特徴は以下。

  • 任意精度の整数、有理数、浮動小数点への対応
  • 指数関数・対数関数・三角関数など
  • 複素数
  • テイラー展開の計算・ローラン級数
  • 微分積分

計算であれば一通りのことが、できるということですね。
SymPyを利用すれば、ゴリゴリと自分で計算式をコーディングする必要もありません。

以上、SymPyについての説明でした。
次は、SymPyのシステム要件を確認します。

SymPyのシステム要件

現時点(2021年7月)でのSymPyの最新バージョンは、1.8となります。
この最新バージョンは、2021年4月10日にリリースされています。

サポートOSに関しては、以下を含むクロスプラットフォーム対応です。

  • Windows
  • macOS
  • Linux

また、サポート対象となるPythonは以下のバージョンです。

  • Python 3.6
  • Python 3.7
  • Python 3.8

Python 3.9は、単純に検証していないだけでしょう。
もしくは、setup.pyファイルの更新漏れかもしれません。

いづれにせよ、Python 3.9が動かない理由がありません。
過去に、数多くのPythonライブラリをインストールしてきました。

その経験より、「Python 3.8がOK」で「Python 3.9がNG」というのは見たことがありません。
実際、私は次のバージョンで検証しています。

>python -V
Python 3.9.6

現時点(2021年7月末)では、最新版となるPythonです。
Pythonのアップグレードを行う場合は、次の記事が参考となります。

以上、SymPyのシステム要件を説明しました。
次は、SymPyをインストールしていきます。

SymPyのインストール

まずは、現状のインストール済みパッケージを確認しておきます。

>pip list
Package    Version
---------- -------
pip        21.2.1
setuptools 57.4.0

次にするべきことは、pipとsetuptoolsの更新です。
pipコマンドを使う場合、常に以下のコマンドを実行しておきましょう。

python -m pip install --upgrade pip setuptools

では、SymPyのインストールです。
SymPyのインストールは、以下のコマンドとなります。

pip install sympy

インストールは、すぐに終わります。
では、どんなパッケージがインストールされたのかを確認しましょう。

>pip list
Package    Version
---------- -------
mpmath     1.2.1
pip        21.2.1
setuptools 57.4.0
sympy      1.8

依存パッケージが、1つありました。
任意精度計算は、mpmathに依存しているということですね。

それ以外に依存パッケージはありません。
その点では、既存の環境にSymPyを容易に導入できそうです。

以上、SymPyのインストールに関する説明でした。
最後に、SymPyの動作確認を行います。

SymPyの動作確認

SymPyの動作確認を行います。

この整式を因数分解します。
そのコードは、以下。

import sympy

# 変数宣言(x,yが利用できるように)
x, y = sympy.symbols('x,y')

# 整式を設定(べき乗:**)
f = x ** 2 - y ** 2

# 整式fを因数分解
print(sympy.factor(f))

上記を実行すると、以下の結果となります。

(x - y)*(x + y)

確かに、因数分解できていますね。

以上、SymPyの動作確認を説明しました。

タイトルとURLをコピーしました