3
$\begingroup$

I have a symbolic, 2-parameter, 8x8 matrix to solve, but Mathematica takes something like 20 minutes to solve it and returns a very large output containing expressions of the form Root[#1^2 #4^3 + ... #2^6+...].

The matrix is :

F = 
  {{0, 1/9 (2 j + 3 q), 0, 1/9 (2 j + 7 q), 0, -(2/9) (2 j + 3 q), 0, 
     -(2/9)(2 j + 3 q)}, 
   {1/9 (-2 j - 3 q), 0, 1/9 (-2 j + q), 0, 2/9 (2 j + q), 0, 2/9 (2 j + q), 0}, 
   {0, (4 q)/9, 0, -((4 q)/9), 0, 0, 0, 0}, 
   {(4 q)/9, 0, -((4 q)/9), 0, 0, 0, 0, 0}, 
   {(8 (j - q))/27, -(2/27) (2 j + 13 q), (8 (j - q))/27, -(2/27) (2 j + 13 q), 
     (8 (j - q))/27, 8/81 (14 j - 5 q), (8 (j - q))/27, -(8/81) (j - 10 q)}, 
   {2/9 (2 j + q), 0, 2/9 (2 j + q), 0, -(8/81) (7 j + 2 q), 0, 
     -(8/81) (4 j + 5 q), 0}, 
   {-(16/27) (j - q), -(16/27) (j - q), -(16/27) (j - q), -(16/27) (j - q), 
     -(16/27) (j - q), -(56/27) (j - q), -(16/27) (j - q), (8 (j - q))/9}, 
   {0, 0, 0, 0, (8 (j - q))/27, 0, -(8/27) (j - q), 0}}

I want to compute Eigensystem[F].

Even when I specify some numerical values of these parameters, the program still returns an output with Rootand takes 1 or 2 minutes. I believe this isn't normal. I'm wondering if I have to use compiled functions (which I don't know how to use) or parallel computation for doing this.

Is there a way to obtain some numerical values of the roots (possibly in terms of $j$ and $q$), by specifying the values of the two parameters?

I saw these answers : How to solve an eigensystem faster? and How do I work with Root objects? but I'm having trouble applying them to my problem.

$\endgroup$
13
  • 2
    $\begingroup$ If you just want to see numerical values, just do Eigensystem[N[F]], assuming you've already set values to the parameters. Otherwise, you'd have a hard time avoiding Root[] since the roots of an eighth-degree polynomial do not admit radical representations in general. $\endgroup$ Jun 18, 2015 at 8:46
  • 1
    $\begingroup$ I said that you should only do it if you've already set numerical values to the parameters; if you're still seeing Root[], then you didn't follow what I said. $\endgroup$ Jun 18, 2015 at 8:55
  • 1
    $\begingroup$ Then you can't avoid Root[] except in very special cases. I already said something about Root[] being needed to represent polynomial roots in general… $\endgroup$ Jun 18, 2015 at 9:07
  • 1
    $\begingroup$ I have to wonder what sort of result you are expecting. $\endgroup$ Jun 18, 2015 at 11:12
  • 1
    $\begingroup$ @LSnoopyD Why do you believe that is possible at all? Check here: en.wikipedia.org/wiki/Abel%E2%80%93Ruffini_theorem $\endgroup$
    – Szabolcs
    Jun 18, 2015 at 12:18

1 Answer 1

2
$\begingroup$

The following function will calculate the eigensystem numerically when provided with numerical values of $j$ and $q$. This is, I believe, what @Szabolcs was referring to in his comment. I wonder if this is what you mean when you ask for a "numerical solution".

Clear[eigen]
eigen[jj_?NumericQ, qq_?NumericQ] := Chop@Eigensystem[N[f /. {j -> jj, q -> qq}]]

You can then use this procedure to calculate the numerical values of the eigenvectors and eigenvalues for any value of the two parameters. For instance:

{evals, evecs} = eigen[0.1, 4];

evals

{0.495659 + 4.25935 I, 0.495659 - 4.25935 I, 0.109879 + 3.07184 I, 0.109879 - 3.07184 I, 2.92633, -2.89685, -0.0425017 + 0.329099 I, -0.0425017 - 0.329099 I}

evecs

{{-0.0482985 - 0.0348853 I, 0.0321458 - 0.113914 I, -0.0453241 - 0.0211174 I, -0.00581224 + 0.000565127 I, -0.32658 + 0.0450911 I, -0.0600757 + 0.332626 I, 0.813862, 0.0234541 - 0.306671 I}, {-0.0482985 + 0.0348853 I, 0.0321458 + 0.113914 I, -0.0453241 + 0.0211174 I, -0.00581224 - 0.000565127 I, -0.32658 - 0.0450911 I, -0.0600757 - 0.332626 I, 0.813862, 0.0234541 + 0.306671 I}, {-0.353103 + 0.0685274 I, -0.0725844 - 0.181175 I, -0.168451 + 0.0424839 I, 0.0112354 + 0.107266 I, 0.604769, 0.150466 + 0.0354625 I, -0.453657 - 0.179914 I, -0.0818168 + 0.395229 I}, {-0.353103 - 0.0685274 I, -0.0725844 + 0.181175 I, -0.168451 - 0.0424839 I, 0.0112354 - 0.107266 I, 0.604769, 0.150466 - 0.0354625 I, -0.453657 + 0.179914 I, -0.0818168 - 0.395229 I}, {0.414179, -0.340333, -0.56998, 0.597888, -0.158251, 0.0308016, -0.0494196, 0.0429756}, {0.403107, 0.310752, -0.549465, -0.584588, -0.245644, 0.0543998, 0.115176, -0.143931}, {-0.338839 - 0.35103 I, -0.111621 + 0.0863311 I, -0.31761 - 0.314881 I, -0.177504 + 0.137599 I, -0.195885 - 0.135764 I, 0.179694 + 0.237822 I, -0.177915 - 0.274909 I, -0.488576}, {-0.338839 + 0.35103 I, -0.111621 - 0.0863311 I, -0.31761 + 0.314881 I, -0.177504 - 0.137599 I, -0.195885 + 0.135764 I, 0.179694 - 0.237822 I, -0.177915 + 0.274909 I, -0.488576}}

$\endgroup$
2
  • $\begingroup$ Thanks for your answer. I was a bit fuzzy on what I wanted : I will follow this strategy and then interpolate the results for the $j$ and $q$ dependence of the eigenvalues. $\endgroup$
    – Toool
    Jun 19, 2015 at 12:27
  • $\begingroup$ @LSnoopyD I'm glad it helps; thank you for the accept as well! $\endgroup$
    – MarcoB
    Jun 19, 2015 at 12:30

Your Answer

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

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