近似地“求解”一个没有可行解的线性方程组

计算科学 线性代数 优化 线性规划
2021-12-12 18:47:04

线性方程组具有以下形式Ax=b, 其中一个矩阵A和一个向量b给出,我希望找到一个解决方案向量x. 假设系统Ax=b没有可行的解决方案。然后我希望找到一个解决方案向量x这样Ax是“尽可能接近”b. 当然,这个概念并没有明确定义。这个问题有 LP 公式吗?

4个回答

我想你要找的是一些x这样

Axb2
是最小的。如果是这种情况,那么你需要的是一个A奇异值分解A这样UΣVT=A. 最小二乘解由下式给出
x=VΣ+UTb
在哪里Σ+是对角矩阵Σ其所有非零条目都被反转。

在 Matlab 或 Octave 中,您可以这样做:

[U,S,V] = svd(A);
ind = abs(S) > eps*S(1,1);
S( ind ) = 1./S( ind );
x = V*S*U'*b;

我应该提到,您可以通过使用迭代方法来解决这个问题,以最小化Axb2例如 Landweber 方法或(更快更好的)共轭梯度方法。这可能比使用伪逆更快(取决于实现和许多其他细节)。

您需要对“尽可能接近”进行更正式的描述。例如,您可以计算“违规量”:

minz1+z2

Axb+z1

Axbz2

z1,z20

如果你想最小化 Pedro 和 Dirk 的解决方案2-范数Axb. 要将其作为 LP 求解,您将最小化1-范数Axb,使用标准重新制定;我认为这种方法是马丁试图表达的。

minxAxb1,

并使用 sum 表示法表示:

minxi|jaijxjbi|,

然后重新制定:

minz0,x1Tz,s.t.zijaijxjbi,i,zibijaijxj,i.