python - 使用 CVXPY 实现 LMI 约束

标签 python cvxpy convex-optimization

所以我尝试使用 CVXPY 包(具有线性矩阵不等式约束的优化问题)在 Python 中实现一个简单的优化代码。代码如下所示。

我尝试使用 Python 3.6 运行代码。

import cvxpy as cp
import numpy as np
import matplotlib.pyplot as plt
import control as cs

gamma = cp.Variable();
MAT1 = np.array([[1, gamma], [1+gamma, 3]])

constraints_2 = [MAT1 >> 0]
prob = cp.Problem(cp.Minimize(gamma),constraints_2)
prob.solve()

每次我尝试运行此代码时,都会收到以下错误:

“正定约束下的非方阵。”

但是这个矩阵显然是方阵!所以我不知道发生了什么事。 有任何想法吗? 非常感谢您的帮助!

最佳答案

MAT1 是一个 numpy 数组,您需要将其设为 cvxpy 变量才能使用半定约束。试试这个:

MAT1 = cp.Variable((2, 2))
constraints_2 = [MAT1 >> 0, MAT1[0, 0] == 1, MAT1[1, 0] == 1 + MAT1[0, 1], MAT1[1, 1] == 3]
prob = cp.Problem(cp.Minimize(MAT1[0, 1]), constraints_2)

gamma 约为 -2.73

关于python - 使用 CVXPY 实现 LMI 约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56414270/

相关文章:

python - 为什么 jpeg 不能从 django 正确保存到 AWS S3

python - 从 CVX 到 CVXPY 或 CVXOPT

python - 未调整大小的对象的 len() - cvxpy - 相关性最大化

python - CVXOPT二次编程接口(interface)

Python - 创建具有动态大小的文本边框

python - 根据 timedelta 列中的总秒数过滤 DataFrame

python - 将默认时间添加到字典

python - 在 CVXPY 中将两个变量相乘

r - 从 R 的优化函数中获取更多细节