2
$\begingroup$

I have the following 3-by-3 matrix. I need to find condition(s) on the parameters 'a' and 'b' such that this matrix has exactly 1 eigenvalue bigger than 1 in absolute value and other two eigenvalues less than 1 in absolute value. 'a' and 'b' lie in the range 0 to 3 and I am keen to arrive at an anlaytical expression for these conditions.

m = {{14.6235 (0.0925809 + 0.0378381 (0.0696333 a + 0.256263 b)), -14.6235 (0.0240451 + 0.0378381 (0.0696333 a + 0.264 b)), 0.435909}, {1, 0, 0}, {a + 3.68018 b, -a - 3.79129 b, 0}}

I would really appreciate any help with this. Thank you very much.

$\endgroup$
5
  • $\begingroup$ I tried using Reduce but it is taking too long to finish. Deleted the answer as I had initial error. But you can try this and wait and see ClearAll[a,b]; m={{14.6235 *(0.0925809+0.0378381* (0.0696333 *a+0.256263* b)),-14.6235* (0.0240451+0.0378381* (0.0696333 *a+0.264* b)),0.435909},{1,0,0},{a+3.68018* b,-a-3.79129 *b,0}}; m=SetPrecision[m,Infinity]; (*exact is better*) eig=ToRadicals@Eigenvalues[m]; and now ... $\endgroup$
    – Nasser
    Oct 4 '21 at 21:16
  • $\begingroup$ Reduce[Abs[eig[[1]]] > 1 && Abs[eig[[2]]] < 1 && Abs[eig[[3]]] < 1 && 0 < a < 3 && 0 < b < 3, {a, b}]; Reduce[Abs[eig[[2]]] > 1 && Abs[eig[[1]]] < 1 && Abs[eig[[3]]] < 1 && 0 < a < 3 && 0 < b < 3, {a, b}]; Reduce[Abs[eig[[3]]] > 1 && Abs[eig[[2]]] < 1 && Abs[eig[[3]]] < 1 && 0 < a < 3 && 0 < b < 3, {a, b}]; $\endgroup$
    – Nasser
    Oct 4 '21 at 21:16
  • $\begingroup$ Removing the conditions 0 < a < 3 && 0 < b < 3 from Reduce it is still taking long time. But you can try it. Reduce[Abs[eig[[1]]] > 1 && Abs[eig[[2]]] < 1 && Abs[eig[[3]]] < 1, {a, b}]; Reduce[Abs[eig[[2]]] > 1 && Abs[eig[[1]]] < 1 && Abs[eig[[3]]] < 1, {a, b}]; Reduce[Abs[eig[[3]]] > 1 && Abs[eig[[2]]] < 1 && Abs[eig[[3]]] < 1, {a, b}]; May be different approach is needed. $\endgroup$
    – Nasser
    Oct 4 '21 at 21:21
  • 1
    $\begingroup$ Doing some random sampling seems to indicate that a necessary & sufficient condition is that $\det(M - I) > 0$, which reduces to the simple condition that b < 0.0423651 with a unconstrained. But I can't prove it, and I have to call it a day. I'll try to return to it later. $\endgroup$ Oct 4 '21 at 21:41
  • $\begingroup$ Thank you very much, @Nasser $\endgroup$
    – rt1101
    Oct 5 '21 at 17:07
2
$\begingroup$

To make the job easier, we shift the eigenvalues by -1. Then the condition reads: 2 eigenvalues <0 and 1 eigenvalue >0. Shifting the eigenvalues can be achieved by subtracting the Identity matrix:

m = {{14.6235 (0.0925809 + 
        0.0378381 (0.0696333 a + 0.256263 b)), -14.6235 (0.0240451 + 
        0.0378381 (0.0696333 a + 0.264 b)), 0.435909}, {1, 0, 
     0}, {a + 3.68018 b, -a - 3.79129 b, 0}} - IdentityMatrix[3];

Now we consider the characteristic polynomial, whos zeros are the eigenvalues of m:

charpoly = Det[m - x IdentityMatrix[3]]

As you can see this is a cubic polynomial. These can have imaginary roots. To get 3 real roots we need an additional condition: the discriminant has to be positive (note there exists different definitions that require the discriminant to be negative):

disc = Discriminant[charpoly, x]

Further, you will remember, that the constant term of a polynomial with the coefficient of the highest term equal to 1, is the product of its roots.

const = Select[charpoly, FreeQ[#, x] &]

Note, for 2 roots <0 and 1 root >0 this product must be positive.

Therefore, we have the conditions:

disc>0

const>0

The solution to this is a very complicated region. But fortunately we have 2 further conditions: 0<={a,b}<=3. With this we get:

Reduce[{disc > 0 && const > 0 && 0 <= a <= b && 0 <= b <= 3}, {a, b}]

You will see that Reduce produces superfluous output of the form 1.20167 < a < 1.20167..., I think this is an error. But it boils down to:

(*0 <= a < 3 && 0 <= b < 0.0423651*)

We may plot the regions:

RegionPlot[{disc > 0, const > 0}, {a, 0, 3}, {b, 0, 3}, 
 PlotLegends -> "Expressions"]

![enter image description here

Or the combined region:

RegionPlot[{disc > 0 && const > 0}, {a, -0.3, 3}, {b, 0, 0.05}, 
 PlotLegends -> "Expressions"]

![enter image description here

$\endgroup$
4
  • 2
    $\begingroup$ Doesn't your first step assume that the eigenvalues are all real and positive? For example, consider the matrix with $-2$, $2$, and $0$ on the diagonal. It doesn't satisfy the criteria (since two of the eigenvalues have a magnitude greater than 1), but subtracting the identity gives a matrix with one positive and two negative eigenvalues. $\endgroup$ Oct 5 '21 at 15:08
  • $\begingroup$ That said, your results are very similar (identical?) to mine, so I suspect your argument could still be fixed. $\endgroup$ Oct 5 '21 at 15:09
  • $\begingroup$ Thank you very much, @DanielHuber $\endgroup$
    – rt1101
    Oct 5 '21 at 17:07
  • $\begingroup$ I actually over read "absolute value". What I wrote is for 2 values <1 and one value>1. $\endgroup$ Oct 5 '21 at 18:28
2
$\begingroup$

We can apply Rouché's theorem. This theorem states for for any two polynomials $f(z)$ and $g(z)$ and any region in the complex plane $K$, if $|f(z) - g(z)| < |g(z)|$ at every point on the boundary of $K$, then $f(z)$ and $g(z)$ have the same number of roots (counting multiplicities) in the interior of $K$.

In particular, let's take $K$ to be the unit disc. The polynomial $g(z) = c z^n$ has $n$ (degenerate) roots at the origin. In particular, let's pick $g(z) = c z^2$. Then if $|f(z) - c z^2| < |c z^2|$ everywhere on the boundary of the unit disc, there are precisely two roots of $f(z)$ inside the unit disc. And if we take $f(z) = \det(M - I z)$ to be the characteristic polynomial of $m$, then the values of $a$ and $b$ for which $f(z)$ has two roots inside the unit disc are those for which precisely one eigenvalue of $M$ has magnitude greater than 1.

Implementation:

Define the matrix and the characteristic polynomial $f(x)$.

m[{a_, b_}] = {{14.6235 (0.0925809 + 
  0.0378381 (0.0696333 a + 0.256263 b)), -14.6235 (0.0240451 + 
  0.0378381 (0.0696333 a + 0.264 b)), 0.435909}, {1, 0, 0}, {a + 3.68018 b, -a - 3.79129 b, 0}};
f[x_, a_, b_] = CharacteristicPolynomial[m[{a, b}], x]

(* 0. - 0.435909 a - 1.65266 b - 0.351624 x + 0.397379 a x + 
   1.45815 b x + 1.35386 x^2 + 0.0385299 a x^2 + 0.141797 b x^2 - 1. x^3 *)

Tell Mathematica to find a and b such that $|f(z) - c_2 z^2| < |c_2 z^2|$ for all $z$ on the unit circle, where $c_2$ is the coefficient of $z^2$ in $f(z)$.

c2 = Coefficient[f[z, a, b], z, 2];
conditions = 
Simplify[Reduce[
   ForAll[z, Abs[z] == 1, Abs[f[z, a, b] - c2 z^2] < Abs[c2 z^2] 
   && 0 <= a <= 3 && 0 <= b <= 3], {a, b}, Reals]];
Chop[conditions]

(* 0 <= a <= 3. && 0 <= b < 0.0423651 *)

This appears to be in agreement with "data" from random sampling in the allowed parameter space:

points = Select[RandomReal[{0, 3}, {100000, 2}], (Sort[Abs[Eigenvalues[m[#]]]][[3]] >= 1 && Sort[Abs[Eigenvalues[m[#]]]][[2]] < 1) &];
ListPlot[points, PlotRange -> {{0, 3}, {0, 3}}, AspectRatio -> Automatic]

enter image description here

Caveats:

While the results agree with the "random sampling" data, Rouché's theorem is new to me and I am not 100% sure that I have applied it correctly. In particular, while it appears to be customary to take $g(z) = c_2 z^2$ in using this technique to find roots, I am not sure why this is or whether it would be possible to use other choices for $c_2$. In addition, I am unclear whether Rouché's theorem is an "if and only if" statement, or whether it only provides sufficient conditions (but not necessary conditions) for $f(z)$ to have a particular number of zeros in $K$. I welcome any & all comments on this answer correcting any misconceptions.

$\endgroup$
1
  • $\begingroup$ Thank you very much, @MichaelSeifert $\endgroup$
    – rt1101
    Oct 5 '21 at 17:06

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.