谁能把这个MATLAB程序改成C/C++的
%=======================%演化算法部分%=======================%pop=rand(20,1)*10;%随机产生初始群体ob...
%=======================
%演化算法部分
%=======================
%
pop= rand(20,1)*10; %随机产生初始群体
objvalue =10*sin(5*pop)+7*cos(4*pop); %//10*sin(5*x)+7*cos(4*x);
for i=1:200 %200为迭代次数
for j=1:19
a =rand();
x = a * pop(j) + (1 - a) * pop(j+1);
obj = 10*sin(5*x)+7*cos(4*x);
if obj > objvalue(j)
pop(j) = x;
objvalue(j) = obj;
end
end
end
%=======================
%实验结果绘图部分
%=======================
%
x = pop ;
y = objvalue;
fplot('10*sin(5*x)+7*cos(4*x)',[0 10])%画线 以函数10*sin(5*x)+7*cos(4*x) x的范围是0到10
hold on
plot(x,y,'r*')%标点 r*表示红色;
hold off 展开
%演化算法部分
%=======================
%
pop= rand(20,1)*10; %随机产生初始群体
objvalue =10*sin(5*pop)+7*cos(4*pop); %//10*sin(5*x)+7*cos(4*x);
for i=1:200 %200为迭代次数
for j=1:19
a =rand();
x = a * pop(j) + (1 - a) * pop(j+1);
obj = 10*sin(5*x)+7*cos(4*x);
if obj > objvalue(j)
pop(j) = x;
objvalue(j) = obj;
end
end
end
%=======================
%实验结果绘图部分
%=======================
%
x = pop ;
y = objvalue;
fplot('10*sin(5*x)+7*cos(4*x)',[0 10])%画线 以函数10*sin(5*x)+7*cos(4*x) x的范围是0到10
hold on
plot(x,y,'r*')%标点 r*表示红色;
hold off 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询