for k=1:100
for z=1:100
for a = 1: 3
X(a, 1) = rand(1);
TempX(a) = 2 * X(a, 1);
end
if myjudge(TempX(1), TempX(2), TempX(3)) == 1
break
end
end
for g = 1:3
MaxX(g) = TempX(g);
end
MaxF = myfunction(MaxX(1), MaxX(2), MaxX(3));
for i = 2:5000
for j =1:3
X(j, i) = 4 * X(j, i - 1) * (1 - X(j, i - 1));
TempX(j) = 2 * X(j, i);
end
if myjudge(TempX(1), TempX(2), TempX(3))==1
TempF = myFunction(TempX(1), TempX(2), TempX(3));
if TempF > MaxF
MaxX(j) = TempX(j);
MaxF = TempF;
end
end
end
%二次载波
for i = 1:3
X(i, 1) =rand(1);
end
for i = 2:5000
for j = 1:3
X(j, i) = 4 * X(j, i - 1) * (1 - X(j, i - 1));
end
end
for i = 1:5000
for j = 1:3
TempX(j) = MaxX(j) + 0.0001 * X(j, i);
end
if myjudge(TempX(1), TempX(2), TempX(3))==1
TempF = myfunction(TempX(1), TempX(2), TempX(3));
if TempF > MaxF
MaxX(j) = TempX(j);
MaxF = TempF;
end
end
end
MaxF = vpa(MaxF, 4);
for i = 1:3
MaxX(i) = vpa(MaxX(i), 4);
end
Max(k)=MaxF;
MaxX1(k)=MaxX(1);
MaxX2(k)=MaxX(2);
MaxX3(k)=MaxX(3);
end
subplot(2,2,1)
plot(MaxX1(1,:));
subplot(2,2,2)
plot(MaxX2(1,:));
subplot(2,2,3)
plot(MaxX3(1,:));
subplot(2,2,4)
plot(Max(1,:));
xlabel('k')
ylabel('Max')
grid on
sz=subs(Max)
[m,n]=max(sz);
B=Max(n);
B1=MaxX1(n);
B2=MaxX2(n);
B3=MaxX3(n);
- 1
- 2
- 3
- 4
前往页