You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
29 lines
786 B
29 lines
786 B
from sympy.matrices.expressions.factorizations import lu, LofCholesky, qr, svd
|
|
from sympy.assumptions.ask import (Q, ask)
|
|
from sympy.core.symbol import Symbol
|
|
from sympy.matrices.expressions.matexpr import MatrixSymbol
|
|
|
|
n = Symbol('n')
|
|
X = MatrixSymbol('X', n, n)
|
|
|
|
def test_LU():
|
|
L, U = lu(X)
|
|
assert L.shape == U.shape == X.shape
|
|
assert ask(Q.lower_triangular(L))
|
|
assert ask(Q.upper_triangular(U))
|
|
|
|
def test_Cholesky():
|
|
LofCholesky(X)
|
|
|
|
def test_QR():
|
|
Q_, R = qr(X)
|
|
assert Q_.shape == R.shape == X.shape
|
|
assert ask(Q.orthogonal(Q_))
|
|
assert ask(Q.upper_triangular(R))
|
|
|
|
def test_svd():
|
|
U, S, V = svd(X)
|
|
assert U.shape == S.shape == V.shape == X.shape
|
|
assert ask(Q.orthogonal(U))
|
|
assert ask(Q.orthogonal(V))
|
|
assert ask(Q.diagonal(S))
|