実際に書いてみる!Pythonで積分を求める方法【初心者向け】

初心者向けにPythonで積分を求める方法について解説しています。機械学習では積分のように、いくつかの数学の知識が必要になる場面があります。PythonではSciPyやSymPyというライブラリを利用して積分を行います。ライブラリのインストール方法と書き方を学んでいきましょう。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

Pythonで積分を求める方法について解説します。

Pythonについてそもそもよく分からないという方は、Pythonとは何なのか解説した記事をまずご覧ください。

 

なお本記事は、TechAcademyのPythonオンライン講座の内容をもとにしています。

 

田島悠介

今回は、Pythonに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

積分を求める方法について詳しく説明していくね!

大石ゆかり

お願いします!

 

積分とは

積分とは、ある一定区間の面積を求める計算方法です。以下のように複雑な領域であっても、面積を求めることができます。

wikipedia

積分は、領域をx軸方向に細かく分断することで面積を求めていきます。この細かく分断する手法で、その時のグラフの角度を求めるのが微分です。

wikipedia

積分は、一定時間の仕事量を求めるような場面で利用されます。例えば、車の移動距離は、速度と時間の積で求められますが、速度は一定ではありません。そこで積分の考え方を使い、時間を細かく分断し、各時間毎の平均速度と時間の積を累計することで、移動距離を求めることができます。

なお、 Python で機械学習を行う場合、数学の分野として「線形代数」「微分積分」「統計」を覚えておくと便利です。特に機械学習ではたくさんの数値を行列の形で一度に扱うため「線形代数」の知識は重要です。「微分積分」については機械学習のライブラリを利用する程度であれば、概念を覚えておくぐらいで十分でしょう。

 

積分を求める書き方

Python で積分を行うには、SciPy または SymPy というライブラリを使用します。

SciPy

integrate.quad(積分を行う式)

quadは1次元積分を行うメソッドです。その他に2次元以上の積分を行うメソッドもあります。詳しくは公式サイトを参考にしてください。

https://www.scipy.org/

 

SymPy

integrate(積分を行う式)

SymPy は Python で数式を書けるので、より利用しやすいライブラリです。詳しくは公式サイトを参考にしてください。

https://www.sympy.org/en/index.html

 

[PR] Pythonで挫折しない学習方法を動画で公開中

実際に書いてみよう

まずはライブラリをインストールしましょう。パソコンが 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

 

この記事を監修してくれた方

太田和樹(おおたかずき)
ITベンチャー企業のPM兼エンジニア

普段は主に、Web系アプリケーション開発のプロジェクトマネージャーとプログラミング講師を行っている。守備範囲はフロントエンド、モバイル、サーバサイド、データサイエンティストと幅広い。その幅広い知見を生かして、複数の領域を組み合わせた新しい提案をするのが得意。

開発実績:画像認識技術を活用した駐車場混雑状況把握(実証実験)、音声認識を活用したヘルプデスク支援システム、Pepperを遠隔操作するアプリの開発、大規模基幹系システムの開発・導入マネジメント

地方在住。仕事のほとんどをリモートオフィスで行う。通勤で消耗する代わりに趣味のDIYや家庭菜園、家族との時間を楽しんでいる。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

オンラインのプログラミングスクールTechAcademyではPythonを使って機械学習の基礎を学ぶPythonオンライン講座を開催しています。

初心者向けの書籍を使って人工知能(AI)や機械学習について学ぶことができます。

現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、最短4週間で習得することが可能です。

また、現役エンジニアから学べる無料のプログラミング体験会も実施しているので、ぜひ参加してみてください。