3

scipy.optimizeモジュールを使用して関数を最小化したい。私の機能はf(x,a)次のとおりです。

def f(x,a):
 return a*x**2

固定のに対して、 に関してa最小化したい。f(x,a)x

scipyたとえば、fmin関数をインポートし(古いscipy:v.0.9.0を持っています)、初期値を指定x0してから最適化できます(ドキュメント):

from scipy.optimize import fmin
x0 = [1]
xopt = fmin(f, x0, xtol=1e-8)

fこれは、 2 つの引数を取りfmin、1 つしか渡さないために失敗します(実際には、aまだ定義していません)。私が行った場合:

from scipy.optimize import fmin
x0 = [1]
a = 1
xopt = fmin(f(x,a), x0, xtol=1e-8)

「xが定義されていない」ため、計算も失敗します。ただし、定義するxと、最適化する変動パラメータはありません。

ここで非変分パラメータを関数の引数として使用できるようにするにはどうすればよいですか?

4

3 に答える 3

8

docstringのargs引数について読んで、使用しますfmin

a = 1
x0 = 1
xopt = fmin(f, x0, xtol=1e-8, args=(a,))
于 2014-08-08T15:05:36.923 に答える