Mathematica 7と8では、Mathematicaが適切に保存してフィッティングルーチンの結果を取得できないことを発見しました。私はここの誰かが知っていることを望んでいます:このバグのベストプラクティスの回避策は何ですか?
私たちのタスクは、多くのデータセットをNonlinearModelFitでフィッティングすることです。これは、各データセットのFittedModelを返します。これらの適合にはしばらく時間がかかり、結果をファイルに記憶するためにSaveとDumpSaveを使用してみました。その後の分析では、Getを使用してFittedModelをプルバックします。
Mathematicaは警告なしにSave&Getを実行しますが、戻ってくるFittedModelにはバグがあります。Getを呼び出し、ディスクからFittedModelをロードし、結果を「foo」と呼びます。foo [10]を試すと、入力10で近似モデルが評価されます。バグは、foo ["BestFitParameters"]がルールのリストを返す必要があるが、代わりに10のような数値であるため文字列を関数にプラグインすることです。fooを試す[{"BestFitParameters"、 "BestFitParameters"}]は、リスト内でルールを2回指定する必要がありますが、バグのあるfooでは評価されません。
fooを削除/クリアするか、カーネルを終了するかによって、これに加えて奇妙で誤解を招く動作があります。
- FittedModelをfooとして計算します
- fooをディスクに保存またはダンプ保存
- fooを削除および/またはクリアする
- ディスクからfooを取得します
- fooは正常に動作します
しかし、カーネルを再起動すると失敗します
- FittedModelをfooとして計算します
- fooをディスクに保存またはダンプ保存
- カーネルを強制終了して再起動します
- ディスクからfooを取得します
- fooはバグが多い
誰かが以前にこの種の行動を見たことがありますか?
このバグの背後にある良い説明はありますか?
良い回避策はありますか?