回 帖 发 新 帖 刷新版面

主题:[讨论]二元函数多目标优化程序错误求教

各位老师你好!我在编程计算二元函数多目标优化时,遇到以下的错误,不知如何解决,虚心向各位求教。(本人初次接触Matlab)。
min f1=295-2.28X2-0.21X2^2+1.27X1X2
min f2=44.81-1.9612X2-0.0347X2^2+0.4541X1X2
s.t. 2<X1<5,  5<X2<7 
程序如下:Function f1=f(x);
f1=1.27*x(:,1).*x(:,2)-0.21*x(:,2).*x(:,2)+295-2.28*x(:,2);
Function f2=f(x);
f2=44.81-1.9612*x(:,2)-0.0347*x(:,2).*x(:,2)+0.4541*x(:,1).*x(:,2);
MAXGEN=50;
NVAR=2;
PRECI=20;
GGAP=0.9;
trace1=[]; trace2=[]; trace3=[];
Fieldd=[rep([PRECI],[1,NVAR]);[2,5:7,5];rep([1;0;1;1],[1,NVAR])];
Chrom=crtbp(NIND;NVAR,PRECI);
v=bs2rv(Chrom,FieldD);
gen=1;
while gen<MAXGEN;
[NIND,N]=size(Chrom);
M=fix(NIND/2);
ObjV1=f1(v(1:M.:));
FitnV1=ranking(ObjV1);
SelCh1=select('sus',Chrom(1:M.:),FitnV1,GGAP);
ObjV2=f2(v(M+1:NIND.:));
FitnV2=ranking(ObjV2);
SelCh2=select('sus',Chrom((M+1):NIND.:),FitnV2,GGAP);
SelCh=[SelCh1;SelCh2];
SelCh=recombin('x0vsp',SelCh,0.7);
Chrom=mut(SelCh);
v=bs2rv(Chrom,FieldD);
trace(gen,1)=min(f1(v));
trace1(gen,1)=min(f1(v));
trace1(gen,2)=sum(f1(v)/length(f1(v));
trace2(gen,1)=min(f2(v));
trace2(gen,2)=sum(f2(v))/lengh(f2(v));
trace3(gen,1)=min(f1(v)+f2(v));
trace3(gen,2)=sum(f1(v))/length(f1(v))+sum(f2(v))/length(f2(v));
gen=gen+1;
end
figure(1);elf;
plot(trace1(:,1);hold on;plot(trace1(:,2),'-.');
plot(trace1(:,1),'.');plot(trace(:,2),'.');grid;
legend('解的变化','种群均值的变化');
xlabel('迭代次数');ylabel('目标函数值');
figure(2);elf;
plot(trace2(:,1));hold on;
plot(trace2(:,2),'-.');
plot(trace2(:,1),'.');
plot(trace2(:,2),'.');grid;
legend('解的变化','种群均值的变化');
xlabel('迭代次数');ylabel('目标函数值');
figure(3);elf;
plot(trace3(:,1));hold on;
plot(trace3(:,2),'-.');
plot(trace3(:,1),'.');
plot(trace3(:,2),'.');grid;
legend('解的变化','种群均值的变化');
xlabel('迭代次数',);ylabel('目标函数值'); 
figure(4);elf;plot(f1(v));hold on;
plot(f2(v),'r-.');grid;
??? Attempt to execute SCRIPT function as a function.

回复列表 (共1个回复)

沙发

[quote]??? Attempt to execute SCRIPT function as a function
[/quote]
你给的程序是不是就放在一个M文件中?

我来回复

您尚未登录,请登录后再回复。点此登录或注册