求解非方阵中的线性方程组
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求解非方阵中的线性方程组相关的知识,希望对你有一定的参考价值。
我有一个线性方程组成一个NxM
矩阵(即非方形),我需要解决 - 或至少试图解决,以表明没有解决方案的系统。 (更可能的是,没有解决方案)
据我了解,如果我的矩阵不是正方形(过度或未确定),那么就找不到确切的解决方案 - 我是否正确地思考这个?有没有办法将我的矩阵转换为方阵以计算确定性,应用高斯消元法,克莱默定律等?
值得一提的是,我的未知数的系数可能为零,因此在某些极少数情况下,可能会有零列或零行。
矩阵是否为正方形不是决定解空间的因素。它是矩阵的等级与确定的列数相比(参见the rank-nullity theorem)。通常,对于线性方程组,您可以有零个,一个或无限多个解,这取决于它的秩和无效关系。
但是,要回答您的问题,您可以使用高斯消元法找到矩阵的秩,如果这表明存在解,则找到特定解x0和矩阵的零空间Null(A)。然后,您可以将所有解决方案描述为x = x0 + xn,其中xn表示Null(A)的任何元素。例如,如果矩阵是满秩,则其零空间将为空,并且线性系统将具有至多一个解。如果它的等级也等于行数,那么您有一个唯一的解决方案。如果零空间的尺寸为1,那么您的解决方案将是一条穿过x0的线,该线上的任何点都满足线性方程。
好的,首先:非方形方程组可以有一个精确的解
[ 1 0 0 ][x] = [1]
[ 0 0 1 ][y] [1]
[z]
显然有一个解决方案(实际上,它有一个1维解决方案:x = z = 1)。即使系统超定而不是欠定,它仍然可以有一个解决方案:
[ 1 0 ][x] = [1]
[ 0 1 ][y] [1]
[ 1 1 ] [2]
(X = Y = 1)。您可能希望首先查看最小二乘解法,如果存在则找到精确解,如果不存在,则找出“最佳”近似解(在某种意义上)。
最小二乘推荐是非常好的。
我将补充一点,您可以尝试一种奇异值分解(SVD),它将为您提供最佳答案,并免费提供有关零空间的信息。
以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
以上是关于求解非方阵中的线性方程组的主要内容,如果未能解决你的问题,请参考以下文章
机器学习|数学基础Mathematics for Machine Learning系列之矩阵理论(22):方阵函数在微分方程组中的应用