Python 函数的多个返回值作为scipy.minimize中的输入

Python 函数的多个返回值作为scipy.minimize中的输入,python,numpy,optimization,scipy,minimize,Python,Numpy,Optimization,Scipy,Minimize,我是python新手,我的任务是最小化具有3个返回值的数学函数(如我必须使用的模板中提供的),但我只需要这些返回值中的第一个。这里有一个例子 ``` def exponential_function(x): value = -np.exp(-0.5 * (x[0]**2 + x[1]**2)) grad = np.array([-value * x[0], -value * x[1]]) return value, grad, np.array([0,0]) ``` 这

我是python新手,我的任务是最小化具有3个返回值的数学函数(如我必须使用的模板中提供的),但我只需要这些返回值中的第一个。这里有一个例子

```
def exponential_function(x):

   value = -np.exp(-0.5 * (x[0]**2 + x[1]**2))
   grad = np.array([-value * x[0], -value * x[1]])

   return value, grad, np.array([0,0])

```
这必须是optimize.minimize的第一个参数。这只适用于一个返回(=值),但在这种情况下我不知道。我尝试了包装器函数,但失败了


提前感谢您

嘿,您可以使用三个变量调用函数来存储返回值,例如:

value_return, grad_return, array_return = exponential_function(x)
因此,每个返回值都存储在相应的变量中。之后,您可以使用这些变量(在函数之外!)。 或者,只需删除您不需要的其他报税表


这是否回答了您的问题?

嘿,您可以使用三个变量调用函数来存储返回的值,例如:

value_return, grad_return, array_return = exponential_function(x)
因此,每个返回值都存储在相应的变量中。之后,您可以使用这些变量(在函数之外!)。 或者,只需删除您不需要的其他报税表


这是否回答了您的问题?

适合作为optimize.minimize的第一个参数的函数对象是:


适合作为optimize.minimize的第一个参数的函数对象是:

你试过什么包装纸。您不需要任何花哨的东西,只需要调用给定函数,但只返回第一个结果,
value

def exponential_function(x):

   value = -np.exp(-0.5 * (x[0]**2 + x[1]**2))
   grad = np.array([-value * x[0], -value * x[1]])

   return value, grad, np.array([0,0])

def myfunc(x):
   value, grad, arr = exponential_function(x)
   return value
您可以像其他答案中所建议的那样使用
lambda
,但我尝试创建一个更明确的包装函数,这可能更容易理解

当我们问你尝试了什么,我们并不期待你会尝试工作。我们希望看到您尝试了什么,并更好地了解您所了解(或缺少)的内容。我们的目标是让你思考,并尽可能解决自己的问题,而不是填鸭式地给出答案。

你尝试了哪种包装。您不需要任何花哨的东西,只需要调用给定函数,但只返回第一个结果,
value

def exponential_function(x):

   value = -np.exp(-0.5 * (x[0]**2 + x[1]**2))
   grad = np.array([-value * x[0], -value * x[1]])

   return value, grad, np.array([0,0])

def myfunc(x):
   value, grad, arr = exponential_function(x)
   return value
您可以像其他答案中所建议的那样使用
lambda
,但我尝试创建一个更明确的包装函数,这可能更容易理解


当我们问你尝试了什么,我们并不期待你会尝试工作。我们希望看到您尝试了什么,并更好地了解您所了解(或缺少)的内容。目标是让你思考,并尽可能解决你自己的问题,而不是填鸭式回答。

嘿,steTATO,谢谢你的回答。恐怕这行不通。我不能只使用变量作为minmizence的第一个参数,minimize只能接受一个函数,定义一个包装函数或lambda,如图所示。嘿,steTATO,谢谢你的回答。恐怕这行不通。我不能只使用变量作为minmizence的第一个参数,minimize只能接受一个函数,定义一个包装函数或lambda,如图所示。“我尝试了包装函数,但失败了。”准确地显示您尝试了什么以及出现了什么错误。一个包装器函数应该可以工作。我已经做了4个小时了,我尝试了一些东西,所以我真的没有什么要展示的……”我尝试了包装器函数,但失败了。“准确地展示你尝试了什么以及你遇到了什么错误。包装器函数应该可以用。我已经用了4个小时了,我尝试了一些东西,所以我真的没有什么可以展示的。。。