| 查看: 2389 | 回复: 5 | ||||
kittyzoe木虫 (正式写手)
|
[求助]
matlab 计算过程中工作空间变量保存及读取 求解决内存不足的方法
|
|
利用matlab ode45函数求解常微分方程的过程中, 由于计算步长较小,计算时刻较多,每时刻均需要保存数据,最后还没能到计算结束已经导致内存溢出。 利用save命令将所有变量保存到硬盘,clear内存中的变量,然后再利用load命令将所需变量读取。但load读取的是保存已计算的所有时刻的变量,使计算变慢,其实此时只想读取前一时刻的变量,不知使用load命令是否能实现呢? 或者高手们是否有解决由于保存数据较多导致内存溢出的更好的办法呢? |
» 猜你喜欢
【复旦大学】二维材料方向招收2026年博士研究生1名
已经有0人回复
北京纳米能源与系统研究所 王中林院士/曹南颖研究员课题组2026级硕/博/博后招生
已经有10人回复
物理学I论文润色/翻译怎么收费?
已经有99人回复
荷兰Utrecht University超快太赫兹光谱王海教授课题招收2026 CSC博士生
已经有23人回复
反铁磁体中的磁性切换:两种不同的机制已成功可视化
已经有0人回复
求标准粉末衍射卡号 ICDD 01-076-1802
已经有0人回复
新西兰Robinson研究所招收全奖PhD
已经有0人回复
石墨烯转移--二氧化硅衬底石墨烯
已经有0人回复
» 本主题相关价值贴推荐,对您同样有帮助:
感受态的保存
已经有7人回复
海基科技2012年工艺过程计算模拟软件gPROMS技术培训
已经有5人回复
天然气燃烧的能量利用效率应该怎么计算?
已经有4人回复
Matlab求解偏微分方程组
已经有22人回复
matlab如何改变函数变量值在调用函数重新计算
已经有12人回复
matlab 求指点 动力学方程拟合过程中导数的获取
已经有10人回复
matlab拟合拟均相动力学参数
已经有6人回复
求回归方程参数估计的最优化算法matlab代码
已经有9人回复
matlab符号变量的一个问题
已经有4人回复
matlab非线性参数拟合问题
已经有7人回复
【求助】matlab 求解微分方程中的未知参数
已经有20人回复
【求助】使用MATLAB怎么实现拟合力场参数的程序?【已解决】
已经有15人回复
dbb627
荣誉版主 (著名写手)
-

专家经验: +4 - 计算强帖: 12
- 应助: 289 (大学生)
- 贵宾: 0.589
- 金币: 24640.4
- 散金: 551
- 红花: 61
- 沙发: 1
- 帖子: 1246
- 在线: 1794.8小时
- 虫号: 149791
- 注册: 2005-12-29
- 性别: GG
- 专业: 污染控制化学
- 管辖: 计算模拟
【答案】应助回帖
kittyzoe(金币+5): 2011-11-11 16:19:45
|
首先我觉得是不是不用算那没多步,如果ode45收敛性差,方程刚性的话,可采用ode15s 此外如果确实需要算很多步 下面的方法可能会有用 使用xlswrite 或者fprintf 将数据写到text或者excel文件中 使用PACK:PACK可以将matlab中的变量导出到磁盘中,以增加可用内存。 减少变量的内存开销:清除工作间不必要的变量。 64位架构:采用64位的软硬件架构,目前实验室条件下不可行。 3GB切换(3GB switch):由于在windows上运行matlab时,如果内存的使用超过约1.7G左右就要出现这种错误,而无论你有多大的内存也没用。幸好现在在Windows XP上,MATLAB现在支持3GB切换(3GB switch)启动选项(boot option),配置额外的1GB的可寻址内存到每个程序上。这增加了你可以储存到MATLAB workspace中资料的总量约到2.7 GB。这相当于33亿的精度值。此新增的内存区块和MATLAB使用剩下的(内存)并不是连续的,所以你不能建立一个数组来填满此空间。 具体做法:修改C:\ Boot.ini文件如下 [boot loader] timeout=30SimWe个人空间 default=multi(0)disk(0)rdisk(0)partition(2)\WINNT [operating systems] multi(0)disk(0)rdisk(0)partition(2)\WINNT="????" /3GB 注意后面的/3GB就是后加上的。重新启动系统再次运行matlab。 |

2楼2011-11-11 15:36:56
kittyzoe
木虫 (正式写手)
- 应助: 0 (幼儿园)
- 金币: 2416.9
- 散金: 10
- 帖子: 326
- 在线: 116.6小时
- 虫号: 748960
- 注册: 2009-04-15
- 专业: 传热传质学
|
我尝试使用ode15s,出现以下错误: Warning: Failure at t=1.166017e-003. Unable to meet integration tolerances without reducing the step size below the smallest value allowed (3.469447e-018) at time t. > In ode15s at 753 这种情况应该怎么办呢?是计算不收敛么?该怎么解决呢? 有时候赋予某个特定初值时用ode45就可以很快算出结果,而且现在ode45虽然算的很慢,但是至今除了因为内存不足以外,还没开始报错,所以打算长时间算算看,不知道行不行。 |
3楼2011-11-11 16:13:43
kittyzoe
木虫 (正式写手)
- 应助: 0 (幼儿园)
- 金币: 2416.9
- 散金: 10
- 帖子: 326
- 在线: 116.6小时
- 虫号: 748960
- 注册: 2009-04-15
- 专业: 传热传质学
4楼2011-11-11 16:18:42
dbb627
荣誉版主 (著名写手)
-

专家经验: +4 - 计算强帖: 12
- 应助: 289 (大学生)
- 贵宾: 0.589
- 金币: 24640.4
- 散金: 551
- 红花: 61
- 沙发: 1
- 帖子: 1246
- 在线: 1794.8小时
- 虫号: 149791
- 注册: 2005-12-29
- 性别: GG
- 专业: 污染控制化学
- 管辖: 计算模拟

5楼2011-11-11 16:19:26
kittyzoe
木虫 (正式写手)
- 应助: 0 (幼儿园)
- 金币: 2416.9
- 散金: 10
- 帖子: 326
- 在线: 116.6小时
- 虫号: 748960
- 注册: 2009-04-15
- 专业: 传热传质学
6楼2011-11-14 09:05:51













回复此楼