Golden section method
This commit is contained in:
@@ -20,3 +20,28 @@ def bisection_method(a, b, eps):
|
|||||||
else:
|
else:
|
||||||
a = c
|
a = c
|
||||||
fa = fc
|
fa = fc
|
||||||
|
|
||||||
|
def f_golden(x):
|
||||||
|
return (x - 2)**2 + 3
|
||||||
|
|
||||||
|
def golden_section_search(a, b, eps):
|
||||||
|
phi = (1 + math.sqrt(5)) / 2.0
|
||||||
|
resphi = 2 - phi
|
||||||
|
c = a + resphi * (b - a)
|
||||||
|
d = b - resphi * (b - a)
|
||||||
|
fc = f_golden(c)
|
||||||
|
fd = f_golden(d)
|
||||||
|
|
||||||
|
while (b - a) > eps:
|
||||||
|
if fc < fd:
|
||||||
|
b = d
|
||||||
|
d = c
|
||||||
|
fd = fc
|
||||||
|
c = a + resphi * (b - a)
|
||||||
|
fc = f_golden(c)
|
||||||
|
else:
|
||||||
|
a = c
|
||||||
|
c = d
|
||||||
|
fc = fd
|
||||||
|
d = b - resphi * (b - a)
|
||||||
|
fd = f_golden(d)
|
||||||
|
|||||||
Reference in New Issue
Block a user