✅ 1. 创建矩阵

1
2
3
4
from sympy import Matrix, symbols

A = Matrix([[1, 2], [3, 4]])
print(A)

输出:

1
2
3
Matrix([
[1, 2],
[3, 4]])

也可以使用符号变量:

1
2
x, y = symbols('x y')
B = Matrix([[x, 1], [2, y]])

✅ 2. 矩阵基本属性

1
2
3
4
print(A.shape)       # (2, 2)
print(A.rows) # 2
print(A.cols) # 2
print(A[0, 1]) # 2:访问元素(行列从0开始)

✅ 3. 矩阵加法、乘法、数乘

1
2
3
4
B = Matrix([[5, 6], [7, 8]])
print(A + B) # 加法
print(A * B) # 矩阵乘法
print(2 * A) # 数乘

✅ 4. 行列式与逆矩阵

1
2
print(A.det())       # 行列式:-2
print(A.inv()) # 逆矩阵

注意:只有在行列式不为 0 的情况下才有逆。


✅ 5. 求解线性方程组 \(Ax = b\)

例:解 \(\begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix} \cdot \begin{bmatrix} x \\ y \end{bmatrix} = \begin{bmatrix} 5 \\ 6 \end{bmatrix}\)

1
2
3
4
5
6
7
8
from sympy import symbols

x, y = symbols('x y')
A = Matrix([[1, 2], [3, 4]])
b = Matrix([5, 6])

sol = A.solve(b)
print(sol) # [ -4, 4.5 ]

也可用 linsolve

1
2
3
4
from sympy import linsolve

sol = linsolve((A, b), x, y)
print(sol)

✅ 6. 行简化(RREF)

1
2
rref_matrix, pivot_columns = A.rref()
print(rref_matrix)

用于解方程时的行最简形式(Reduced Row Echelon Form)


✅ 7. 特征值与特征向量

1
2
3
P = Matrix([[2, 0], [0, 3]])
print(P.eigenvals()) # {2: 1, 3: 1}
print(P.eigenvects()) # [(2, 1, [...]), (3, 1, [...])]

✅ 8. 矩阵转置与幂

1
2
print(A.T)          # 转置
print(A**2) # 矩阵平方 = A*A

✅ 9. 矩阵切片

1
2
3
A = Matrix([[1, 2, 3], [4, 5, 6]])
print(A[:, 0]) # 第一列
print(A[1, :]) # 第二行

✅ 10. 矩阵创建技巧

1
2
3
4
5
6
7
8
# 创建 n×n 单位矩阵
I3 = Matrix.eye(3)

# 创建零矩阵
Z = Matrix.zeros(2, 3)

# 对角矩阵
D = Matrix.diag(1, 2, 3)

🎯 应用实例:解 3 元线性方程组

1
2
3
4
5
x, y, z = symbols('x y z')
A = Matrix([[1, 2, 3], [4, 5, 6], [7, 8, 10]])
b = Matrix([6, 15, 25])
sol = A.solve(b)
print(sol) # [1, 1, 1]

✅ 小结表格

操作 方法
创建矩阵 Matrix(...)
行列式 .det()
逆矩阵 .inv()
求解方程 .solve(b) / linsolve(...)
RREF .rref()
特征值/向量 .eigenvals() / .eigenvects()
单位矩阵 Matrix.eye(n)
对角矩阵 Matrix.diag(...)