Влад Фролов
S:12:08:07 14.09
R:12:08:08 14.09
import numpy as np
def f(x):
return -np.exp(-x) * np.log(x) + 0.14 * x
def grad_f(x):
# Производная функции
return (np.exp(-x) * np.log(x)) + (np.exp(-x) / x) + 0.14
def middle_point_method(f, grad_f, x0, epsilon=0.01, max_iter=1000):
x = x0
for _ in range(max_iter):
grad = grad_f(x)
if abs(grad) < epsilon:
break
# Средняя точка
x_new = x - 0.5 * grad
if abs(x_new - x) < epsilon:
break
x = x_new
return x
# Начальная точка (учитывая область определения ln(x), выбираем x > 0)
x0 = 1.0
# Запуск метода
min_x = middle_point_method(f, grad_f, x0)
min_value = f(min_x)
print(*Точка минимума x:*, min_x)
print(*Значение функции в точке минимума:*, min_value)