在非方阵矩阵中解决线性方程组

7
我有一组线性方程式,构成了一个 NxM 矩阵(即非方阵),我需要解决这个问题 - 或者至少试图解决这个问题,以证明该系统无解。(很可能没有解)
据我所知,如果我的矩阵不是方阵(过度或欠定),则无法找到精确解 - 我的想法正确吗?是否有一种方法可以将我的矩阵转换为方阵以计算行列式、应用高斯消元、克莱姆法则等?
值得一提的是,我的未知数系数可能为零,在某些罕见情况下,可能会出现零列或零行。

据我所理解,如果我的矩阵不是方阵(过度或欠定),那么无法找到精确解- 我的想法正确吗? 考虑2x + 3y = 0; 4x + 6y = 0; 6x + 9y = 0。 - Don Larynx
3
我建议关闭此问题,因为它是一个数学问题,应该发在其他的SE网站上。 - Dan Is Fiddling By Firelight
我认为这个问题应该被关闭,因为它不属于讨论范围。 - EJoshuaS - Stand with Ukraine
4个回答

9
无论矩阵是否方阵并不决定解空间,而是矩阵的秩与列数之比决定了解空间(详见秩-零度定理)。一般情况下,线性方程组可能有零个、一个或无穷多个解,这取决于其秩和零度之间的关系。
然而,您可以使用高斯消元法来找到矩阵的秩,如果这表明存在解,则找到特定解x0和矩阵的零空间Null(A)。然后,您可以将所有解描述为x = x0 + xn,其中xn表示Null(A)中的任何元素。例如,如果矩阵具有完全秩,则其零空间为空且线性系统最多有一个解。如果它的秩也等于行数,则有一个唯一解。如果零空间的维数为一,则您的解将是通过x0的一条直线,该直线上任何满足线性方程的点都是解。

1
由于这是一个计算网站,因此值得指出的是,在高斯消元中应该使用完全主元选取,以使您的方法对舍入误差具有抵抗力。 - Michael Anderson

5

首先,一个非方程组可以有一个精确的解决方案。

[ 1 0 0 ][x] = [1]
[ 0 0 1 ][y]   [1]
         [z] 

显然有一个解决方案(实际上,它有一个一维解决方案:x=z=1)。即使系统是过度确定而不是欠定的,它仍然可能有一个解决方案:

[ 1 0 ][x] = [1]
[ 0 1 ][y]   [1]
[ 1 1 ]      [2]

(x=y=1). 你可能需要先了解最小二乘解法,它可以找到确切的解决方案(如果存在),并且在没有确切解决方案的情况下,可以找到“最佳”的近似解决方案(在某种意义上)。


4
使用Ax=b,其中A具有m列和n行。我们不能保证只有一个解,这在许多情况下是因为我们拥有的方程数比未知数多(m大于n)。这可能是由于重复测量,我们实际上希望这样做,因为我们谨慎考虑噪声的影响。
如果我们观察到我们找不到一个解决方案,那实际上意味着我们无法通过在A张成的列空间中移动来找到b。(因为x仅取列的组合)。
然而,我们可以要求在A张成的空间中最接近b的点。我们如何找到这样的点?在平面上行走,最接近平面外部的点就是一直走直到你在正下方。从几何上讲,这是当我们的视轴垂直于平面时。
现在我们可以对此进行数学公式化。垂直向量使我们想起正交投影。这就是我们要做的。最简单的情况告诉我们要做a.T b。但我们可以采用整个矩阵A.T b。
对于我们的方程式,让我们将变换应用于双侧:A.T Ax = A.T b。 最后一步是通过取A.T A的逆来解决x:
x = (A.T A)^-1 * A.T b

1

最小二乘法推荐是非常好的。

我要补充说,你可以尝试奇异值分解(SVD),它将给出最佳答案,并免费提供有关零空间的信息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接