Я пытаюсь применить минимизатор scipy к векторизованной целевой функции, которая принимает несколько аргументов np.arrays.В этом примере я хочу поэлементно минимизировать obj(x,p)
относительно x
, принимая p
как фиксированное значение.При p = np.array([2,3,4])
минимумы должны быть 2, 3 и 4.
Но
import numpy as np
from numba import vectorize, float64
from scipy.optimize import minimize
xinit = np.array([1,1,1])
p = np.array([2,3,4])
@vectorize([float64(float64,float64)])
def obj(x,p):
return((x-p)**2)
minimize(obj, x0 = xinit,args = p, method='Nelder-Mead')
возвращает ValueError: setting an array element with a sequence.
Кто может помочь?
Большое спасибо заранее!