2015-03-19 72 views
-2
H = [1 2; 3 4; 5 6; 7 8; 9 10; 11 12; 13 14; 15 16]; 
    X = [7; 9]; 
    Y = H*X; 
    H1 = Y/X; 

这是我的代码。正如你所看到的,我试图恢复H值。但是,它给了我别的东西。我试图使用inv(),但这是不可能的,因为X不是方阵。Matlab分区,无法取回答案

回答

1

您不能通过划分秩1的值来得到秩2的值。系统不受约束。

mrdividepinv(用于伪逆)都可以用来获得a解决方案的系统。因为有多种解决方案,所以不一定就是你开始使用的解决方案。相反,您会得到一个“最简单”的解决方案,无论是最低基数还是最低2范数,取决于您使用的是mrdivide还是pinv

这里,pinv文档页面可能比我更精确地解释它。只要注意它正在讨论X\Y,而不是Y/X

如果A比列多行满秩的不是,那么超定最小二乘问题

minimize norm(A*x-b) 

没有一个独特的解决方案。无限许多解决方案中有两个是

x = pinv(A)*b 

y = A\b 

这两个是由事实来区分这norm(x)比任何其他解决方案的规范小和y具有尽可能少的非零分量。