声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1906|回复: 7

[综合讨论] <紧急求助>一段fmincon优化函数,出现初值等于输出

[复制链接]
发表于 2009-5-23 21:13 | 显示全部楼层 |阅读模式

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

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

x
工作窗口输入命令为:
x0=[1143.52;4.81;13.8;4.18;4.10;893;743;405;893;1253;765;692;508];
A=[-1 0 0 0 0 0 0 0 0 0 0 0 0; 0 -1 0 0 0 0 0 0 0 0 0 0 0; 0 0 -1 0 0 0 0 0 0 0 0 0 0;
     0 0 0 -1 0 0 0 0 0 0 0 0 0; 0 0 0 0 -1 0 0 0 0 0 0 0 0; 0 0 0 0 0 -1 0 0 0 0 0 0 0;
     0 0 0 0 0 0 -1 0 0 0 0 0 0; 0 0 0 0 0 0 0 -1 0 0 0 0 0; 0 0 0 0 0 0 0 0 -1 0 0 0 0;
     0 0 0 0 0 0 0 0 0 -1 0 0 0; 0 0 0 0 0 0 0 0 0 0 -1 0 0; 0 0 0 0 0 0 0 0 0 0 0 -1 0;
     0 0 0 0 0 0 0 0 0 0 0 0 -1];  b=[0 0 0 0 0 0 0 0 0 0 0 0 0];
options=optimset('Display','iter','MaxFunEvals',1e18);
[x,fval,exitflag,output,lambda]=fmincon(@lym2,x0,A,b,[],[],[],[],@lym1)
输出为:
Warning: Large-scale (trust region) method does not currently solve this type of problem,
using medium-scale (line search) instead.
> In fmincon at 317
Maximum number of function evaluations exceeded;
increase OPTIONS.MaxFunEvals.
x =
  1.0e+003 *
    1.1435
    0.0048
    0.0138
    0.0042
    0.0041
    0.8930
    0.7430
    0.4050
    0.8930
    1.2530
    0.7650
    0.6920
    0.5080

fval =
  3.4660e+005
...

麻烦各位大侠帮我看看,我都不知道错在哪里了,我是求目标函数的最小值的。再次感谢给位了。
附件是编写的M文件。

[ 本帖最后由 ChaChing 于 2009-5-25 21:03 编辑 ]

lym1.m

9.04 KB, 下载次数: 3

约束函数 (mycon)

lym2.m

913 Bytes, 下载次数: 3

目标函数1 (myfun)

lym3.m

1010 Bytes, 下载次数: 2

目标函数2 (myfun)

lym4.m

399 Bytes, 下载次数: 2

A,b的值

回复
分享到:

使用道具 举报

 楼主| 发表于 2009-5-24 20:43 | 显示全部楼层

求助:fmincon函数矩阵不能更新

输入:
x0=[1143.52 4.66 14.50 4.0 3.6 893 743 405 893 1253 1000 900 508];
options=optimset('largescale','off','display','iter','MaxFunEvals',1e3,'maxiter',1e3);
[x,fval,exitflag,output,lambda]=fmincon(@lym2,x0,A,b,[],[],[],[],@lym1,options)
输出:
...
   76   1002    -0.952948   5.827e+005            2      -0.0914          Inf  Hessian not updated;   dependent
Maximum number of function evaluations exceeded;
increase OPTIONS.MaxFunEvals.
x =
  1.0e+003 *
    1.1435
    0.0047
    0.0145
    0.0040
    0.0036
    0.8930
    0.7430
    0.4050
    0.8930
    1.2530
    1.0000
    0.9000
    0.5080

fval =
   -0.9529
...

[ 本帖最后由 ChaChing 于 2009-5-25 21:05 编辑 ]
发表于 2009-5-24 22:02 | 显示全部楼层
那说明初值就是最优了  或者程序有错
发表于 2009-5-24 22:37 | 显示全部楼层
楼主到底要问什麽!?
还有个人水平专业有限, 建议楼主说清楚些, 并看下本版规则及加强发问题方式!
求助完整格式:出错代码和出错提示
 楼主| 发表于 2009-5-25 12:35 | 显示全部楼层
哦,初值肯定不是最优,那我试试修改程序,多谢指导。。

[ 本帖最后由 ChaChing 于 2009-5-25 21:08 编辑 ]
 楼主| 发表于 2009-5-25 12:45 | 显示全部楼层

回复 5楼 ChaChing 的帖子

网速太慢了,就多发了次。。我的意思是矩阵没有更新,导致初值等于输出。应该怎么修改,麻烦指教。我是刚用MATLAB,主要是为了毕业设计的。。
发表于 2009-5-25 20:17 | 显示全部楼层
首先lym1是什麽, 花4个楼层好像也交代! 几个楼层间重覆性又高! 请学习一下编辑使用
个人水平专业有限, 亦是来学习了! 对LZ或许帮助不大, 但LZ的帖真正需要加强些!
还有相同或相近内容的话题,请勿开新贴,一帖发完!
发表于 2009-5-25 21:23 | 显示全部楼层
哇! 竟花了近一个小时, 修饰LZ的帖! 还接受吧!
真想扣分, 新人先警告
另一帖参照如此, 请自行修改下!
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-26 14:28 , Processed in 0.080368 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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