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

📄 exm06103171.m

📁 基于matlab的简单一元函数优化实例,对初次学习mabtlab函数优化者会有很大帮助
💻 M
字号:
fplot('variable.*sin(10*pi*variable)+2.0',[-1,2]);     %画出函数曲线
NIND=40;      %个体数目
MAXGEN=25;    %最大遗传函数
PRECI=20;     %变量的二进制位数
GGAP=0.9;    %代沟
trace=zeros(2,MAXGEN);              %寻优结果的初始值       
FieldD=[20;-1;2;1;0;1;1];           %区域描述器
Chorm=crtbp(NIND,PRECI);            %初始种群
gen=0;                              %代计数器 
variable=bs2rv(Chrom,FieldD);
ObjV=variable.*sin(10*pi*variable)+2.0;
while gen<MAXGEN,
    FitnV=ranking(-ObjV);
    SelCH=select('sus',Chrom,FitnV,GGAP);
    SelCH=recombin('xovsp',SelCh,0.7);
    SelCh=mut(SelCh);
    variable=bs2rv(SelCh,FieldD);
    ObjVSel=variable.*sin(10*pi*variable)+2.0;
    [Chrom ObjV]=reins(Chrom,SelCh,1.1,ObjV,ObjVSel);
    gen=gen+1;
    %输出最优解及其序号,并在目标函数中标出,Y为最优解,I为种群的序号
    [Y,I]=max(ObjV),hold on;
    plot(variable(I),Y,'bo');
    trace(1,gen)=max(ObjV);
    trace(2,gen)=sum(ObjV)/length(ObjV);
end
variable=bs2rv(Chrom,FielD);
hold on,grid;
plot(variable',ObjV','b*');
Figure(2);
plot(trace(1,:)');
hold on;
plot(trace(2,:)','-.');grid;
legend('解的变化','种群均值的变化')
    

⌨️ 快捷键说明

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