这个问题与基本线性代数有关:
w = [100 200 300 400]'
M = [0.3378 0.1800;0.1252 0.1200; 0.3759 0.4900; 0.1611 0.2100]
将它们联系起来的方程是w=Mx。我们被告知要找到x。虽然x只是简单的w*M^-1,但矩阵维度与乘法不匹配。有没有办法让我得到x?
给我们的提示是"检查rref([Mw]),看看与x和w相关的方程是否一致。"
通过将向量x乘以M矩阵,可以获得:
0.3378x + 0.1800y = 100
0.1252x + 0.1200y = 200
0.3759x + 0.4900y = 300
0.1611x + 0.2100y = 400
这是一个方程组。您可以将其放入增强矩阵中,并通过求解rref(M)来求解向量x
通过能够获得rref形式,您表明您能够取矩阵的逆,因此能够求解向量x。
您可以使用以下等式来计算x,
x=pinv(M' * M) * M' * w
这是因为,M'*M是一个平方矩阵。你会得到x作为一个2乘1的矩阵。由于我们采用伪逆,我们不必担心M'*M 的奇异性
每个最小二乘问题都应该使用反斜杠运算符(或linsolve
),而不是梯形或高斯消去。
该解由Mw
给出,它基本上像Imesha Sudasingha所写的那样,但在数值上更稳定,并使用反斜杠运算符进行了优化。