Использование scipy.optimize.minimize () для поиска корня в интервале - как правильно установить границы?

1

Я пытаюсь найти корень одной функции с помощью минимального() в течение определенного интервала. [В этом примере это означает, что я хочу найти значение $ z $, которое удовлетворяет $ 1000 * scipy.sin(z) -z = 0 $ в интервале $ z\in [eps, a] $]

Если я правильно понял из документации, это означает, что я должен использовать опцию границ. Тем не менее, я получаю ValueError: длина x0! = Длина ошибки границ.

Вот мой код:

import scipy 
import scipy.optimize
def f(z):
    return 1000*scipy.sin(z)-z
scipy.optimize.minimize(f, 2*eps, bounds=(eps,a))

И вот полное сообщение об ошибке. Изображение 174551

  • 0
    minimize не найти корни ... он минимизирует. Вы можете свести к минимуму * f * ^ 2, но гораздо лучше использовать поиск корней .
  • 0
    @DavisHerring Я использую свернуть, потому что я хочу иметь возможность установить интервалы, в которых он ищет корни
Показать ещё 5 комментариев
Теги:
python-3.x
scipy

1 ответ

0

Вот так:

import scipy 
import scipy.optimize

    def f(z):
        return 1000*scipy.sin(z)-z
    scipy.optimize.minimize(f, 2*eps, bounds=[(eps,a)])
  • 0
    Это все еще не корень искатель.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню