Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2009-04-27, 22:17   #1
zjm0184119
初级会员
 
注册日期: 2009-03-28
年龄: 24
帖子: 6
声望力: 0
zjm0184119 正向着好的方向发展
默认 fmincon函数的用法

大家好,请教大家一个问题,我在用fmincon函数进行优化,但我的约束条件是非线性的,那我应该怎么写程序啊?
附件是具体的题目,希望大家给些指点。
告诉我方法或类似的例子都行
谢谢各位了
上传的附件
文件类型: rar 新建 Microsoft Word 文档.rar (5.6 KB, 50 次查看)
zjm0184119 当前离线   回复时引用此帖
旧 2009-04-28, 10:59   #2
524xu
初级会员
 
注册日期: 2009-02-20
年龄: 37
帖子: 4
声望力: 0
524xu 正向着好的方向发展
默认 回复: fmincon函数的用法

定义非线性约束函数 function [c,ceq]=confun(x)
c=[c1(x)-26800;c2(x)-0.3;c3(x)-60];
ceq=[];
此函数保存在confun.m文件中

最后在主程序中调用confun(x)
[x,fval]=fmincon('objfun',x0,[],[],[],[],[],[],'confun',options);
objfun为目标函数,x0为给定的初始值
524xu 当前离线   回复时引用此帖
旧 2009-04-28, 13:09   #3
zjm0184119
初级会员
 
注册日期: 2009-03-28
年龄: 24
帖子: 6
声望力: 0
zjm0184119 正向着好的方向发展
默认 回复: fmincon函数的用法

真是太感谢了!我用这个方法调试出了结果,但是得出的结果与初始值特别相关,初始值一变,结果变化特别大,能告诉我初始值应该怎么定吗,我好像还不是特别了解初始值的意思
zjm0184119 当前离线   回复时引用此帖
旧 2009-04-28, 14:54   #4
524xu
初级会员
 
注册日期: 2009-02-20
年龄: 37
帖子: 4
声望力: 0
524xu 正向着好的方向发展
默认 回复: fmincon函数的用法

初始值的取法我也没解决好,不同的取值可能得到一个局部最优解而不是全局最优解,一般尽量取在最优解附近,要不就多试几次
524xu 当前离线   回复时引用此帖
旧 2009-04-28, 17:42   #5
zjm0184119
初级会员
 
注册日期: 2009-03-28
年龄: 24
帖子: 6
声望力: 0
zjm0184119 正向着好的方向发展
默认 回复: fmincon函数的用法

对啊,我刚开始取得时候结果只是和初值特别接近,到后来有时结果都和初值一样了,哎。。。。头疼。。。
zjm0184119 当前离线   回复时引用此帖
回复


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

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



所有时间均为北京时间。现在的时间是 10:53


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