粒子群算法(1)----粒子群算法简单介绍 (11)

function y=Griewank(x)
%Griewan函数
%输入x,给出相应的y,x=(0,0,…,0)处有全局极小点0.
%编制人:
%编制日期:
[row,col]=size(x);
if row>1
    error(\'输入的參数错误\');
end
y1=1/4000*sum(x.^2);
y2=1;
for h=1:col
    y2=y2*cos(x(h)/sqrt(h));
end
y=y1-y2+1;
y=-y;

  绘制函数图像的代码例如以下:

function DrawGriewank()
%绘制Griewank函数图形
x=[-8:0.1:8];
y=x;
[X,Y]=meshgrid(x,y);
[row,col]=size(X);
for l=1:col
    for h=1:row
        z(h,l)=Griewank([X(h,l),Y(h,l)]);
    end
end
surf(X,Y,z);
shading interp

  第二个函数:Rastrigin函数,图形例如以下所看到的:

  适应度函数例如以下:(为了求最大值,我去了全部函数值的相反数) 

function y=Rastrigin(x)
%Rastrigin函数
%输入x,给出相应的y,x=(0,0,…,0)处有全局极小点0.
%编制人:
%编制日期:
[row,col]=size(x);
if row>1
    error(\'输入的參数错误\');
end
y=sum(x.^2-10*cos(2*pi*x)+10);
y=-y;

  绘制函数图像的代码例如以下:

function DrawRastrigin()
%绘制Rastrigin函数图形
x=[-5:0.05:5];
y=x;
[X,Y]=meshgrid(x,y);
[row,col]=size(X);
for l=1:col
    for h=1:row
        z(h,l)=Rastrigin([X(h,l),Y(h,l)]);
    end
end
surf(X,Y,z);
shading interp

  这样粒子群算法不得不草草收场。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgyywg.html