Beispiel #1
0
def det_inv_test():

    result = {}

    # first test

    g = umatrix.matrix([[0., 0., 0., 0., 0., 1.],
                        [0.03125, 0.0625, 0.125, 0.25, 0.5, 1.],
                        [0., 0., 0., 0., 1., 0.],
                        [0.3125, 0.5, 0.75, 1., 1., 0.],
                        [0., 0., 0., 2., 0., 0.], [2.5, 3., 3., 2., 0., 0.]])
    g_inv = umatrix.matrix([[-192., 192., -48., -48., -4., 4.],
                            [240., -240., 64., 56., 6., -4.],
                            [-80., 80., -24., -16., -3., 1.],
                            [0., 0., 0., 0., 0.5,
                             0.], [0., 0., 1., 0., 0., 0.],
                            [1., 0., 0., 0., 0., 0.]])
    (det, inv) = ulinalg.det_inv(g)
    result['determinant 1'] = (abs(det - 0.0078125) < 0.000001)
    result['inverse 1'] = umatrix.matrix_equal(inv, g_inv, 0.000001)

    # second test
    x = umatrix.matrix([[3., 2., 0., 1.], [4., 0., 1., 2.], [3., 0., 2., 1.],
                        [9., 2., 3., 1.]])
    (det, inv) = ulinalg.det_inv(x)
    det_res = det == 24.0
    f = umatrix.matrix([[-0.25, 0.25, -0.5, 0.25],
                        [
                            0.66666666666666667, -0.49999999999999999,
                            0.50000000000000001, -0.16666666666666667
                        ],
                        [
                            0.16666666666666667, -0.49999999999999999,
                            1.00000000000000002, -0.16666666666666667
                        ],
                        [
                            0.41666666666666667, 0.25, 0.50000000000000001,
                            -0.41666666666666667
                        ]])
    result['inverse 2'] = matrix_compare(inv, f, tol=eps *
                                         2)  #, tol=0.000000000000001)
    f[3, 3] = -0.416668
    result['determinant 2'] = det_res
    result['matrix_equal True'] = umatrix.matrix_equal(inv, f, tol=0.0001)
    result['matrix_equal False'] = umatrix.matrix_equal(inv, f) == False
    x1 = umatrix.matrix([[0.71, -0.71, 0.7], [0.71, 0.71, 0.5], [0, 0, 1]])
    z = ulinalg.pinv(x1)
    result['psuedo inverse'] = matrix_compare(
        z,
        umatrix.matrix([
            [0.7042253521126759, 0.704225352112676, -0.8450704225352109],
            [-0.704225352112676, 0.704225352112676, 0.1408450704225352],
            [1.110223024625157e-16, 5.551115123125783e-17, 0.9999999999999998]
        ]),
        tol=2 * eps)

    return result
Beispiel #2
0
def equality():

    result = {}

    x10 = umatrix.matrix([[0.03, 1.2, 2.45], [4.5, 5.45, 6.98],
                          [8, 9.0001, 10.2], [12.123, 13.45, 14.0]])
    x11 = umatrix.matrix([[0.03, 1.2, 2.45], [4.5, 5.45, 6.98],
                          [8, 9.0001, 10.2], [12.123, 13.45, 14.0]])
    x12 = umatrix.matrix([[0.03, 1.2, 2.451], [4.5, 5.45, 6.98],
                          [9, 9.0002, 10.2], [12.123, 13.45 + eps, 14.0]])
    x13 = umatrix.matrix([[0.03, 1.2, 2.451], [4.5, 5.45, 6.98],
                          [9, 9.0003, 10.2], [12.123, 13.450001, 14.0]])

    result['x == y and x.__eq__(y)'] = (x10 == x11) and (x10.__eq__(x11))
    result['umatrix.matrix_isclose(x, y) True'] = matrix_compare(x10, x11)
    result['umatrix.matrix_isclose(x, y) False'] = matrix_compare(x10,
                                                                  x12) == False
    result['umatrix.matrix_isclose(x, y, tol) False tol'] = matrix_compare(
        x12, x13, tol=eps / 2) == False
    result['umatrix.matrix_isclose(x, y, tol) True tol'] = matrix_compare(
        x12, x13, tol=0.001)
    try:
        result['umatrix.matrix_equal(x, y)'] = umatrix.matrix_equal(
            x10, x12) == False
    except Exception as e:
        result['umatrix.matrix_equal(x, y)'] = (False, e)
    result['umatrix.matrix_equiv(x, y) same shape'] = umatrix.matrix_equiv(
        x10, x11)
    result['umatrix.matrix_equiv(x, y.reshape) shape'] = umatrix.matrix_equiv(
        x10, x11.reshape((3, 4)))

    return result
Beispiel #3
0
def det_inv_test():

    result = {}

    # first test

    g = umatrix.matrix([[ 0.     ,  0.     ,  0.     ,  0.     ,  0.     ,  1.     ],
                        [ 0.03125,  0.0625 ,  0.125  ,  0.25   ,  0.5    ,  1.     ],
                        [ 0.     ,  0.     ,  0.     ,  0.     ,  1.     ,  0.     ],
                        [ 0.3125 ,  0.5    ,  0.75   ,  1.     ,  1.     ,  0.     ],
                        [ 0.     ,  0.     ,  0.     ,  2.     ,  0.     ,  0.     ],
                        [ 2.5    ,  3.     ,  3.     ,  2.     ,  0.     ,  0.     ]])
    g_inv = umatrix.matrix([[-192. ,  192. ,  -48. ,  -48. ,   -4. ,    4. ],
                        [ 240. , -240. ,   64. ,   56. ,    6. ,   -4. ],
                        [ -80. ,   80. ,  -24. ,  -16. ,   -3. ,    1. ],
                        [   0. ,    0. ,    0. ,    0. ,    0.5,    0. ],
                        [   0. ,    0. ,    1. ,    0. ,    0. ,    0. ],
                        [   1. ,    0. ,    0. ,    0. ,    0. ,    0. ]])
    (det,inv) = ulinalg.det_inv(g)
    result['determinant 1'] = (abs(det - 0.0078125) < 0.000001)
    result['inverse 1'] = umatrix.matrix_equal(inv, g_inv, 0.000001)

    # second test
    x = umatrix.matrix([[3.,2.,0.,1.],[4.,0.,1.,2.],[3.,0.,2.,1.],[9.,2.,3.,1.]])
    (det,inv) = ulinalg.det_inv(x)
    det_res = det == 24.0
    f = umatrix.matrix([[-0.25               , 0.25                , -0.5                , 0.25                ],
                        [0.66666666666666667 , -0.49999999999999999, 0.50000000000000001 , -0.16666666666666667],
                        [0.16666666666666667 , -0.49999999999999999, 1.00000000000000002 , -0.16666666666666667],
                        [0.41666666666666667 , 0.25                , 0.50000000000000001 , -0.41666666666666667]])
    result['inverse 2'] = matrix_compare(inv, f, tol=eps*2)#, tol=0.000000000000001)
    f[3,3] = -0.416668
    result['determinant 2'] = det_res
    result['matrix_equal True'] = umatrix.matrix_equal(inv, f, tol=0.0001)
    result['matrix_equal False'] = umatrix.matrix_equal(inv, f) == False
    x1 = umatrix.matrix([[0.71,-0.71,0.7],[0.71,0.71,0.5],[0,0,1]])
    z = ulinalg.pinv(x1)
    result['psuedo inverse'] = matrix_compare(z, umatrix.matrix([[0.7042253521126759   , 0.704225352112676    , -0.8450704225352109  ],
                                                                 [-0.704225352112676   , 0.704225352112676    , 0.1408450704225352   ],
                                                                 [1.110223024625157e-16, 5.551115123125783e-17, 0.9999999999999998   ]]), tol=2*eps)

    return result
Beispiel #4
0
def equality():

    result = {}

    x10 = umatrix.matrix([[0.03,1.2,2.45],[4.5,5.45,6.98],[8,9.0001,10.2],[12.123,13.45,14.0]])
    x11 = umatrix.matrix([[0.03,1.2,2.45],[4.5,5.45,6.98],[8,9.0001,10.2],[12.123,13.45,14.0]])
    x12 = umatrix.matrix([[0.03,1.2,2.451],[4.5,5.45,6.98],[9,9.0002,10.2],[12.123,13.45+eps,14.0]])
    x13 = umatrix.matrix([[0.03,1.2,2.451],[4.5,5.45,6.98],[9,9.0003,10.2],[12.123,13.450001,14.0]])

    result['x == y and x.__eq__(y)'] = (x10 == x11) and (x10.__eq__(x11))
    result['umatrix.matrix_isclose(x, y) True'] = matrix_compare(x10, x11)
    result['umatrix.matrix_isclose(x, y) False'] = matrix_compare(x10, x12) == False
    result['umatrix.matrix_isclose(x, y, tol) False tol'] = matrix_compare(x12, x13, tol=eps/2) == False
    result['umatrix.matrix_isclose(x, y, tol) True tol'] = matrix_compare(x12, x13, tol=0.001)
    try:
        result['umatrix.matrix_equal(x, y)'] = umatrix.matrix_equal(x10, x12) == False
    except Exception as e:
        result['umatrix.matrix_equal(x, y)'] = (False, e)
    result['umatrix.matrix_equiv(x, y) same shape'] = umatrix.matrix_equiv(x10, x11)
    result['umatrix.matrix_equiv(x, y.reshape) shape'] = umatrix.matrix_equiv(x10, x11.reshape((3,4)))

    return result