⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 c99.m

📁 MATLAB中常用的程序
💻 M
字号:
%编写目标函数
function [sol, eval] =gaDemo1Eeval(sol,options)
x=sol(1);
eval = x + 10*sin(5*x)+7*cos(4*x);

%参数说明
%eval:个体的适应度; 
%sol:当前个体,n+1个元素的行向量。

%遗传算法求最大值
clc
fplot('x + 10*sin(5*x)+7*cos(4*x)',[0 9])
% 生成初始种群,大小为10 
initPop=initializega(10,[0 9],'gademo1eeval1');
plot (initPop(:,1),initPop(:,2),'b*')
% 调用遗传函数
% 1次遗传迭代
[x endPop] = ga([0 9],'gademo1eeval1',[],initPop,[1e-5...
1 1],'maxGenTerm',1,'normGeomSelect',[0.08],['arithXover'], ... [20], 'nonUnifMutation',[2 1 3]);

plot (endPop(:,1),endPop(:,2),'bo')
% 25次遗传迭代
[x endPop bpop trace] = ga([0 9],'gademo1eeval1',[],initPop, [1e-6 1 1],'maxGenTerm',25, 'normGeomSelect',[0.08], ['arithXover'],[2],'nonUnifMutation',[2 25 3]);

plot (endPop(:,1),endPop(:,2),'y*')
figure(2)
plot(trace(:,1),trace(:,3),'y-')
hold on
plot(trace(:,1),trace(:,2),'r-')
xlabel('Generation'); ylabel('Fittness');
legend('解的变化','种群平均值的变化');

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -