NumPyで連立方程式を解く方法

Pythonで連立方程式を解く方法はいくつかありますが、今回はNumPyを使った方法を書きます。

8元連立方程式を解いてみます。

4x1+2x2+3x3+3x4+2x5+3x6+4x7+2x8=26
2x1+3x2+2x3+2x4+4x5+2x6+4x7+2x8=13
3x1+4x2+4x3+4x4+2x5+3x6+2x7+3x8=0
4x1+2x2+3x3+4x4+4x5+4x6+2x7+4x8=20
2x1+3x2+2x3+2x4+3x5+2x6+3x7+4x8=5
3x1+4x2+4x3+3x4+2x5+4x6+3x7+2x8=5
4x1+2x2+3x3+3x4+2x5+4x6+2x7+4x8=17
2x1+3x2+2x3+2x4+1x5+3x6+2x7+2x8=-6

import numpy
A = [
  [4, 2, 3, 3, 2, 3, 4, 2],
  [2, 3, 2, 2, 4, 2, 4, 2],
  [3, 4, 4, 4, 2, 3, 2, 3],
  [4, 2, 3, 4, 4, 4, 2, 4],
  [2, 3, 2, 2, 3, 2, 3, 4],
  [3, 4, 4, 3, 2, 4, 3, 2],
  [4, 2, 3, 3, 2, 4, 2, 4],
  [2, 3, 2, 2, 1, 3, 2, 2]
]
b = [
  26,
  13,
  0,
  20,
  5,
  5,
  17,
  -6
]
x = numpy.linalg.solve(A, b)
print(x)

実行結果
[ 8. -7. 6. -5. 4. -3. 2. -1.]

コメント

タイトルとURLをコピーしました