2016-10-28 8 views
0

私は2つの変数を持つ関数を持っており、L-BFGS-B法を使って最小化しようとしています。いくつかの変数を使った関数の最適化

def f(x,y): 
    z = exp(x + y) 
return z 

私の引数はnumpyの配列で、x0は(0,0)です。私のような何かを試してください:

res = minimize(f,x0,args=(x,y), method = "L-BFGS-B") 

をし、私が間違って起こっている代わりに、2の3つの引数を与えるというエラーを取得しますか?

+0

'args =(x、y)'が役に立ったのですか? – Mephy

+0

そして、私は限られた空間で機能を最小化するので、私はそれらをドロップする必要はありません – Schatt95

+0

@メフィー申し訳ありませんが、あなたを言及するのを忘れて – Schatt95

答えて

1

argsパラメータは、目的関数に余分なデータを渡すためのパラメータです。あなたの場合、目的関数は1つの引数、つまり配列として評価されるべき点をとります。たとえば:

def f(x): 
    return np.exp(x.sum()) 

minimize(f, [0,0], bounds=[[-5,None], [-5,None]]) 

私はあなたが指数関数以外の関数を最適化していると思いますか?それを最小限に抑えることは明らかに自明なので...

+0

ありがとう!今それは – Schatt95

+0

ahah権利を、もちろんそれはexponental funcではない作品 – Schatt95