我想知道 matlab 怎么能这么快地将两个矩阵相乘。将两个 NxN 矩阵相乘时,执行 N^3 次乘法。即使使用Strassen 算法,它也需要 N^2.8 次乘法,这仍然是一个很大的数字。我正在运行以下测试程序:
a = rand(2160);
b = rand(2160);
tic;a*b;toc
使用 2160 是因为 2160^3=~10^10 ( a*b 应该是大约 10^10 次乘法)
我有:
Elapsed time is 1.164289 seconds.
(我在 2.4Ghz 笔记本上运行并且没有发生线程)这意味着我的计算机在 1 秒多一点的时间内完成了 ~10^10 的操作。
这怎么可能??