0
$\begingroup$

I have this code:

x[t_] = Simplify[ Normal[Series[Sqrt[\[Omega]^2*(1 + \[Epsilon]*Sin[\[CapitalOmega]*t] + 
    a*Sin[\[CapitalOmega]*t])], {a, 0, 1}, {\[Epsilon], 0, 1}]], Assumptions -> {\[Omega] > 0}]

y = (1/T)*Integrate[x[t], {t, 0, T}]
\[Delta]\[Omega][t_] = x[t] - y

A = Series[{{Exp[-I*y*T], 
  Normal[Integrate[
    Series[(D[x[t], t]/(2*x[t]))*
      Exp[2 I*Integrate[\[Delta]\[Omega][\[Tau]], {\[Tau], 0, 
          T}]]*Exp[I*y*t], {\[Epsilon], 0, 1}, {a, 0, 1}], {t, 0, 
     T}]]}, {Normal[
   Integrate[
    Series[(D[x[t], t]/(2*x[t]))*
      Exp[-2 I*
        Integrate[\[Delta]\[Omega][\[Tau]], {\[Tau], 0, T}]]*
      Exp[-I*y*t], {\[Epsilon], 0, 1}, {a, 0, 1}], {t, 0, T}]], 
  Exp[I*y*T]}}, {\[Epsilon], 0, 1}, {a, 0, 1}]/. \[Omega] -> 1 /. \[CapitalOmega] -> 5 /. T -> 4 // Normal;

After Mathematica finishes running (it takes around $1$ minute), I can calculate the eigenvectors of my matrix $A$ with

 Normalize[Eigenvectors[A][[1]]] /. a -> 0.00000001 /. \[Epsilon] ->0.00000001
 Normalize[Eigenvectors[A][[2]]] /. a -> 0.00000001 /. \[Epsilon] -> 0.00000001

to find that my eigenvectors are:

{0.870066 - 0.492935 I, 3.73447*10^-9}

{-7.23137*10^-8 + 3.70733*10^-8 I, 1.}

If instead I set the values of $\epsilon$ and $a$ first,

Eigenvectors[A /.a -> 0.00000001 /. \[Epsilon] -> 0.00000001] 

I find

{{3.24924*10^-9 - 1.84085*10^-9 I, 1. + 0. I}, 
{1. + 0. I, 3.24924*10^-9 + 1.84085*10^-9 I}}

which makes sense as

\begin{align} \lim_{\epsilon\to0^+\\a\to0^+}A\to\begin{pmatrix}e^{-iyT} & 0\\ 0 & e^{iyT} \end{pmatrix} \end{align}

and every diagonal matrix has eigenvectors of $(1,0)$ and $(0,1)$. However, I'm not sure why Mathematica gives me two different sets of eigenvectors, depending on when I take $\epsilon$ and $a$ to $0$. I am especially concerned about getting $(0.870066 - 0.492935i,0)$ vs $(1,0)$. Both are valid eigenvectors, but I don't understand why Mathematica doesn't factor out $0.870066 - 0.492935i$ and output $(1,0)$ in both cases.

$\endgroup$
6
  • 1
    $\begingroup$ When an eigenvector has multiplicity greate that 1, the "set of eigenvectors" is not uniquely determined. You problem might be related to this. $\endgroup$ Aug 16, 2019 at 15:53
  • $\begingroup$ Shouldn't I get two distinct eigenvectors? I know that the eigenvalues are distinct $\endgroup$
    – user85503
    Aug 16, 2019 at 18:38
  • $\begingroup$ Eigenvalues do not have to be distinct $\endgroup$ Aug 16, 2019 at 20:29
  • 2
    $\begingroup$ Simply put, Mathematica uses different algorithms when calculating symbolic and numeric matrices. In your first approach, Mathematica uses a symbolic algorithm, and gives general expressions for eigenvectors. Note that these will always be linearly independend, but they are not guaranteed to be orthogonal, and they are also generally not normalized. This normalization is what you are missing in (0.870066−0.492935𝑖,0). $\endgroup$ Aug 17, 2019 at 10:38
  • $\begingroup$ Of course, when they belong to distinct eigenvalues, they will be orthogonal as well, but again, may not be normalized. Under "Details and Options" in the documentation for "Eigenvectors" : "For exact or symbolic matrices m, the eigenvectors are not normalized." $\endgroup$ Aug 17, 2019 at 10:39

0

Your Answer

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