scipy.optimize: argsの付け方
方法1:inputにアスタリスクをつけてタプルで受け取れるようにする。
def func(x,*a): return np.sum((x-a)**2)+1 scipy.optimize.minimize(func,x0=np.array([7,10,3.]),method='SLSQP',args=(2.5, ))
方法2:関数自体を返す関数を作る。
def make_func(): def func(x,a): return np.sum((x-a)**2)+1 return func scipy.optimize.minimize(func,x0=np.array([7,10,3.]),method='SLSQP',args=(2.5, ))
二つ目のやり方はclass内でselfを受け取る時に使える。
def make_gmmobjg(self): def gmmobjg(theta2,...): ..... return f return gmmobjg