example2.m

来自「matlab编程:遗传算法求解最大值 matlab编程:遗传算法求解最大值」· M 代码 · 共 58 行

M
58
字号
popsize=20;                                       %群体大小

chromlength=10;                                   %字符串长度(个体长度)

pc=0.6;                                           %交叉概率

pm=0.001;                                         %变异概率

function 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,pc);                        %变异

[bestindividual,bestfit]=best(popu,fitvalue);%求出群体中适应值最大的个体及其适应值

y(i)=max(bestfit);

n(i)=i;

pop5=bestindividual;

x(i)=decodechrom(pop5,1,chromlength)*10/1023;

pop=newpop;

end

function[Triangle]=Triangle(a,b,c);
  if((a+b>c)&(b+c>a)&(c+a>b))
    if((a~=b)&(b~=e)&(c~=a))
               Triangle='scalene';
     ElSe
             if(((a==b)&(b~=c))|((c==b)&(a~=c))|((a==c)&(b~=a)))
                    Triangle='Isosceles';
             Else
                    Triangle='Equilateral';
             end;
     end;
   else             Triangle='no';
end;

fplot('10*sin(5*x)+7*cos(4*x)',[0 10])

hold on

plot(x,y,'r*')

hold off</div>

⌨️ 快捷键说明

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