i have developed a particle swarm optimisation algorithm that i am running some tests on.
It is able to solve simple equations like this:
$x^2 + y^2 + 300y - 254x + 3$
with only one optimum
but when i apply it to my real-world problem, i think it is getting stuck at local optima and i would like to be able to run some controlled tests on a surface with a couple of optima at different places to see how it behaves because i dont know the shape of my real-world problem space.
I was wondering if anyone knew of any simple equations for generating such surfaces, something similar to this would be perfect:

(source: originlab.com)
it doesnt have to be exactly that (i just googled an image of a multi-optima surface in case i didnt describe myself properly), just a surface with a few optima that i can test my algorithm on.
thanks
In case anyone is interested, I managed to find a great site with a whole heap of useful functions for testing global optimisation algorithms, along with matlab and R implementations.
http://www.sfu.ca/~ssurjano/optimization.html
very useful indeed!