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

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

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

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

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

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

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

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

Sympyとは

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

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

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

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

ここでは簡単に、

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

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

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

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

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

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

微分積分をする方法

それでは早速、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では微分積分以外にも様々な計算をすることが出来ます。

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

LINEで送る
Pocket

「プログラミング、右も左もわからない…」という方にオススメ

当プログラミングスクール「侍エンジニア塾」では、これまで6000人以上のエンジニアを輩出してきました。

その経験を通してプログラミング学習に成功する人は、「目的目標が明確でそれに合わせた学習プランがあること」「常に相談できる人がそばにいること」「自己解決能力が身につくこと」この3つが根付いている傾向を発見しました。

侍エンジニア塾は上記3つの成功ポイントを満たすようなサービス設計に磨きをかけております。

cta_under_bnr

「自分のスタイルや目的に合わせて学習を進めたいな」とお考えの方は、ぜひチェックしてみてください。

書いた人

侍テック編集部

侍テック編集部