ukman 发表于 2009-7-19 17:27

运行fmincon,变量不参与优化,为什么?

Fmincon 做优化,
X0=;
lb=;
ub=;
=fmincon('myfunt1',X0,[],[],[],[],lb,ub)
结果出现
Optimization terminated: first-order optimality measure less than options.TolFun and maximum constraint violation is lessthan options.TolCon.
No active inequalities.
X =
    55    20    20

fval =
   15.4891
X的值根本就是初值,并没有参与优化,请问这是什么原因。

VibrationMaster 发表于 2009-7-19 19:22

maximum constraint violation is lessthan options.

ukman 发表于 2009-7-19 19:30

能说具体点吗,有什么办法可能解决这个问题

friendchj 发表于 2009-7-19 20:15

options = optimset('Display','iter','TolFun',1e-8)
This statement creates an optimization options structure called options in which the Display option is set to 'iter' and the TolFun option is set to 1e-8.

可能是初值带入既满足优化条件,利用上例修改TolFun的大小后试试。

ukman 发表于 2009-7-19 22:45

恩,谢谢,试试。
另外我改了初值,最后的fval竟然还和之前的一样,不变,即x0=运行后,x=,fval还是15.4891,怪了啊!!!

VibrationMaster 发表于 2009-7-20 07:05

画出myfunt1计算结果,多画几幅图,检查它的输出结果与你的感觉是否一致。有可能是这个函数有问题

ukman 发表于 2009-7-20 16:25

myfunt返回的是least-square-error,奇怪的就是,不管怎么赋X的值,返回的总是15.4891.与myfunt相关的结果画出图与预想的形状差不多了,就是幅值有差异,所以用fmincon优化来最小化least-square-error。另外,我也试了改tolfun,没效果啊。

ukman 发表于 2009-7-20 17:35

这个问题查出来了,原来自己没注意在myfunt里面调用的子程序里面已经把X赋值了。

[ 本帖最后由 ChaChing 于 2009-7-20 23:56 编辑 ]
页: [1]
查看完整版本: 运行fmincon,变量不参与优化,为什么?