元セブ島在住のエンジニアの僕「Tommy」が、プログラミング・英語・セブ事情を発信するブログ

Tommy's blog

【Python】方程式を解く方法【→日頃の業務に活用できる!】

7月 26, 2019

プログラム女子
方程式をPythonで解くことってできるの?電卓だと厳しいよね。。。
もちろんできるよ。Pythonには数式を計算するライブラリがあるから、その使い方を含めて説明するね。
Tommy

この記事で分かること

  • Pythonプログラムで方程式を書く方法が分かる
  • Pythonプログラムで方程式を解く方法が分かる

Pythonで方程式を解く概要

中学、高校で習った2次方程式ですが、私達の日頃の業務にさまざまな応用ができるかもしれません。

例えば、プールに加速度を付けて水を出し続けた場合の満水の時間を調べたり、面積を最大にするときの2つの図形の重なり角度を求めたりなどです。

業務に応用する為には、もっと高等な数学が必要になるかもしれませんが、まずは日頃の業務課題の中に2次方程式で解けるものがないかを見つけてみて、日頃手で逐次計算していたものをPythonを使って自動で計算させると、少し業務効率が上がる可能性があります。

この記事では、Pythonプログラムを使って、2次方程式を解く方法を説明します。

Pythonで方程式を解く前提環境

2次方程式を解く前提の環境は、下の記事で説明している私の環境と同じ環境で確認しています。

また、レンタルサーバなどのLinuxサーバを使っている場合は、下の記事でプログラミングする環境の作り方を説明しています。

もし、まだプログラムする環境ができていない方は、先にこちらの記事を読んで、プログラミングできる環境をつくることをおすすめします。

Pythonで方程式を解くサンプルプログラム

ここでは、2次方程式を解くサンプルプログラムを使って方程式を解く方法を説明します。サンプルプログラムは次の順番で説明します。

  1. 方程式を解く為のライブラリのインポート
  2. 方程式を解く実行処理

1.方程式を解く為のライブラリのインポート

Pythonで方程式を扱う為には、数値計算のライブラリをインポートする必要があります。「sympy」と呼ばれるライブラリはPythonの数値計算ライブラリの1つです。

import sympy

代数計算(数式処理)に必要な「sympyライブラリ」をインポートする。

方程式を解く実行処理

次に、下記の2次方程式を解く処理を実行します。

f=x^2+16x^2+60

方程式の解き方としては、ライブラリ「sympy」の関数「Symbol」で方程式の変数を変数「x」に定義し、その後、関数「solve」で方程式を解きます。関数「solve」の使い方として、下のサンプルプログラムのように、第一引数に方程式を入力し、第二引数に方程式の変数を入力することで方程式の解を求めることができます。

if __name__ == '__main__':

	#xを変数xとして定義
	x = sympy.Symbol('x')
	f = x**2  +16 * x +60

	# f=0としてxを解き変数solutionsに代入
	solutions=sympy.solve(f,x)

	print(solutions)

上記のプログラムは、下記のような手順になります。

  1. ライブラリ「sympy」の関数「Symbol」で、xを方程式の変数に初期化する。
  2. 変数「f」に方程式を定義する。
  3. ライブラリ「sympy」の関数「solve」で、変数「solutions」に変数「f」で指定した方程式の解を求める。
  4. 変数「solutions」の値をを表示する。