Maple 实时保存迭代计算结果

在用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关闭文件。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容