我正在尝试在 Sage 中求解线性方程组。但是,我只想打印唯一的解决方案。我尝试使用A.solve_right(y)
,其中A是系数矩阵
,y是右侧(Ax = y)
。但是,当存在多个解决方案时,这会返回一个解决方案。我尝试检查行列式是否为 0,但这仅在具有方阵时有效。
我一直在想两种方法,但找不到合适的方法在 Sage 中实现我的想法:
- 求解
n
个包含m
个变量的方程组的方法。每当我调用 A.solve(x) 时,其中 A 是 n x m 矩阵,x 是长度为 n 的向量,我应该得到异常“无唯一解决方案”
(如果没有或多个解决方案)或解是否唯一。 - 允许我向矩阵
A
添加行的方法。当我添加新行时,我检查它是否是前一行的线性组合,如果是,我会忽略该行。否则,我添加新行。当我获得一个 n x n 矩阵 A 时,我检查行列式是否不为零并打印解决方案。否则我会抛出异常“没有唯一的解决方案”
。
我一直在网上寻找解决方案,但没有成功。我想一定有一些简单的方法可以实现这一点,但我的截止日期很短,无法深入研究 Sage 文档。任何建议都将非常受欢迎!
最佳答案
使用伽罗瓦(python),您可以使用以下命令找到矩阵的 rref
import galois
GF = galois.GF(2)
g = GF(x=matrix.astype(int))
g.row_reduce()
关于linear-algebra - 在 Sage 中求解 GF(2) 上的矩阵方程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34707903/