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.

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