How to write this in CVX?

I want to solve linear equation Ax=b where A is the unknown here. I want to enforce positive definiteness on A. How could we achieve this ?

P.S. A is arbitrary, not symmetric.

Are you willing to enforce the symmetrization of A being psd?

variable A(n,n)
A*x == b
A+A' == semidefinite(n)
1 Like

No. İ wanna keep it arbitrary.

İs the last line of the code implies positive definiteness or semidefiniteness. Also, does it require symmetry.

LHS == semidefinite(n) constrains LHS to be symmetric psd. By construction, the LHS in my suggested possible constraint is symmetric by construction, and allows A to be a non-symmetric matrix.

To enforce strict positive definiteness of A + A', choose a value, min_eigenvalue , as the minimum allowed eigenvalue. If min_eigenvalue is not large enough, such as at least 1 e-6 to provide ample solver tolerance cushion, strict positive definiteness may not be achieved.

Then
A + A' - min_eigenvalue*eye(n) == semidefinite(n)
or
lambda_min(A+A') >= min_eigenvalue

A couple of sec of googling gave me https://math.stackexchange.com/questions/83134/does-non-symmetric-positive-definite-matrix-have-positive-eigenvalues , which you might want to read to help you determine what you really want to do. There’s plenty more material you can find.

1 Like