matlab常用的几个适应度评价函数_精品文档.docx

上传人:b****2 文档编号:1520212 上传时间:2022-10-22 格式:DOCX 页数:8 大小:303.93KB
下载 相关 举报
matlab常用的几个适应度评价函数_精品文档.docx_第1页
第1页 / 共8页
matlab常用的几个适应度评价函数_精品文档.docx_第2页
第2页 / 共8页
matlab常用的几个适应度评价函数_精品文档.docx_第3页
第3页 / 共8页
matlab常用的几个适应度评价函数_精品文档.docx_第4页
第4页 / 共8页
matlab常用的几个适应度评价函数_精品文档.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

matlab常用的几个适应度评价函数_精品文档.docx

《matlab常用的几个适应度评价函数_精品文档.docx》由会员分享,可在线阅读,更多相关《matlab常用的几个适应度评价函数_精品文档.docx(8页珍藏版)》请在冰豆网上搜索。

matlab常用的几个适应度评价函数_精品文档.docx

 

粒子群算法(6)-----几个适应度评价函数

下面给出几个适应度评价函数,并给出图形表示

 

    头几天机子种了病毒,重新安装了系统,不小心把程序全部格式化了,痛哭!

没办法,好多程序不见了,现在把这几个典型的函数重新编写了,把他们给出来,就算粒子群算法的一个结束吧!

痛恨病毒!

第一个函数:

Griewank函数,图形如下所示:

适应度函数如下:

(为了求最大值,我去了所有函数值的相反数)  

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

第三个函数Schaffer函数,图形如下所示:

函数的代码如下,因为该函数在(0,...,0)处有最大值1,因此不需要取相反数。

[c-sharp] viewplaincopy

1.function result=Schaffer(x1)  

2.%Schaffer 函数  

3.%输入x,给出相应的y值,在x=(0,0,…,0) 处有全局极大点1.  

4.%编制人:

  

5.%编制日期:

  

6.[row,col]=size(x1);  

7.if row>1  

8.    error('输入的参数错误');  

9.end  

10.x=x1(1,1);  

11.y=x1(1,2);  

12.temp=x^2+y^2;  

13.result=0.5-(sin(sqrt(temp))^2-0.5)/(1+0.001*temp)^2;  

  

绘制函数代码图形的代码如下:

[c-sharp] viewplaincopy

1.function DrawSchaffer()  

2.x=[-5:

0.05:

5];  

3.y=x;  

4.[X,Y]=meshgrid(x,y);  

5.[row,col]=size(X);  

6.for l=1:

col  

7.for h=1:

row  

8.z(h,l)=Schaffer([X(h,l),Y(h,l)]);  

9.end  

10.end  

11.surf(X,Y,z);  

12.shading interp  

  

第四个函数:

Ackley函数,函数图形如下:

函数的代码如下,因为该函数在(0,...,0)处有最小值0,因此需要取相反数

[c-sharp] viewplaincopy

1.function result=Ackley(x)  

2.%Ackley 函数  

3.%输入x,给出相应的y值,在x=(0,0,…,0) 处有全局极小点0,为得到最大值,返回值取相反数  

4.%编制人:

  

5.%编制日期:

  

6.[row,col]=size(x);  

7.if row>1  

8.    error('输入的参数错误');  

9.end  

10.result=-20*exp(-0.2*sqrt((1/col)*(sum(x.^2))))-exp((1/col)*sum(cos(2*pi.*x)))+exp

(1)+20;  

11.result=-result;  

 

绘制函数代码图形的代码如下:

[c-sharp] viewplaincopy

1.function DrawAckley()  

2.%绘制Ackley函数图形  

3.x=[-8:

0.1:

8];  

4.y=x;  

5.[X,Y]=meshgrid(x,y);  

6.[row,col]=size(X);  

7.for l=1:

col  

8.    for h=1:

row  

9.        z(h,l)=Ackley([X(h,l),Y(h,l)]);  

10.    end  

11.end  

12.surf(X,Y,z);  

13.shading interp  

第五个函数是:

Rosenbrock函数,该函数在(1,...,1)处有最小值0,为了得到最大值,取函数值的相反数。

函数图形如下所示

 

函数的代码:

 

[c-sharp] viewplaincopy

1.function result=Rosenbrock(x)  

2.%Rosenbrock 函数  

3.%输入x,给出相应的y值,在x=(1,1,…,1) 处有全局极小点0,为得到最大值,返回值取相反数  

4.%编制人:

  

5.%编制日期:

  

6.[row,col]=size(x);  

7.if row>1  

8.    error('输入的参数错误');  

9.end  

10.result=100*(x(1,2)-x(1,1)^2)^2+(x(1,1)-1)^2;  

11.result=-result;  

绘制函数图形的代码如下:

[c-sharp] viewplaincopy

1.function DrawRosenbrock()  

2.%绘制Rosenbrock函数图形,大铁锅函数,哈哈  

3.x=[-8:

0.1:

8];  

4.y=x;  

5.[X,Y]=meshgrid(x,y);  

6.[row,col]=size(X);  

7.for l=1:

col  

8.    for h=1:

row  

9.        z(h,l)=Rosenbrock([X(h,l),Y(h,l)]);  

10.    end  

11.end  

12.surf(X,Y,z);  

13.shading interp  

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 笔试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1