【发布时间】:2013-12-03 09:31:12
【问题描述】:
我在 matlab 中生成了一个对称(托佩利茨)矩阵。
- 矩阵大小为 3200x3200 的矩阵求逆时间为 5.8 秒
- 矩阵大小为 5000x5000 的矩阵求逆时间为 70.7 秒
- 矩阵大小为 7200x7200 的矩阵求逆时间为 1700 秒
谁能告诉我这种指数增长的原因。我研究过它需要 N^3 次操作才能找到逆,但无法弄清楚。
实际上,我正在使用 MoM 构建矩阵,对于 9800x9800 矩阵大小,我收到“内存不足”错误。那么这个问题有什么解决办法呢?
谢谢
【问题讨论】:
-
也许你使用了太多内存,以至于你迫使操作系统使用交换。
-
一个 7200x7200 的矩阵只会消耗大约 400MB 的内存。 MATLAB 逆向命令是否会大大增加使用的内存量?
-
测量更广泛的矩阵大小的执行时间。绘制执行时间与大小的关系图。图表中的不连续性可能是内存层次结构对计算的影响:缓存效果(每个缓存级别一个效果),以及正如@OliCharlesworth 建议的那样,从 RAM 交换到磁盘(内存层次结构中的倒数第二步) .