5
$\begingroup$

I have a $2\times 2$ symbolic matrix for which I want to compute the eigenvalues. It is given as:

Clear[a, b, m]
m={{a, b}, {b, -a}}

and it spits out the eigensystem as

eigs = Eigensystem[m]

$$\begin{pmatrix} -\sqrt{a^2+b^2} & \sqrt{a^2+b^2} \\ \left\{-\frac{\sqrt{a^2+b^2}-a}{b},1\right\} & \left\{-\frac{-\sqrt{a^2+b^2}-a}{b},1\right\} \\ \end{pmatrix}$$

Although this is expected I have an issue. What I want to do is be able to send $b$ to $0$ after finding the eigenvectors, but given how it is that doesn't work for me. What can I do to enforce this assumption into the code?

$\endgroup$
8
  • $\begingroup$ With b=0 you will encounter infinity. Is that what you want? $\endgroup$
    – Syed
    Commented Jun 28, 2022 at 18:39
  • $\begingroup$ Not at all no, thats why I was hoping something was wrong. $\endgroup$
    – Joey
    Commented Jun 28, 2022 at 18:41
  • $\begingroup$ Set b to zero prior to calculating the Eigensystem, i.e., m = {{a, 0}, {0, -a}}; Eigensystem[m] evaluates to {{-a, a}, {{0, 1}, {1, 0}}} $\endgroup$
    – Bob Hanlon
    Commented Jun 28, 2022 at 19:07
  • $\begingroup$ Right and that’s fine, but I don’t want b to initially be 0. I want to turn b off after some time if that makes sense. $\endgroup$
    – Joey
    Commented Jun 28, 2022 at 19:09
  • 1
    $\begingroup$ In the symbolic case, eigenvectors are (usually) normalized so that one of the components is $1$. So, take the common denominator of all the other components, and multiply the eigenvector with that, $\endgroup$ Commented Jun 28, 2022 at 19:39

1 Answer 1

4
$\begingroup$

Here is one, not particularly sophisticated, approach using Normalize. You could use

evs = Map[Normalize,Eigenvectors[{{a,b},{b,-a}}]];

to get normalized eigenvectors, meaning eigenvectors of length 1. The normalization gives complicated expressions, which explains why normalization is not the default for symbolic matrices. Assuming your a and b are real, you can simplify a bit using

evs = Simplify[evs,Assumptions->Element[a|b,Reals]];

With normalized eigenvectors, you can now try to take the limit:

Limit[evs,b->0]

Turns out that this fails. However, any one of the following will work:

Limit[evs,b->0,Direction->"FromAbove",Assumptions->{a>0}]
Limit[evs,b->0,Direction->"FromBelow",Assumptions->{a>0}]
Limit[evs,b->0,Direction->"FromAbove",Assumptions->{a<0}]
Limit[evs,b->0,Direction->"FromBelow",Assumptions->{a<0}]

The reason why one has to provide this more detailed information to Limit has to do with the fact that normalization does not fix eigenvectors uniquely, even in cases where all eigenvalues are real and distinct and all eigenvectors real, since for example the sign remains ambiguous.

Related: See here and here, your matrix appears in both.

$\endgroup$
2
  • $\begingroup$ Thank you for this! However I am assuming that my $a,b$ are complex $\endgroup$
    – Joey
    Commented Jun 28, 2022 at 22:59
  • 1
    $\begingroup$ Tangential remark about the complex case: For every $a,b \in \mathbb{C}$ your matrix fixes a canonical splitting of $\mathbb{C}^2$ into an unordered direct sum of two 1-dim subspaces, namely the eigenspaces. Actually this is only for $a^2+b^2 \neq 0$ so that the eigenvalues are distinct, so one must cut out the two lines $a=ib$ and $a=-ib$. If you track how the 1-dim eigenspaces change as you walk once around say the line $a=ib$, you will see that the two eigenspaces "exchange". This is just an attempt to give some geometric picture, in the complex case, to the square roots that one is seeing. $\endgroup$
    – user293787
    Commented Jun 29, 2022 at 4:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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