11

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はバグが多い

誰かが以前にこの種の行動を見たことがありますか?

このバグの背後にある良い説明はありますか?

良い回避策はありますか?

4

1 に答える 1