簡単な答えはそれです G
最小化プロセスの一部としてオプティマイザーによって維持されますが、 (D_neg, D, and C)
議論は、からのように渡されます args
タプル。
デフォルトでは、 scipy.optimize.minimize
関数を取ります fun(x)
それは1つの議論を受け入れます x
(これは配列などである可能性があります)スカラーを返します。 scipy.optimize.minimize
次に、引数値を見つけます xp
そのような fun(xp)
より少ない fun(x)
の他の値の場合 x
. 。オプティマイザーは、の値を作成する責任があります x
そしてそれらをに渡します fun
評価用。
しかし、あなたがたまたま関与している場合はどうでしょうか fun(x, y)
追加のパラメーターがあります y
それは別々に渡す必要があります(ただし、最適化の目的のために一定と見なされます)?これが何であるかです args
タプルはのためです。 ドキュメンテーション Args Tupleがどのように使用されているかを説明しようとしますが、解析するのは少し難しい場合があります。
args: タプル、オプション
余分な引数は、目的関数とその導関数(ヤコビアン、ヘシアン)に渡されました。
効果的に、 scipy.optimize.minimize
何でも渡されます args
の残りの議論として fun
, 、アスタリスク引数表記を使用します:次に、関数は fun(x, *args)
最適化中。 x
オプティマイザーによって部分が渡され、 args
タプルは残りの議論として与えられます。
だから、あなたのコードでは、 G
要素は、可能な値を評価しながら、オプティマイザーによって維持されます G
, 、 そしてその (D_neg, D, C)
タプルはそのままで渡されます。