今回はPythonの数値計算ライブラリ、SymPyを使って微分を計算する方法を解説します。
SymPyとは
SymPyの解説やインストール方法については、以下のページで書いていますのであわせてご覧ください。

微分の公式
今回はSymPyを使って微分の計算を実行してみます。
手計算でも結果の確認をしますので、微分の公式を確認します。
微分の公式は以下となります。


SymPyで微分を実装する
SymPyで微分の計算を実装する方法は以下の通りです。
計算で使用する変数をシンボルとして以下のように定義します。
x = Symbol('x')
今回は以下の式を計算してみます。

この式をPythonで以下のように記述します。Pythonではべき乗は「**」と記述します。
expr = '3*x**3+x**2'
微分を実行するためdiffメソッドを使用します。
引数で先ほど定義した式を渡します。
diff(expr, x)
作成したソースコード
実際に微分の計算を行うコードは以下の通りです。
from sympy import diff, Symbol
x = Symbol('x')
expr = '3*x**2+x'
ans = diff(expr, x)
print("ans = ", ans)
実行結果
Pythonの計算結果と手計算の結果を比較してみましょう。
プログラムの実行結果
実行結果は以下の通りです。
ans = 9*x**2 + 2*x
手計算の結果
続いて同じ計算を先ほどの公式を使って手計算で解いてみます。

SymPyでの結果と一致しましたので正しいことが確認できました。

まとめ
今回はSymPyを使って微分の計算を実行する方法を解説してみました。SymPyを使うと数年前は非常に高額な数値計算ソフトを使わなければできなかったような計算が簡単に実装できますので、ぜひ積分以外の計算でも活用してみてください。
また、以下の記事で効率的にPythonのプログラミングスキルを学べるプログラミングスクールの選び方について解説しています。最近ではほとんどのスクールがオンラインで授業を受けられるようになり、仕事をしながらでも自宅で自分のペースで学習できるようになりました。
スキルアップや副業にぜひ活用してみてください。

スクールではなく、自分でPythonを習得したい方には、いつでもどこでも学べる動画学習プラットフォームのUdemyがおすすめです。
講座単位で購入できるため、スクールに比べ非常に安価(セール時1200円程度~)に学ぶことができます。私も受講しているおすすめの講座を以下の記事でまとめていますので、ぜひ参考にしてみてください。

それでは、また次の記事でお会いしましょう。
コメント