Formulating objective function & constrain such that the eigenvalue is always positive
1 view (last 30 days)
Show older comments
HAMMED OBASEKORE
on 30 Aug 2018
Commented: HAMMED OBASEKORE
on 4 Sep 2018
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
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.
Accepted Answer
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.
More Answers (0)
See Also
Categories
Find more on Surrogate Optimization in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!