Я пытаюсь найти корень одной функции с помощью минимального() в течение определенного интервала. [В этом примере это означает, что я хочу найти значение $ 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))
И вот полное сообщение об ошибке.
Вот так:
import scipy
import scipy.optimize
def f(z):
return 1000*scipy.sin(z)-z
scipy.optimize.minimize(f, 2*eps, bounds=[(eps,a)])
minimize
не найти корни ... он минимизирует. Вы можете свести к минимуму * f * ^ 2, но гораздо лучше использовать поиск корней .