# Find interval/range of certain coefficients to prove conditions of eigenvalues

I have seen similar questions to the one I am posting here, but I haven't been able to execute it on Mathematica. I would request some help with the following:

I have the following matrix:

{{1.79847 + 3.74119 d, -5.12392 + 4.67648 a -
0.935297 d, -0.199451, -0.0666941 -
0.935297 d, -0.341908}, {-0.213141, 1.03378, 0, 0.0236824, 0}, {0,
0, -0.0221797, 0, 0.010101}, {0, 1, 0, 1, 0}, {0.8 d, a - 0.2 d,
0, -0.2 d, 0}}


This matrix has the following eigenvalues:

{Root[0.00204575 a +
0.00775602 d + (-0.0163848 + 0.0487214 a +
0.177266 d) #1 + (-0.659423 - 1.04752 a -
4.14868 d) #1^2 + (3.49068 + 0.996752 a +
7.59996 d) #1^3 + (-3.81007 - 3.74119 d) #1^4 + #1^5 &, 1],
Root[0.00204575 a +
0.00775602 d + (-0.0163848 + 0.0487214 a +
0.177266 d) #1 + (-0.659423 - 1.04752 a -
4.14868 d) #1^2 + (3.49068 + 0.996752 a +
7.59996 d) #1^3 + (-3.81007 - 3.74119 d) #1^4 + #1^5 &, 2],
Root[0.00204575 a +
0.00775602 d + (-0.0163848 + 0.0487214 a +
0.177266 d) #1 + (-0.659423 - 1.04752 a -
4.14868 d) #1^2 + (3.49068 + 0.996752 a +
7.59996 d) #1^3 + (-3.81007 - 3.74119 d) #1^4 + #1^5 &, 3],
Root[0.00204575 a +
0.00775602 d + (-0.0163848 + 0.0487214 a +
0.177266 d) #1 + (-0.659423 - 1.04752 a -
4.14868 d) #1^2 + (3.49068 + 0.996752 a +
7.59996 d) #1^3 + (-3.81007 - 3.74119 d) #1^4 + #1^5 &, 4],
Root[0.00204575 a +
0.00775602 d + (-0.0163848 + 0.0487214 a +
0.177266 d) #1 + (-0.659423 - 1.04752 a -
4.14868 d) #1^2 + (3.49068 + 0.996752 a +
7.59996 d) #1^3 + (-3.81007 - 3.74119 d) #1^4 + #1^5 &, 5]}


I need to find conditions on coefficients 'a' and 'd' jointly such that both the 4th and 5th eigenvalues above are greater than 1 in absolute value.

If it helps in reducing your effort, the characteristic polynomial(in x) of the above matrix is the following where A and B are the coefficients:

0. - 0.00204575 a - 0.00775602 d + 0.0163848 x - 0.0487214 a x -
0.177266 d x + 0.659423 x^2 + 1.04752 a x^2 + 4.14868 d x^2 -
3.49068 x^3 - 0.996752 a x^3 - 7.59996 d x^3 + 3.81007 x^4 +
3.74119 d x^4 - 1. x^5


So I need to solve for 'a' and 'd', find a condition on them such that the 4th and 5th roots are bigger than 1. Thanks very much in advance.

• An analytical solution may not be easy to find, but if nothing else you could use RegionPlot to get a qualitative sense of the allowed parameter space. Commented Aug 17, 2021 at 17:49
• D is a builtin function for differentiation - use lowercase variable names to avoid builtins like C, D, E, I, K, N, O etc.. Commented Aug 17, 2021 at 17:57
• Many thanks @MichaelSeifert. Could you please suggest how to go about the RegionPlot for this case? I would be very grateful for your help. Commented Aug 17, 2021 at 22:07
• Many thanks @flinty, I have edited the question to lowercase variables. Commented Aug 17, 2021 at 22:07

With mat defined as your matrix above, you can run the commands

evals = Eigenvalues[mat];
RegionPlot[Abs[evals[[4]]] >= 1 && Abs[evals[[5]]] >= 1, {a, -5, 5}, {d, -5, 5},
PlotPoints -> 100, FrameLabel -> {a, d}]


The PlotPoints -> 100 option does cause the code to take more time, but may be necessary to get higher "resolution" on the features such as that narrow slot near the origin (which does appear to be a true feature on the plot and not some weird rounding error.)

Alternately, if you want to ensure that there are at least two eigenvalues whose absolute value is greater than or equal to 1 (not necessarily the fourth and fifth ones in the above list):

RegionPlot[Sort[Abs[evals]][[-2]] >= 1, {a, -5, 5}, {d, -5, 5},
PlotPoints -> 100, FrameLabel -> {a, d}]


Note that these two plots are different because Mathematica does not order the roots of a polynomial in increasing order of absolute magnitude by default. Rather, it lists all the real roots from least to greatest, and then the complex roots according to their real part (from least to greatest).

• Thank you very much indeed, @Michael, this is very helpful. Commented Aug 21, 2021 at 8:18
• Hello @Michael, just have a small follow-up question on the solution you have suggested above. Could you please suggest a way to get a picture like the one above where I can limit that 'only' two eigenvalues would be bigger than 1 in absolute value. Thank you in advance. Commented Aug 25, 2021 at 22:45
• I have tried RegionPlot[Sort[Abs[evals]][[-2]] >= 1 && Sort[Abs[evals]][[1 ;; 3]] < 1, {a, -5, 5}, {d, -5, 5}, PlotPoints -> 100, FrameLabel -> {a, d}] but it returns a blank picture. I'm trying this for another polynomial though. Commented Aug 25, 2021 at 23:11
• @rt1101 I think you just need RegionPlot[Sort[Abs[evals]][[-2]] >= 1 && Sort[Abs[evals]][[-3]] < 1, {a, -5, 5}, {d, -5, 5}, PlotPoints -> 100, FrameLabel -> {a, d}]. Sort arranges them in order of increasing magnitude, so if the second-largest (-2) is greater than 1 and the third-largest (-3) is less than 1, then there are only two values in the list with magnitude greater than 1. Commented Aug 25, 2021 at 23:23
• Right, of course! Thank you very much. Is there any way you could suggest to arrive at an analytical expression, some relationship between 'a' and 'd' that could guarantee this stability in the model? Actually I am using this for a model in Macroeconomics and I'm trying to find a story behind this. While the plot is extremely helpful, a relationship between the two would better motivate the understanding of what's going on. Thank you so much for your help! Commented Aug 26, 2021 at 13:07