可変変数を使用して目的関数を作成する方法は?
多くの変数を使用して特定の関数を最適化しようとしていますが、すべて異なる程度の不確実性があります。
result = opt.minimize(fObj,x0,method='nelder-mead',
options={'xtol':1e-1})
fObj には、a、b、c、d、e、f、g などの多くの変数があります。ただし、目的関数の情報により、同時に 3 つの変数を最適化することは理にかなっています。だから私は、a、c、d と言って、次の a、d、f を変えて遊んでみたい..
入力が 2 つしかない関数を作成したい:
- 最適化する変数 (3 つの文字列の配列?)
- それらの開始値
私が考えていたオプションは、グローバルを介してすべての変数のデフォルト値を fObj にフィードし、変数名を含むグローバル文字列を含めて exec() 関数に置き換えることです。
def fObj(x):
global a, b, c, d, e, f, g, h, VarList
# some hocus pocus that reads VarList
# e.g.
# VarList = ['c', 'd', 'f']
# c = x[0]
# d = x[0]
# f = x[0]
return someMathematiclOutputInvolvingAllVars
この目標を達成するための最良/最もpythonicな方法は何ですか?