在QR因子化中,A = QR,R是上三角矩阵.如果你的矩阵A是可逆的,那么如果你强加R具有真实的非负对角线的条件,则因子分解是唯一的.如果放宽这个条件,则得到正交矩阵Q和上三角矩阵R,但它们不必是唯一的.
从您提供的链接:
Compatibility Considerations:
Since the
QR factorization is not unique, these
different results are still correct.
Ensure that your code does not depend
on the values of the elements of the
factors Q and R.
这是你的代码发生了什么?它取决于Q和R的形式吗?
作为快速解决方案,您可以尝试使用R2010b:
qr.m
在我的机器上,我得到/Applications/MATLAB_R2010b.app/toolbox/matlab/matfun/qr.m.您可以尝试复制此功能并将其放入R2011路径中,并将其重命名为qr2010或其他内容吗?然后,无论何时需要旧函数,都可以从最新版本的MATLAB调用qr2010,它应该使用旧算法.我没有测试过这个,所以让我知道它是否有效.
编辑
我在我的机器上安装了R2011a并检查了qr.就像我说的那样,不执行正对角线将导致元素符号的不同组合,从而使解决方案不唯一.但是,正向和反向转换应该起作用,并且它在我的机器上也是如此.
A=magic(5);x=(1:5)'; %'
[Q R]=qr(A);
y=Q'*x; %'
z=Q*y;
z'
<