def test_power_method_01(self): b_verbose = False if b_verbose: print ("Power method 01") for n in range(3, 10): self.mat_a_half = matrix.get_random_mat(n, n) self.mat_a_half_transpose = matrix.transpose_mat(self.mat_a_half) self.mat_a = matrix.mul_mat(self.mat_a_half_transpose, self.mat_a_half) lam, vec_x0 = evp.power_method(self.mat_a, espilon=1e-12) if b_verbose: print ('%s %s' % (lam, vec_x0)) vec_x1 = matrix.mul_mat_vec(self.mat_a, vec_x0) vec_x0l = [lam * x0k for x0k in vec_x0] self.assertEqual(len(vec_x0), n) message = ''' x0 = %s mat_a x0 = %s ''' % (vec_x0, vec_x0l) self.assertSequenceAlmostEqual(vec_x0l, vec_x1, msg=me)
def test_gauss_jordan_00(self): for n in range(3, 10): mat_a = m.get_random_mat(n, n) mat_a_inv = gj.gauss_jordan(mat_a) mat_b = m.mul_mat(mat_a, mat_a_inv) for i in range(n): vec_exp = [0.0] * n vec_exp[i] = 1.0 vec_res = mat_b[i] self.assertSequenceAlmostEqual(vec_exp, vec_res) del vec_exp del mat_b[:] del mat_b del mat_a_inv[:] del mat_a_inv del mat_a[:] del mat_a
def test_gauss_elimination_00(self): n = 2 mat_a = m.get_random_mat(n, n) vec_x = m.get_random_vector(n) vec_b = m.mul_mat_vec(mat_a, vec_x) vec_x_sol = ge.gauss_elimination(mat_a, vec_x_sol) del vec_x_sol del vec_x del vec_b del mat_a[:] del mat_a
def test_gauss_elimination_01(self): for n in range(3, 10): mat_a = m.get_random_mat(n, n) vec_x = m.get_random_vector(n) vec_b = m.mul_mat_vec(mat_a, vec_x) vec_x_sol = ge.gauss_elimination(mat_a, vec_b) del mat_a[:] del mat_a del vec_x_sol del vec_x del vec_b
def test_gauss_elimination_01(self): for n in range(3, 10): mat_a = m.get_random_mat(n, n) vec_x = m.get_random_vector(n) vec_b = m.mul_mat_vec(mat_a, vec_x) vec_x_sol = ge.gauss_elimination(mat_a, vec_b) self.assertSequenceAlmostEqual(vec_x, vec_x_sol) del mat_a[:] del mat_a del vec_x_sol del vec_x del vec_b
def run_mat_inv(): n = 10 mat_a = matrix.get_random_mat(n, n) mat_a_adj = matrix.adjugate_matrix(mat_a) mat_a_gj = gj.gauss_jordan(mat_a)