基于cvxpy的多变量优化

2024-05-14 18:30:04 发布

您现在位置:Python中文网/ 问答频道 /正文

  • X是T乘以m矩阵(给定矩阵)
  • B是T乘n矩阵(变量1)
  • A是n乘m矩阵(变量2)

我想最小化| | X-A*B | forbinious norm,并使用Python/cvxpy找到A和B

我在Matlab上做了这个,工作很好

区分分解稀疏编码能量分解算法已在Matlab上成功实现,但对于大样本集难以使用,因此需要在python上实现

导入cvxpy作为cp 将numpy作为np导入

n = 5
m = 4
T = 3
np.random.seed(1)
A = cp.Variable((n, m))
B = cp.Variable((T, n))
x = np.random.rand(T, m)

constraints = [A >= 0,
           B >= 0]


obj = cp.Minimize(cp.norm(x - cp.matmul(B,A),"fro"))
prob = cp.Problem(obj,constraints)

prob.solve()

需要在python上使用cvxpy或任何其他工具来最小化多目标函数


Tags: objnorm编码np矩阵randomvariablecp

热门问题