【问题标题】:How to invert a matrix of variables in cvxpy?如何反转cvxpy中的变量矩阵?
【发布时间】:2019-08-21 13:43:35
【问题描述】:

如何在 cvxpy 中反转变量矩阵?

我有一个问题变量矩阵,定义如下:

import cvxpy as cp
A = cp.Variable(2,2)

我想解决一个目标函数涉及该矩阵的 的程序。我已经尝试了几乎所有我能想到的方法(包括手动定义逆矩阵),但似乎没有任何效果。

我的问题的完整代码是:

A = cp.Variable((2,2)) # matrix A is 2X2
c = cp.Variable(2) # center of 2d ellipsoid

constraints = [A >> 0]
constraints += [cp.pnorm(cp.matmul(A, v[i] - cp.matmul(A,c)), p=2) <= np.array([1,1]) for i in range(10)]

# this is where I'm stuck. Using np.linalg.inv doesn't work.
# I also can't seem to calculate this inverse manually 
obj_fn = cp.log_det(np.linalg.inv(A))

prob = cp.Problem(cp.Minimize(obj_fn), constraints)
prob.solve(solver='CVXOPT')

【问题讨论】:

    标签: python cvxpy cvxopt


    【解决方案1】:

    我不知道如何在 cvxpy 中反转矩阵,但是对于您拥有的特定代码,您可以使用以下事实:

    log det A^{-1} = - log det A

    【讨论】:

    • 这正是我所需要的。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-08
    • 1970-01-01
    • 1970-01-01
    • 2019-04-10
    • 2011-05-18
    • 1970-01-01
    相关资源
    最近更新 更多