今回はPythonで連立方程式を解く方法を解説します。
SymPyをインストールする
Pythonで連立方程式を解くためにSymPyというライブラリをインストールします。
SymPyは代数計算ができます。連立方程式の計算以外にも、微分、積分など様々な計算が可能です。
pip install sympy
SymPyで連立方程式を解く
早速、SymPyで連立方程式を解いてみましょう。
試しに下記の式を解いてみます。
\begin{eqnarray} x+y&=&4 \\ x+2y&=&10 \end{eqnarray}
先にコードを紹介すると次の通りです。
# ①ライブラリのインポート
import sympy
# ②変数の定義
x = sympy.Symbol('x')
y = sympy.Symbol('y')
# ③式の定義
equation_1 = x + y - 4
equation_2 = x + 2*y - 10
# ④式を解く
print(sympy.solve([equation_1, equation_2]))
コードの解説は以下の通りです。
連立方程式を解くための手順
- ①ライブラリのインポート
sympyをインポートします。
- ②変数の定義
使用する変数を定義します。今回はxとyが該当します。
- ③式の定義
式を定義します。その際に、式 = 0の形式にします。
今回の場合は、\begin{eqnarray} x+y&=&4 \\ x+2y&=&10 \end{eqnarray}
から、\begin{eqnarray} x+y-4 &=& 0 \\ x+2y-10 &=& 0 \end{eqnarray}
へ変形し、そのあとにコードにします。 - ④式を解く
sympy.solve
で式を解きます。
以上の手順を実行すると、下記の結果を出力します。
{x: -2, y: 6}
変数が3つの場合も手順は同じです。試しに次の連立方程式を解いてみましょう。
\begin{eqnarray} x+y+z&=&10 \\ 2x+y+z&=&5 \\ x+y+2z &=& 15 \end{eqnarray}
# ①ライブラリのインポート
import sympy
# ②変数の定義
x = sympy.Symbol('x')
y = sympy.Symbol('y')
z = sympy.Symbol('z')
# ③式の定義
equation_1 = x + y + z - 10
equation_2 = 2*x + y + z - 5
equation_3 = x + y + 2*z - 15
# ④式を解く
print(sympy.solve([equation_1, equation_2, equation_3]))
③において、式は下記に変換します。
\begin{eqnarray} x+y+z-10&=&0 \\ 2x+y+z-5&=&0 \\ x+y+2z-15 &=& 0 \end{eqnarray}
結果は次の通りです。
{x: -5, y: 10, z: 5}