Псевдообратный в CVXPY?
Я пытаюсь свести к минимуму следующую цель с помощью CVXPY. Вот как я бы написал цель, используя numpy:
objective = np.trace(np.pinv(A))
где A = cvxpy.Variable((n,n))
, Обратите внимание, что я хочу псевдообратный. Скажем, в простом случае, когда A диагональ с положительными собственными значениями, tr(pinv(A)) > tr(pinv(A[:k, :k]))
для всех k < n
,
Я пытался с помощью cvx.MatrixFrac(np.eye(n), A)
, но это сдерживает A
быть обратимым, что мне не нужно, и, следовательно, получить слишком высокое значение.