Как найти минимум функции методом фибоначчи python?

Аватар пользователя Elena Gromova
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
Познакомьтесь с основами Python бесплатно