# 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