#python #optimization
#python #оптимизация
Вопрос:
У меня возникли проблемы с оптимизацией очень простой функции, которую я использую в качестве тестового примера, прежде чем перейти к чему-то более сложному. Я пробовал разные методы оптимизации, давая методу привязку и даже давая точное решение в качестве первоначального предположения.
Функция, которую я пытаюсь оптимизировать: f(x) = 1 / x - x
Вот мой код:
import scipy
def testfun(x): return (1 / x - x)
sol = scipy.optimize.minimize(testfun, 1).x
он возвращает большие числа (3.2 e 08) в качестве решения
Я неправильно использую функцию оптимизации?
Комментарии:
1. Как вы думаете, каким должен быть ответ? Мне кажется, что эта функция минимизируется при x = бесконечности
2. @VictorChubukov мой плохой, я ищу методы поиска корней, чтобы f (x) = 0. Я думаю, что scipy.optimize.newton сделает то, что я ищу. Спасибо
3. Ок (комментарий удален, поскольку исходный комментарий был отредактирован)
Ответ №1:
Как упоминал Виктор, функция оптимизации работает правильно,
Я искал решение f(x) --> 0
, для которого требуется метод поиска корня, а не процедура оптимизации.
например:
scipy.optimize.root(testfun, 1)
или scipy.optimize.Newton(testfun, 1)