如何解决scipy.optimize.minimize如何知道要搜索哪个变量?
我有下面的代码可以工作,但是我确实有两个关于语法如何工作的问题。
# Define some working variables
# n,an int
# er,an (n x 1) np.array of expected returns
# smallcov,an (n x n) matrix of covariances
# init_guess,an (n x 1) np.array of floats
# bounds,a tuple of n tuples,where the inner tuples are (2 x 1)
return_equals_target = {
'type': 'eq',# 'args': (er,),# <===================================================== LINE 1
'fun' : lambda w: target_return - erk.portfolio_return(w,er),}
weights_sum_to_one = {
'type': 'eq','fun' : lambda w: np.sum(w) - 1
}
objective = lambda w,c : w.T @ c @ w
results = minimize(
objective,init_guess,args=(smallcov,method='SLSQP',constraints=(return_equals_target,weights_sum_to_one),bounds = bounds
)
问题1 (更重要)
函数objective
带有两个参数w
和c
。 minimize
怎么知道哪个是最小化的,哪个是最小化的常数?
问题2 请参阅上面的第1行,并考虑是否将我替换的代码及其下面的行替换为以下内容:
'args': (er,'fun' : lambda w,r: target_return - erk.portfolio_return(w,r),
两个版本给出的结果相同,所以如果变量minimize
仍然在作用域内,为什么还要使用er
的'args'参数呢?
感谢您的帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。