【发布时间】:2020-09-25 21:01:05
【问题描述】:
我的功能如下:
def fun_root(x, *pars):
a, b, fsolve = pars
exp1 = x**a - b*x + 2
exp2 = np.exp(a*x) + x**b
if fsolve == 1:
return exp1-exp2
elif fsolve == 0:
return exp2
我使用以下代码在给定 root 的情况下使用 fsolve 查找 exp2 的值。:
tuple1 = (2, 3)
tuple2 = tuple1 + (1,)
tuple3 = tuple1 + (0,)
result_x = scipy.optimize.fsolve(fun_root, np.array((1)), tuple2)
print(result_x)
result_exp2 = fun_root(result_x, tuple3)
print(result_exp2)
我可以得到一个根,即 0.189。但是,我收到一条关于最后一行之前的错误消息:
a, b, fsolve = pars
ValueError: not enough values to unpack (expected 3, got 1)
上面的代码有什么问题?
附言。我在函数中使用可选返回,因为在我的实际情况下,函数很复杂,我无法获得 exp2 的显式表达式。
【问题讨论】:
标签: python scipy solver scipy-optimize