⦁ 최소브래킷법의 개념

⦁ 황금분할탐색의 개념

⦁ 황금분할탐색 구현
f = lambda x: np.cos(x)-np.sin(x)
a, b = 1, 3
tol= 1e-8
r = (3-np.sqrt(5))/2
while np.abs(a-b) > tol or np.abs(f(b)-f(a)) > tol:
x1 = a+r*(b-a)
x2 = a+(1-r)*(b-a)
if f(x2) < f(x1):
a, b = x1, b
else:
a, b = a, x2
⦁ 피보나치탐색의 개념

⦁ 피보나치탐색 구현
f = lambda x: np.cos(x)-np.sin(x)
a, b = 1, 3
tol = 1e-8
n = 30
F = lambda x: (1/np.sqrt(5))*(np.power((1+np.sqrt(5))/2,x)-np.power((1-np.sqrt(5))/2,x))
for k in range(n):
c = a+(F(n-k-2)/F(n-k))*(b-a)
d = a+(F(n-k-1)/F(n-k))*(b-a)
if f(c) < f(d):
a, b = a, d
else:
a, b = c, b