请注意,这实际上定义了列表列表,而不是矩阵:
sage: M = [[1 + 2*i, 5 + 3*i], [5, 3*i]]
使其显示为列表列表:
sage: M
[[2*I + 1, 3*I + 5], [5, 3*I]]
它的“父”是列表类:
sage: parent(M)
<class 'list'>
要定义矩阵,请使用列表列表(或 NumPy 数组)的matrix:
sage: M = matrix([[i, 3], [5, i]])
它显示为一个矩阵:
sage: M
[I 3]
[5 I]
并且生活在矩阵空间中:
sage: parent(M)
Full MatrixSpace of 2 by 2 dense matrices
over Number Field in I with defining polynomial x^2 + 1 with I = 1*I
如下更改整行或单个条目:
sage: M[0, :] = matrix([[2*I + 1, 3*I + 5]])
sage: M[1, 1] = 3*I
看看结果:
sage: M
[2*I + 1 3*I + 5]
[ 5 3*I]
获取矩阵的 LaTeX 代码:
sage: latex(M)
sage: latex(M)
\left(\begin{array}{rr}
2 i + 1 & 3 i + 5 \\
5 & 3 i
\end{array}\right)
很好地查看矩阵排版:
sage: view(M)
计算迹和行列式:
sage: M.trace()
5*I + 1
sage: M.det()
-12*I - 31
对每个条目应用映射,例如real 或 imag 获取实部或虚部:
sage: A = M.apply_map(real)
sage: B = M.apply_map(imag)
并检查结果:
sage: A, B, A + i*B, M
(
[1 5] [2 3] [2*I + 1 3*I + 5] [2*I + 1 3*I + 5]
[5 0], [0 3], [ 5 3*I], [ 5 3*I]
)
进一步阅读