我们定义用户定义的函数如下。
def testfun(x):
return( x[0]*a+x[1]*b)
调用该函数:
sol = optimize.root(testfun, [0, 0], method = 'lm')
我们如何在调用函数时传递a
和b
?
答案 0 :(得分:4)
对于此问题,optimize.root
有一个args
输入,它接受一个值元组作为附加输入传递给目标函数:
def testfun(x, a, b):
return ([x[0] * a + x[1] * b])
# Specify values for a and b
a = 1
b = 2
sol = optimize.root(testfun, [0, 0], method='lm', args=(a, b))
更一般地说,您可以使用lambda函数为任何函数提供额外的输入
# Create a lambda function which passes the input provided by optimize.root and adds
# two more inputs: a and b
func = lambda x: testfun(x, a, b)
# Pass this lambda function to optimize.root
sol = optimize.root(func, [0, 0], method='lm')