【发布时间】:2020-07-14 12:05:22
【问题描述】:
我有一个非常耗时的优化问题,我需要做很多次(这对我来说是一个反复试验的问题)。但是,我不想等待最终结果。我需要在每次迭代时查看优化的结果。更具体地说,我想查看 x 值(解决方案)并且对 fval(x 处的目标函数值)不太感兴趣。不幸的是,patternsearch 只显示 fval 而不是每次迭代的优化解决方案。我知道我应该通过“输出函数”来解决这个问题,但花了很多时间却不明白该怎么做。为了方便您,让我们考虑以下简单的优化问题:
options = optimoptions('patternsearch');
options = optimoptions(options,'Display', 'iter','TolX',1e-6);
x0=2;lb=-3;ub=3;
x = patternsearch(@(x)x^2,x0,[],[],[],[],lb,ub,[],options);
我们在命令窗口中看到的前几行如下所示:
Iter f-count f(x) MeshSize Method
0 1 4 1
1 2 4 0.5 Refine Mesh
2 3 0 1 Successful Poll
不幸的是,我对 x 一无所知。
能否请您更改我的代码,以便我在每次迭代时也能看到解决方案 (x),非常感谢!
巴巴克
【问题讨论】:
标签: matlab