这是给出了相当接近的估计(不准确)的东西。
import math
import random
import sys
def function(x, y):
exp = (math.pow(x, 2) + math.pow(y, 2)) * -1
return math.exp(exp) * math.cos(x * y) * math.sin(x * y)
max_func = - sys.maxint - 1
min_func = sys.maxint
maximal_x, maximal_y = None, None
minimal_x, minimal_y = None, None
for i in xrange(1000000):
randx = random.random()*2 - 1
randy = random.random()*2 - 1
result = function(randx, randy)
max_func = max(max_func, result)
if max_func == result:
maximal_x, maximal_y = randx, randy
min_func = min(min_func, result)
if min_func == result:
minimal_x, minimal_y = randx, randy
print "Maximal (x, y):", (maximal_x, maximal_y)
print "Max func value:", max_func, '\n'
print "Minimal (x, y):", (minimal_x, minimal_y)
print "Min func value:", min_func