#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. Хорошо. спасибо за разъяснение!