Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2008-01-29, 23:14   #1
xingxlin57
初级会员
 
注册日期: 2008-01-29
年龄: 66
帖子: 7
声望力: 0
xingxlin57 正向着好的方向发展
默认 【求助】我是一个MATLAB的新手,今天使用优化工具箱碰到一个简单的M文件无法执行的问题,请高手指教。

各位高手,请分析一下原因,不胜感激,谢谢!

问题:我是在求解一个单目标非线性约束规划的工程应用问题,即求使函数f(x)取最小值,且满足约束条件。

我编写的的“目标函数”M文件 :
function f = myfun(x)
f = 0.785*x(1)^2*x(2)-8.16*10^5*x(2)+6.85* 10^6;

约束函数M文件:
function[c,ceq]= mycon(x)
c(1) = -2.25*10^3*x(2)+0.48;
c(2) = -4.95*10^2*x(2)^3+12.13*x(2)+1.497*10^3;
c(3) =2.72*10^3*x(2)^5-67.32*x(2)^3-15*10^7*x(2)^2+1.61*10^6;
c(4) =-2.48*10^2*x(2)^3-1.12* 10^3*x(2)-1.5*10^8+7.49*10^2;
c(5) =1.36* 10^3*x(2)^5-33.66*x(2)^3-7.5*10^7*x(2)^2+1.13*10^3*x(2)-1.49*10^8;
ceq=[ ]。

调用的程序为:
x0=[800;58];
lb=zeros(2,1);
options=optimset('display','iter','largescale','off');
[x,fval,exitflang,output]=fmincon(@myfun,x0,[ ] ,[ ],[ ],[ ],lb,[ ],@mycon)

这里fmincon是matlab非线性规划优化工具箱的一个常用函数,但不管我如何运算,结果就是执行出错,并提示:
1、在程序开始执行时提示:“Warning: Large-scale (trust region) method does not currently solve this type of problem,switching to medium-scale (line search).”
2、结束时提示:
Optimization terminated: first-order optimality measure less than options.TolFun
and maximum constraint violation is less than options.TolCon.
Active inequalities (to within options.TolCon = 1e-006):
lower upper ineqlin ineqnonlin
1
而且输出结果完全不是应该有的。我花了不少时间,就是没有解决,为什么会这样,恳请高手给予指点,不胜感激,谢谢!!!!!!
xingxlin57 当前离线   回复时引用此帖
旧 2008-02-01, 15:46   #2
smallfade
初级会员
 
注册日期: 2008-02-01
年龄: 38
帖子: 4
声望力: 0
smallfade 正向着好的方向发展
默认

根据提示改吧...optimset函数里的largescale 改为mediumscale,第二个提示不大清楚.
从来没做过优化的问题...只是看提示说的,说错了不要打我啊!!
smallfade 当前离线   回复时引用此帖
旧 2008-02-02, 11:56   #3
dnping
高级会员
 
注册日期: 2007-07-26
年龄: 40
帖子: 268
声望力: 24
dnping 是一个将要出名的人
默认

其实主要就是第一个问题,也就是你的这个优化问题采用这种方法matlab不适合,你必须得好好考虑一下你的体系问题,因为matlab只有对于特定问题才有一个好的解决方案。
而对于第二个问题,其实就是你第一个问题不适合这个体系,所以第二个问题因为优化体系不适合,故你的参数不适合,你仔细考虑一下你的体系……
dnping 当前离线   回复时引用此帖
旧 2008-02-03, 00:26   #4
xingxlin57
初级会员
 
注册日期: 2008-01-29
年龄: 66
帖子: 7
声望力: 0
xingxlin57 正向着好的方向发展
默认

谢谢各位的帮助。
xingxlin57 当前离线   回复时引用此帖
旧 2008-02-03, 14:41   #5
mathscc
初级会员
 
注册日期: 2008-02-02
年龄: 39
帖子: 9
声望力: 0
mathscc 正向着好的方向发展
默认

线形条件和非先行条件不能写一块去,第二个程序只能放非线形约束条件,线形条件用A,b表示
__________________
:frown: :
mathscc 当前离线   回复时引用此帖
旧 2008-02-04, 00:23   #6
xingxlin57
初级会员
 
注册日期: 2008-01-29
年龄: 66
帖子: 7
声望力: 0
xingxlin57 正向着好的方向发展
默认

谢谢帮助。
xingxlin57 当前离线   回复时引用此帖
旧 2008-02-21, 16:40   #7
mathjiang
高级会员
 
注册日期: 2008-01-02
帖子: 247
声望力: 22
mathjiang 正向着好的方向发展
默认

5楼说的对,不知楼主解决了没有?
mathjiang 当前离线   回复时引用此帖
旧 2008-02-21, 16:47   #8
mathjiang
高级会员
 
注册日期: 2008-01-02
帖子: 247
声望力: 22
mathjiang 正向着好的方向发展
默认

我仔细看了一下,在各约束条件中怎么不见 x1?

楼主能否解释一下。
mathjiang 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 15:25


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.