Python 3 で数学を。

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

線形代数。分配法則。A(B + C) = AB + AC (Python 3, NumPy: dot(), all())

使用するライブラリ

NumPy

Python 3 コード

distributive_law.py

#!/usr/bin/env python3


"""(docstring)
"""


import numpy as np


def distributive_law():
    """(docstirng)
    """
    # 分配法則
    # A(B + C) = AB + AC

    A = np.array([[2, -5], [3, 1], [-1, 3]])
    B = np.array([[-1, 0], [2, -1]])
    C = np.array([[5, 6], [-2, 3]])

    print('A(B + C) =')
    A_BplusC = np.dot(A, (B+C))
    print(A_BplusC)
    print('')

    print('AB + AC =')
    AB_plus_AC = np.dot(A, B) + np.dot(A, C)
    print(AB_plus_AC)
    print('')

    print('A(B + C) = AB + AC:')
    if A_BplusC.all() == AB_plus_AC.all():
        return print(True)
    else:
        return print(False)


if __name__ == '__main__':
    distributive_law()

出力

$ python3 distributive_law.py
A(B + C) =
[[ 8  2]
 [12 20]
 [-4  0]]

AB + AC =
[[ 8  2]
 [12 20]
 [-4  0]]

A(B + C) = AB + AC:
True

参考文献 (数式を参考)

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

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