scipy минимизация / оптимизация простой функции

#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)