微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

scipy.optimize.minimize如何知道要搜索哪个变量?

如何解决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带有两个参数wcminimize怎么知道哪个是最小化的,哪个是最小化的常数?

问题2 请参阅上面的第1行,并考虑是否将我替换的代码及其下面的行替换为以下内容

    'args': (er,'fun' : lambda w,r: target_return - erk.portfolio_return(w,r),

两个版本给出的结果相同,所以如果变量minimize仍然在作用域内,为什么还要使用er的'args'参数呢?

感谢您的帮助。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。