关于matlab中fmincon的错误(急求!!!)一直报错,求大神解答,小白在线求解答!

%主程序clear allclcE1=210000;miu=0.3;ds=2;dt=3;D=300;d=175;R0=39;rf=40.3;x0=[5.8 2.9 145.7 116.8 143.66 116.1 4.8];%分别是H h R r R1 r1 lamdax7=0:0.1:9;aa=pi*E1.*x0(2).*x7/(6*(1-miu^2));bb=log(x0(3)./x0(4))./(x0(5)-x0(6)).^2;cc=x0(1)-x7.*(x0(3)-x0(4))./(x0(5)-x0(6));dd=x0(1)-0.5.*x7-(x0(3)-x0(4))./(x0(5)-x0(6));ee=x0(2).^2;F=aa.*bb.*(cc.*dd+ee);%压紧力函数plot(x7,F,'b')hold on%设计变量的上下界Lb=[4 2 140 115 135 115 4];%设计变量下限Ub=[7 4 150 125 145 125 6];%设计变量上限%线性不等式约束系数矩阵和常数%H h R r R1 r1 lamdaA=[1,-2.2,0,0,0,0,0; -1,1.7,0,0,0,0,0;1,0,-pi/15,pi/15,0,0,0;-1,0,pi/20,-pi/20,0,0,0;0,0,1,-1.35,0,0,0;0,0,-1,1,2,0,0;0,-50,1,0,0,0,0;0,35,-1,0,0,0,0;0,0,0,0,1,0,0;0,0,0,0,-1,0,0;0,0,1,0,-1,0,0;0,0,-1,0,1,0,0;0,0,0,-1,0,1,0;0,0,0,1,0,-1,0;];b=[0 0 0 0 0 0 0 0 D./2-(D+d)./47-160];%线性等式约束Aeq=[];beq=[];options=optimset('largescale','off','display','iter');[x,fval,exitflag,out]=fmincon(@objfun,x0,A,b,Aeq,beq,Lb,Ub,@confun,options);[c]=confun(x);x7=0:0.1:9;%自变量aa=pi*E1.*x(2).*x7/(6*(1-miu^2));bb=log(x(3)./x(4))./(x(5)-x(6)).^2;cc=x(1)-x7.*(x(3)-x(4))./(x(5)-x(6));dd=x(1)-.5.*x7-(x(3)-x(4))./(x(5)-x(6));ee=x(2).^2;F=aa.*bb.*(cc.*dd+ee);%压紧力函数plot(x7,F,'r')

b与A维度不正确,A有14行,对应的b应该有14个参数
b=[0 0 0 0 0 0 0 0 D./2-(D+d)./47-160]; 这句应该改成b=[0 0 0 0 0 0 0 0 D./2 -(D+d)./4 7 -1 6 0]; 即把(D./2)(-(D+d)./4)(7)(-1)(6)(0)拆开。
这样懂了吧!
温馨提示:内容为网友见解,仅供参考
第1个回答  2016-05-24
错误在fmincon.m里,但是你给的是主函数......追问

提示是Row dimension of A is inconsistent with length of b. 意思是A、b维度不一致?

%%文件在百度云了
http://pan.baidu.com/s/1slkoPNf

追答

恩,维度的问题

相似回答