计算矩阵的简化阶梯形式时的 Sympy 错误

Sympy error on calculating reduced echelon form of matrix

我是线性代数和 sympy 的新手。我正在尝试使用 sympy 矩阵的 .rref() 函数来获得简化的阶梯形式。 我的目标是采用随机矩阵,减去单位矩阵并找到新矩阵的简化阶梯形式。当我执行这些操作时,我 而不是 得到矩阵的简化阶梯形式的正确答案。但是,当我在没有进行任何先前操作的情况下将所需的矩阵分配给变量时,然后 rref returns 正确的结果。请参见下图。谢谢!非常感谢任何帮助。

发生这种情况是因为您使用的是浮点数而不是 Rational。您可以使用 nsimplify 将浮点数转换为有理数:

In [14]: PP = Matrix([[.9, .7], [.1, .3]]).applyfunc(nsimplify)                                                                                               

In [15]: PP                                                                                                                                                   
Out[15]: 
⎡9/10  7/10⎤
⎢          ⎥
⎣1/10  3/10⎦

In [16]: II = Matrix([[1, 0], [0, 1]])                                                                                                                        

In [17]: DIF = PP - II                                                                                                                                        

In [18]: DIF                                                                                                                                                  
Out[18]: 
⎡-1/10  7/10 ⎤
⎢            ⎥
⎣1/10   -7/10⎦

In [19]: DIF.rref()                                                                                                                                           
Out[19]: 
⎛⎡1  -7⎤      ⎞
⎜⎢     ⎥, (0,)⎟
⎝⎣0  0 ⎦      ⎠