matlab中pareto,matlab遗传算法三目标优化,出来的pareto前沿图只是二维图

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

三目标不是三维图么?怎么修改啊?啊

function f=multidisk(x)

global I1 I2 F

r=350;u=0.5;fai=1;W=3400;v=44.4444;m=4; tc=6.5; Dh=75;Wa=W*m;g=9.8;

Dmax=300;Tmax=260;Ti=35; Pmax=3;P0max=7;

J=4180;c=0.113;rou=7.8*10^(-6);E=Wa*v*v/(2*m*g);

n0=500*v/(pi*r);

F=pi/4*x(4)*x(4)*x(6);

I1=0; I11=0; I12=0; I13=0;

I2=0; I21=0; I22=0; I23=0;

n=100;delt=x(2)/n;t=x(1)-x(2)/2;

for k=1:(n+1)

l(k)=2*t*acos((x(1)*x(1)+t*t-(x(2)/2)*(x(2)/2))/(2*x(1)*t));

yI1(k)=l(k)/t;

if (k-1)==0||(k-1)==n

I11=I11+1/3*yI1(k);

elseif rem(k-1,2)~=0

I12=I12+4/3*yI1(k);

else

I13=I13+2/3*yI1(k);

end

t=t+delt;

end

I1=(I11+I12+I13)*delt;

I1=real(I1);

t=x(1)-x(2)/2;

for k=1:(n+1)

l(k)= 2*t*acos((x(1)*x(1)+t*t-(x(2)/2)*(x(2)/2))/(2*x(1)*t));

yI2(k)=l(k)/I1;

if (k-1)==0||(k-1)==n

I21=I21+1/3*yI2(k);

elseif rem(k-1,2)~=0

I22=I22+4/3*yI2(k);

else

I23=I23+2/3*yI2(k);

end

t=t+delt;

end

I2=(I21+I22+I23)*delt;

I2=real(I2);

f(1)=W*v*v*1000/(4*pi*F*u*I2*n0*g);

f(2)=x(5);

f(3)=4*3.4265e+005/(4180*pi*0.113*7.8e-6*x(3)*x(3)*x(5));

clear

clc

fitnessfcn=@multidisk;

nvars=6;

A=[];b=[];

Aeq=[];beq=[];

x0=[105;40;256;48;12;3];

lb=[80;30;250;40;10;1];

ub=[120;60;280;70;13;7];

options=gaoptimset( 'ParetoFraction',0.3,'PopulationSize',300,'generations',200,'StallGenLimit',200,'TolFun',1e-100,'PlotFcns',@gaplotpareto);

[x,fval]=gamultiobj(fitnessfcn,nvars,A,b,Aeq,beq,lb,ub,options);

我知道貌似是@gaplotpareto这个命令只能二维,不过百度了所有都找不到三维命令,难道pareto的前沿图只能是二维图么??求老哥解答啊,那 三目标怎么画图啊/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值