Краткий ответ в том, что G
поддерживается оптимизатором как часть процесса минимизации, в то время как (D_neg, D, and C)
аргументы передаются как есть из args
кортеж.
По умолчанию, scipy.optimize.minimize
принимает функцию fun(x)
Это принимает один аргумент x
(который может быть массивом или тому подобным) и возвращает скаляр. scipy.optimize.minimize
Затем находит значение аргумента xp
так что fun(xp)
меньше чем fun(x)
Для других ценностей x
. Анкет Оптимизатор отвечает за создание значений x
и передавая их в fun
Для оценки.
Но что, если у вас будет функция fun(x, y)
у этого есть дополнительный параметр y
Это должно быть передано отдельно (но считается постоянным для целей оптимизации)? Это то, что args
Крупель для. А документация пытается объяснить, как используется кортеж ARGS, но это может быть немного сложно анализировать:
args: Круп, необязательный
Дополнительные аргументы переданы объективной функции и ее производным (Jacobian, Hessian).
Фактически, scipy.optimize.minimize
пройдет все, что находится в args
как оставшаяся часть аргументов fun
, используя нотацию аргументов Asterisk: затем функция называется как fun(x, *args)
во время оптимизации. А x
порция передается оптимизатором и args
Суть дается как оставшиеся аргументы.
Итак, в вашем коде значение G
элемент поддерживается оптимизатором при оценке возможных значений G
, и (D_neg, D, C)
Крупель передается как есть.