当前位置:首页 » 编程软件 » matlab最优化编程

matlab最优化编程

发布时间: 2024-01-11 17:56:36

‘壹’ 各位谁擅长遗传算法呀,我这有个函数得用遗传算法编一下,进行最优化求解的过程,最好是用Matlab。

% 主程序
%遗传算法主程序
%Name:genmain.m
%author:杨幂

clear
clf
%%初始化
popsize=50; %群体大小
chromlength=30; %字符串长度(个体长度)
pc=0.6; %交叉概率
pm=0.1; %变异概率
pop=initpop(popsize,chromlength); %随机产生初始群体
%%开始迭代
for i=1:20 %20为迭代次数
[objvalue]=calobjvalue(pop); %计算目标函数
fitvalue=calfitvalue(objvalue); %计算群体中每个个体的适应度
[newpop]=selection(pop,fitvalue); %复制
[newpop]=crossover(pop,pc); %交叉
[newpop]=mutation(pop,pm); %变异
[bestindivial,bestfit]=best(pop,fitvalue); %求出群体中适应值最大的个体及其适应值
y(i)=max(bestfit);%储存最优个体适应值
n(i)=i;
pop5=bestindivial;%储存最优个体
%解码
x1(i)=decodechrom(pop5,1,chromlength/2)*2/32767;
x2(i)=10+decodechrom(pop5,chromlength/2+1,chromlength/2)*10/32767;
pop=newpop;%将新产生的种群作为当前种群
end
%%绘图
figure(1)%最优点变化趋势图
i=1:20;
plot(y(i),'-r*')
xlabel('迭代次数');
ylabel('最优个体适应值');
title('最优点变化趋势');
legend('最优点');
grid on

figure(2)%最优点分布图
[X1,X2]=meshgrid(0:0.1:2,10:0.1:20);
Z=X1.^2+X2.^2;
mesh(X1,X2,Z);
xlabel('自变量x1'),ylabel('自变量x2'),zlabel('函数值f(x1,x2)');
hold on
plot3(x1,x2,y,'ro','MarkerEdgeColor','r','MarkerFaceColor','r','MarkerSize',5)
title('最优点分布');
legend('最优点');
hold off

[z index]=max(y); %计算最大值及其位置
x5=[x1(index),x2(index)]%计算最大值对应的x值
z

热点内容
酒瓶解压 发布:2024-11-16 20:29:20 浏览:729
视频怎样上传到手机 发布:2024-11-16 20:26:30 浏览:258
怎么把ppt文件压缩 发布:2024-11-16 20:22:30 浏览:685
linux大内存 发布:2024-11-16 20:22:28 浏览:950
屏蔽迅雷上传 发布:2024-11-16 19:49:17 浏览:599
java怎么定义方法 发布:2024-11-16 19:48:15 浏览:143
我的世界国际版为什么连接不到服务器 发布:2024-11-16 19:44:18 浏览:854
购物导航源码 发布:2024-11-16 19:35:48 浏览:145
打账号密码是什么 发布:2024-11-16 19:26:07 浏览:290
安卓4用什么版本微信 发布:2024-11-16 19:25:11 浏览:693