Ejemplo n.º 1
0
    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)
Ejemplo n.º 2
0
    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
Ejemplo n.º 3
0
    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
Ejemplo n.º 4
0
    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
Ejemplo n.º 6
0
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)