- 积分
- 0
- 注册时间
- 2012-2-13
- 仿真币
-
- 最后登录
- 1970-1-1
|
悬赏10仿真币未解决
目标函数文件
function f=myfun(x)
z(1)=x(8)*x(9)*x(12)/(2*cos(x(13)/57.3));
z(2)=x(12)*(x(8)+x(8)*x(9))/(2*cos(x(13)/57.3));
z(3)=x(3)/2;
y(1)=z(1)+z(2)+z(3);
y(2)=x(1)*x(6)/(2*cos(x(7)/57.3));
y(3)=(x(3)+x(10))/2;
f=y(1)*y(2)*y(3);
变量的取值范围文件
x0=[38;0.55;73.5;30;20;3.5;30.22;59;0.48;56;49;2;23.5];
a=zeros(26,13);
a=[-1 0 0 0 0 0 0 0 0 0 0 0 0;
1 0 0 0 0 0 0 0 0 0 0 0 0;
0 -1 0 0 0 0 0 0 0 0 0 0 0;
0 1 0 0 0 0 0 0 0 0 0 0 0;
0 0 -1 0 0 0 0 0 0 0 0 0 0;
0 0 1 0 0 0 0 0 0 0 0 0 0;
0 0 0 -1 0 0 0 0 0 0 0 0 0;
0 0 0 1 0 0 0 0 0 0 0 0 0;
0 0 0 0 -1 0 0 0 0 0 0 0 0;
0 0 0 0 1 0 0 0 0 0 0 0 0;
0 0 0 0 0 -1 0 0 0 0 0 0 0;
0 0 0 0 0 1 0 0 0 0 0 0 0;
0 0 0 0 0 0 -1 0 0 0 0 0 0;
0 0 0 0 0 0 1 0 0 0 0 0 0;
0 0 0 0 0 0 0 -1 0 0 0 0 0;
0 0 0 0 0 0 0 1 0 0 0 0 0;
0 0 0 0 0 0 0 0 -1 0 0 0 0;
0 0 0 0 0 0 0 0 1 0 0 0 0;
0 0 0 0 0 0 0 0 0 -1 0 0 0;
0 0 0 0 0 0 0 0 0 1 0 0 0;
0 0 0 0 0 0 0 0 0 0 -1 0 0;
0 0 0 0 0 0 0 0 0 0 1 0 0;
0 0 0 0 0 0 0 0 0 0 0 -1 0;
0 0 0 0 0 0 0 0 0 0 0 1 0;
0 0 0 0 0 0 0 0 0 0 0 0 -1;
0 0 0 0 0 0 0 0 0 0 0 0 1];
b=[-31;46;-0.45;0.67;-58.8;88.2;-24;36;-16;24;-2.8;4.2;-24.18;36.27;-47;71;-0.38;0.57;-44.8;67.2;-39.2;58.8;-1.6;2.4;-18.8;28.2];
[x,fval]=fmincon(@myfun1,x0,a,b,[],[],[],[],@confun)
约束条件文件
function[c,ceq]=confun(x)
c(1)=0.46-(2*x(4)*sin(atan(1/x(2))/57.3))/x(3);
c(2)=(2*x(4)*sin(atan(1/x(2))/57.3))/x(3)-1.12;
c(3)=0.26-(2*x(11)*cos(x(13)/57.3))/(x(12)*(x(8)+x(8)*x(9)));
c(4)=(2*x(11)*cos(x(13)/57.3))/(x(12)*(x(8)+x(8)*x(9)))-1.13;
c(5)=0.11-x(4)*x(6)^(-1)*((x(1)^2+(x(1)*x(2))^2)^0.5)^(-1);
c(6)=x(4)*x(6)^(-1)*((x(1)^2+(x(1)*x(2))^2)^0.5)^(-1)-0.37;
c(7)=17-x(2)*x(1);
c(8)=x(2)*x(1)-26;
c(9)=23-x(9)*x(8);
c(10)=x(9)*x(8)-34;
c(11)=0.12*x(3)-x(5);
c(12)=x(5)-0.2*x(3);
ceq=[];
matlab中最终的显示结果
x =
38.0000
-13.0182
43.8601
50.9240
20.0000
3.5000
30.2200
59.0000
0.4800
56.0000
49.0000
2.0000
23.5000
fval =
5.6879e+005
我疑惑的是最终的各个x的取值中 -13.0182 43.8601 50.9240,而我在变量的取值范围内对这三个值设定的范围分别是0.45到0.67 58.8到88.2 24到36 而其他的x值都在我设定的范围内,很疑惑 我自己新学 好久都没找到原因,谢谢各位了 |
|