
Добавил:
dirty_HUY
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:одномерная оптимизация(золотое сечение)
.py#Целевая функция
def f(x):
return x**2-4*x
#Начальный отрезок, содержащий минимум
a = 0
b = 3.5
Phi = 1.618#пропорция
acc=0.00000001
y = []
#Алгоритм
while 1:
x_1=b - ((b - a)/Phi)
x_2=a + ((b-a)/Phi)
if f(x_1) >= f(x_2):
a = x_1
else:
b = x_2
if abs(b-a) < acc:
print(f((a+b)/2), (a+b)/2)
break