找回密码
 欢迎注册
查看: 10849|回复: 8

[提问] mathematica怎么清理指定的数据

[复制链接]
发表于 2011-11-18 00:17:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?欢迎注册

×
大运算需要分块计算。用一点“.”可以清除变量。但真正占地方的中间计算结果怎么清理?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2011-11-21 11:09:36 | 显示全部楼层
放在函数的栈里面.不是很清楚 楼主的意思
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2011-11-21 21:46:35 | 显示全部楼层
这是wolfram的说辞
Mathematica 使用内存时很仔细,每次当所产生的中间结果不再使用时,Mathematica 就立即回收分配给它的内存. 这意味着在进程的任意点,Mathematica 仅保存实际需要的那些表达式,它不保存后面不需要的对象.

但事实上不完全是


举个例子 我求多项式A、B的最小公倍式。
直接求内存溢出。
先对A因式分解,保存关闭Mathematica;再对B因式分解,保存关闭Mathematica;然后求最小公倍式,得到结果了。
而人手分步,中间不关闭Mathematica,在对B因式分解内存溢出。明显是A的因式分解过程没及时清理。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2011-11-21 22:08:18 | 显示全部楼层
3# zeroieme
Mathematica 仅保存实际需要的那些表达式,它不保存后面不需要的对象.

可能是因为系统提供的函数的默认算法实际确实需要那么多内存,所以就崩溃了。
这个应该比较正常,我以前碰到好几次 Mathematica 要shut down的情形,
这个时候,我一般都是换一种算法。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2011-11-22 00:46:03 | 显示全部楼层
现在情况是分别计算可行。
所以怎么完成A因式分解,自动释放内存,再算B,释放,再下一步。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2011-11-22 10:07:32 | 显示全部楼层
5# zeroieme
楼主可否贴出你的具体问题
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2011-11-22 14:49:15 | 显示全部楼层
就是这里
http://bbs.emath.ac.cn/thread-3702-1-2.html
16楼的想法
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2011-11-23 22:01:16 | 显示全部楼层
7# zeroieme
,这个化简很麻烦的。
只是不知zeroieme用的是什么命令
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2011-11-23 23:17:43 | 显示全部楼层
现在得到的两式 F(R)=0和G(R,S)=0

我准备将两式用按R的各次幂系数分别保存成0~14(仅偶次)和0~28两套文件。类似手算,取高次幂系数的最小公倍式,约得两式系数,C=A X- B Y,如此辗转下去。基本每次计算后都要求释放内存。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-4-25 08:08 , Processed in 0.045919 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表