Границы для метода с надеждой на бассейн для одной переменной функции

#python

#python

Вопрос:

Для метода Basing-Hoping для многомерной функции с определенными границами я пишу код следующим образом:

 import scipy.optimize as opt
bnds = ((1, 100), (1, 100), (1,100))# the bounds

def F(X):# Multivariable function
    a,b,c = X[0],X[1],X[2]
    return a**2 b**2 c**2

x0 = [10., 10., 10.]
minimizer_kwargs = { "bounds":bnds }
minimum = opt.basinhopping(F, x0, minimizer_kwargs=minimizer_kwargs)
print(minimum)
 

И это действительно дает ответ в указанных границах.

Но мой вопрос в том, что если я буду следовать тому же шаблону для функции с одной переменной, я получу сообщение об ошибке: «длина x0 ! = длина границ».

Пример, который я использовал, был:

 bnds = ((1, 100))#  bounds

def F2(X):# Single variable function
    return X**2

x0 = [10]
minimizer_kwargs = { "bounds":bnds }
minimum = opt.basinhopping(F2, x0,minimizer_kwargs=minimizer_kwargs)
print(minimum)
 

Ценю вашу помощь в решении этой проблемы..

Комментарии:

1. попробуйте bnds = (1,100) вместо использования двойных круглых скобок. потому что это делает изобилующую функцию 2D.

2. @nipundeelakapathirage Хорошо… Это также не сработало. Но, похоже bnds = [(1,100)] , работает!

3. Хорошо. спасибо за разъяснение!