我必须在各种实例上运行许多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]}
]
)]
如您所见,我必须执行两次NMinimize
,这既浪费又耗时。
有更好的方法吗?
答案 0 :(得分:0)
作为一个小改动:您可以将结果存储在变量中:
Block[{res},
Check[{0, res = NMinimize[...]}, {1, res}]
]
答案 1 :(得分:0)
你可以做到
Table[Reap@Quiet@Check[Sow@NMinimize[f[x, d], x]; 1, 0]~
Extract~{{1}, {2, 1, 1}}, {d, data}]