Maple 实时保存迭代计算结果

2017-09-18  本文已影响52人  NoneLand

在用Maple进行迭代计算时,需要对每一步的计算结果进行实时保存,这样在计算机遇到停电或其他故障情况下就不会丢弃掉之前的计算结果,此外,通过CSV文件可以进行计算结果的整理,达到由开始计算到得到结果的无人值守过程,整个过程高度自动化,对于已经调试好的需要计算不同工况下的迭代计算十分有用。

首先给出一些文件名及一些有用信息:

filename := sprintf("C:\\Users\\NoneLan\\Desktop\\FGB_C%.2f_VIM.csv", c); 
f := fopen(filename, APPEND, TEXT); 
fprintf(f, "Iter Steps, Frequency, TaylorExpansionOrder:, %d\n", TaylorExpansionOrder); 
fclose(f);

值得注意的是,在写完实时信息之后,一定要使用fclose关掉文件,这样才会及时的更新文件,方便查看。在查看时,需要复制一份副本,不然可能会遇到无法打开文件的错误从而造成迭代终止。

随后在每一次迭代步中,加入以下代码:

f := fopen(filename, APPEND, TEXT); 
fprintf(f, "%d,", i); 
for fre in [seq(ii, ii = realpositivesoln)] do 
    fprintf(f, "%f,", fre);
end do; 
fprintf(f, "\n"); 
fclose(f);

其中,i为迭代步数,realpositivesoln为一数组,是每一步迭代的计算结果。同理每一次保存完实时信息之后,需要使用fclose关闭文件。

上一篇下一篇

猜你喜欢

热点阅读