声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1350|回复: 4

[综合讨论] fmincon优化问题,求助!

[复制链接]
发表于 2006-8-30 12:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
clear
x0 = [3.955164E-03,4.855234E-03,4.855234E-03,4.855234E-03,1.775628E-03];
mcanshu55 = 'abs(0.19700000086079e-14+[2.5602e-041 1.0355e-053 1.8955e-033 8.6083e-024 2.4193e-043]*[x(1);x(2);x(3);x(4);x(5)]+[x(1) x(2) x(3) x(4) x(5)]*[-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]*[x(1);x(2);x(3);x(4);x(5)]-1.970001259803308e-15)';
lb=[3.955164E-03*0.2,4.855234E-03*0.2,4.855234E-03*0.2,4.855234E-03*0.2,1.775628E-03*0.2];
ub=[3.955164E-03*1.8,4.855234E-03*1.8,4.855234E-03*1.8,4.855234E-03*1.8,1.775628E-03*1.8];
format long;x0
options = optimset('largescale','off','display','iter');
options=optimset(options,'tolx',1e-100);
options=optimset(options,'tolfun',1e-100);
[x,fval,exitflag,output] = 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,在线等待,谢谢
回复
分享到:

使用道具 举报

发表于 2006-8-30 19:45 | 显示全部楼层
你给那么好的初值
目标函数在你初值出的结果是:
fval =

    1.251153612607804e-021

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

评分

1

查看全部评分

 楼主| 发表于 2006-8-30 21:12 | 显示全部楼层
总可以调整,调整到最优吧,总不会这个是最小的吧,另外,我把初值选在很远的地方,也只跌带一次啊
发表于 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

查看全部评分

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-25 21:53 , Processed in 0.071800 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表