【发布时间】:2021-08-29 06:58:01
【问题描述】:
我有一个我无法解决的问题。我已经使用 scipy.interpolate.interp2d 从数据创建了一个插值函数,这给了我一个两个变量的可调用函数
def Time_function():
'''creates a interpolated function of Time depending on
Cl and Cd using the in and outputs of matlab sim run.
'''
return interp2d(import_data()[0], import_data()[1], import_data()[2])
Witch 工作得很好,但是我现在想找到这个函数的最小值 scipy.optimize.fmin 或最小化
def find_min_time():
'''finds the min time based on the interpolated function
'''
f = Time_function()
return minimize(f, np.array([1.0, 0.4]))
f 显然需要 2 个参数,因此最小化需要一个函数 (f) 和两个猜测。但是,当我收到此错误时,我似乎找不到输入初始猜测的正确方法:
TypeError: __call__() takes at least 3 arguments (2 given)
有人知道解决办法吗?
干杯//
【问题讨论】:
-
我没有看到 f 需要 2 个参数;我没有看到明确的参数。另外,我怀疑您的问题是您传递了 Time_function 调用的 value ,而不是函数本身。试试 minimize(Time_function, [1.0, 0.4]) ?
-
返回 TypeError: Time_function() 没有参数 (1 given) ,这很奇怪
-
老鼠。好吧,如果您愿意提供 Minimal, complete, verifiable example,我会很乐意从事机制工作。
标签: python scipy interpolation