Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Вариант 4 / 6 / 6script

.py
Скачиваний:
17
Добавлен:
27.06.2024
Размер:
720 б
Скачать
import math

def func(x):
    return (x ** 2)*math.cos(x+3) - 4

def golden_section(a, b, e=1e-4):
    k1 = (3 - 5 ** 0.5) / 2
    k2 = (5 ** 0.5 - 1) / 2
    x1 = a + k1*(b - a)
    x2 = a + k2*(b - a)
    F1 = func(x1)
    F2 = func(x2)
    n = 0
    while (b-a) > e:
        n += 1
        if F1 < F2:
            b = x2
            x2 = x1
            x1 = a + k1 * (b-a)
            F2 = F1
            F1 = func(x1)
        else:
            a = x1
            x1 = x2
            x2 = a + k2 * (b-a)
            F1 = F2
            F2 = func(x2)
        xmin = (a + b) / 2
        fmin = func(xmin)
        print(n, b-a)
    return n, xmin, fmin, (b-a)

print(golden_section(1, 2))
Соседние файлы в папке 6