所以我尝试使用 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/