lwu5885 发表于 2006-8-30 12:20

fmincon优化问题,求助!

clear
x0 = ;
mcanshu55 = 'abs(0.19700000086079e-14+*+*[-2.5664e-041 -1.6988e-061 -7.7855e-046 2.2380e-049 -7.8867e-057;0 4.5438e-062 -3.1368e-058 9.0490e-062 -3.1903e-069;0 0 -1.8915e-033 1.6579e-041 -1.0026e-048;0 0 0 3.7616e-032 2.1174e-051;0 0 0 0 -2.4194e-043]*-1.970001259803308e-15)';
lb=;
ub=;
format long;x0
options = optimset('largescale','off','display','iter');
options=optimset(options,'tolx',1e-100);
options=optimset(options,'tolfun',1e-100);
= fmincon(mcanshu55,x0,[],[],[],[],lb,ub,[],[],options);
运行后结果如下:
x =

   0.00395516400000   0.00485523400000   0.00485523400000   0.00485523400000   0.00177562800000

fval =

    1.251153612607804e-021


exitflag =

   1


output =

       iterations: 1
      funcCount: 13
         stepsize: 1
      algorithm: 'medium-scale: SQP, Quasi-Newton, line-search'
    firstorderopt: 3.944304526105059e-023
   cgiterations: []
请问一下,为什么不发生跌代啊?请加我的QQ365400204,在线等待,谢谢

happy 发表于 2006-8-30 19:45

你给那么好的初值
目标函数在你初值出的结果是:
fval =

    1.251153612607804e-021

都这么理想了还迭代什么?

lwu5885 发表于 2006-8-30 21:12

总可以调整,调整到最优吧,总不会这个是最小的吧,另外,我把初值选在很远的地方,也只跌带一次啊

MVH 发表于 2006-8-30 21:34

原帖由 lwu5885 于 2006-8-30 21:12 发表
总可以调整,调整到最优吧,总不会这个是最小的吧,另外,我把初值选在很远的地方,也只跌带一次啊

可以调整收敛精度,具体帮助里边有

心灯 发表于 2006-8-30 22:46

原帖由 MVH 于 2006-8-30 21:34 发表


可以调整收敛精度,具体帮助里边有

对于精度,貌似他已经调整的很小了。是不是目前最小值的偏差已经小于tolfun = 1e-100了?

options=optimset(options,'tolx',1e-100);
options=optimset(options,'tolfun',1e-100);

可以通过看fmincon里的命令,并加上一些停止或显示命令,跟踪程序运行, 看一下当前的程序里退出循环的偏差是多少。满足哪个条件退出的。我检查matlab程序都是这么做的。
页: [1]
查看完整版本: fmincon优化问题,求助!