【Python入門】Sympy・matplotlibで微分積分を計算してみよう

この記事ではPythonで微分積分を計算する方法について解説をしたいと思います。

Sympyというパッケージを使えば、関数を呼び出していくだけで簡単に微分積分を計算することが出来ます。

Pythonで微分積分を計算したい。
Pythonで計算結果をグラフにプロット(描画)したい。

今回の記事ではこのように思っている方に向けて、

【基礎】微分積分とは
【基礎】Sympy、matplotlibとは
【実践】Sympyを使って微分積分をする方法

について解説をしていきます。

Pythonでやや高度な計算をしてみましょう!

本記事を読む前に、Pythonがどんなプログラミング言語なのかをおさらいしておきたい人は次の記事を参考にしてください。

→ Pythonとは?特徴やできること、活用例をわかりやすく簡単に解説

なお、その他のPythonの記事についてはこちらにまとめています。

目次

Sympyとは

Sympyは、Pythonで記号を扱った計算をするためのパッケージです。

Sympyには、基本的な加減乗除や数学の関数、多項式や方程式、さらには微分積分などの様々な機能が実装されています。

紹介した部分だけでもほんの一部分なのですが、今回は微分積分の計算をSympyを使って計算してみます。

ちなみに微分積分とは何かについてもおさらいしておきましょう。

ここでは簡単に、

  • 微分は、グラフの接戦の傾きを表すもの。
  • 積分は、グラフの面積を表すもの。

として覚えておきましょう。

厳密な数式はここでは提示しません。

さらに今回はこのグラフをプロット(描画)するために、matplotlibというパッケージを使っていきます。

簡単な使い方についてはこちらの記事をご覧ください。

機械学習入門!色んなグラフをmatplotlib.pyplotで作ってみよう!
更新日:2024年3月1日

微分積分をする方法

それでは早速、Sympyを使って微分積分を計算してみましょう!

その前に、今回使うSympyとmatplotlibをpipを使ってインストールしておきましょう。

こちらのコードを実行すればインストールすることが出来ます。

pip install sympy
pip install matplotlib

微分を計算する方法

それでは早速微分を計算してみましょう。

まずはこちらのコードをご覧ください。

from sympy import *

x = Symbol('x')
g = sin(x)
f = diff(g)
print(f)

実行結果

cos(x)

このコードでは公式でも見覚えがあるような、sin(x)の微分を求めています。

それでは一行ずつ解説をしていきます。

まずはSympyをimportしてすべての機能が使えるように準備しています。

次にSymbol関数が出てきましたね。

Pythonでは変数の宣言は必要ありませんが、Sympyを使う場合は変数をあらかじめSymbol関数で宣言する必要があります。

次に、先程宣言したxを使って実際に計算させたい式をgに代入しています。

その計算させたい式をdiff関数に渡すことで簡単に微分の計算をさせることが出来ます。

実際にグラフにプロットして確認してみましょう。

plot(f,g)

簡単にではありますが、sinとcosのグラフを、関数を渡すだけでプロットすることが出来ましたね。

積分を計算する方法

それでは次に積分も計算してみましょう。

今回は不定積分の方法になります。

こちらのコードをご覧ください。

from sympy import *

x = Symbol('x')
g = tan(x)
f = integrate(g)
print(f)

実行結果

-log(cos(x))

このコードではtan(x)の積分を求めています。

実行結果を見るとしっかりと積分されていることがわかりましたね。

このコードも先程の微分と同じような段階を踏んで計算をしています。

唯一違う部分はintegrate関数を使っているところで、この関数に式を渡すことで積分をしてくれます。

まとめ

今回はPythonで微分積分の計算をする方法について解説してきました。

Pythonで代数計算をする方法について、なんとなくは分かっていただけたでしょうか?

Sympyでは微分積分以外にも様々な計算をすることが出来ます。

ぜひその他の機能についても調べてみてください。

この記事を書いた人

侍エンジニア塾は「人生を変えるプログラミング学習」をコンセンプトに、過去多くのフリーランスエンジニアを輩出したプログラミングスクールです。侍テック編集部では技術系コンテンツを中心に有用な情報を発信していきます。

目次