zeroieme 发表于 2011-11-18 00:17:54

mathematica怎么清理指定的数据

大运算需要分块计算。用一点“.”可以清除变量。但真正占地方的中间计算结果怎么清理?

wayne 发表于 2011-11-21 11:09:36

放在函数的栈里面.不是很清楚 楼主的意思

zeroieme 发表于 2011-11-21 21:46:35

这是wolfram的说辞
Mathematica 使用内存时很仔细,每次当所产生的中间结果不再使用时,Mathematica 就立即回收分配给它的内存. 这意味着在进程的任意点,Mathematica 仅保存实际需要的那些表达式,它不保存后面不需要的对象.
但事实上不完全是


举个例子 我求多项式A、B的最小公倍式。
直接求内存溢出。
先对A因式分解,保存关闭Mathematica;再对B因式分解,保存关闭Mathematica;然后求最小公倍式,得到结果了。
而人手分步,中间不关闭Mathematica,在对B因式分解内存溢出。明显是A的因式分解过程没及时清理。

wayne 发表于 2011-11-21 22:08:18

3# zeroieme
Mathematica 仅保存实际需要的那些表达式,它不保存后面不需要的对象.
可能是因为系统提供的函数的默认算法实际确实需要那么多内存,所以就崩溃了。
这个应该比较正常,我以前碰到好几次 Mathematica 要shut down的情形,
这个时候,我一般都是换一种算法。

zeroieme 发表于 2011-11-22 00:46:03

现在情况是分别计算可行。
所以怎么完成A因式分解,自动释放内存,再算B,释放,再下一步。

wayne 发表于 2011-11-22 10:07:32

5# zeroieme
楼主可否贴出你的具体问题

zeroieme 发表于 2011-11-22 14:49:15

就是这里
http://bbs.emath.ac.cn/thread-3702-1-2.html
16楼的想法

wayne 发表于 2011-11-23 22:01:16

7# zeroieme
:L ,这个化简很麻烦的。
只是不知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,如此辗转下去。基本每次计算后都要求释放内存。
页: [1]
查看完整版本: mathematica怎么清理指定的数据