2012-11-14 39 views
9

操作A \ B的结果是什么,其中A(1,m)和B(1,m)?Matlab,operator A B

在手动它是写:

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

'pinv'的文档包含'pinv'和\之间区别的一些讨论。 – silvado

回答

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×n矩阵,B是具有n个元素的列向量或者具有多个这样的列的矩阵,则X = A \ B是方程AX = B的解。如果A严重缩小或接近单数。如果A是m〜= n的m×n矩阵,B是具有m个分量的列向量,或者是具有多个这样的列的矩阵,那么X = A \ B是最小二乘感觉到方程AX = B的方程式不足或超定。换句话说,X最小化范数(A * X - B),即向量AX - B的长度。A的秩k由QR分解确定,列旋转。计算的解决方案X每列至多有k个非零元素。如果k < n,这通常与x = pinv(A)* B不同,它返回最小二乘解。

mrdivide(B,A)和等效的B/A执行矩阵右分(正斜杠)。 B和A必须具有相同的列数。

如果A是方矩阵,则B/A与B * inv(A)大致相同。如果A是n×n矩阵,B是具有n个元素的行向量或具有多个这样的行的矩阵,则X = B/A是通过高斯消元利用部分枢转计算的等式XA = B的解。如果A严重缩放或接近单数,则会显示警告消息。

如果B是一个m乘n的矩阵,m = n且A是一个具有m个分量的列向量,或者是一个具有多个这样的列的矩阵,那么X = B/A是最小二乘感方程XA = B.

+0

@ FakeDIY。谢谢,但是我在发布我的问题之前已经阅读过。但是,案例三对我来说并不明确...... – justik

3

x = inv (A'*A)*A'*B无二超定系统(即哪个特征A作为n x m矩阵与n>m;在这种情况下A'A是可逆的)。

在你的情况下,你有一个根据确定的系统。


因此,会发生什么?

我的意见,但你可以检查,至少在你的情况

当你做A\B MATLAB解决了逆感测w.r.t.优化问题通常的最小二乘法,即

X = argmin_{X \in S} ||X||, 

其中S是一组解决方案。换句话说,它为您提供了具有最小L^2范数的系统的解决方案。 (考虑到你可以用手处理这个问题,至少在你的情况下)。

相关问题