Как найти минимум функции методом фибоначчи python?
Ответы
Elena Gromova
23 сентября 2024
Для поиска минимума функции методом Фибоначчи в Python, сначала необходимо определить интервал, в котором предположительно находится минимум функции. Затем следует реализовать алгоритм поиска минимума методом Фибоначчи.
Вот пример кода на Python для реализации поиска минимума функции методом Фибоначчи:
import math
def fibonacci(n):
if n <= 1:
return n
else:
return fibonacci(n-1) + fibonacci(n-2)
def fibonacci_search(func, a, b, tol):
n = 0
while fibonacci(n) < (b-a) / tol:
n += 1
x1 = a + (fibonacci(n-2) / fibonacci(n)) * (b-a)
x2 = a + (fibonacci(n-1) / fibonacci(n)) * (b-a)
f1 = func(x1)
f2 = func(x2)
for i in range(2, n):
if f1 < f2:
b = x2
x2 = x1
f2 = f1
x1 = a + (fibonacci(n-i) / fibonacci(n-i+2)) * (b-a)
f1 = func(x1)
else:
a = x1
x1 = x2
f1 = f2
x2 = a + (fibonacci(n-i+1) / fibonacci(n-i+2)) * (b-a)
f2 = func(x2)
return (a+b) / 2
# пример использования
def f(x):
return (x-2)**2
x_min = fibonacci_search(f, 0, 4, 0.001)
print(""Минимум функции равен:"", x_min)
В данном примере fibonacci_search
- функция, которая принимает на вход функцию func
, интервал [a, b]
, и погрешность tol
. Далее она использует ряд Фибоначчи для поиска минимума функции func
на заданном интервале с заданной точностью.
Не забудьте подставить свою функцию f(x)
и интервал [a, b]
в пример кода, чтобы найти минимум функции методом Фибоначчи.
0
0