2
$\begingroup$

I'm trying to diagonalize a certain 2 x 2 matrix, but Mathematica refuses to find the eigenvectors. In particular, when I input

Eigenvectors[{{1.8741*10^7 + 1.40161*10^6 B, 2.79374*10^7}, 
              {2.79374*10^7, -3.1235*10^7 - 1.40161*10^6 B}}]

(B is a parameter). I receive the error

Eigenvectors::eivec0: Unable to find all eigenvectors

and the bogus output

{{0, 0}, {0, 0}}

On the other hand, Mathematica has no problem with the eigenvalues, for some reason. Can someone help me figure out what's going on here?

$\endgroup$
5
  • 1
    $\begingroup$ Eigenvectors[{{18741000 + 1401610 B, 27937400}, {27937400, -31235000 - 1401610 B}}]. First section of the doumentation... $\endgroup$
    – ciao
    Commented Apr 7, 2014 at 8:15
  • $\begingroup$ @rasher Where is it written that Power shoudln't be used with Eigenvectors? $\endgroup$
    – Öskå
    Commented Apr 7, 2014 at 9:41
  • $\begingroup$ @Öskå: First item, details (at least for v9 docs): "Eigenvectors finds numerical eigenvectors if m contains approximate real or complex numbers. " - does't like mix of symbolic & inexact. $\endgroup$
    – ciao
    Commented Apr 7, 2014 at 9:50
  • 1
    $\begingroup$ I guess I'm not good enough in English to understand that it doesn't like the mix :) $\endgroup$
    – Öskå
    Commented Apr 7, 2014 at 9:57
  • 3
    $\begingroup$ @Öskå It's a NKE (a New Kind of English) $\endgroup$ Commented Apr 7, 2014 at 11:43

1 Answer 1

2
$\begingroup$

Although the documentation could be clearer on this point, Eigenvectors doesn't like to work symbolically on a matrix containing elements with approximate numbers. The solution is to Rationalize the matrix.

data = {{1.8741*10^7 + 1.40161*10^6 B, 2.79374*10^7}, 
        {2.79374*10^7, -3.1235*10^7 - 1.40161*10^6 B}};
Eigenvectors[Rationalize[data]] // Column

eigenvectors

$\endgroup$

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.