我在 python 中有一个计算量很大的函数,其形式如下:
def f(x, args):
...
return y_1, y_2 # where y_1 is scalar, and y_2 can
# be a vector of other results
我需要相对于 x 最小化 y_1,并且我对 x 有一个非常好的初始猜测,这样最小化器通常不会进行很多迭代。我为此目的包装了该功能:
def g(x, args):
return f(x,args)[0]
我对最优 x 以及这个 x 处的函数 y_1 和 y_2 的值都感兴趣,因为我以后需要它们。计算 y_1 和 y_2 需要对相同函数进行多次多维插值,这就是函数需要一段时间来计算的原因。但是,在给定这些插值的情况下计算 y_2(对于 y_1 也是相同的)非常快。
我可以通过运行 f(x_opt,args)[1] 轻松地重新计算给定 x_opt 的 y_2,但这很昂贵。我想知道一旦最小化器找到最佳 x,是否有办法直接将 y_2 作为最小化过程的输出。