
Photo by
golchiki
記号計算ライブラリ SymPy 導入(Python)
Pythonで記号計算を行うためのライブラリである「SymPy」を使うと様々な計算ができるようなので、実際に使ってみることにしました。まずは、導入編として、インストールから簡単な計算までの流れを本記事に書いていきます。
SymPy はどんな計算ができるのか?
冒頭では「記号計算」と書きましたが、具体的には次のような計算ができます。
・数式の簡約化「x^2 + x」→「x*(x+1)」など
・数式の展開「x*(x+1)」→「x^2 + x」など
・複素数の計算
・記号の置換「sin」→「cos」など
・因数分解
・部分分数分解
・微積分
・テイラー展開
・微分方程式
・差分方程式
その他、多数の演算ができます。
概要は SymPy の公式ページ や Wikipedia を参照してみてください。
SymPyインストール
SymPy はコマンドプロンプトからpipを使ってインストールします。細かい方法は私が過去に書いた記事を参照してみてください。「Python パッケージ pip インストール(オフライン・アクセス制限PC向け)」
コマンドプロンプトを立ち上げたら、以下のコマンドを入力して実行します。
py -m pip install sympy
これで次のように表示されればOKです。
Successfully installed (インストールしたファイル名)
SymPyを使ってみる
簡単な数式を用いて SymPy を使ってみます。計算する内容は「x^2 + 2x +1」を「x」について解く計算です。
上式は「(x+1)^2」となるので「x = -1」が解となります。ソースコードは下記になります。
# =================================================
# ライブラリインポート
# =================================================
# 記号数値計算ライブラリ
import sympy as sym
# =================================================
# メイン
# =================================================
#------------ シンボル定義 ------------#
x = sym.symbols("x")
#------------ 演算 ------------#
ans = sym.solve(x**2 + 2*x + 1, x)
#------------ 出力 ------------#
print(ans)
上記のコードで実行すると次の結果が出力されます。
[-1]
正しい計算結果が出力されました。
おわりに
本記事ではSymPyの導入として、ライブラリインストールから簡単な計算までやってみました。様々な計算に使えるようなので、これから色々と試していきたいと考えています。
さらに、SymPy 単体ではなく、制御工学演算ライブラリの Python Control やグラフ描画ライブラリ matplotlib と組み合わせることで色々なことができそうだなと感じました。また、私が最近興味をもっている EDA(Electronic Design Automation)にも活用できそうな気がします。
いいなと思ったら応援しよう!
