I ran across an interesting function, apparently created by fellow named P. Charbonneau, in a couple of articles that deal with numeric optimization. See the image below. The function is:
f(x,y) = [16x(1-x)y(1-y)sin(9*pi*x)sin(9*pi*y)]^2
The function has one global maximum value at x = 0.5 and y = 0.5. Here’s how to graph the function using SciLab, a free program similar to the over-priced MatLab:
-->x=linspace(0,1,100); -->y=linspace(0,1,100); -->[xx,yy]=meshgrid(x,y); -->Z = (16 * (xx .* yy) .* (1 - xx) .* (1 - yy) .* sin(9*%pi*xx) .* sin(9*%pi*yy)) .^ 2; -->f=scf(); -->f.color_map=rainbowcolormap(128); -->plot3d1(x,y,Z');
(Note: original post has a missing ) in the code. Now corrected. See comments.)
Graphing the function is a little bit tricky; it took me a while to get my * operator (regular multiplication) and .* operator (value by value in a matrix multiplication) correct. And I had to remember to use Z’ (the transpose) instead of Z when calling the plot function. The function has a maximum value when x = y = 0.5. Because the function has 81 peaks, it’s a difficult function for many algorithms to optimize.