天天看點

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

[email protected];

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的前沿圖隻能是二維圖麼??求老哥解答啊,那 三目标怎麼畫圖啊/