Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab中fminsearch的停止准则_Matlab_Fminsearch - Fatal编程技术网

Matlab中fminsearch的停止准则

Matlab中fminsearch的停止准则,matlab,fminsearch,Matlab,Fminsearch,我正在使用fminsearch将DEs系统的参数与观测数据进行拟合。我不希望我的身体很好 fminsearch很快就找到了目标函数可以接受的最小值,但并没有停止。它运行了很长时间,我不知道为什么 我正在使用这些选项 options = optimset('Display','iter','TolFun',1e-4,'TolX',1e-4,'MaxFunEvals',1000); 我的理解是,当目标函数的值下降到1e-4以下时,这就足够了。或者,当他们无法再更改参数时,将返回最好的参数 输出是

我正在使用fminsearch将DEs系统的参数与观测数据进行拟合。我不希望我的身体很好

fminsearch很快就找到了目标函数可以接受的最小值,但并没有停止。它运行了很长时间,我不知道为什么

我正在使用这些选项

options = optimset('Display','iter','TolFun',1e-4,'TolX',1e-4,'MaxFunEvals',1000);
我的理解是,当目标函数的值下降到1e-4以下时,这就足够了。或者,当他们无法再更改参数时,将返回最好的参数

输出是

Iteration   Func-count     min f(x)         Procedure
 0            1      8.13911e+10         
 1            8       7.2565e+10         initial simplex
 2            9       7.2565e+10         reflect
 3           10       7.2565e+10         reflect
 4           11       7.2565e+10         reflect
 5           12       7.2565e+10         reflect
 6           13       7.2565e+10         reflect
 7           15      6.85149e+10         expand
 8           16      6.85149e+10         reflect
 9           17      6.85149e+10         reflect
10           19      6.20681e+10         expand
11           20      6.20681e+10         reflect
12           22      5.55199e+10         expand
13           23      5.55199e+10         reflect
14           25      4.86494e+10         expand
15           26      4.86494e+10         reflect
16           27      4.86494e+10         reflect
17           29      3.65616e+10         expand
18           30      3.65616e+10         reflect
19           31      3.65616e+10         reflect
20           33      2.82946e+10         expand
21           34      2.82946e+10         reflect
22           36      2.02985e+10         expand
23           37      2.02985e+10         reflect
24           39      1.20011e+10         expand
25           40      1.20011e+10         reflect
26           41      1.20011e+10         reflect
27           43      5.61651e+09         expand
28           44      5.61651e+09         reflect
29           45      5.61651e+09         reflect
30           47       2.1041e+09         expand
31           48       2.1041e+09         reflect
32           49       2.1041e+09         reflect
33           51      5.15751e+08         expand
34           52      5.15751e+08         reflect
35           53      5.15751e+08         reflect
36           55      7.99868e-05         expand
37           56      7.99868e-05         reflect
38           58      7.99835e-05         reflect
39           59      7.99835e-05         reflect
我以前让它运行了很长一段时间,至少在接下来的30个打印输出中,它的最小f(x)保持不变


如何正确设置选项,以便在目标函数的可接受值范围内找到解决方案时停止?

Matlab要求在终止前同时满足TolX和TolFun(“与其他解算器不同,fminsearch在同时满足TolFun和TolX时停止。”请参阅:)。您应该检查“x”值(您的解决方案)的作用。我怀疑每一步的变化都超过了公差规格。(即,x的值在迭代之间的变化大于TolX,但f(x)的变化不超过TolFun)

谢谢你的建议-不幸的是,我不能回去检查这个问题,但下次遇到这个问题时,我会知道去哪里看。