【发布时间】:2017-01-22 08:39:23
【问题描述】:
我有一组包含 W 个变量的 N(N 非常大)线性方程组。
为了提高效率,我需要找到最少数量的可解线性方程组(具有唯一解)。可以假设一组包含Y变量的X方程组在X == Y时有唯一解。
例如,如果我输入以下内容:
2a = b - c
a = 0.5b
b = 2 + a
我想返回方程组:
a = 0.5b
b = 2 + a
目前,我有一个使用一些启发式的实现。我创建了一个矩阵,列是变量,行是方程。我搜索矩阵找到一组全连接方程,然后逐个尝试删除方程,看看剩下的方程组是否仍然可解,如果是继续,如果不是,返回方程组。
对此是否有已知算法,我是否正在尝试重新发明轮子? 有人对如何更好地解决这个问题有意见吗?
谢谢。
【问题讨论】:
-
“可解决”是指“有一个独特的解决方案”还是“有一个解决方案”?技术上“可解”的意思是“有解”,而你的每一个方程本身都有解,所以最小的数是 1。
-
我怀疑你在谈论方程组的Gaussian elimination。
-
您只处理线性方程吗?尽管
a=2, b=4, c=0可以解决所有三个方程,但您为什么只求解两个方程,而没有第一个方程,您对c一无所知?我同意@beaker 的观点,可能会使用高斯消元法来解决这个问题。不过,其中的数字可能很棘手。 -
“可解决”是指“有一个独特的解决方案”。为清楚起见,将进行编辑。
-
有算法。它们不是特别容易理解或实施。从阅读this presentation开始,你会得到一些概念和术语。