Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带解算器的Python优化_Python_Optimization_Scipy_Solver_Minimize - Fatal编程技术网

带解算器的Python优化

带解算器的Python优化,python,optimization,scipy,solver,minimize,Python,Optimization,Scipy,Solver,Minimize,我有一个关于解算器的问题。我读了很多关于stackoverflow的文章,也读了很多关于stackoverflow的文章,但是我对操作模式还有一些疑问 我想从一个简单的scipy.optimize.minimize开始。因此,我使用以下代码: p_min = minimize(fun, p_start, method='BFGS', jac=None, hess=None, tol=None, options={ 'maxiter': 1000}) 我使用BFGS方法进行1000次迭代。p_s

我有一个关于解算器的问题。我读了很多关于stackoverflow的文章,也读了很多关于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))

非常感谢@xdze2!那么
p
可以不定义?是否有必要,我在CF计算的开头写下,
p_start=p
p
不是未定义的。
minimize
函数将多次调用
cash\u flow\u calculation
函数,当然从
cash\u flow\u calculation(p\u start)
开始,然后调用由最小化算法自动确定的
p
值。我现在不确定,你所说的“解算器”是什么意思?好吧,是的,这是我的错…我在你的示例中没有看到
args
命令。我可以将参数
param1
param2
也用于时间序列数据吗?是的,附加参数也可以是数据,只要它们不是
p