SharedrandomMinMax.sageOpen in CoCalc
Authors: Ariane Masuda, Johann Thiel
Views : 22
1
##########################################
2
# Random Min/Max Scripts
3
##########################################
4
#
5
# Johann Thiel
6
# ver 11.25.17
7
# Functions to implement Newton's
8
# method.
9
#
10
##########################################
11
12
##########################################
13
# Finding a min via random trials
14
##########################################
15
# g = function
16
# x0 = lower x-value bound
17
# x1 = upper x-value bound
18
# y0 = lower y-value bound
19
# y1 = upper y-value bound
20
# n = number of iterations
21
##########################################
22
def randomMin(g,x0,x1,y0,y1,n):
23
x = var('x')
24
y = var('y')
25
f(x,y) = g(x,y)
26
xmin = x0
27
ymin = y0
28
fmin = f(x0,y0)
29
for i in range(n):
30
x00 = x0+(x1-x0)*random()
31
y00 = y0+(y1-y0)*random()
32
if f(x00,y00) < fmin:
33
xmin = x00
34
ymin = y00
35
fmin = f(xmin,ymin)
36
return (xmin, ymin, fmin)
37
##########################################
38
39
##########################################
40
# Finding a max via random trials
41
##########################################
42
# g = function
43
# x0 = lower x-value bound
44
# x1 = upper x-value bound
45
# y0 = lower y-value bound
46
# y1 = upper y-value bound
47
# n = number of iterations
48
##########################################
49
def randomMax(g,x0,x1,y0,y1,n):
50
x = var('x')
51
y = var('y')
52
f(x,y) = g(x,y)
53
xmin = x0
54
ymin = y0
55
fmin = f(x0,y0)
56
for i in range(n):
57
x00 = x0+(x1-x0)*random()
58
y00 = y0+(y1-y0)*random()
59
if f(x00,y00) > fmin:
60
xmin = x00
61
ymin = y00
62
fmin = f(xmin,ymin)
63
return (xmin, ymin, fmin)
64
##########################################