Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
初级会员
注册日期: 2008-08-02
年龄: 49
帖子: 4
声望力: 0 ![]() |
![]()
帮忙看下这个一元函数优化代码的错误
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, ![]() legend ??? Undefined function or method 'crtbp' for input arguments of type 'double'. Error in ==> ttt at 8 Chrom=crtbp(NIND,PRECI); |
![]() |
![]() |