def randomMin(g,x0,x1,y0,y1,n):
x = var('x')
y = var('y')
f(x,y) = g(x,y)
xmin = x0
ymin = y0
fmin = f(x0,y0)
for i in range(n):
x00 = x0+(x1-x0)*random()
y00 = y0+(y1-y0)*random()
if f(x00,y00) < fmin:
xmin = x00
ymin = y00
fmin = f(xmin,ymin)
return (xmin, ymin, fmin)
def randomMax(g,x0,x1,y0,y1,n):
x = var('x')
y = var('y')
f(x,y) = g(x,y)
xmin = x0
ymin = y0
fmin = f(x0,y0)
for i in range(n):
x00 = x0+(x1-x0)*random()
y00 = y0+(y1-y0)*random()
if f(x00,y00) > fmin:
xmin = x00
ymin = y00
fmin = f(xmin,ymin)
return (xmin, ymin, fmin)