示例#1
0
def test_MatPow():
    A = MatrixSymbol('A', n, n)

    AA = MatPow(A, 2)
    assert AA.exp == 2
    assert AA.base == A
    assert (A**n).exp == n

    assert A**0 == Identity(n)
    assert A**1 == A
    assert A**2 == AA
    assert A**-1 == Inverse(A)
    assert A**Rational(1, 2) == sqrt(A)
    pytest.raises(ShapeError, lambda: MatrixSymbol('B', 3, 2)**2)
示例#2
0
def test_invariants():
    A = MatrixSymbol('A', n, m)
    B = MatrixSymbol('B', m, l)
    X = MatrixSymbol('X', n, n)
    objs = [
        Identity(n),
        ZeroMatrix(m, n),
        MatMul(A, B),
        MatAdd(A, A),
        Transpose(A),
        Adjoint(A),
        Inverse(X),
        MatPow(X, 2),
        MatPow(X, -1),
        MatPow(X, 0)
    ]
    for obj in objs:
        assert obj == obj.__class__(*obj.args)
示例#3
0
def test_xxinv():
    assert xxinv(MatMul(D, Inverse(D), D, evaluate=False)) == \
        MatMul(Identity(n), D, evaluate=False)