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.E…

当ブログの線形代数関連まとめページ (Python 3)

py3math.hatenablog.com py3math.hatenablog.com py3math.hatenablog.com py3math.hatenablog.com py3math.hatenablog.com py3math.hatenablog.com py3math.hatenablog.com py3math.hatenablog.com py3math.hatenablog.com py3math.hatenablog.com py3math.h…

線形代数。ベクトル。ユークリッド距離。(Python 3: class (クラス), NumPy: linalg, norm())

使用するライブラリ NumPy Python 3 コード euclidean_distance1.py #!/usr/bin/env python3 """(docstring) """ import numpy as np class EuclideanDistance1: """(docstring) """ def __init__(self, u, v): """(docstring) """ self.ED_u = u self.ED_v …

線形代数。固有値 (Python 3: decorator (デコレータ), @staticmethod, NumPy: linalg, eigvals(), SciPy: linalg, eigvals())

使用するライブラリ NumPy SciPy Python 3 コード np_sp_eigvals.py #!/usr/bin/env python3 """(docstring) """ import numpy as np import scipy.linalg as sp_la # (@staticmethod がどうしてもなくてはならないということではないが)。 # (@staticmethod…

線形代数。行列式 (Python 3, SymPy: det())

使用するライブラリ SymPy Python 3 コード sym_det.py #!/usr/bin/env python3 """(docstring) """ import sympy as sym def sym_det(mat): """(docstirng) """ return mat.det() if __name__ == '__main__': a, b, c, f, g, h = sym.symbols('a b c f g h'…

線形代数。逆行列 (正則か正則ではないか) (Python 3, NumPy: linalg, inv(), det(), rint())

使用するライブラリ NumPy Python 3 コード inverse.py #!/usr/bin/env python3 """(docstring) """ import numpy as np def inverse(mat): """(docstring) """ det_mat = np.rint(np.linalg.det(mat)) if det_mat != 0: if det_mat == 1: inv_mat = np.lina…

線形代数。連立1次方程式 (連立一次方程式)。解の存在 (Python 3, SymPy: solve(), Eq())

使用するライブラリ SymPy Python 3 コード simultaneous_linear_equations.py #!/usr/bin/env python3 """(docstring) """ import sympy as sym def simultaneous_linear_equations(expr): """(docstirng) """ return sym.solve(expr) if __name__ == '__ma…

線形代数。階数、rank (ランク) (Python 3, NumPy: linalg, matrix_rank())

使用するライブラリ NumPy Python 3 コード rank.py #!/usr/bin/env python3 """(docstring) """ import numpy as np def rank(mat): """(docstirng) """ return np.linalg.matrix_rank(mat) if __name__ == '__main__': A = np.array([[1, 2, 3, 4], [5, 6,…

線形代数。行列の満たす代数方程式を解く (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 を使用しているため、演習書通りには解いていない…

線形代数。べき (累乗)、べき零行列 (Python 3, NumPy: linalg, matrix_power())

使用するライブラリ NumPy Python 3 コード mat_power.py #!/usr/bin/env python3 """(docstring) """ import numpy as np def mat_power(): """(docstirng) """ A = np.array([[2, 4, -3], [1, 3, -2], [3, 7, -5]]) print('A =') print(A) print('') print…

線形代数。転置行列 (Python 3, NumPy: T, dot(), all())

使用するライブラリ NumPy Python 3 コード transpose.py #!/usr/bin/env python3 """(docstring) """ import numpy as np def transpose(): """(docstirng) """ A = np.array([[-1, 2, 4], [3, 1, 2]]) B = np.array([[1, 1, 0], [0, -1, 1], [1, 0, -1]]) …

線形代数。分配法則。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…

線形代数。積の結合法則 A(BC) = (AB)C (Python 3, NumPy: dot(), all())

使用するライブラリ NumPy Python 3 コード associative_law_of_mul.py #!/usr/bin/env python3 """(docstring) """ import numpy as np def associative_law_of_mul(): """(docstirng) """ # 積の結合法則 # A(BC) = (AB)C A = np.array([[2, -5], [3, 1], …

線形代数。行列の積。AB = BA を満たすとき、x、y を求める。(Python 3, SymPy: Matrix(), 演算子 *, Eq())

使用するライブラリ SymPy Python 3 コード AB_eq_BA.py #!/usr/bin/env python3 """(docstring) """ import sympy as sym def AB_eq_BA(): """(docstring) """ x, y = sym.symbols('x y') A = sym.Matrix([[2, 3, 1], [1, 1, 2], [1, 1, 1]]) B = sym.Matri…

線形代数。行列の積。積 AB が定義されるものとされないもの (Python 3: class (クラス), NumPy: shape, dot())

使用するライブラリ NumPy Python 3 コード mat_dot.py #!/usr/bin/env python3 """(docstring) """ import numpy as np class MatDot: """(docstring) """ def __init__(self, A, B): """(docstring) """ self.MD_A = A self.MD_B = B def mat_dot_func(sel…

線形代数。行列の和。A + B が定義されるものとされないもの (Python 3: class (クラス), NumPy: shape)

使用するライブラリ NumPy Python 3 コード mat_add.py #!/usr/bin/env python3 """(docstring) """ import numpy as np class MatAdd: """(docstring) """ def __init__(self, A, B): """(docstring) """ self.MA_A = A self.MA_B = B def mat_add_func(sel…

線形代数。行列の相等 (Python 3: values(), SymPy: Matrix(), Eq())

使用するライブラリ SymPy Python 3 コード eq_mat.py #!/usr/bin/env python3 """(docstring) """ import sympy as sym def eq_mat(): """(docstirng) """ u, v, w, x, y, z = sym.symbols('u v w x y z') A = sym.Matrix([[x, y, z], [u, v, w]]) B = sym.…

(線形代数) ベクトル。ベクトルの大きさ、長さ、ノルム (Python 3, NumPy: linalg.norm())

使用するライブラリ NumPy Python 3 コード vector_norm.py #!/usr/bin/env python3 """(docstring) """ import numpy as np def vector_norm(v): """(docstring) """ return np.linalg.norm(v) if __name__ == '__main__': v_list = [[3, 4], [1, -1], [0, …