Formulating objective function & constrain such that the eigenvalue is always positive

4 views (last 30 days)
Kindly assist, I am trying to tune some parameters (4) such that the eigenvalues are positive
i.e eig(Q)>0 eig(P)>0
Please note: I am not concern about minimizing or maximizing the objective function, just want the tuning paramenters x(1), x(2), x(3) and x(4) that will make eig(Q) and eig(P) positive. dimension of both eig(Q) & eig(P) is 3x1
Thanks in anticipation.
  3 Comments
Walter Roberson
Walter Roberson on 30 Aug 2018
It sounds like your matrix is relatively small, 3x3 . Perhaps it would make sense to switch to a symbolic formulation, in which case the eigenvalues would be expressed as the roots of a cubic polynomial. Set the roots equal to deltaP and deltaQ, symbolic variables assumed to be positive. That gives you a system of two equations in four variables that you can then solve pairwise on the variables and analyze the conditions under which the solutions are real valued. Some of the pairs might not admit any real valued solutions, or you might come out with range constraints on deltaP and deltaQ (which is to say, on the eigenvalues)
If your equations involve trig it might be hard to figure out the solutions. If they involve sum of exponentials then an exact solution might not be possible but numeric modelling might turn out to be not bad.
HAMMED OBASEKORE
HAMMED OBASEKORE on 31 Aug 2018
Edited: HAMMED OBASEKORE on 31 Aug 2018
Thanks for the prompt assistance;
I feel by sharing the relation of the parameters, it will pinpoint my request
0<=x1<=inf
-inf<x2<inf
-inf<x3<inf
-inf<x4<inf
such that;
eig(P) > 0
eig(Q) > 0

Sign in to comment.

Accepted Answer

Christine Tobler
Christine Tobler on 4 Sep 2018
Hi Hammed,
Your problem looks like a smooth nonlinear optimization problem: I believe the smallest eigenvalue of a linear combination of matrices is always a smooth function.
I know you don't care which solution that satisfies the equation you get, but the easiest way to approach this might be to use optimization. For example, use the function fmincon, for constrained nonlinear multi-variable optimization. You could use one of the min(eig(...)) > 0 equations as a constraint, and try to maximize over the other one; or use min(min(eig(P)), min(eig(Q)))| as the optimization function.
Alternatively, it might be simpler to just make a plot of min(eig(P)) and min(eig(Q)), depending on (some of) the variables, and try to visually find a spot where these are positive.
  1 Comment
HAMMED OBASEKORE
HAMMED OBASEKORE on 4 Sep 2018
Thanks alot for the very helpful response.
Though I had tried
fmincon
fsolve
and
ga
but all the instances my formulation of constrain and objective function were probably wrong.
But this works fine for my problem
  • You could use one of the min(eig(...)) > 0 equations as a constraint, and try to maximize over the other one;*
Best Regards once again.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!