0

さまざまなインスタンスで多数のNMinimizeコマンドを実行する必要があります。これらの実行の一部は収束に失敗しました。

収束に失敗したものを特定し、Mathematica が見つけた現在の解を取得たいと考えています。

を使用して提案された他の投稿を検索しCheck[]ますが、エラーから抜け出すと結果が返されません。

したがって、現在、次のような非効率的な実装があります。

allfit1 = ConstantArray[0,16];
For[i = 1, i <= 16, i++, (
allfit1[[i]] = Check[
                    {0, NMinimize[f[x,data[[i]]], x]}, 
                    {1, NMinimize[f[x,data[[i]]], x]}
                    ] 
)]

ご覧のとおり、2 回実行する必要がNMinimizeあり、無駄で時間がかかります。

より良い方法はありますか?

4

2 に答える 2

0

あなたができる

Table[Reap@Quiet@Check[Sow@NMinimize[f[x, d], x]; 1, 0]~
  Extract~{{1}, {2, 1, 1}}, {d, data}]
于 2012-11-21T19:09:50.933 に答える
0

マイナーな変更として、結果を変数に格納できます。

Block[{res}, 
      Check[{0, res = NMinimize[...]}, {1, res}]
]
于 2012-11-21T17:48:31.960 に答える