在SymPy中,eye(5)和Identity(5)有什么区别?
如果我有一个矩阵X,我会看到X eye(5)和X Identity(5)给出不同的结果(后者不是矩阵).
解决方法:
SymPy区分
>具有一定大小(例如3乘3)的显式矩阵,以及显式(可能是符号)条目;
>矩阵表达式,可能具有符号大小,例如n x n.
眼睛创建矩阵,身份创建矩阵表达式.例如:
n = Symbol("n")
A = Identity(n) # works
A = eye(n) # throws an error
一个人可以对此对象进行一些计算,例如
t = trace(A) # n
B = BlockMatrix([[A, -A], [-A, A]])
如果可能,可以使用as_explicit方法将矩阵表达式转换为显式矩阵:
A = Identity(3)
print(A.as_explicit())
版画
Matrix([
[1, 0, 0],
[0, 1, 0],
[0, 0, 1]])
可以使用Matrix(A)达到相同的效果.