有没有大神用过刘国华那篇用matlab实现遗传算法程序的论文中的代码的?里面的那个decoding程序中的参数funname是什么?我开始以为是cos(5*x)-sin(3*x)+10,x在1-7之间,但是代入不正确,求正解
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/16 21:57:33
有没有大神用过刘国华那篇用matlab实现遗传算法程序的论文中的代码的?里面的那个decoding程序中的参数funname是什么?我开始以为是cos(5*x)-sin(3*x)+10,x在1-7之间,但是代入不正确,求正解
有没有大神用过刘国华那篇用matlab实现遗传算法程序的论文中的代码的?
里面的那个decoding程序中的参数funname是什么?我开始以为是cos(5*x)-sin(3*x)+10,x在1-7之间,但是代入不正确,求正解
有没有大神用过刘国华那篇用matlab实现遗传算法程序的论文中的代码的?里面的那个decoding程序中的参数funname是什么?我开始以为是cos(5*x)-sin(3*x)+10,x在1-7之间,但是代入不正确,求正解
funname是适值函数,它也是一个子函数,如果要求的cos(5*x)-sin(3*x)+10,对于给出的每一个x值,调用funname就会得出相应的y值.
遗传算法的代码分为好几部分:
decoding是解码的子函数,下面是我编的代码,要是有不懂的地方可以再问我:
%二进制转化成十进制
function dec=decodebinary(pop)
[m,n]=size(pop);
dec=zeros(m,1);
for i=1:m
s=0;
for j=1:n
if(pop(i,j))==1
s=s+2.^(j-1);
end
dec(i,1)=s;
end
end
%解码程序(将相应的十进制转化到相应的x范围)
function pop2=decodechrom(pop,bits,spoint,length,max,min)
pop1=pop(:,spoint:spoint+length-1);
w=decodebinary(pop1);
scale=(max-min)./(2.^bits-1);
pop2=w*scale+min;
要是还需要其它的交叉变异之类的代码可以联系我