Calculation of eigenvalues, eigenvectors fails



On 8/21/06, Felix E. Klee <felix.klee at inka.de> wrote:

> Does anyone have an idea how to get Maxima to calculate
> eigenvalues and eigenvectors reliably?  Is it possible to tell Maxima
> to do the calculations using floating point numbers, which in this case
> - according to the user - would be preferred as a result?

There is a function eigens_by_jacobi in share/linearalgebra
which computes eigenvalues & eigenvectors by Jacobi
rotations. (According to its comment header; it is otherwise
undocumented. This is an oversight.) I get the following.

load (linearalgebra);
M : matrix([0,3,2],[3,0,1],[2,1,0]);
eigens_by_jacobi (M, floatfield);
  => [[-3.201911776678708,4.11309058432495,-.9111788076462429],
       matrix([.7430686750179196,.6581030875614606,
               -.1214465740528976],
              [-.6108341622572568,.5928513034262205,
               -.5247942056133115],
              [-.2733689273245749,.4641418513427806,
               .8425210806890873])]

(L : %[1], S : %[2])$
load (diag);
mat_norm (S . diag(L) . transpose (S) - M, 1);
  => 1.028691021254247E-15

so I guess that worked out OK.

This whole example is certainly more work than it needs to be.
Well, we are working on it.

Hope this helps
Robert Dodier