matlab常用的几个适应度评价函数_精品文档Word文件下载.docx
《matlab常用的几个适应度评价函数_精品文档Word文件下载.docx》由会员分享,可在线阅读,更多相关《matlab常用的几个适应度评价函数_精品文档Word文件下载.docx(8页珍藏版)》请在冰豆网上搜索。
Griewan函数
输入x,给出相应的y值,在x
(
0
…,
)处有全局极小点0.
编制人:
编制日期:
[row,col]
size(x);
if
row
>
1
error(
'
输入的参数错误
);
end
y1
/
4000
*
sum(x.
^
2
y2
;
for
h
:
col
cos(x(h)
sqrt(h));
-
+
=-
y;
绘制函数图像的代码如下:
DrawGriewank()
绘制Griewank函数图形
x
[
8
0.1
];
x;
[X,Y]
meshgrid(x,y);
size(X);
l
row
z(h,l)
Griewank([X(h,l),Y(h,l)]);
surf(X,Y,z);
shading
interp
第二个函数:
Rastrigin函数,图形如下所示:
Rastrigin(x)
Rastrigin函数
10
cos(
pi
x)
DrawRastrigin()
绘制Rastrigin函数图形
5
0.05
Rastrigin([X(h,l),Y(h,l)]);
第三个函数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>
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;
绘制函数代码图形的代码如下:
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:
8.z(h,l)=Schaffer([X(h,l),Y(h,l)]);
10.end
11.surf(X,Y,z);
12.shading
interp
第四个函数:
Ackley函数,函数图形如下:
函数的代码如下,因为该函数在(0,...,0)处有最小值0,因此需要取相反数
result=Ackley(x)
2.%Ackley
处有全局极小点0,为得到最大值,返回值取相反数
6.[row,col]=size(x);
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;
绘制函数代码图形的代码如下:
DrawAckley()
2.%绘制Ackley函数图形
3.x=[-8:
0.1:
8];
4.y=x;
5.[X,Y]=meshgrid(x,y);
6.[row,col]=size(X);
9.
z(h,l)=Ackley([X(h,l),Y(h,l)]);
10.
end
11.end
12.surf(X,Y,z);
13.shading
第五个函数是:
Rosenbrock函数,该函数在(1,...,1)处有最小值0,为了得到最大值,取函数值的相反数。
函数图形如下所示
函数的代码:
result=Rosenbrock(x)
2.%Rosenbrock
3.%输入x,给出相应的y值,在x=(1,1,…,1)
10.result=100*(x(1,2)-x(1,1)^2)^2+(x(1,1)-1)^2;
绘制函数图形的代码如下:
DrawRosenbrock()
2.%绘制Rosenbrock函数图形,大铁锅函数,哈哈
z(h,l)=Rosenbrock([X(h,l),Y(h,l)]);