操作A \ B的结果是什么,其中A(1,m)和B(1,m)?
在手册中写道:
A\B returns a least-squares solution to the system of equations A*x= B.
所以这意味着x = inv(A'* A)* A'* B?但是,矩阵A'* A是单数......
让我们假设:
A=[1 2 3]
B=[6 7 6]
A\B
0 0 0
0 0 0
2.0000 2.3333 2.0000
如果使用MLS:
C = inv (A'*A) singular matrix
C = pinv(A'*A)
0.0051 0.0102 0.0153
0.0102 0.0204 0.0306
0.0153 0.0306 0.0459
D= C*A'*B
0.4286 0.5000 0.4286
0.8571 1.0000 0.8571
1.2857 1.5000 1.2857
结果A \ B和inv(A'* A)* A'* B不同......
答案 0 :(得分:5)
我的MATLAB(R2010b)对A\B
的作用说了很多:
mldivide(A,B)
和等效A\B
执行矩阵左划分 (反斜杠)。A
和B
必须是具有相同数量的矩阵 行,除非A
是标量,在这种情况下A\B
执行元素 分裂 - 即A\B = A.\B
。如果
A
是方阵,则A\B
与inv(A)*B
大致相同,但 它以不同的方式计算。如果A
是n
- by -n
矩阵且B
是 带有n
元素的列向量,或带有多个此类列的矩阵, 然后X = A\B
是等式AX = B
的解。一条警告信息 如果A
严重缩放或几乎是单数,则会显示。如果
A
是m
-n
矩阵,m ~= n
和B
是m
的列向量 组件,或具有多个这样的列的矩阵,然后是X = A\B
在最小二乘意义上的解决方案对于欠定或超定 方程组AX = B
。换句话说,X
最小化norm(A*X - B)
, 向量AX - B
的长度。k
的等级A
由...确定 带有列旋转的QR分解。计算出的解X
具有 每列最多k
个非零元素。如果k < n
,通常不会 与x = pinv(A)*B
相同的解决方案,返回最小二乘法 溶液
mrdivide(B,A)
和等效的B/A
执行矩阵右分割 (正斜线)。B
和A
必须具有相同的列数。如果
A
是方阵,则B/A
与B*inv(A)
大致相同。如果是A
n
- by -n
矩阵和B
是带有n
元素的行向量,或矩阵 有几个这样的行,然后X = B/A
是等式的解XA = B
通过高斯消除和部分旋转计算。一个 如果A
严重缩放或几乎是单数,则会显示警告消息。如果
B
是m
-n
矩阵,m ~= n
和A
是m
的列向量 组件,或具有多个这样的列的矩阵,然后是X = B/A
在最小二乘意义上的解决方案对于欠定或超定 方程组XA = B
。
答案 1 :(得分:3)
x = inv (A'*A)*A'*B
用于已确定的系统(即哪个功能A
为n x m
矩阵n>m
;在这些情况下{{1}是可逆的)。
在您的情况下,您的已确定系统。
因此,会发生什么?
我的意见,虽然你可以检查,至少在你的情况下:
当你A'A
时,matlab解决了反义意义上的优化问题w.r.t.通常的最小二乘,即
A\B
其中 X = argmin_{X \in S} ||X||,
是解决方案集。换句话说,它为您提供了具有最小L ^ 2范数的系统的解决方案。 (考虑到您可以手动处理问题,至少在您的情况下)。