matlab常用的几个适应度评价函数_第1页
matlab常用的几个适应度评价函数_第2页
matlab常用的几个适应度评价函数_第3页
matlab常用的几个适应度评价函数_第4页
matlab常用的几个适应度评价函数_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

/niuyongjie/article/details/1619496

粒子群算法(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]

\o"viewplain"viewplain\o"copy"copyfunction

result=Schaffer(x1)

%Schaffer

函数

%输入x,给出相应的y值,在x=(0,0,…,0)

处有全局极大点1.

%编制人:

%编制日期:

[row,col]=size(x1);

if

row>1

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

end

x=x1(1,1);

y=x1(1,2);

temp=x^2+y^2;

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

绘制函数代码图形的代码如下:[c-sharp]

\o"viewplain"viewplain\o"copy"copyfunction

DrawSchaffer()

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)=Schaffer([X(h,l),Y(h,l)]);

end

end

surf(X,Y,z);

shading

interp

第四个函数:Ackley函数,函数图形如下:函数的代码如下,因为该函数在(0,...,0)处有最小值0,因此需要取相反数[c-sharp]

\o"viewplain"viewplain\o"copy"copyfunction

result=Ackley(x)

%Ackley

函数

%输入x,给出相应的y值,在x=(0,0,…,0)

处有全局极小点0,为得到最大值,返回值取相反数

%编制人:

%编制日期:

[row,col]=size(x);

if

row>1

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

end

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

result=-result;

绘制函数代码图形的代码如下:[c-sharp]

\o"viewplain"viewplain\o"copy"copyfunction

DrawAckley()

%绘制Ackley函数图形

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)=Ackley([X(h,l),Y(h,l)]);

end

end

surf(X,Y,z);

shading

interp

第五个函数是:Rosenbrock函数,该函数在(1,...,1)处有最小值0,为了得到最大值,取函数值的相反数。函数图形如下所示

函数的代码:

[c-sharp]

\o"viewplain"viewplain\o"copy"copyfunction

result=Rosenbrock(x)

%Rosenbrock

函数

%输入x,给出相应的y值,在x=(1,1,…,1)

处有全局极小点0,为得到最大值,返回值取相反数

%编制人:

%编制日期:

[row,col]=size(x);

if

row>1

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

end

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

result=-result;

绘制函数图形的代码如下:[c-sharp]

\o"viewplain"viewplain\o"copy"copyfunction

DrawRosenbrock()

%绘制Rosenbrock函数图形,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论