Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何为scipy.optimize.MINIMITION的目标函数(除自变量外)提供额外输入_Python_Python 3.x_Scipy_Scipy Optimize_Scipy Optimize Minimize - Fatal编程技术网

Python 如何为scipy.optimize.MINIMITION的目标函数(除自变量外)提供额外输入

Python 如何为scipy.optimize.MINIMITION的目标函数(除自变量外)提供额外输入,python,python-3.x,scipy,scipy-optimize,scipy-optimize-minimize,Python,Python 3.x,Scipy,Scipy Optimize,Scipy Optimize Minimize,我正在使用scipy库执行优化任务。 我有一个必须最小化的函数。我的代码和函数看起来像 import numpy as np from scipy.optimize import minimize from scipy.optimize import Bounds bounds = Bounds([2,10],[5,20]) x0 = np.array([2.5,15]) def objective(x): x0 = x[0] x1 = x[1] return a

我正在使用scipy库执行优化任务。 我有一个必须最小化的函数。我的代码和函数看起来像

import numpy as np
from scipy.optimize import minimize
from scipy.optimize import Bounds


bounds = Bounds([2,10],[5,20])

x0 = np.array([2.5,15])

def objective(x):
    x0 = x[0]
    x1 = x[1]
    return a*x0 + b*x0*x1 - c*x1*x1

res = minimize(objective, x0, method='trust-constr',options={'verbose': 1}, bounds=bounds)

我的a、b和c值随时间而变化,不是常数。函数不应针对a、b、c值进行优化,而应针对随时间变化的给定a、b、c值进行优化。如何将这些值作为目标函数的输入?

for
scipy.optimize.minimize
提到了
args
参数:

args:tuple,可选

传递给目标函数及其导数(fun、jac和hess函数)的额外参数

您可以按如下方式使用它:

import numpy as np
from scipy.optimize import minimize
from scipy.optimize import Bounds

bounds = Bounds([2,10],[5,20])
x0 = np.array([2.5,15])

def objective(x, *args):
    a, b, c = args  # or just use args[0], args[1], args[2]
    x0 = x[0]
    x1 = x[1]
    return a*x0 + b*x0*x1 - c*x1*x1

# Pass in a tuple with the wanted arguments a, b, c
res = minimize(objective, x0, args=(1,-2,3), method='trust-constr',options={'verbose': 1}, bounds=bounds)