2017-08-26 200 views
0

我必须在MATLAB中集成8个变量的ODE。我的模拟时间是5e9,时间步长为0.1。但它显示内存错误。我正在使用i7内核,具有8GB RAM的2.6Ghz CPU。我如何模拟大时间样本的ODE?Matlab解决ODE时出现内存不足错误

+0

我知道这不是最准确的方法,但是如何在一段时间后重新开始模拟? – Jommy

+0

它是否具有生成和存储需要8·8·5e10字节= 3.2e12字节= 3.2太字节的5e10状态向量的特定目的?您是否准备将此内容写入磁盘,因为您似乎不太可能将其保存在内存中? – LutzL

回答

0

假设你正在研究64位版本的MATLAB,你可能想让MATLAB使用Preferences -> MATLAB -> Workspace -> MATLAB Array Size Limit将内存挤压到边缘。

如果您收到此埃罗因为你真的mximized在系统内存执行以下操作:

  1. 确保您使用的是64位操作系统和MATLAB的64位版本。
  2. 在您调用ODE函数之前,手动清除(使用clear()函数)您不再需要的变量(或者可以在函数完成时重新创建)。
  3. 增加系统的交换文件。这将有助于消耗更大的内存,但可能会让事情变得更慢。

您可以在Resolve "Out of Memory" Errorsmemory()中找到更多的提示和技巧。

相关问题