📄 ywss.m
字号:
A=0.01/3;
B=0.05/3;
C=0.1/3;
DJ=[A,B,C];
D=ones(108,7);
D(:,1)=B*ones(108,1);
D(:,5)=C*ones(108,1);
for i=2:3
for j=1:3
for k=1:3
for l=1:3
for m=1:2
D((i-2)*2*3^3+(j-1)*3*3*2+(k-1)*3*2+(l-1)*2+m,2)=DJ(i);
D((i-2)*2*3^3+(j-1)*3*3*2+(k-1)*3*2+(l-1)*2+m,3)=DJ(j);
D((i-2)*2*3^3+(j-1)*3*3*2+(k-1)*3*2+(l-1)*2+m,4)=DJ(k);
D((i-2)*2*3^3+(j-1)*3*3*2+(k-1)*3*2+(l-1)*2+m,6)=DJ(l);
D((i-2)*2*3^3+(j-1)*3*3*2+(k-1)*3*2+(l-1)*2+m,7)=DJ(m);
end;end;end;end;end
a=[0.075,0.225,0.075,0.075,1.125,12,0.5625];
b=[0.125,0.375,0.125,0.125,1.875,20,0.935];
xx=ones(30,7);
for i=1:7
xx(:,i)=unifrnd(a(i),b(i),30,1);
end
dh=[0.001,-0.001];
minx2=xx(1:2,:);
minx1=xx(1,:);
minzz=3000000;
for i=1:108
minz=3000000;
zz=Cfee(D(i,:));
if zz>minzz
continue;
end
for h=1:30
xx1=xx;
z=Czfee(xx1(h,:),D(i,:));
for k=1:7
minz1=3000000;
for l=1:2
z1=z;
xx2=xx1;
for j=1:1
u=1;
z2=z1;
while z2<=z1
z1=z2;
xx1(h,k)=u*dh(l)+xx1(h,k);
if xx1(h,k)>b(k)|xx1(h,k)<a(k)
break;
end
z2=Czfee(xx1(h,:),D(i,:));
u=u*2;
end
if z2>z1
u=u/2;
end
xx1(h,k)=xx1(h,k)-dh(l)*u;
end
z2=z1;
while z2<=z1
z1=z2;
xx1(h,k)=xx1(h,k)+dh(l);
if xx1(h,k)>b(k)|xx1(h,k)<a(k)
break;
end
z2=Czfee(xx1(h,:),D(i,:));
end
xx1(h,k)=xx1(h,k)-dh(l);
minz2(l)=z1;
minx2(l,:)=xx1(h,:);
minD2(l,:)=D(i,:);
xx1=xx2;
end
minz1=min(minz2);
if minz1==minz2(1)
n=1;
else
n=2;
end
minx1=minx2(n,:);
minD1=minD2(n,:);
xx1(h,:)=minx1;
end
if minz>minz1
minz=minz1;
minx=minx1;
minD=minD1;
end
end
if minzz>minz
minzz=minz;
minxx=minx;
minDD=minD;
end
minzz
i
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -