def test_row_mul_scalar_01(self): m.row_mul_scalar(self.mat_i, 1, 0.5) self.mat_exp = [ [1, 0], [0, 0.5], ] self.assertSequenceEqual(self.mat_i, self.mat_exp)
def test_row_mul_scalar_00(self): m.row_mul_scalar(self.mat_i, 0, 2) self.mat_exp = [ [2, 0], [0, 1], ] self.assertSequenceEqual(self.mat_i, self.mat_exp)
def gauss_jordan(mat_a): mat_ai = generate_mat_ai(mat_a) for i_pivot in range(len(mat_ai)): matrix.row_mul_scalar(mat_ai, i_pivot, 1.0 / mat_ai[i_pivot][i_pivot]) for j_row in range(len(mat_ai)): if i_pivot != j_row: matrix.row_mul_add(mat_ai, j_row, i_pivot, -mat_ai[j_row][i_pivot]) inv_mat = matrix.alloc_mat( len(mat_ai), len(mat_ai), ) for i in range(len(mat_ai)): for j in range(len(mat_ai)): inv_mat[i][j] = mat_ai[i][len(mat_ai) + j] del mat_ai[:] del mat_ai return inv_mat
def test_row_mul_scalar_03(self): m.row_mul_scalar(self.mat_g, 2, 0.5) self.mat_exp = [[1, 0, -1], [0, 1, 2], [-1.0, -0.5, 0.0]] self.assertSequenceEqual(self.mat_g, self.mat_exp)
def test_row_mul_scalar_02(self): m.row_mul_scalar(self.mat_g, 1, -1) self.mat_exp = [[1, 0, -1], [0, -1, -2], [-2, -1, 0]] self.assertSequenceEqual(self.mat_g, self.mat_exp)