关于matlab中fmincon求极值的错误(急求,跪谢!!!)

目标函数functionfval=objfun(x)globallamb0;globalB;globalR;globalr;globalphi;lamb=lamb0*r/... 目标函数
function fval=objfun(x)
global lamb0;
global B;
global R;
global r;
global phi;
lamb=lamb0*r/R;
phi=atan((1-x(1))/((1+x(2))*lamb));
f=-B*(R-r)/(2*r*sin(phi));
F=2*acos(exp(-f))/pi;
fval=8*x(2)*(1-x(1))*F*lamb^3/lamb0^2
约束条件
function [c,ceq]=confun(x)
global lamb0;
global B;
global R;
global r;
global phi;
lamb=lamb0*r/R;
phi=atan((1-x(1))/((1+x(2))*lamb);
f=-B*(R-r)/(2*r*sin(phi));
F=2*acos(exp(-f))/pi;
ceq=x(1)*(1-x(1)*F)-x(2)*(1+x(2))*lamb^2;
c=[];
主程序
clear;
global r;
global R;
global phi;
global lamb;
lamb0=6;B=3;
D=65;
R=D/2;
r=2;
x0=[0;0];
A=[];b=[];
Aeq=[];beq=[];
lb=[0 0];
ub=[inf inf];?
[x,fval]=fmincon('objfun',x0,A,b,Aeq,beq,lb,ub,'confun');
展开
 我来答
无与A仑比
2015-04-21 · TA获得超过150个赞
知道小有建树答主
回答量:148
采纳率:0%
帮助的人:114万
展开全部

正好我前两天也在研究这个函数,你把你运行的报错信息能贴出来吗?

根据我的经验,一般如果格式没有出现问题,那么就是约束的问题,我的程序就检查了好几次,有一次甚至提示引用函数fmincon出错,其实是约束的问题。

在你的约束条件里面,你看看ceq=那儿有没有问题~

约束那儿要弄清楚你的模型中哪些是非线性约束,哪些是线性约束,是等式还是非等式哈,这个很重要。

正好我这里有个之前参考的ppt你也学习学习,也可以直接在matlab的command window 窗口输入doc fmincon,会出现函数fmincon的用法介绍。

更多追问追答
追问
麻烦你加下我QQ,跪谢!903591141
追答
我给你发邮件吧~
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式