実際に書いてみる!Pythonで積分を求める方法【初心者向け】
初心者向けにPythonで積分を求める方法について解説しています。機械学習では積分のように、いくつかの数学の知識が必要になる場面があります。PythonではSciPyやSymPyというライブラリを利用して積分を行います。ライブラリのインストール方法と書き方を学んでいきましょう。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
Pythonで積分を求める方法について解説します。
そもそもPythonについてよく分からないという方は、Pythonとは何なのか解説した記事を読むとさらに理解が深まります。
なお本記事は、TechAcademyのオンラインブートキャンプPython講座の内容をもとに紹介しています。
今回は、Pythonに関する内容だね!
どういう内容でしょうか?
積分を求める方法について詳しく説明していくね!
お願いします!
積分とは
積分とは、ある一定区間の面積を求める計算方法です。以下のように複雑な領域であっても、面積を求めることができます。
積分は、領域をx軸方向に細かく分断することで面積を求めていきます。この細かく分断する手法で、その時のグラフの角度を求めるのが微分です。
積分は、一定時間の仕事量を求めるような場面で利用されます。例えば、車の移動距離は、速度と時間の積で求められますが、速度は一定ではありません。そこで積分の考え方を使い、時間を細かく分断し、各時間毎の平均速度と時間の積を累計することで、移動距離を求めることができます。
なお、 Python で機械学習を行う場合、数学の分野として「線形代数」「微分積分」「統計」を覚えておくと便利です。特に機械学習ではたくさんの数値を行列の形で一度に扱うため「線形代数」の知識は重要です。「微分積分」については機械学習のライブラリを利用する程度であれば、概念を覚えておくぐらいで十分でしょう。
積分を求める書き方
Python で積分を行うには、SciPy または SymPy というライブラリを使用します。
SciPy
integrate.quad(積分を行う式)
quadは1次元積分を行うメソッドです。その他に2次元以上の積分を行うメソッドもあります。詳しくは公式サイトを参考にしてください。
SymPy
integrate(積分を行う式)
SymPy は Python で数式を書けるので、より利用しやすいライブラリです。詳しくは公式サイトを参考にしてください。
https://techacademy.jp/magazine/wp-content/uploads/2017/07/index.html2_-620×437-e1499391542321.png
実際に書いてみよう
まずはライブラリをインストールしましょう。パソコンが Macならターミナル、Windowsならコマンドプロンプトから以下のコマンドでインストールします。なお、事前に Python のインストールが必要です。
pip install sympy
今回のサンプルプログラムでは、SymPy を使った積分式の書き方を紹介します。実行はPythonインタプリタで行います。コマンドラインで「python」と入力すると「>>>」と表示されますので、1行ずつプログラムを入力します。
はじめに必要なライブラリをインポートします。
from sympy import *
次に積分する変数を指定します。
x = symbols('x')
それでは、積分を行いましょう。はじめに不定積分です。
integrate(f,x)
実行結果は以下のようになります。
x**3/3 + x**2 + x
次に定積分です。今回は、-1〜1を指定しています。
integrate(f, (x, -1, 1))
実行結果は以下のようになります。
8/3
なお、diffメソッドを使うと微分も求めることができます。
diff(f, x)
実行結果は以下のようになります。
2*x + 2
この記事を監修してくれた方
太田和樹(おおたかずき) 普段は主に、Web系アプリケーション開発のプロジェクトマネージャーとプログラミング講師を行っている。守備範囲はフロントエンド、モバイル、サーバサイド、データサイエンティストと幅広い。その幅広い知見を生かして、複数の領域を組み合わせた新しい提案をするのが得意。 開発実績:画像認識技術を活用した駐車場混雑状況把握(実証実験)、音声認識を活用したヘルプデスク支援システム、Pepperを遠隔操作するアプリの開発、大規模基幹系システムの開発・導入マネジメント 地方在住。仕事のほとんどをリモートオフィスで行う。通勤で消耗する代わりに趣味のDIYや家庭菜園、家族との時間を楽しんでいる。 |
内容分かりやすくて良かったです!
ゆかりちゃんも分からないことがあったら質問してね!
分かりました。ありがとうございます!
TechAcademyでは、初心者でもPythonを使った人工知能(AI)や機械学習の基礎を習得できるオンラインブートキャンプPython講座を開催しています。
挫折しない学習方法を知れる説明動画や、現役エンジニアとのビデオ通話とチャットサポート、学習用カリキュラムを体験できる無料体験も実施しているので、ぜひ参加してみてください。