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=[ -10:0.1 : 10 ];
y =[ -10 :0.1 : 10 ];
[X,Y] = meshgrid(x,y);
[row,col] = size(Y);
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
本文介绍了一个多维非线性优化测试函数——Griewank函数,并提供了其MATLAB实现代码。该函数在全局最优点(0,0,…,0)处取值为0,在实际应用中常用于算法性能测试。

2512

被折叠的 条评论
为什么被折叠?



