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不是方阵。
答案 0 :(得分:1)
您不能通过除以等级1的值来获得等级2的值。系统不受约束。
mrdivide
和pinv
(伪逆)都可用于获取系统的 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
具有最少可能的非零组件的事实。