在优化智能算法的过程中少不了需要测试函数验证算法效果,这次就来讲解一下最典型的测试函数格里旺克函数(Griewank function)
这里主要研究格里旺克函数的二维形式,也就是G(x1,x2)的函数三维图像。
一、定义函数公式
格里旺克函数是数学上常用于测试优化程序效率的函数,定义如下:
对于以上的公式,可以用函数文件将公式表达出来,具体matlab代码如下:
function y = Griewank(x)
[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;
二、绘制图形
matlab中有很多的绘图工具,二维绘图中除了常用的笛卡尔坐标系绘图函数 plot()函数和极坐标系绘图函数 polar()函数以外,还提供了半对数坐标图形绘制函数 semilogx()和 semilogy()以及对数坐标图形的绘制函数 loglog()函数。
对于三维图像,有plot3()函数绘制三维曲线图,用meshgrid()函数生成网格数据绘制三维网格图。三维表面图可以用来表示三维空间内数据的变化规律,与前面meshgrid三