Python 3 で数学を。

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

線形代数。ベクトル。計算法則が成立するかどうか。(計算則、計算規則)。等式。(Python 3: class (クラス), NumPy: all())

使用するライブラリ

NumPy

Python 3 コード

equality1.py

#!/usr/bin/env python3


"""(docstring)
"""


import numpy as np


class Equality1:
    """(docstring)
    """

    def __init__(self, a, b, c, k, l):
        """(docstring)
        """
        self.E1_a = a
        self.E1_b = b
        self.E1_c = c
        self.E1_k = k
        self.E1_l = l

    def equality_func1(self):
        """(docstring)
        """
        if np.all(self.E1_a + self.E1_b == self.E1_a + self.E1_b):
            print('a + b = b + a は成立する。')
        else:
            print('a + b = b + a は成立しない。')

        if np.all((self.E1_a + self.E1_b) + self.E1_c == self.E1_a + (self.E1_b + self.E1_c)):
            print('(a + b) + c = a + (b + c) は成立する。')
        else:
            print('(a + b) + c = a + (b + c) は成立しない。')

        if np.all(self.E1_a + 0 == 0 + self.E1_a) == np.all(self.E1_a):
            print('a + 0 = 0 + a = a は成立する。')
        else:
            print('a + 0 = 0 + a = a は成立しない。')

        if np.all(self.E1_a + (-self.E1_a) == 0):
            print('a + (-a) = 0 は成立する。')
        else:
            print('a + (-a) = 0 は成立しない。')

        if np.all(self.E1_k*(self.E1_l*self.E1_a) == (self.E1_k*self.E1_l)*self.E1_a):
            print('k(la) = (kl)a は成立する。')
        else:
            print('k(la) = (kl)a は成立しない。')

        if np.all(self.E1_k*(self.E1_a + self.E1_b) == self.E1_k*self.E1_a + self.E1_k*self.E1_b):
            print('k(a + b) = ka + kb は成立する。')
        else:
            print('k(a + b) = ka + kb は成立しない。')

        if np.all((self.E1_k + self.E1_l)*self.E1_a == self.E1_k*self.E1_a + self.E1_l*self.E1_a):
            print('(k + l)a = ka + la は成立する。')
        else:
            print('(k + l)a = ka + la は成立しない。')

        if np.all(1*self.E1_a == self.E1_a):
            print('1a = a は成立する。')
        else:
            print('1a = a は成立しない。')


if __name__ == '__main__':
    a = np.array([2, 1])
    b = np.array([-3, 2])
    c = np.array([1, -2])
    k = np.array([-2])
    l = np.array([3])

    e1 = Equality1(a, b, c, k, l)
    e1.equality_func1()

出力

$ python3 equality1.py
a + b = b + a は成立する。
(a + b) + c = a + (b + c) は成立する。
a + 0 = 0 + a = a は成立する。
a + (-a) = 0 は成立する。
k(la) = (kl)a は成立する。
k(a + b) = ka + kb は成立する。
(k + l)a = ka + la は成立する。
1a = a は成立する。

参考文献 (数式を参考)

アントンのやさしい線型代数

アントンのやさしい線型代数

まずはこの一冊から 意味がわかる線形代数 (BERET SCIENCE)

まずはこの一冊から 意味がわかる線形代数 (BERET SCIENCE)

関連過去記事

py3math.hatenablog.com