我有一个线性方程组,它构成了一个NxM
我需要求解的矩阵(即非正方形) - 或者至少尝试求解以表明该系统没有解。(很可能没有解决方案)
据我了解,如果我的矩阵不是正方形(过定或欠定),则找不到确切的解决方案-我的想法正确吗?有没有办法将我的矩阵转换为方阵以计算确定的,应用高斯消除,克莱默规则等?
值得一提的是,我的未知数的系数可能为零,因此在某些极少数情况下,可能会有零列或零行。
我有一个线性方程组,它构成了一个NxM
我需要求解的矩阵(即非正方形) - 或者至少尝试求解以表明该系统没有解。(很可能没有解决方案)
据我了解,如果我的矩阵不是正方形(过定或欠定),则找不到确切的解决方案-我的想法正确吗?有没有办法将我的矩阵转换为方阵以计算确定的,应用高斯消除,克莱默规则等?
值得一提的是,我的未知数的系数可能为零,因此在某些极少数情况下,可能会有零列或零行。
您的矩阵是否为正方形并不是决定解决方案空间的因素。它是矩阵的秩与确定它的列数相比(参见秩零定理)。一般来说,线性方程组可以有零个、一个或无数个解,具体取决于它的秩和无效关系。
但是,要回答您的问题,您可以使用高斯消元法来查找矩阵的秩,如果这表明存在解,请找到特定解 x0 和矩阵的零空间 Null(A)。然后,您可以将所有解决方案描述为 x = x0 + xn,其中 xn 表示 Null(A) 的任何元素。例如,如果一个矩阵是满秩的,它的零空间将为空,线性系统最多有一个解。如果它的排名也等于行数,那么你有一个唯一的解决方案。如果零空间是一维的,那么您的解决方案将是一条通过 x0 的线,该线上的任何点都满足线性方程。
好的,首先:非平方方程组可以有精确解
[ 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)。您可能希望首先查看最小二乘解法,如果存在则找到精确解,如果不存在则找到“最佳”近似解(在某种意义上)。
取Ax = b
,其中 A 有 m 列和 n 行。我们不能保证只有一个解,这在很多情况下是因为我们有比未知数更多的方程(m 大于 n)。这可能是因为我们需要重复测量,因为我们对噪声的影响持谨慎态度。
如果我们观察到我们无法找到实际上意味着无法找到 b 在 A 跨越的列空间中移动的解决方案。(因为 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
最小二乘建议是一个非常好的建议。
我要补充一点,您可以尝试奇异值分解 (SVD),它可以为您提供最佳答案,并免费提供有关空空间的信息。