求高人指教matlab中的fmincon函数!!!为什么就是没得最优结果呢?不晓得哪里错了 10
首先编写目标函数M文件pszdq1.m,返回x处的函数值f。functionf=myfun(x)f=813645.95*3*(x(6)^2-x(5)^2)/(421509...
首先编写目标函数M文件pszdq1.m,返回x处的函数值f。
function f=myfun(x)
f=813645.95*3*(x(6)^2-x(5)^2)/(42150950*x(1)^2*x(2)*1.57*x(4)*x(3)^2*(x(6)^3-x(5)^3));
由于约束条件中有非线性约束,所以需要编写一个描述非线性约束条件的M文件pszdqc.m如下:
function[c,ceq]=mycon(x)
c(1)=1.1*0.5*3.14*x(4)*x(3)^2*(x(6)^3-x(5)^3)/(3*(x(6)^2-x(5)^2))-0.8*1400*9.8*2.286*0.298/2;
c(2)=4*3.14*x(3)^2*x(4)*x(6)*(x(6)^3-x(5)^3)/(3*(x(6)^2-x(5)^2)*(x(6)+x(5))*(x(6)^3-x(5)^3+2*x(6)*x(5)*(x(6)-x(5))))-7*10^6;
c(3)=0.6*9.8*1400*27.8^2*2.286/(2*x(7)*(x(2)^2-x(1)^2)*27.8)-6;
c(4)=1400*8.33^2*2.286/(7233*444*3.14*x(1)^2*x(2))-(15+273.15);
c(5)=1.27-x(6)/x(5);
c(6)=x(6)/x(5)-1.63;
ceq=[];
然后设置线性约束的系数;
A=[0,0,0,1,0,0,0;1,0,0,0,0,0,0;-0.5,0,0,0,0,1,0;0,0,0,0,-1,0,0;0,0,0.5,0,-0.5,-0.5,0];
b=[101000;0.77*0.356;-2;-0.073;-0.073];
给定初值和变量下限约束,并调用优化过程。
x0=[0.267;0.02;0.055;10*10^6;0.13;0.11;0.8726];
lb=zeros(7,1);
options=optimset('LargeScale','off'); [x,fval,exitflag,output,lambda]=fmincon(@pszdq1,x0,A,b,[],[],lb,[],@pszdqc,options); 展开
function f=myfun(x)
f=813645.95*3*(x(6)^2-x(5)^2)/(42150950*x(1)^2*x(2)*1.57*x(4)*x(3)^2*(x(6)^3-x(5)^3));
由于约束条件中有非线性约束,所以需要编写一个描述非线性约束条件的M文件pszdqc.m如下:
function[c,ceq]=mycon(x)
c(1)=1.1*0.5*3.14*x(4)*x(3)^2*(x(6)^3-x(5)^3)/(3*(x(6)^2-x(5)^2))-0.8*1400*9.8*2.286*0.298/2;
c(2)=4*3.14*x(3)^2*x(4)*x(6)*(x(6)^3-x(5)^3)/(3*(x(6)^2-x(5)^2)*(x(6)+x(5))*(x(6)^3-x(5)^3+2*x(6)*x(5)*(x(6)-x(5))))-7*10^6;
c(3)=0.6*9.8*1400*27.8^2*2.286/(2*x(7)*(x(2)^2-x(1)^2)*27.8)-6;
c(4)=1400*8.33^2*2.286/(7233*444*3.14*x(1)^2*x(2))-(15+273.15);
c(5)=1.27-x(6)/x(5);
c(6)=x(6)/x(5)-1.63;
ceq=[];
然后设置线性约束的系数;
A=[0,0,0,1,0,0,0;1,0,0,0,0,0,0;-0.5,0,0,0,0,1,0;0,0,0,0,-1,0,0;0,0,0.5,0,-0.5,-0.5,0];
b=[101000;0.77*0.356;-2;-0.073;-0.073];
给定初值和变量下限约束,并调用优化过程。
x0=[0.267;0.02;0.055;10*10^6;0.13;0.11;0.8726];
lb=zeros(7,1);
options=optimset('LargeScale','off'); [x,fval,exitflag,output,lambda]=fmincon(@pszdq1,x0,A,b,[],[],lb,[],@pszdqc,options); 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询