gpt4 book ai didi

python - 如何对 CVXPY 中两列的内积创建不等式约束?

转载 作者:太空宇宙 更新时间:2023-11-04 05:11:43 24 4
gpt4 key购买 nike

假设我的约束条件是矩阵变量的第一列和第三列的乘积大于 1。我如何在 CVXPY 中实现?示例:

w = Variable(4,3) 

在 Matlab 中,我的约束是:

w(:,1)'*w(:,3)>1

如何在 CVXPY 中实现它?或者我们可以在 CVXPY 下执行点积吗? CVXPY 不支持 numpy.dot

最佳答案

如果两个变量都是正的,那么集合 {x * y > 1} 实际上是凸的,而函数 x*y 既不是凸的也不是凹的。这可以通过查看二阶导数矩阵的特征值来检查

(x*y)'' = 
[[0, 1],
[1, 0]]

它们是 {-1, 1}。矩阵既不是正定矩阵也不是负定矩阵。

有时您可以转换一个问题,使其成为凸的。在这种情况下,这可以通过对两边取对数来实现:

log(x) + log(y) >= 0

这是一个有效的限制,因为 log(x) 和 log(y) 都是凹函数并且不等式大于等于。该约束将通过“有纪律的凸规划”规则。祝你好运。

关于python - 如何对 CVXPY 中两列的内积创建不等式约束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42824157/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com