为什么matlab正交函数比qr慢得多?

时间:2014-08-25 13:52:59

标签: algorithm matlab matrix

我正在matlab中对大矩阵进行正交化,我注意到函数orth比qr慢得多,例如:

>> a = randn(200000, 80);
tic; orth(a); toc;
Elapsed time is 2.472516 seconds.
>> tic; qr(a); toc;
Elapsed time is 0.610215 seconds. 

什么可能导致如此大的差异?

1 个答案:

答案 0 :(得分:1)

qr似乎确实是更快捷的方式。

逻辑上这意味着它必须有缺点,否则Matlab将不会继续使用这种较慢的方法。

你最想要注意的两件事:

  • 内存要求
  • 精度

虽然有可能其他东西是实现orth的原因,但我的猜测就是其中之一。


旁注您可能还想查看这个简单的Gram Schmidt解决方案以进行比较。