Python 3 で数学を。

Python 3 とライブラリで数学の問題を解いていきます。統計学や機械学習はときどき。

線形代数。行列の満たす代数方程式を解く (Python 3, NumPy: identity(), linalg, matrix_power())

使用するライブラリ

NumPy

Python 3 コード

mat_algebraic_equations.py

#!/usr/bin/env python3


"""(docstring)
"""


import numpy as np


def mat_algebraic_equations():
    """(docstirng)
    """
    # 以下、NumPy を使用しているため、演習書通りには解いていない。
    # (代数方程式を解くようには解いていない。とくに 2 問目)。

    A = np.array([[1, 2, 0],
                  [-2, -3, 4],
                  [1, 0, 2]])

    print('問題: A^3 - 3A - 10E = O を示せ。\n')

    E = np.identity(3)
    # or
    # E = np.eye(3)

    print('解答:\n')
    res1 = np.linalg.matrix_power(A, 3) - (3*A) - (10*E)
    print(res1)
    print('')
    print('-'*79)

    print('問題: A^6 を求めよ。\n')
    print('解答:\n')
    res2 = np.linalg.matrix_power(A, 6)
    print(res2)


if __name__ == '__main__':
    mat_algebraic_equations()

出力

$ python3 mat_algebraic_equations.py
問題: A^3 - 3A - 10E = O を示せ。

解答:

[[0. 0. 0.]
 [0. 0. 0.]
 [0. 0. 0.]]

-------------------------------------------------------------------------------
問題: A^6 を求めよ。

解答:

[[133  84  72]
 [-48 -35 204]
 [ 87  18 256]]

参考文献 (数式を参考)

基本演習 線形代数 (基本演習ライブラリ)

基本演習 線形代数 (基本演習ライブラリ)