この記事では、Python言語とNumPyを用いて、連立方程式を解く方法をソースコード付きで解説します。
連立方程式の解
PythonではNumPyを用いることで連立方程式を解くことが出来ます。
書式
X = numpy.linalg.solve(A, B)
| パラメータ | 説明 |
|---|---|
| 第1引数(A) | 連立方程式AX=Bの正方行列A |
| 第2引数(B) | 連立方程式のベクトルB |
| 戻り値(X) | 連立方程式の解 |
PythonとNumPyのlinalg.solveを利用すると、連立方程式の解を求めることが出来ます。
ただし、連立方程式を行列の式(AX=B)に変換する必要があります。
例えば以下の連立の方程式の場合を考えます。
\begin{eqnarray} \begin{cases} a_{11}x_1 + a_{12}x_2 = b_1 & \\ a_{21}x_1 + a_{22}x_2 = b_2 & \end{cases} \end{eqnarray}これを行列の式(AX=B)に変換すると次のようになります。
\begin{eqnarray}
AX=B
\end{eqnarray}
\begin{eqnarray}
A= \begin{bmatrix}a_{11} & a_{12} \a_{21} & a_{22} \end{bmatrix}
, X= \begin{bmatrix}x_1\x_2 \end{bmatrix}
, B= \begin{bmatrix}b_1\b_2 \end{bmatrix}
\end{eqnarray}
ソースコード
サンプルプログラムのソースコードです。
# -*- coding: utf-8 -*-
import numpy as np
def main():
A = np.array([[1.,3.] # 行列Aの生成
,[4.,2.]])
B = np.array([1.,1.]) # 行列Bの生成
X = np.linalg.solve(A, B)
# 計算結果の表示
print( "X=\n" + str(X) )
if __name__ == '__main__':
main()
実行結果
サンプルプログラムの実行結果は下記の通りです。
X=[ 0.1 0.3]
解Xが求まりました。(x1=0.1, x2=0.3)

コメント