Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2008-10-04, 20:57   #1
houz5559
初级会员
 
注册日期: 2008-08-02
年龄: 49
帖子: 4
声望力: 0
houz5559 正向着好的方向发展
默认 [求助]求帮忙看下这个程序错在哪里

一个很简单的多目标优化问题,因为没有学过MATLAB,自己看书参照编写的MATLAB代码,运算不了,哪位费心帮忙看下,能不能帮我把运算结果做出来,这对我来说很重要,谢谢了。

Min f1=12.84X1+86.72X2
Min f2=13.34X1+124.10X2
s.t. 2≤X1≤12 3≤X2≤15


Function f1=f(x)
f1=x(:,1).*12.84+x(:,2).*86.72;
Function f2=f(x)
F2=x(:,1).*13.34+x(:,2).*124.10;
NIND=100
MAXGEN=50
NVAR=2
PRECI=20
GGAP=0.9
tracel=[ ]; trace2=[ ]; trace3=[ ];
FieldD=[rep([PRECI],[1,NVAR]);[2,3;12,15];rep([1;0;1;1],[1,NVAR])]
Chrom=crtbp(NIND,NVAR*PRECI);
V=bs2rv(Chrom,FieldD)
gen=2
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(′xovsp′,SelCh,0.7);
Chrom=mut(SelCh);
V=bs2rv(Chrom,FieldD);
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))/length(f2(v));
trace3(gen,1)=min(f1(v)+f2(v));
trace1(gen,2)=sum(f1(v))/length(f1(v))+sum(f2(v))/length(f2(v));
gen=gen+1;
end
figure(1);clf;
plot(tracel(:,1));hold on;plot(tracel(:,2),′-.′);
plot(tracel(:,1),′.′); plot(tracel(:,2),′.′);grid;
legend
xlabel
figure(2);clf;
plot(trace2(:,1));hold on;
plot(trace2(:,2),′-.′);
plot(trace2(:,1),′.′);
plot(trace2(:,2),′.′);grid;
legend
xlabel
figure(3);clf;
plot(trace3(:,1));hold on;
plot(trace3(:,2),′-.′);
plot(trace3(:,1),′.′);
plot(trace3(:,2),′.′);grid;
legend
xlabel
figure(4);clf;plot(f1(v));hold on;
polt(f2(v),′r-.′);grid;
houz5559 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 12:47


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.