La respuesta corta es que G
el optimizador mantiene como parte del proceso de minimización, mientras que el (D_neg, D, and C)
Los argumentos se pasan en as-es del args
tupla.
Por defecto, scipy.optimize.minimize
toma una función fun(x)
que acepta un argumento x
(que podría ser una matriz o similar) y devuelve un escalar. scipy.optimize.minimize
luego encuentra un valor de argumento xp
tal que fun(xp)
es menos que fun(x)
Para otros valores de x
. El optimizador es responsable de crear valores de x
y pasarlos a fun
Para evaluar.
Pero, ¿qué pasa si tienes una función? fun(x, y)
que tiene algún parámetro adicional y
¿Eso debe aprobarse por separado (pero se considera una constante para los fines de la optimización)? Esto es lo que el args
Tuple es para. los documentación intenta explicar cómo se usa la tupla args, pero puede ser un poco difícil de analizar:
Args: Tuple, opcional
Argumentos adicionales pasaron a la función objetivo y sus derivados (Jacobian, Hessian).
Efectivamente, scipy.optimize.minimize
pasará lo que sea que esté en args
como el resto de los argumentos a fun
, utilizando la notación de argumentos de asterisco: la función se llama luego como fun(x, *args)
durante la optimización. los x
la porción es pasada por el optimizador y el args
La tupla se da como los argumentos restantes.
Entonces, en su código, el valor del G
El optimizador mantiene el elemento al evaluar los posibles valores de G
, y el (D_neg, D, C)
Tuple se pasa en as-es.