回复: 求助,fmincon函数报错
谢谢楼上,我的约束函数如下:
function [c,ceq]=mycon(x)
x1=x(1);
x2=x(2);
x3=x(3);
x4=x(4);
x5=x(5);
x6=x(6);
x7=x(7);
x8=x(8);
c=[x6+x7+x8+asin((x5-x4*sin(alpha+x6+x7))/x3)-150*pi/180;
asin(x1*sin(x6+x8)-(x1+x2)*sin(x6))-50*pi/180;
x1/x2-0.9;
0.7-x1/x2;
45-sqrt(x1*x1+x4*x4-2*x1*x2*cos(x7));
x5-x4*sin(x6+x7)+x3;
x4*sin(x6+x7)+x1*sin(80*pi/180)-x5;
(275-x4*sin(x6+x7))^2-x3^2;(275-x4*sin(x6+x7+x8))^2-x3^2;
(x1*sin(x7+x8)-(x1+x2)*sin(x7))^2-x2^2];
ceq=[];
调用程序如下:
OPT=optimset;OPT.LargeScale='off';
OPT.TolFun=1e-30;OPT.TolX=1e-15;OPT.Tolcon=1e-20;
x0=[260,370,93.6,173.9,160,0.07152,0.32098,1.8125];
A=[];B=[];Aeq=[];Beq=[];
lb=[0,0,290,0,0,3*pi/180,15*pi/180,90*pi/180];
ub=[290,1e5,1e5,297.5,290,5*pi/180,25*pi/180,110*pi/180];
>> [x,fval,exitflag,output]=fmincon(@fun1,x0,A,B,Aeq,Beq,lb,ub,@mycon,OPT)
|