✅ 1. 创建矩阵
1 2 3 4
| from sympy import Matrix, symbols
A = Matrix([[1, 2], [3, 4]]) print(A)
|
输出:
也可以使用符号变量:
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. 求解线性方程组
例:解
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
| 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(…)