我有一个关于求解器的问题。我已经在 stackoverflow 上阅读了很多有关它们的内容,但我仍然对操作模式有一些疑问。
我想从一个简单的scipy.optimize.minimize
开始。因此我使用以下代码:
p_min = minimize(fun, p_start, method='BFGS', jac=None, hess=None, tol=None, options={ 'maxiter': 1000})
我使用 BFGS 方法进行 1000 次迭代。 p_start 是我的起始值。我的功能是完整的现金流计算,我必须找到最低价格,调整后的现值为零。对于这种情况,我需要一个求解器,因为我有一个预测价格,并且始终将我的价格与预测进行比较并使用较高的价格。
我的问题是,如何定义该函数?我的整个现金流量计算应该是函数吗?我怎样才能这样定义它呢?我很感谢您的帮助!
最佳答案
该函数必须是整个流量计算(除非有一些常数部分,但这取决于您使用的公式)。该函数必须使用常规 python 函数来定义。它必须是仅一个参数的函数。如果有其他参数,您可以使用选项 args=(param1, param2)
例如:
def cash_flow_calculation(p, param1, param2):
# compute the cash_flow
return cash_flow
p_start = 0
param1, param2 = 4, 5
p_min = minimize(cash_flow_calculation, p_start, method='BFGS', options={ 'maxiter': 1000}, args=(param1, param2))
关于使用求解器进行 Python 优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51352538/