【问题标题】:Create matrix from vector cvxpy variable从向量 cvxpy 变量创建矩阵
【发布时间】:2021-12-07 09:35:07
【问题描述】:

例如,我声明了一个向量变量 x = cvxpy.Variable(5)。 我想对这样的对称矩阵施加约束,

[
[x[0], 0, 0, x[1]],
[0 , x[2], 0, 0],
[0 , 0, x[3], 0],
[ x[1], 0, 0, x[4] ]
]

半正定。

我知道在 MatLAB 中,我可以声明一个表达式持有者,例如“表达式 A(5,5)”,然后分配 A 中的每个元素,然后在声明约束时使用“A==semidefined(5)”。 我应该如何使用 cvxpy 在 python 中做到这一点?

【问题讨论】:

    标签: python cvxpy


    【解决方案1】:

    你可以直接声明一个符号矩阵:

    A=cvxpy.Variable((5,5), symmetric=True)

    然后强制执行零和相关位置。这等于先定义一个向量(就像您所做的那样),然后从中构建一个矩阵。

    添加半正定约束: constraints = [X >> 0]

    documentation查看更多详情

    【讨论】:

      猜你喜欢
      • 2014-07-27
      • 1970-01-01
      • 2015-02-04
      • 2021-08-08
      • 2012-09-04
      • 2019-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多