查看单个帖子
旧 2008-10-12, 11:18   #1
houz5559
初级会员
 
注册日期: 2008-08-02
年龄: 49
帖子: 4
声望力: 0
houz5559 正向着好的方向发展
默认 帮忙看下这个错误怎么解决

帮忙看下这个一元函数优化代码的错误
f(x)=xsin(10π.x)+2.0 x∈[-1,2]

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

??? Undefined function or method 'crtbp' for input arguments of type 'double'.

Error in ==> ttt at 8
Chrom=crtbp(NIND,PRECI);
houz5559 当前离线   回复时引用此帖