你可以从特征值计算它,但实际上有一种方法可以为你做到,
diagonalize
In [13]: M.diagonalize()
Out[13]:
⎛ ⎡ __________ ⎤⎞
⎜ ⎢ ╱ 2 ⎥⎟
⎜⎡ -2⋅x 2⋅x ⎤ ⎢ ╲╱ 4⋅x + 1 5 ⎥⎟
⎜⎢───────────────── ─────────────────⎥, ⎢- ───────────── + ─ 0 ⎥⎟
⎜⎢ __________ __________ ⎥ ⎢ 2 2 ⎥⎟
⎜⎢ ╱ 2 ╱ 2 ⎥ ⎢ ⎥⎟
⎜⎢╲╱ 4⋅x + 1 - 1 ╲╱ 4⋅x + 1 + 1⎥ ⎢ __________ ⎥⎟
⎜⎢ ⎥ ⎢ ╱ 2 ⎥⎟
⎜⎣ 1 1 ⎦ ⎢ ╲╱ 4⋅x + 1 5⎥⎟
⎜ ⎢ 0 ───────────── + ─⎥⎟
⎝ ⎣ 2 2⎦⎠
M.diagonalize()返回一对矩阵(P,D),使得M = P * D * P ** – 1.如果无法计算足够的特征值,或者因为矩阵不可对角化,或者因为solve()无法找到特征多项式的所有根,则会引发MatrixError.