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)
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.