关于matlab里fmincon函数的问题
算一个很简单的三元函数的约束极值,要求得到最大值,我把原函数取了下负号,然后看着help写了下但是结果有问题。求指正要最大值的函数是y=(1+(1.2*x(1)-860)...
算一个很简单的三元函数的约束极值,要求得到最大值,我把原函数取了下负号,然后看着help写了下但是结果有问题。求指正
要最大值的函数是y=(1+(1.2*x(1)-860)/6485)*(1.5*x(2)+0.75*x(3)+0.7375),约束条件是x(1)+4500x(2)+3375x(3)=4570
三个变量取值分别是[1000,3000],[0,0.8],[0,0.25]
我是这么写的:
function y = fun1(x)
y = -(1+(1.2*x(1)-860)/6485)*(1.5*x(2)+0.75*x(3)+0.7375);
x=fmincon('fun1',[0 0 0],[],[],[1 4500 3375],[4570],[1000 0 0],[3000 0.8 0.25]);
然后说
fmincon stopped because the size of the current search direction is less than
twice the default value of the step size tolerance and constraints are
satisfied to within the default value of the constraint tolerance.
这是什么原因呢?怎么修改呢? 展开
要最大值的函数是y=(1+(1.2*x(1)-860)/6485)*(1.5*x(2)+0.75*x(3)+0.7375),约束条件是x(1)+4500x(2)+3375x(3)=4570
三个变量取值分别是[1000,3000],[0,0.8],[0,0.25]
我是这么写的:
function y = fun1(x)
y = -(1+(1.2*x(1)-860)/6485)*(1.5*x(2)+0.75*x(3)+0.7375);
x=fmincon('fun1',[0 0 0],[],[],[1 4500 3375],[4570],[1000 0 0],[3000 0.8 0.25]);
然后说
fmincon stopped because the size of the current search direction is less than
twice the default value of the step size tolerance and constraints are
satisfied to within the default value of the constraint tolerance.
这是什么原因呢?怎么修改呢? 展开
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询