matlab的多约束非线性规划问题

这个程序少什么吗?或是哪里有问题,为什么显示Error:Functiondefinitionsarenotpermittedinthiscontext.请大神们看一下fu... 这个程序少什么吗?或是哪里有问题,为什么显示Error: Function definitions are not permitted in this context.请大神们看一下
function f=myfun(x)
f=0.192457*1e-4*(x(2)+2)*x(1).^2*x(3);
function[c,cep]=mycon(x)
c(1)=350-163*x(1)^(-2.86)*x(3).^0.86;
c(2)=10-0.4*0.01*x(1).^(-4)*x(2)*x(3).^3;
c(3)=(x(2)+1.5)*x(1)+0.44*0.01*x(1).^(-4)*x(2)*x(3).^3-3.7*x(3);
c(4)=375-0.356*1e6*x(1)*x(2).^(-1)*x(3).^(-2);
c(5)=4-x(3)/x(1);
ceq=0;
A=[-1 0 0; 1 0 0; 0 -1 0; 0 1 0; 0 0 -1; 0 0 1];
b=[-1;4;-4.5;50;-10;30];
X0=[2.0;5.0;25.0];
1b=zeros(3,1);
[x,fval,exitflag,output,lambda]=fmincon(@sam9_5,x0,A,b,[],[],1b,[],@sam9_6);
展开
 我来答
百度网友687a7d0
推荐于2016-05-04
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部

你好

你的程序中有几处错误,修改如下:

非线性约束这里:

function[c,ceq]=mycon(x)%是ceq,不是p
c(1)=350-163*x(1)^(-2.86)*x(3).^0.86;
c(2)=10-0.4*0.01*x(1).^(-4)*x(2)*x(3).^3;
c(3)=(x(2)+1.5)*x(1)+0.44*0.01*x(1).^(-4)*x(2)*x(3).^3-3.7*x(3);
c(4)=375-0.356*1e6*x(1)*x(2).^(-1)*x(3).^(-2);
c(5)=4-x(3)/x(1);
ceq=[];%

主函数:

clear,clc
f=@(x)0.192457*1e-4*(x(2)+2)*x(1).^2*x(3);
A=[-1 0 0; 1 0 0; 0 -1 0; 0 1 0; 0 0 -1; 0 0 1];
b=[-1;4;-4.5;50;-10;30];
x0=[2.0;5.0;25.0];%是小x
lb=zeros(3,1);%改为lb不是1b
options=optimset('Algorithm','active-set');
[x,fval,exitflag,output,lambda]=fmincon(f,x0,A,b,[],[],lb,[],@mycon,options);

这样就能计算出来结果了。

希望对你有帮助

更多追问追答
追问

我那程序里面一开始就是cep啊,现在运行完出现了这个

请您解答一下

追答
那就把后面的那个ceq=[]改为你的cep,请仔细检查。满意,望及时采纳
光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式