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

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

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

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

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

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

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

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

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

Sympyとは

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

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

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

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

ここでは簡単に、

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

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

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

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

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

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

【何から学べばいいかわからない…そんな悩みを解決します!】

完全無料ですぐわかる「プログラミング学習プラン診断」

・適性にあわせて学習プランを診断
・完全無料で気軽に診断できる
・学習の悩みもまるっと解決

さっそく診断してみる

微分積分をする方法

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

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

プログラミング学習中、
誰かへ相談したいことはありませんか?

SAMURAI TERAKOYA

プログラミングはエラーの連続。作業を進めるなかで誰かに教えてほしい場面は多いですよね。

そんな悩みを解決できるのが、侍テラコヤです。登録無料で始められて、現役エンジニアとオンラインで相談できるほか、回答率100%のQA掲示版でプログラミングに関する悩みを解決します!

気になる方はぜひ詳細をご覧ください。

→侍テラコヤの詳細をみる

Writer

侍テック編集部

株式会社SAMURAI

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

あなたの目的に合わせた
SAMURAI ENGINEERの運営サービス

SAMURAI ENGINEER Pro

未経験でも挫折しないプログラミングスクール

詳細はこちら

SAMURAI TERAKOYA

日本最大級のサブスク型オンラインITスクール

詳細はこちら

SAMURAI ENGINEER Freelance

「一人で稼げる」スキルを身につける

詳細はこちら
Close