✅ 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) print(A.rows) print(A.cols) print(A[0, 1])
|
✅ 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()) 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)
|
也可用 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()) print(P.eigenvects())
|
✅ 8. 矩阵转置与幂
✅ 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
| 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)
|
✅ 小结表格
操作 |
方法 |
创建矩阵 |
Matrix(...) |
行列式 |
.det() |
逆矩阵 |
.inv() |
求解方程 |
.solve(b) / linsolve(...) |
RREF |
.rref() |
特征值/向量 |
.eigenvals() / .eigenvects() |
单位矩阵 |
Matrix.eye(n) |
对角矩阵 |
Matrix.diag(...) |