在用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
關閉文件。