You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于行阶梯形求矩阵逆矩阵及子空间基判定的代码求助

线性代数任务代码实现

任务1:通过行最简形求矩阵A的逆矩阵

思路

求矩阵逆的核心是构造增广矩阵,把原矩阵A和同阶单位矩阵I拼接成[A | I],通过行初等变换将左侧的A化为单位矩阵,此时右侧部分就是A的逆矩阵A⁻¹。这里用sympy库的block_matrix完成矩阵拼接,再通过rref()方法生成行最简形。

代码实现

from sympy import Matrix, block_matrix

# 定义目标矩阵A
A = Matrix([
    [1, 3, 0, -1],
    [0, 2, 1, 3],
    [3, 1, 2, 1],
    [-1, 2, 0, 3]
])

# 生成4阶单位矩阵
I = Matrix.eye(4)

# 用block_matrix拼接A与I,得到增广矩阵[A | I]
augmented_matrix = block_matrix([[A, I]])

# 转换为行最简形矩阵
rref_result = augmented_matrix.rref()[0]

# 提取右侧4x4区域,即为A的逆矩阵
A_inv = rref_result[:, 4:]

print("矩阵A的逆矩阵:")
print(A_inv)

验证提示

可通过计算A * A_inv,若结果为单位矩阵,即可确认逆矩阵的正确性。


任务2:判断向量组是否为子空间S的基

思路

子空间S由v1、v2、v3生成,要判断该向量组是否为S的基,只需验证向量组线性无关:

  • 3个3维向量组成的矩阵,若行列式不为0,或矩阵的秩等于向量个数(3),则向量组线性无关,此时该向量组就是S的基。

代码实现

from sympy import Matrix

# 定义三个生成向量
v1 = Matrix([1, 0, 3])
v2 = Matrix([0, 2, 2])
v3 = Matrix([1, -2, 0])

# 将向量按列拼接成矩阵
V = Matrix.hstack(v1, v2, v3)

# 计算矩阵行列式与秩
det_value = V.det()
rank_value = V.rank()

if det_value != 0 and rank_value == 3:
    print("该向量组是子空间S的基")
else:
    print("该向量组不是子空间S的基")

结果说明

运行代码后,若输出"该向量组是子空间S的基",说明三个向量线性无关,且刚好生成子空间S,满足基的定义;反之则表示向量组线性相关,无法作为基。


内容的提问来源于stack exchange,提问作者mmm

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 06:45:19