⑴ 雷英杰编著的《MATLAB遗传算法工具箱及应用》第七章的第一个例子
程序倒数第六行应该是variable',还有注释掉倒数12行。把hold on的分号都去掉。
figure(1);
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];
chrom=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]=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,fieldd);
hold on
grid;
plot(variable',objv','b*');
figure(2)
plot(trace(1,:)');
hold on
plot(trace(2,:)','-.');grid;
legend('解的变化','种群均值的变化')
⑵ 如何调用MATLAB遗传算法工具箱
1、打开MATLAB软件。
⑶ 有关怎么应用matlab遗传算法工具箱GUI
GA就是钙的意识,如果是CA 则是癌症的意识。
⑷ matlab 遗传算法工具箱怎么用
推荐用shefiled的GA工具箱,里面的子函数写的很好,调用很方便。 配合一本gA的书内 学的很快;
另外 关于你这容个问题, 你的目标函数和约束函数是否在工作目录下,还有 在调用的时候 在函数名前面加@试试, 希望能帮到你
⑸ 求解:怎样使用MATLAB中的遗传算法计算器Optimization Tool中的GA——Genetic Algorithm,如图,重谢
比如通过MATLAB遗传算法的思想求解f(x)=x*sin(10pi*x)+2.0,-1<=x<=2的最大值问题,结果精确版到3位小数。
首先在matlab命令权窗口输入f=@(x)-(x*sin(10*pi*x)+2) 输出结果为
>> f=@(x)-(x*sin(10*pi*x)+2)
f =
@(x)-(x*sin(10*pi*x)+2)
接着输入gatool会打开遗传算法工具箱
显示51代之后算法终止,最小结果为-3.85027334719567,对应的x为1.851,由于自定义函数加了负号,所以原式的最大值为3.85027334719567,对应的x为1.851。
不过这是遗传算法得到的结果,每次运行的结果可能会有所不同,而且不一定是确切的最大值。
遗传算法适合应用在一些求最优解比较复杂的问题(常规的算法运算时间过长,甚至无法解决)。
⑹ matlab工具箱在工具栏里怎样调用
首先检查是否安装了所需的工具箱
比如:需调用遗传算法工具箱
则使用
a=ver('gatbx')
若返回非空信息,则已安装好,若需使用
则(以遗传算法为例子)
>>optimtool('ga');
或者工作窗口左下角start > toolbox >选择所需的工具箱即可