我正试图在Sage中求解一个线性方程组。但是,我只想打印唯一的解决方案。我尝试过使用A.solve_right(y)
,其中A is coefficient matrix
、y is the right hand side (Ax = y)
。但是,当存在多个解决方案时,这会返回一个解决方案。我试着检查行列式是否为0,但这只适用于有平方矩阵的情况。
我一直在想两种方法,但在Sage:中找不到合适的方法来实现我的想法
- 求解
m
变量的n
方程组的方法。每当我调用A.solve(x)时,其中A是n x m矩阵,x是长度为n的向量,我应该得到异常"No unique solution"
"(如果没有或有多个解),或者如果它是唯一的,则得到该解 - 方法,该方法允许我向矩阵
A
添加行。当我添加新行时,我会检查它是否是前几行的线性组合,如果是,我会忽略该行。否则,我添加新行。当我获得n x n matrix A
时,我会检查determinant is not zero
是否正确并打印解决方案。否则我抛出异常"No unique solution"
我一直在网上寻找解决方案,但没有成功。我想一定有一些简单的方法可以实现这一点,但我的截止日期很短,无法深入了解Sage文档。欢迎提出任何建议!
使用galois(python),您可以使用找到矩阵的rref
import galois
GF = galois.GF(2)
g = GF(x=matrix.astype(int))
g.row_reduce()