linear-algebra - 在 Sage 中求解 GF(2) 上的矩阵方程

标签 linear-algebra sage

我正在尝试在 Sage 中求解线性方程组。但是,我只想打印唯一的解决方案。我尝试使用A.solve_right(y),其中A是系数矩阵y是右侧(Ax = y)。但是,当存在多个解决方案时,这会返回一个解决方案。我尝试检查行列式是否为 0,但这仅在具有方阵时有效。

我一直在想两种方法,但找不到合适的方法在 Sage 中实现我的想法:

  1. 求解 n 个包含 m 个变量的方程组的方法。每当我调用 A.solve(x) 时,其中 A 是 n x m 矩阵,x 是长度为 n 的向量,我应该得到异常“无唯一解决方案”(如果没有或多个解决方案)或解是否唯一。
  2. 允许我向矩阵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/

相关文章:

java - 如何在 Java 中创建任意大小的单位矩阵?

python - 有方向约束的旅行推销员

Matlab - 稀疏矩阵系统分辨率

arrays - Numpy 4x3 矩阵 LinAlgError : 1-dimensional array given. 数组必须至少是二维的

c - 如何提高此 Strassen 算法实现的速度?

python - 如何在 Sage Math 中使用 Scheme 而不是 Python

python - 圣人数学 : running `make` ends with ImportError in dochtml phase

python - 计算交叉比

python - 如何求椭圆曲线的最小 y 坐标 y^2 = x^3 +

Python 与 Sage 的导入错误