基本信息
源码名称:matlab遗传算法
源码大小:2.95KB
文件格式:.rar
开发语言:MATLAB
更新时间:2021-11-22
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 2 元×
微信扫码支付:2 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
用matlab实现遗传算法
objvalue = cal_objvalue(pop);
%选择操作
newpop = selection(pop,objvalue);
%交叉操作
newpop = crossover(newpop,pc);
%变异操作
newpop = mutation(newpop,pm);
%更新种群
pop = newpop;
%寻找最优解
[bestindividual,bestfit] = best(pop,cal_objvalue(pop));
x2 = binary2decimal(bestindividual);
x1 = binary2decimal(pop);
y1 = cal_objvalue(pop);
if mod(i,10) == 0
figure;
fplot('10*sin(5*x) 7*abs(x-5) 10',[0 10]);
hold on;
plot(x1,y1,'*');
title(['迭代次数为n=' num2str(i)]);
end
end
fprintf('The best X is --->>%5.2f\n',x2);
fprintf('The best Y is --->>%5.2f\n',bestfit);
用matlab实现遗传算法
for i = 1:100
%计算适应度值(函数值)objvalue = cal_objvalue(pop);
%选择操作
newpop = selection(pop,objvalue);
%交叉操作
newpop = crossover(newpop,pc);
%变异操作
newpop = mutation(newpop,pm);
%更新种群
pop = newpop;
%寻找最优解
[bestindividual,bestfit] = best(pop,cal_objvalue(pop));
x2 = binary2decimal(bestindividual);
x1 = binary2decimal(pop);
y1 = cal_objvalue(pop);
if mod(i,10) == 0
figure;
fplot('10*sin(5*x) 7*abs(x-5) 10',[0 10]);
hold on;
plot(x1,y1,'*');
title(['迭代次数为n=' num2str(i)]);
end
end
fprintf('The best X is --->>%5.2f\n',x2);
fprintf('The best Y is --->>%5.2f\n',bestfit);